From 9901a61efa85cedee73984434d7127f52e198234 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 4 Dec 2024 19:08:32 +0000 Subject: [PATCH 01/21] Update API model --- .../aws-models/bedrock-agent-runtime.json | 444 +- .../sdk-codegen/aws-models/bedrock-agent.json | 780 +++- .../bedrock-data-automation-runtime.json | 1310 ++++++ .../aws-models/bedrock-data-automation.json | 3043 ++++++++++++++ .../aws-models/bedrock-runtime.json | 196 +- codegen/sdk-codegen/aws-models/bedrock.json | 1409 ++++++- codegen/sdk-codegen/aws-models/kendra.json | 144 +- codegen/sdk-codegen/aws-models/sagemaker.json | 3638 +++++++++++++++++ 8 files changed, 10821 insertions(+), 143 deletions(-) create mode 100644 codegen/sdk-codegen/aws-models/bedrock-data-automation-runtime.json create mode 100644 codegen/sdk-codegen/aws-models/bedrock-data-automation.json diff --git a/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json b/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json index 34df34e97bf..9cea6ed60e1 100644 --- a/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json +++ b/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json @@ -411,6 +411,9 @@ { "target": "com.amazonaws.bedrockagentruntime#FlowResource" }, + { + "target": "com.amazonaws.bedrockagentruntime#GenerateQueryResource" + }, { "target": "com.amazonaws.bedrockagentruntime#InferenceResource" }, @@ -2921,6 +2924,140 @@ "target": "com.amazonaws.bedrockagentruntime#FunctionDefinition" } }, + "com.amazonaws.bedrockagentruntime#GenerateQuery": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagentruntime#GenerateQueryRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagentruntime#GenerateQueryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagentruntime#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#BadGatewayException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#DependencyFailedException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagentruntime#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates an SQL query from a natural language query. For more information, see Generate a query for structured data in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/generateQuery" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockagentruntime#GenerateQueryRequest": { + "type": "structure", + "members": { + "queryGenerationInput": { + "target": "com.amazonaws.bedrockagentruntime#QueryGenerationInput", + "traits": { + "smithy.api#documentation": "

Specifies information about a natural language query to transform into SQL.

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

Specifies configurations for transforming the natural language query into SQL.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagentruntime#GenerateQueryResource": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.bedrockagentruntime#GenerateQuery" + } + ] + }, + "com.amazonaws.bedrockagentruntime#GenerateQueryResponse": { + "type": "structure", + "members": { + "queries": { + "target": "com.amazonaws.bedrockagentruntime#GeneratedQueries", + "traits": { + "smithy.api#documentation": "

A list of objects, each of which defines a generated query that can correspond to the natural language queries.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockagentruntime#GeneratedQueries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#GeneratedQuery" + }, + "traits": { + "smithy.api#length": { + "min": 0 + } + } + }, + "com.amazonaws.bedrockagentruntime#GeneratedQuery": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagentruntime#GeneratedQueryType", + "traits": { + "smithy.api#documentation": "

The type of transformed query.

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

An SQL query that corresponds to the natural language query.

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

Contains information about a query generated for a natural language query.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#GeneratedQueryType": { + "type": "enum", + "members": { + "REDSHIFT_SQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDSHIFT_SQL" + } + } + } + }, "com.amazonaws.bedrockagentruntime#GeneratedResponsePart": { "type": "structure", "members": { @@ -4258,6 +4395,17 @@ "smithy.api#documentation": "

Contains information about the prompt to optimize.

" } }, + "com.amazonaws.bedrockagentruntime#InputQueryType": { + "type": "enum", + "members": { + "TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT" + } + } + } + }, "com.amazonaws.bedrockagentruntime#InputText": { "type": "string", "traits": { @@ -4886,6 +5034,15 @@ "smithy.api#documentation": "

\n Details of the knowledge base associated withe inline agent.\n

" } }, + "com.amazonaws.bedrockagentruntime#KnowledgeBaseArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:knowledge-base/[0-9a-zA-Z]+$" + } + }, "com.amazonaws.bedrockagentruntime#KnowledgeBaseConfiguration": { "type": "structure", "members": { @@ -5008,7 +5165,7 @@ "content": { "target": "com.amazonaws.bedrockagentruntime#RetrievalResultContent", "traits": { - "smithy.api#documentation": "

Contains a chunk of text from a data source in the knowledge base.

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

Contains information about the content of the chunk.

", "smithy.api#required": {} } }, @@ -6405,6 +6562,33 @@ "smithy.api#documentation": "

Contains the parameters in the request body.

" } }, + "com.amazonaws.bedrockagentruntime#QueryGenerationInput": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagentruntime#InputQueryType", + "traits": { + "smithy.api#documentation": "

The type of the query.

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

The text of the query.

", + "smithy.api#length": { + "min": 1, + "max": 20000 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a natural language query to transform into SQL.

", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentruntime#QueryTransformationConfiguration": { "type": "structure", "members": { @@ -6420,6 +6604,17 @@ "smithy.api#documentation": "

To split up the prompt and retrieve multiple sources, set the transformation type to\n QUERY_DECOMPOSITION.

" } }, + "com.amazonaws.bedrockagentruntime#QueryTransformationMode": { + "type": "enum", + "members": { + "TEXT_TO_SQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT_TO_SQL" + } + } + } + }, "com.amazonaws.bedrockagentruntime#QueryTransformationType": { "type": "enum", "members": { @@ -7183,19 +7378,138 @@ "com.amazonaws.bedrockagentruntime#RetrievalResultContent": { "type": "structure", "members": { + "type": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalResultContentType", + "traits": { + "smithy.api#documentation": "

The type of content in the retrieval result.

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

The cited text from the data source.

", - "smithy.api#required": {} + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The cited text from the data source.

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

A data URI with base64-encoded content from the data source. The URI is in the following format: returned in the following format: data:image/jpeg;base64,${base64-encoded string}.

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

Specifies information about the rows with the cells to return in retrieval.

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

Contains information about a chunk of text from a data source in the knowledge base. If the result is from a structured data source, the cell in the database and the type of the value is also identified.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#RetrievalResultContentColumn": { + "type": "structure", + "members": { + "columnName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the column.

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

The value in the column.

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

The data type of the value.

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

Contains information about a column with a cell to return in retrieval.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#RetrievalResultContentColumnType": { + "type": "enum", + "members": { + "BLOB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLOB" + } + }, + "BOOLEAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BOOLEAN" + } + }, + "DOUBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOUBLE" + } + }, + "NULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NULL" + } + }, + "LONG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LONG" + } + }, + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRING" } } + } + }, + "com.amazonaws.bedrockagentruntime#RetrievalResultContentRow": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalResultContentColumn" }, "traits": { - "smithy.api#documentation": "

Contains the cited text from the data source.

\n

This data type is used in the following API operations:

\n ", "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#RetrievalResultContentType": { + "type": "enum", + "members": { + "TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT" + } + }, + "IMAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMAGE" + } + }, + "ROW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROW" + } + } + } + }, "com.amazonaws.bedrockagentruntime#RetrievalResultCustomDocumentLocation": { "type": "structure", "members": { @@ -7210,6 +7524,20 @@ "smithy.api#documentation": "

Contains information about the location of a document in a custom data source.

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

The document's uri.

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

The location of a result in Amazon Kendra.

" + } + }, "com.amazonaws.bedrockagentruntime#RetrievalResultLocation": { "type": "structure", "members": { @@ -7255,10 +7583,22 @@ "traits": { "smithy.api#documentation": "

Specifies the location of a document in a custom data source.

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

The location of a document in Amazon Kendra.

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

Specifies information about the SQL query used to retrieve the result.

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

Contains information about the data source location.

\n

This data type is used in the following API operations:

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

Contains information about the data source location.

\n

This data type is used in the following API operations:

\n ", "smithy.api#sensitive": {} } }, @@ -7300,6 +7640,18 @@ "traits": { "smithy.api#enumValue": "CUSTOM" } + }, + "KENDRA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KENDRA" + } + }, + "SQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SQL" + } } } }, @@ -7372,6 +7724,20 @@ "smithy.api#documentation": "

The SharePoint data source location.

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

The SQL query used to retrieve the result.

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

Contains information about the SQL query used to retrieve the result.

" + } + }, "com.amazonaws.bedrockagentruntime#RetrievalResultWebLocation": { "type": "structure", "members": { @@ -8459,6 +8825,53 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#TextToSqlConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagentruntime#TextToSqlConfigurationType", + "traits": { + "smithy.api#documentation": "

The type of resource to use in transformation.

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

Specifies configurations for a knowledge base to use in transformation.

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

Contains configurations for transforming text to SQL.

" + } + }, + "com.amazonaws.bedrockagentruntime#TextToSqlConfigurationType": { + "type": "enum", + "members": { + "KNOWLEDGE_BASE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KNOWLEDGE_BASE" + } + } + } + }, + "com.amazonaws.bedrockagentruntime#TextToSqlKnowledgeBaseConfiguration": { + "type": "structure", + "members": { + "knowledgeBaseArn": { + "target": "com.amazonaws.bedrockagentruntime#KnowledgeBaseArn", + "traits": { + "smithy.api#documentation": "

The ARN of the knowledge base

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

Contains configurations for a knowledge base to use in transformation.

" + } + }, "com.amazonaws.bedrockagentruntime#ThrottlingException": { "type": "structure", "members": { @@ -8607,6 +9020,27 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#TransformationConfiguration": { + "type": "structure", + "members": { + "mode": { + "target": "com.amazonaws.bedrockagentruntime#QueryTransformationMode", + "traits": { + "smithy.api#documentation": "

The mode of the transformation.

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

Specifies configurations for transforming text to SQL.

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

Contains configurations for transforming the natural language query into SQL.

" + } + }, "com.amazonaws.bedrockagentruntime#Type": { "type": "enum", "members": { diff --git a/codegen/sdk-codegen/aws-models/bedrock-agent.json b/codegen/sdk-codegen/aws-models/bedrock-agent.json index ebcf3c18921..e6601004b99 100644 --- a/codegen/sdk-codegen/aws-models/bedrock-agent.json +++ b/codegen/sdk-codegen/aws-models/bedrock-agent.json @@ -2369,6 +2369,28 @@ "smithy.api#documentation": "

Defines tools. The model automatically decides whether to call a tool or to generate text instead. For more information, see Use a tool to complete an Amazon Bedrock model response.

" } }, + "com.amazonaws.bedrockagent#AwsDataCatalogTableName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^.*\\.*$" + } + }, + "com.amazonaws.bedrockagent#AwsDataCatalogTableNames": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#AwsDataCatalogTableName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.bedrockagent#BasePromptTemplate": { "type": "string", "traits": { @@ -2379,6 +2401,20 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagent#BedrockDataAutomationConfiguration": { + "type": "structure", + "members": { + "parsingModality": { + "target": "com.amazonaws.bedrockagent#ParsingModality", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable parsing of multimodal data, including both text and/or images.

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

Contains configurations for using Amazon Bedrock Data Automation as the parser for ingesting your data sources.

" + } + }, "com.amazonaws.bedrockagent#BedrockEmbeddingModelArn": { "type": "string", "traits": { @@ -2415,7 +2451,7 @@ "modelArn": { "target": "com.amazonaws.bedrockagent#BedrockModelArn", "traits": { - "smithy.api#documentation": "

The ARN of the foundation model or inference profile.

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

The ARN of the foundation model or inference profile to use for parsing.

", "smithy.api#required": {} } }, @@ -2424,6 +2460,12 @@ "traits": { "smithy.api#documentation": "

Instructions for interpreting the contents of a document.

" } + }, + "parsingModality": { + "target": "com.amazonaws.bedrockagent#ParsingModality", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable parsing of multimodal data, including both text and/or images.

" + } } }, "traits": { @@ -3908,8 +3950,7 @@ "storageConfiguration": { "target": "com.amazonaws.bedrockagent#StorageConfiguration", "traits": { - "smithy.api#documentation": "

Contains details about the configuration of the vector database used for the knowledge base.

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

Contains details about the configuration of the vector database used for the knowledge base.

" } }, "tags": { @@ -4277,6 +4318,39 @@ } } }, + "com.amazonaws.bedrockagent#CuratedQueries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#CuratedQuery" + }, + "traits": { + "smithy.api#length": { + "max": 10 + } + } + }, + "com.amazonaws.bedrockagent#CuratedQuery": { + "type": "structure", + "members": { + "naturalLanguage": { + "target": "com.amazonaws.bedrockagent#NaturalLanguageString", + "traits": { + "smithy.api#documentation": "

An example natural language query.

", + "smithy.api#required": {} + } + }, + "sql": { + "target": "com.amazonaws.bedrockagent#SqlString", + "traits": { + "smithy.api#documentation": "

The SQL equivalent of the natural language query.

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

Contains configurations for a query, each of which defines information about example queries to help the query engine generate appropriate SQL queries.

" + } + }, "com.amazonaws.bedrockagent#CustomContent": { "type": "structure", "members": { @@ -4725,6 +4799,12 @@ "traits": { "smithy.api#enumValue": "CUSTOM" } + }, + "REDSHIFT_METADATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDSHIFT_METADATA" + } } } }, @@ -5724,6 +5804,15 @@ } } }, + "com.amazonaws.bedrockagent#DescriptionString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, "com.amazonaws.bedrockagent#Dimensions": { "type": "integer", "traits": { @@ -9107,6 +9196,23 @@ "smithy.api#pattern": "^[0-9a-zA-Z]{10}$" } }, + "com.amazonaws.bedrockagent#IncludeExclude": { + "type": "enum", + "members": { + "INCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCLUDE" + } + }, + "EXCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUDE" + } + } + } + }, "com.amazonaws.bedrockagent#IncompatibleConnectionDataTypeFlowValidationDetails": { "type": "structure", "members": { @@ -9724,6 +9830,27 @@ "smithy.api#documentation": "

Contains configurations for an iterator node in a flow. Takes an input that is an array and iteratively sends each item of the array as an output to the following node. The size of the array is also returned in the output.

\n

The output flow node at the end of the flow iteration will return a response for each member of the array. To return only one response, you can include a collector node downstream from the iterator node.

" } }, + "com.amazonaws.bedrockagent#KendraIndexArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):kendra:[a-z0-9-]{1,20}:([0-9]{12}|):index/([a-zA-Z0-9][a-zA-Z0-9-]{35}|[a-zA-Z0-9][a-zA-Z0-9-]{35}-[a-zA-Z0-9][a-zA-Z0-9-]{35})$" + } + }, + "com.amazonaws.bedrockagent#KendraKnowledgeBaseConfiguration": { + "type": "structure", + "members": { + "kendraIndexArn": { + "target": "com.amazonaws.bedrockagent#KendraIndexArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon Kendra index.

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

Settings for an Amazon Kendra knowledge base.

" + } + }, "com.amazonaws.bedrockagent#Key": { "type": "string", "traits": { @@ -9791,8 +9918,7 @@ "storageConfiguration": { "target": "com.amazonaws.bedrockagent#StorageConfiguration", "traits": { - "smithy.api#documentation": "

Contains details about the storage configuration of the knowledge base.

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

Contains details about the storage configuration of the knowledge base.

" } }, "status": { @@ -9851,6 +9977,18 @@ "traits": { "smithy.api#documentation": "

Contains details about the model that's used to convert the data source into vector embeddings.

" } + }, + "kendraKnowledgeBaseConfiguration": { + "target": "com.amazonaws.bedrockagent#KendraKnowledgeBaseConfiguration", + "traits": { + "smithy.api#documentation": "

Settings for an Amazon Kendra knowledge base.

" + } + }, + "sqlKnowledgeBaseConfiguration": { + "target": "com.amazonaws.bedrockagent#SqlKnowledgeBaseConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for a knowledge base connected to an SQL database.

" + } } }, "traits": { @@ -10200,6 +10338,18 @@ "traits": { "smithy.api#enumValue": "VECTOR" } + }, + "KENDRA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KENDRA" + } + }, + "SQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SQL" + } } } }, @@ -12257,6 +12407,15 @@ "smithy.api#pattern": "^([0-9a-zA-Z][_-]?){1,100}$" } }, + "com.amazonaws.bedrockagent#NaturalLanguageString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.bedrockagent#NextToken": { "type": "string", "traits": { @@ -12465,12 +12624,29 @@ "bedrockFoundationModelConfiguration": { "target": "com.amazonaws.bedrockagent#BedrockFoundationModelConfiguration", "traits": { - "smithy.api#documentation": "

Settings for a foundation model used to parse documents for a data source.

" + "smithy.api#documentation": "

If you specify BEDROCK_FOUNDATION_MODEL as the parsing strategy for ingesting your data source, use this object to modify configurations for using a foundation model to parse documents.

" + } + }, + "bedrockDataAutomationConfiguration": { + "target": "com.amazonaws.bedrockagent#BedrockDataAutomationConfiguration", + "traits": { + "smithy.api#documentation": "

If you specify BEDROCK_DATA_AUTOMATION as the parsing strategy for ingesting your data source, use this object to modify configurations for using the Amazon Bedrock Data Automation parser.

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

Settings for parsing document contents. By default, the service converts the contents of each\n document into text before splitting it into chunks. To improve processing of PDF files with tables and images,\n you can configure the data source to convert the pages of text into images and use a model to describe the\n contents of each page.

\n

To use a model to parse PDF documents, set the parsing strategy to BEDROCK_FOUNDATION_MODEL and\n specify the model or inference profile to use by ARN. You can also override the default parsing prompt with instructions for how\n to interpret images and tables in your documents. The following models are supported.

\n \n

You can get the ARN of a model with the ListFoundationModels action. Standard model usage\n charges apply for the foundation model parsing strategy.

" + "smithy.api#documentation": "

Settings for parsing document contents. If you exclude this field, the default parser converts the contents of each\n document into text before splitting it into chunks. Specify the parsing strategy to use in the parsingStrategy field and include the relevant configuration, or omit it to use the Amazon Bedrock default parser. For more information, see Parsing options for your data source.

\n \n

If you specify BEDROCK_DATA_AUTOMATION or BEDROCK_FOUNDATION_MODEL and it fails to parse a file, the Amazon Bedrock default parser will be used instead.

\n
" + } + }, + "com.amazonaws.bedrockagent#ParsingModality": { + "type": "enum", + "members": { + "MULTIMODAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MULTIMODAL" + } + } } }, "com.amazonaws.bedrockagent#ParsingPrompt": { @@ -12505,6 +12681,12 @@ "traits": { "smithy.api#enumValue": "BEDROCK_FOUNDATION_MODEL" } + }, + "BEDROCK_DATA_AUTOMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEDROCK_DATA_AUTOMATION" + } } } }, @@ -13480,6 +13662,158 @@ "smithy.api#pattern": "^((([0-9a-zA-Z][_-]?){1,63})|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))$" } }, + "com.amazonaws.bedrockagent#QueryEngineType": { + "type": "enum", + "members": { + "REDSHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDSHIFT" + } + } + } + }, + "com.amazonaws.bedrockagent#QueryExecutionTimeoutSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.bedrockagent#QueryGenerationColumn": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockagent#QueryGenerationColumnName", + "traits": { + "smithy.api#documentation": "

The name of the column for which the other fields in this object apply.

" + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#DescriptionString", + "traits": { + "smithy.api#documentation": "

A description of the column that helps the query engine understand the contents of the column.

" + } + }, + "inclusion": { + "target": "com.amazonaws.bedrockagent#IncludeExclude", + "traits": { + "smithy.api#documentation": "

Specifies whether to include or exclude the column during query generation. If you specify EXCLUDE, the column will be ignored. If you specify INCLUDE, all other columns in the table will be ignored.

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

Contains information about a column in the current table for the query engine to consider.

" + } + }, + "com.amazonaws.bedrockagent#QueryGenerationColumnName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 127 + } + } + }, + "com.amazonaws.bedrockagent#QueryGenerationColumns": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#QueryGenerationColumn" + } + }, + "com.amazonaws.bedrockagent#QueryGenerationConfiguration": { + "type": "structure", + "members": { + "executionTimeoutSeconds": { + "target": "com.amazonaws.bedrockagent#QueryExecutionTimeoutSeconds", + "traits": { + "smithy.api#documentation": "

The time after which query generation will time out.

" + } + }, + "generationContext": { + "target": "com.amazonaws.bedrockagent#QueryGenerationContext", + "traits": { + "smithy.api#documentation": "

Specifies configurations for context to use during query generation.

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

Contains configurations for query generation. For more information, see Build a knowledge base by connecting to a structured data source in the Amazon Bedrock User Guide..

" + } + }, + "com.amazonaws.bedrockagent#QueryGenerationContext": { + "type": "structure", + "members": { + "tables": { + "target": "com.amazonaws.bedrockagent#QueryGenerationTables", + "traits": { + "smithy.api#documentation": "

An array of objects, each of which defines information about a table in the database.

" + } + }, + "curatedQueries": { + "target": "com.amazonaws.bedrockagent#CuratedQueries", + "traits": { + "smithy.api#documentation": "

An array of objects, each of which defines information about example queries to help the query engine generate appropriate SQL queries.

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

>Contains configurations for context to use during query generation.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagent#QueryGenerationTable": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockagent#QueryGenerationTableName", + "traits": { + "smithy.api#documentation": "

The name of the table for which the other fields in this object apply.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#DescriptionString", + "traits": { + "smithy.api#documentation": "

A description of the table that helps the query engine understand the contents of the table.

" + } + }, + "inclusion": { + "target": "com.amazonaws.bedrockagent#IncludeExclude", + "traits": { + "smithy.api#documentation": "

Specifies whether to include or exclude the table during query generation. If you specify EXCLUDE, the table will be ignored. If you specify INCLUDE, all other tables will be ignored.

" + } + }, + "columns": { + "target": "com.amazonaws.bedrockagent#QueryGenerationColumns", + "traits": { + "smithy.api#documentation": "

An array of objects, each of which defines information about a column in the table.

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

Contains information about a table for the query engine to consider.

" + } + }, + "com.amazonaws.bedrockagent#QueryGenerationTableName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^.*\\..*\\..*$" + } + }, + "com.amazonaws.bedrockagent#QueryGenerationTables": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#QueryGenerationTable" + }, + "traits": { + "smithy.api#length": { + "max": 50 + } + } + }, "com.amazonaws.bedrockagent#RdsArn": { "type": "string", "traits": { @@ -13685,22 +14019,330 @@ "smithy.api#pattern": "^.*$" } }, - "com.amazonaws.bedrockagent#RelayConversationHistory": { - "type": "enum", + "com.amazonaws.bedrockagent#RedshiftClusterIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + } + } + }, + "com.amazonaws.bedrockagent#RedshiftConfiguration": { + "type": "structure", "members": { - "TO_COLLABORATOR": { - "target": "smithy.api#Unit", + "storageConfigurations": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageConfigurations", "traits": { - "smithy.api#enumValue": "TO_COLLABORATOR" + "smithy.api#documentation": "

Specifies configurations for Amazon Redshift database storage.

", + "smithy.api#required": {} } }, - "DISABLED": { - "target": "smithy.api#Unit", + "queryEngineConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineConfiguration", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "

Specifies configurations for an Amazon Redshift query engine.

", + "smithy.api#required": {} + } + }, + "queryGenerationConfiguration": { + "target": "com.amazonaws.bedrockagent#QueryGenerationConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for generating queries.

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

Contains configurations for an Amazon Redshift database. For more information, see Build a knowledge base by connecting to a structured data source in the Amazon Bedrock User Guide.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftDatabase": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.bedrockagent#RedshiftProvisionedAuthConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#RedshiftProvisionedAuthType", + "traits": { + "smithy.api#documentation": "

The type of authentication to use.

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

The database username for authentication to an Amazon Redshift provisioned data warehouse.

" + } + }, + "usernamePasswordSecretArn": { + "target": "com.amazonaws.bedrockagent#SecretArn", + "traits": { + "smithy.api#documentation": "

The ARN of an Secrets Manager secret for authentication.

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

Contains configurations for authentication to an Amazon Redshift provisioned data warehouse. Specify the type of authentication to use in the type field and include the corresponding field. If you specify IAM authentication, you don't need to include another field.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftProvisionedAuthType": { + "type": "enum", + "members": { + "IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM" + } + }, + "USERNAME_PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USERNAME_PASSWORD" + } + }, + "USERNAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USERNAME" + } + } + } + }, + "com.amazonaws.bedrockagent#RedshiftProvisionedConfiguration": { + "type": "structure", + "members": { + "clusterIdentifier": { + "target": "com.amazonaws.bedrockagent#RedshiftClusterIdentifier", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Redshift cluster.

", + "smithy.api#required": {} + } + }, + "authConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftProvisionedAuthConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for authentication to Amazon Redshift.

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

Contains configurations for a provisioned Amazon Redshift query engine.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineAwsDataCatalogStorageConfiguration": { + "type": "structure", + "members": { + "tableNames": { + "target": "com.amazonaws.bedrockagent#AwsDataCatalogTableNames", + "traits": { + "smithy.api#documentation": "

A list of names of the tables to use.

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

Contains configurations for storage in Glue Data Catalog.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineType", + "traits": { + "smithy.api#documentation": "

The type of query engine.

", + "smithy.api#required": {} + } + }, + "serverlessConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftServerlessConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for a serverless Amazon Redshift query engine.

" + } + }, + "provisionedConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftProvisionedConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for a provisioned Amazon Redshift query engine.

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

Contains configurations for an Amazon Redshift query engine. Specify the type of query engine in type and include the corresponding field. For more information, see Build a knowledge base by connecting to a structured data source in the Amazon Bedrock User Guide.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineRedshiftStorageConfiguration": { + "type": "structure", + "members": { + "databaseName": { + "target": "com.amazonaws.bedrockagent#RedshiftDatabase", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Redshift database.

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

Contains configurations for storage in Amazon Redshift.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageType", + "traits": { + "smithy.api#documentation": "

The data storage service to use.

", + "smithy.api#required": {} + } + }, + "awsDataCatalogConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineAwsDataCatalogStorageConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for storage in Glue Data Catalog.

" + } + }, + "redshiftConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineRedshiftStorageConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for storage in Amazon Redshift.

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

Contains configurations for Amazon Redshift data storage. Specify the data storage service to use in the type field and include the corresponding field. For more information, see Build a knowledge base by connecting to a structured data source in the Amazon Bedrock User Guide.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineStorageType": { + "type": "enum", + "members": { + "REDSHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDSHIFT" + } + }, + "AWS_DATA_CATALOG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_DATA_CATALOG" + } + } + } + }, + "com.amazonaws.bedrockagent#RedshiftQueryEngineType": { + "type": "enum", + "members": { + "SERVERLESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVERLESS" + } + }, + "PROVISIONED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROVISIONED" + } + } + } + }, + "com.amazonaws.bedrockagent#RedshiftServerlessAuthConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#RedshiftServerlessAuthType", + "traits": { + "smithy.api#documentation": "

The type of authentication to use.

", + "smithy.api#required": {} + } + }, + "usernamePasswordSecretArn": { + "target": "com.amazonaws.bedrockagent#SecretArn", + "traits": { + "smithy.api#documentation": "

The ARN of an Secrets Manager secret for authentication.

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

Specifies configurations for authentication to a Redshift Serverless. Specify the type of authentication to use in the type field and include the corresponding field. If you specify IAM authentication, you don't need to include another field.

" + } + }, + "com.amazonaws.bedrockagent#RedshiftServerlessAuthType": { + "type": "enum", + "members": { + "IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM" + } + }, + "USERNAME_PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USERNAME_PASSWORD" + } + } + } + }, + "com.amazonaws.bedrockagent#RedshiftServerlessConfiguration": { + "type": "structure", + "members": { + "workgroupArn": { + "target": "com.amazonaws.bedrockagent#WorkgroupArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon Redshift workgroup.

", + "smithy.api#required": {} + } + }, + "authConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftServerlessAuthConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for authentication to an Amazon Redshift provisioned data warehouse.

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

Contains configurations for authentication to Amazon Redshift Serverless.

" + } + }, + "com.amazonaws.bedrockagent#RelayConversationHistory": { + "type": "enum", + "members": { + "TO_COLLABORATOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TO_COLLABORATOR" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } }, "com.amazonaws.bedrockagent#RequireConfirmation": { "type": "enum", @@ -14270,6 +14912,36 @@ "smithy.api#documentation": "

Defines a specific tool that the model must request. No text is generated but the results of tool use are sent back to the model to help generate a response. For more information, see Use a tool to complete an Amazon Bedrock model response.

" } }, + "com.amazonaws.bedrockagent#SqlKnowledgeBaseConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#QueryEngineType", + "traits": { + "smithy.api#documentation": "

The type of SQL database to connect to the knowledge base.

", + "smithy.api#required": {} + } + }, + "redshiftConfiguration": { + "target": "com.amazonaws.bedrockagent#RedshiftConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies configurations for a knowledge base connected to an Amazon Redshift database.

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

Contains configurations for a knowledge base connected to an SQL database. Specify the SQL database type in the type field and include the corresponding field. For more information, see Build a knowledge base by connecting to a structured data source in the Amazon Bedrock User Guide.

" + } + }, + "com.amazonaws.bedrockagent#SqlString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.bedrockagent#StartIngestionJob": { "type": "operation", "input": { @@ -14592,6 +15264,65 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagent#SupplementalDataStorageConfiguration": { + "type": "structure", + "members": { + "storageLocations": { + "target": "com.amazonaws.bedrockagent#SupplementalDataStorageLocations", + "traits": { + "smithy.api#documentation": "

A list of objects specifying storage locations for images extracted from multimodal documents in your data source.

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

Specifies configurations for the storage location of the images extracted from multimodal documents in your data source. These images can be retrieved and returned to the end user.

" + } + }, + "com.amazonaws.bedrockagent#SupplementalDataStorageLocation": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagent#SupplementalDataStorageLocationType", + "traits": { + "smithy.api#documentation": "

Specifies the storage service used for this location.

", + "smithy.api#required": {} + } + }, + "s3Location": { + "target": "com.amazonaws.bedrockagent#S3Location", + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon S3 location for the extracted images.

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

Contains information about a storage location for images extracted from multimodal documents in your data source.

" + } + }, + "com.amazonaws.bedrockagent#SupplementalDataStorageLocationType": { + "type": "enum", + "members": { + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" + } + } + } + }, + "com.amazonaws.bedrockagent#SupplementalDataStorageLocations": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#SupplementalDataStorageLocation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.bedrockagent#SystemContentBlock": { "type": "union", "members": { @@ -16393,8 +17124,7 @@ "storageConfiguration": { "target": "com.amazonaws.bedrockagent#StorageConfiguration", "traits": { - "smithy.api#documentation": "

Specifies the configuration for the vector store used for the knowledge base. You must use the same configuration as when the knowledge base was created.

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

Specifies the configuration for the vector store used for the knowledge base. You must use the same configuration as when the knowledge base was created.

" } } }, @@ -16732,7 +17462,7 @@ "parsingConfiguration": { "target": "com.amazonaws.bedrockagent#ParsingConfiguration", "traits": { - "smithy.api#documentation": "

A custom parser for data source documents.

" + "smithy.api#documentation": "

Configurations for a parser to use for parsing documents in your data source. If you exclude this field, the default parser will be used.

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

The embeddings model configuration details for the vector model used in Knowledge Base.

" } + }, + "supplementalDataStorageConfiguration": { + "target": "com.amazonaws.bedrockagent#SupplementalDataStorageConfiguration", + "traits": { + "smithy.api#documentation": "

If you include multimodal data from your data source, use this object to specify configurations for the storage location of the images extracted from your documents. These images can be retrieved and returned to the end user. They can also be used in generation when using RetrieveAndGenerate.

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

The configuration of the URL/URLs for the web content that you want \n to crawl. You should be authorized to crawl the URLs.

" } + }, + "com.amazonaws.bedrockagent#WorkgroupArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(arn:(aws(-[a-z]+)*):redshift-serverless:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:workgroup/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" + } } } } \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/bedrock-data-automation-runtime.json b/codegen/sdk-codegen/aws-models/bedrock-data-automation-runtime.json new file mode 100644 index 00000000000..9b1ef3fa06f --- /dev/null +++ b/codegen/sdk-codegen/aws-models/bedrock-data-automation-runtime.json @@ -0,0 +1,1310 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.bedrockdataautomationruntime#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception will be thrown when customer does not have access to API.", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.bedrockdataautomationruntime#AmazonBedrockKeystoneRuntimeService": { + "type": "service", + "version": "2024-06-13", + "resources": [ + { + "target": "com.amazonaws.bedrockdataautomationruntime#AutomationJobResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Bedrock Data Automation Runtime", + "arnNamespace": "bedrock", + "endpointPrefix": "bedrock-data-automation-runtime", + "cloudTrailEventSource": "bedrock.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "bedrock" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Bedrock Keystone Runtime", + "smithy.api#title": "Runtime for Amazon Bedrock Data Automation", + "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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.{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://bedrock-data-automation-runtime.{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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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.bedrockdataautomationruntime#AutomationJobResource": { + "type": "resource", + "identifiers": { + "invocationArn": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvocationArn" + } + }, + "create": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsync" + }, + "read": { + "target": "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatus" + } + }, + "com.amazonaws.bedrockdataautomationruntime#AutomationJobStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Created" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InProgress" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Success" + } + }, + "SERVICE_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceError" + } + }, + "CLIENT_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ClientError" + } + } + }, + "traits": { + "smithy.api#documentation": "List of status supported by automation jobs" + } + }, + "com.amazonaws.bedrockdataautomationruntime#Blueprint": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomationruntime#BlueprintArn", + "traits": { + "smithy.api#documentation": "Arn of blueprint.", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrockdataautomationruntime#BlueprintVersion", + "traits": { + "smithy.api#documentation": "Version of blueprint." + } + }, + "stage": { + "target": "com.amazonaws.bedrockdataautomationruntime#BlueprintStage", + "traits": { + "smithy.api#documentation": "Stage of blueprint." + } + } + }, + "traits": { + "smithy.api#documentation": "Structure for single blueprint entity." + } + }, + "com.amazonaws.bedrockdataautomationruntime#BlueprintArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "ARN of a Blueprint", + "smithy.api#length": { + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-insights-public-[a-zA-Z0-9-_]{1,30}|bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#BlueprintList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomationruntime#Blueprint", + "traits": { + "smithy.api#documentation": "Blueprint." + } + }, + "traits": { + "smithy.api#documentation": "Blueprint list.", + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.bedrockdataautomationruntime#BlueprintStage": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "Blueprint stage enum." + } + }, + "com.amazonaws.bedrockdataautomationruntime#BlueprintVersion": { + "type": "string", + "traits": { + "smithy.api#documentation": "Blueprint version.", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[0-9]*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#DataAutomationArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "Data automation arn.", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-_]+$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#DataAutomationConfiguration": { + "type": "structure", + "members": { + "dataAutomationArn": { + "target": "com.amazonaws.bedrockdataautomationruntime#DataAutomationArn", + "traits": { + "smithy.api#documentation": "Data automation arn.", + "smithy.api#required": {} + } + }, + "stage": { + "target": "com.amazonaws.bedrockdataautomationruntime#DataAutomationStage", + "traits": { + "smithy.api#documentation": "Data automation stage." + } + } + }, + "traits": { + "smithy.api#documentation": "Data automation configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#DataAutomationStage": { + "type": "enum", + "members": { + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + }, + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + } + }, + "traits": { + "smithy.api#documentation": "Data automation stage." + } + }, + "com.amazonaws.bedrockdataautomationruntime#EncryptionConfiguration": { + "type": "structure", + "members": { + "kmsKeyId": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonEmptyString", + "traits": { + "smithy.api#documentation": "KMS key id.", + "smithy.api#required": {} + } + }, + "kmsEncryptionContext": { + "target": "com.amazonaws.bedrockdataautomationruntime#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "KMS encryption context." + } + } + }, + "traits": { + "smithy.api#documentation": "Encryption configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#EncryptionContextKey": { + "type": "string", + "traits": { + "smithy.api#documentation": "Excryption context key.", + "smithy.api#length": { + "min": 1, + "max": 2000 + }, + "smithy.api#pattern": "^.*\\S.*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#EncryptionContextMap": { + "type": "map", + "key": { + "target": "com.amazonaws.bedrockdataautomationruntime#EncryptionContextKey" + }, + "value": { + "target": "com.amazonaws.bedrockdataautomationruntime#EncryptionContextValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.bedrockdataautomationruntime#EncryptionContextValue": { + "type": "string", + "traits": { + "smithy.api#documentation": "Encryption context value.", + "smithy.api#length": { + "min": 1, + "max": 2000 + }, + "smithy.api#pattern": "^.*\\S.*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#EventBridgeConfiguration": { + "type": "structure", + "members": { + "eventBridgeEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Event bridge flag.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Event bridge configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatusRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomationruntime#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "API used to get data automation status.", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatusRequest": { + "type": "structure", + "members": { + "invocationArn": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvocationArn", + "traits": { + "smithy.api#documentation": "Invocation arn.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Structure for request of GetDataAutomationStatus API.", + "smithy.api#input": {}, + "smithy.api#references": [ + { + "resource": "com.amazonaws.bedrockdataautomationruntime#AutomationJobResource" + } + ] + } + }, + "com.amazonaws.bedrockdataautomationruntime#GetDataAutomationStatusResponse": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.bedrockdataautomationruntime#AutomationJobStatus", + "traits": { + "smithy.api#documentation": "Job Status." + } + }, + "errorType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Error Type." + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Error Message." + } + }, + "outputConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#OutputConfiguration", + "traits": { + "smithy.api#documentation": "Output configuration." + } + } + }, + "traits": { + "smithy.api#documentation": "Response of GetDataAutomationStatus API.", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomationruntime#IdempotencyToken": { + "type": "string", + "traits": { + "smithy.api#documentation": "Client specified token used for idempotency checks", + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#InputConfiguration": { + "type": "structure", + "members": { + "s3Uri": { + "target": "com.amazonaws.bedrockdataautomationruntime#S3Uri", + "traits": { + "smithy.api#documentation": "S3 uri.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Input configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is for any internal un-expected service errors.", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.bedrockdataautomationruntime#InvocationArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "Invocation arn.", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:(insights-invocation|data-automation-invocation)/[a-zA-Z0-9-_]+$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsync": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsyncRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsyncResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomationruntime#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomationruntime#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Async API: Invoke data automation.", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsyncRequest": { + "type": "structure", + "members": { + "clientToken": { + "target": "com.amazonaws.bedrockdataautomationruntime#IdempotencyToken", + "traits": { + "smithy.api#documentation": "Idempotency token.", + "smithy.api#idempotencyToken": {} + } + }, + "inputConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#InputConfiguration", + "traits": { + "smithy.api#documentation": "Input configuration.", + "smithy.api#required": {} + } + }, + "outputConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#OutputConfiguration", + "traits": { + "smithy.api#documentation": "Output configuration.", + "smithy.api#required": {} + } + }, + "dataAutomationConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#DataAutomationConfiguration", + "traits": { + "smithy.api#documentation": "Data automation configuration." + } + }, + "encryptionConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#EncryptionConfiguration", + "traits": { + "smithy.api#documentation": "Encryption configuration." + } + }, + "notificationConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#NotificationConfiguration", + "traits": { + "smithy.api#documentation": "Notification configuration." + } + }, + "blueprints": { + "target": "com.amazonaws.bedrockdataautomationruntime#BlueprintList", + "traits": { + "smithy.api#documentation": "Blueprint list." + } + } + }, + "traits": { + "smithy.api#documentation": "Invoke Data Automation Async Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomationruntime#InvokeDataAutomationAsyncResponse": { + "type": "structure", + "members": { + "invocationArn": { + "target": "com.amazonaws.bedrockdataautomationruntime#InvocationArn", + "traits": { + "smithy.api#documentation": "ARN of the automation job", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Invoke Data Automation Async Response", + "smithy.api#output": {}, + "smithy.api#references": [ + { + "resource": "com.amazonaws.bedrockdataautomationruntime#AutomationJobResource" + } + ] + } + }, + "com.amazonaws.bedrockdataautomationruntime#NonBlankString": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\s\\S]*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#NonEmptyString": { + "type": "string", + "traits": { + "smithy.api#pattern": "^.*\\S.*$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#NotificationConfiguration": { + "type": "structure", + "members": { + "eventBridgeConfiguration": { + "target": "com.amazonaws.bedrockdataautomationruntime#EventBridgeConfiguration", + "traits": { + "smithy.api#documentation": "Event bridge configuration.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Notification configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#OutputConfiguration": { + "type": "structure", + "members": { + "s3Uri": { + "target": "com.amazonaws.bedrockdataautomationruntime#S3Uri", + "traits": { + "smithy.api#documentation": "S3 uri.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Output configuration." + } + }, + "com.amazonaws.bedrockdataautomationruntime#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception will be thrown when resource provided from customer not found.", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.bedrockdataautomationruntime#S3Uri": { + "type": "string", + "traits": { + "smithy.api#documentation": "A path in S3", + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]([^\\x00-\\x1F\\x7F\\{^}%`\\]\">\\[~<#|]*)?$" + } + }, + "com.amazonaws.bedrockdataautomationruntime#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception will be thrown when service quota is exceeded.", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.bedrockdataautomationruntime#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception will be thrown when customer reached API TPS limit.", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.bedrockdataautomationruntime#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomationruntime#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception will be thrown when customer provided invalid parameters.", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/bedrock-data-automation.json b/codegen/sdk-codegen/aws-models/bedrock-data-automation.json new file mode 100644 index 00000000000..2c2c8ab2dfb --- /dev/null +++ b/codegen/sdk-codegen/aws-models/bedrock-data-automation.json @@ -0,0 +1,3043 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.bedrockdataautomation#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when a request is denied per access permissions", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.bedrockdataautomation#AmazonBedrockKeystoneBuildTimeService": { + "type": "service", + "version": "2023-07-26", + "operations": [ + { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprintVersion" + } + ], + "resources": [ + { + "target": "com.amazonaws.bedrockdataautomation#BlueprintResource" + }, + { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Bedrock Data Automation", + "arnNamespace": "bedrock", + "endpointPrefix": "bedrock-data-automation", + "cloudTrailEventSource": "bedrock.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "bedrock" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "Amazon Bedrock Keystone Build", + "smithy.api#title": "Data Automation for Amazon Bedrock", + "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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.{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://bedrock-data-automation.{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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation.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.bedrockdataautomation#AudioExtractionCategory": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#AudioExtractionCategoryTypes" + } + }, + "traits": { + "smithy.api#documentation": "Category of Audio Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#AudioExtractionCategoryType": { + "type": "enum", + "members": { + "AUDIO_CONTENT_MODERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUDIO_CONTENT_MODERATION" + } + }, + "CHAPTER_CONTENT_MODERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHAPTER_CONTENT_MODERATION" + } + }, + "TRANSCRIPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRANSCRIPT" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#AudioExtractionCategoryTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#AudioExtractionCategoryType" + }, + "traits": { + "smithy.api#documentation": "List of Audio Extraction Category Type" + } + }, + "com.amazonaws.bedrockdataautomation#AudioStandardExtraction": { + "type": "structure", + "members": { + "category": { + "target": "com.amazonaws.bedrockdataautomation#AudioExtractionCategory", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Standard Extraction Configuration of Audio" + } + }, + "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeField": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeFieldTypes" + } + }, + "traits": { + "smithy.api#documentation": "Standard Generative Field Configuration of Audio" + } + }, + "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeFieldType": { + "type": "enum", + "members": { + "AUDIO_SUMMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUDIO_SUMMARY" + } + }, + "CHAPTER_SUMMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHAPTER_SUMMARY" + } + }, + "IAB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAB" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeFieldTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeFieldType" + }, + "traits": { + "smithy.api#documentation": "List of Audio Standard Generative Field Type" + } + }, + "com.amazonaws.bedrockdataautomation#AudioStandardOutputConfiguration": { + "type": "structure", + "members": { + "extraction": { + "target": "com.amazonaws.bedrockdataautomation#AudioStandardExtraction" + }, + "generativeField": { + "target": "com.amazonaws.bedrockdataautomation#AudioStandardGenerativeField" + } + }, + "traits": { + "smithy.api#documentation": "Standard Output Configuration of Audio" + } + }, + "com.amazonaws.bedrockdataautomation#Blueprint": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#required": {} + } + }, + "schema": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintSchema", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.bedrockdataautomation#Type", + "traits": { + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintName": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintName", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion" + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + }, + "kmsKeyId": { + "target": "com.amazonaws.bedrockdataautomation#KmsKeyId" + }, + "kmsEncryptionContext": { + "target": "com.amazonaws.bedrockdataautomation#KmsEncryptionContext" + } + }, + "traits": { + "smithy.api#documentation": "Contains the information of a Blueprint." + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "ARN of a Blueprint", + "smithy.api#length": { + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintFilter": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion" + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + } + }, + "traits": { + "smithy.api#documentation": "Blueprint Filter" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintItem": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion" + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + } + }, + "traits": { + "smithy.api#documentation": "Blueprint Item" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintItem" + }, + "traits": { + "smithy.api#documentation": "List of Blueprint Item" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintName": { + "type": "string", + "traits": { + "smithy.api#documentation": "Name of the Blueprint", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintResource": { + "type": "resource", + "identifiers": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn" + } + }, + "create": { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprint" + }, + "read": { + "target": "com.amazonaws.bedrockdataautomation#GetBlueprint" + }, + "update": { + "target": "com.amazonaws.bedrockdataautomation#UpdateBlueprint" + }, + "delete": { + "target": "com.amazonaws.bedrockdataautomation#DeleteBlueprint" + }, + "list": { + "target": "com.amazonaws.bedrockdataautomation#ListBlueprints" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintSchema": { + "type": "string", + "traits": { + "smithy.api#documentation": "Schema of the blueprint", + "smithy.api#length": { + "min": 1, + "max": 100000 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\s!\"\\#\\$%'&\\(\\)\\*\\+\\,\\-\\./:;=\\?@\\[\\\\\\]\\^_`\\{\\|\\}~><]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintStage": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "Stage of the Blueprint" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintStageFilter": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + }, + "traits": { + "smithy.api#documentation": "Blueprint Stage filter" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintSummary": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion" + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + }, + "blueprintName": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintName" + }, + "creationTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp" + } + }, + "traits": { + "smithy.api#documentation": "Summary of a Blueprint" + } + }, + "com.amazonaws.bedrockdataautomation#BlueprintVersion": { + "type": "string", + "traits": { + "smithy.api#documentation": "Blueprint Version", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[0-9]*$" + } + }, + "com.amazonaws.bedrockdataautomation#Blueprints": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintSummary" + }, + "traits": { + "smithy.api#documentation": "List of Blueprints" + } + }, + "com.amazonaws.bedrockdataautomation#ClientToken": { + "type": "string", + "traits": { + "smithy.api#documentation": "Client specified token used for idempotency checks", + "smithy.api#length": { + "min": 33, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}$" + } + }, + "com.amazonaws.bedrockdataautomation#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when there is a conflict performing an operation", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprintRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprintResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ConflictException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates an Amazon Bedrock Keystone Blueprint", + "smithy.api#http": { + "code": 201, + "method": "PUT", + "uri": "/blueprints/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprintRequest": { + "type": "structure", + "members": { + "blueprintName": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintName", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.bedrockdataautomation#Type", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + }, + "schema": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintSchema", + "traits": { + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bedrockdataautomation#ClientToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "encryptionConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#EncryptionConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Create Blueprint Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprintResponse": { + "type": "structure", + "members": { + "blueprint": { + "target": "com.amazonaws.bedrockdataautomation#Blueprint", + "traits": { + "smithy.api#nestedProperties": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Create Blueprint Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprintVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprintVersionRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#CreateBlueprintVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a new version of an existing Amazon Bedrock Keystone Blueprint", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/blueprints/{blueprintArn}/versions/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprintVersionRequest": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a Blueprint is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bedrockdataautomation#ClientToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Create Blueprint Version Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateBlueprintVersionResponse": { + "type": "structure", + "members": { + "blueprint": { + "target": "com.amazonaws.bedrockdataautomation#Blueprint", + "traits": { + "smithy.api#nestedProperties": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Create Blueprint Version Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateDataAutomationProject": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#CreateDataAutomationProjectRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#CreateDataAutomationProjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ConflictException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates an Amazon Bedrock Keystone DataAutomationProject", + "smithy.api#http": { + "code": 201, + "method": "PUT", + "uri": "/data-automation-projects/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateDataAutomationProjectRequest": { + "type": "structure", + "members": { + "projectName": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectName", + "traits": { + "smithy.api#required": {} + } + }, + "projectDescription": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectDescription" + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "standardOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#StandardOutputConfiguration", + "traits": { + "smithy.api#required": {} + } + }, + "customOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#CustomOutputConfiguration" + }, + "overrideConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#OverrideConfiguration" + }, + "clientToken": { + "target": "com.amazonaws.bedrockdataautomation#ClientToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "encryptionConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#EncryptionConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Create DataAutomationProject Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#CreateDataAutomationProjectResponse": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "status": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStatus" + } + }, + "traits": { + "smithy.api#documentation": "Create DataAutomationProject Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#CustomOutputConfiguration": { + "type": "structure", + "members": { + "blueprints": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintItems" + } + }, + "traits": { + "smithy.api#documentation": "Custom output configuration" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProject": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + }, + "projectName": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectName", + "traits": { + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "projectDescription": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectDescription" + }, + "standardOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#StandardOutputConfiguration" + }, + "customOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#CustomOutputConfiguration" + }, + "overrideConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#OverrideConfiguration" + }, + "status": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStatus", + "traits": { + "smithy.api#required": {} + } + }, + "kmsKeyId": { + "target": "com.amazonaws.bedrockdataautomation#KmsKeyId" + }, + "kmsEncryptionContext": { + "target": "com.amazonaws.bedrockdataautomation#KmsEncryptionContext" + } + }, + "traits": { + "smithy.api#documentation": "Contains the information of a DataAutomationProject." + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "ARN of a DataAutomationProject", + "smithy.api#length": { + "max": 128 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-]{12,36}$" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectDescription": { + "type": "string", + "traits": { + "smithy.api#documentation": "Description of the DataAutomationProject", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectFilter": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + } + }, + "traits": { + "smithy.api#documentation": "Data Automation Project Filter" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectName": { + "type": "string", + "traits": { + "smithy.api#documentation": "Name of the DataAutomationProject", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectResource": { + "type": "resource", + "identifiers": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn" + } + }, + "create": { + "target": "com.amazonaws.bedrockdataautomation#CreateDataAutomationProject" + }, + "read": { + "target": "com.amazonaws.bedrockdataautomation#GetDataAutomationProject" + }, + "update": { + "target": "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProject" + }, + "delete": { + "target": "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProject" + }, + "list": { + "target": "com.amazonaws.bedrockdataautomation#ListDataAutomationProjects" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "Stage of the Project" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectStageFilter": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + }, + "traits": { + "smithy.api#documentation": "Project Stage filter" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectStatus": { + "type": "enum", + "members": { + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + }, + "traits": { + "smithy.api#documentation": "Status of Data Automation Project" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectSummary" + }, + "traits": { + "smithy.api#documentation": "List of DataAutomationProjectSummary" + } + }, + "com.amazonaws.bedrockdataautomation#DataAutomationProjectSummary": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "projectName": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectName" + }, + "creationTime": { + "target": "com.amazonaws.bedrockdataautomation#DateTimestamp", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Summary of a DataAutomationProject" + } + }, + "com.amazonaws.bedrockdataautomation#DateTimestamp": { + "type": "timestamp", + "traits": { + "smithy.api#documentation": "Time Stamp", + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.bedrockdataautomation#DeleteBlueprint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#DeleteBlueprintRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#DeleteBlueprintResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an existing Amazon Bedrock Keystone Blueprint", + "smithy.api#http": { + "code": 204, + "method": "DELETE", + "uri": "/blueprints/{blueprintArn}/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#DeleteBlueprintRequest": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a Blueprint is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion", + "traits": { + "smithy.api#documentation": "Optional field to delete a specific Blueprint version", + "smithy.api#httpQuery": "blueprintVersion" + } + } + }, + "traits": { + "smithy.api#documentation": "Delete Blueprint Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#DeleteBlueprintResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Delete Blueprint Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProject": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProjectRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an existing Amazon Bedrock Keystone DataAutomationProject", + "smithy.api#http": { + "code": 204, + "method": "DELETE", + "uri": "/data-automation-projects/{projectArn}/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProjectRequest": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a DataAutomationProject is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Delete DataAutomationProject Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#DeleteDataAutomationProjectResponse": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStatus" + } + }, + "traits": { + "smithy.api#documentation": "Delete DataAutomationProject Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#DocumentBoundingBox": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Bounding Box Configuration of Document Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularity": { + "type": "structure", + "members": { + "types": { + "target": "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularityTypes" + } + }, + "traits": { + "smithy.api#documentation": "Granularity of Document Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularityType": { + "type": "enum", + "members": { + "DOCUMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOCUMENT" + } + }, + "PAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PAGE" + } + }, + "ELEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ELEMENT" + } + }, + "WORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WORD" + } + }, + "LINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINE" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularityTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularityType" + }, + "traits": { + "smithy.api#documentation": "List of Document Extraction Granularity Type" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOutputAdditionalFileFormat": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Additional File Format of Document Output" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOutputFormat": { + "type": "structure", + "members": { + "textFormat": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormat", + "traits": { + "smithy.api#required": {} + } + }, + "additionalFileFormat": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOutputAdditionalFileFormat", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Output Format of Document" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormat": { + "type": "structure", + "members": { + "types": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormatTypes" + } + }, + "traits": { + "smithy.api#documentation": "Text Format of Document Output" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormatType": { + "type": "enum", + "members": { + "PLAIN_TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLAIN_TEXT" + } + }, + "MARKDOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MARKDOWN" + } + }, + "HTML": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTML" + } + }, + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CSV" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormatTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOutputTextFormatType" + }, + "traits": { + "smithy.api#documentation": "List of Document Output Text Format Type" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentOverrideConfiguration": { + "type": "structure", + "members": { + "splitter": { + "target": "com.amazonaws.bedrockdataautomation#SplitterConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Override Configuration of Document" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentStandardExtraction": { + "type": "structure", + "members": { + "granularity": { + "target": "com.amazonaws.bedrockdataautomation#DocumentExtractionGranularity", + "traits": { + "smithy.api#required": {} + } + }, + "boundingBox": { + "target": "com.amazonaws.bedrockdataautomation#DocumentBoundingBox", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Standard Extraction Configuration of Document" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentStandardGenerativeField": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Standard Generative Field Configuration of Document" + } + }, + "com.amazonaws.bedrockdataautomation#DocumentStandardOutputConfiguration": { + "type": "structure", + "members": { + "extraction": { + "target": "com.amazonaws.bedrockdataautomation#DocumentStandardExtraction" + }, + "generativeField": { + "target": "com.amazonaws.bedrockdataautomation#DocumentStandardGenerativeField" + }, + "outputFormat": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOutputFormat" + } + }, + "traits": { + "smithy.api#documentation": "Standard Output Configuration of Document" + } + }, + "com.amazonaws.bedrockdataautomation#EncryptionConfiguration": { + "type": "structure", + "members": { + "kmsKeyId": { + "target": "com.amazonaws.bedrockdataautomation#KmsKeyId", + "traits": { + "smithy.api#required": {} + } + }, + "kmsEncryptionContext": { + "target": "com.amazonaws.bedrockdataautomation#KmsEncryptionContext" + } + }, + "traits": { + "smithy.api#documentation": "KMS Encryption Configuration" + } + }, + "com.amazonaws.bedrockdataautomation#GetBlueprint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#GetBlueprintRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#GetBlueprintResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Gets an existing Amazon Bedrock Keystone Blueprint", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/blueprints/{blueprintArn}/" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockdataautomation#GetBlueprintRequest": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a Blueprint is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "blueprintVersion": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintVersion", + "traits": { + "smithy.api#documentation": "Optional field to get a specific Blueprint version" + } + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage", + "traits": { + "smithy.api#documentation": "Optional field to get a specific Blueprint stage" + } + } + }, + "traits": { + "smithy.api#documentation": "Get Blueprint Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#GetBlueprintResponse": { + "type": "structure", + "members": { + "blueprint": { + "target": "com.amazonaws.bedrockdataautomation#Blueprint", + "traits": { + "smithy.api#nestedProperties": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Get Blueprint Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#GetDataAutomationProject": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#GetDataAutomationProjectRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#GetDataAutomationProjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Gets an existing Amazon Bedrock Keystone DataAutomationProject", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/data-automation-projects/{projectArn}/" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockdataautomation#GetDataAutomationProjectRequest": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a DataAutomationProject is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage", + "traits": { + "smithy.api#documentation": "Optional field to delete a specific DataAutomationProject stage" + } + } + }, + "traits": { + "smithy.api#documentation": "Get DataAutomationProject Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#GetDataAutomationProjectResponse": { + "type": "structure", + "members": { + "project": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProject", + "traits": { + "smithy.api#nestedProperties": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Get DataAutomationProject Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#ImageBoundingBox": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Bounding Box Configuration of Image Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#ImageExtractionCategory": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#ImageExtractionCategoryTypes" + } + }, + "traits": { + "smithy.api#documentation": "Category of Image Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#ImageExtractionCategoryType": { + "type": "enum", + "members": { + "CONTENT_MODERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTENT_MODERATION" + } + }, + "TEXT_DETECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT_DETECTION" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#ImageExtractionCategoryTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#ImageExtractionCategoryType" + }, + "traits": { + "smithy.api#documentation": "List of Image Extraction Category" + } + }, + "com.amazonaws.bedrockdataautomation#ImageStandardExtraction": { + "type": "structure", + "members": { + "category": { + "target": "com.amazonaws.bedrockdataautomation#ImageExtractionCategory", + "traits": { + "smithy.api#required": {} + } + }, + "boundingBox": { + "target": "com.amazonaws.bedrockdataautomation#ImageBoundingBox", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Standard Extraction Configuration of Image" + } + }, + "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeField": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeFieldTypes" + } + }, + "traits": { + "smithy.api#documentation": "Standard Generative Field Configuration of Image" + } + }, + "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeFieldType": { + "type": "enum", + "members": { + "IMAGE_SUMMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMAGE_SUMMARY" + } + }, + "IAB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAB" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeFieldTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeFieldType" + }, + "traits": { + "smithy.api#documentation": "List of Image Standard Generative Field Type" + } + }, + "com.amazonaws.bedrockdataautomation#ImageStandardOutputConfiguration": { + "type": "structure", + "members": { + "extraction": { + "target": "com.amazonaws.bedrockdataautomation#ImageStandardExtraction" + }, + "generativeField": { + "target": "com.amazonaws.bedrockdataautomation#ImageStandardGenerativeField" + } + }, + "traits": { + "smithy.api#documentation": "Standard Output Configuration of Image" + } + }, + "com.amazonaws.bedrockdataautomation#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown if there was an unexpected error during processing of request", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.bedrockdataautomation#KmsEncryptionContext": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "KMS Encryption Context", + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.bedrockdataautomation#KmsKeyId": { + "type": "string", + "traits": { + "smithy.api#documentation": "KMS Key Identifier", + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.bedrockdataautomation#ListBlueprints": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#ListBlueprintsRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#ListBlueprintsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Lists all existing Amazon Bedrock Keystone Blueprints", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/blueprints/" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "blueprints" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockdataautomation#ListBlueprintsRequest": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn" + }, + "resourceOwner": { + "target": "com.amazonaws.bedrockdataautomation#ResourceOwner" + }, + "blueprintStageFilter": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStageFilter" + }, + "maxResults": { + "target": "com.amazonaws.bedrockdataautomation#MaxResults" + }, + "nextToken": { + "target": "com.amazonaws.bedrockdataautomation#NextToken" + }, + "projectFilter": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectFilter" + } + }, + "traits": { + "smithy.api#documentation": "List Blueprint Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#ListBlueprintsResponse": { + "type": "structure", + "members": { + "blueprints": { + "target": "com.amazonaws.bedrockdataautomation#Blueprints", + "traits": { + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockdataautomation#NextToken" + } + }, + "traits": { + "smithy.api#documentation": "List Blueprint Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#ListDataAutomationProjects": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#ListDataAutomationProjectsRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#ListDataAutomationProjectsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Lists all existing Amazon Bedrock Keystone DataAutomationProjects", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/data-automation-projects/" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "projects" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockdataautomation#ListDataAutomationProjectsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.bedrockdataautomation#MaxResults" + }, + "nextToken": { + "target": "com.amazonaws.bedrockdataautomation#NextToken" + }, + "projectStageFilter": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStageFilter" + }, + "blueprintFilter": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintFilter" + }, + "resourceOwner": { + "target": "com.amazonaws.bedrockdataautomation#ResourceOwner" + } + }, + "traits": { + "smithy.api#documentation": "List DataAutomationProject Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#ListDataAutomationProjectsResponse": { + "type": "structure", + "members": { + "projects": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectSummaries", + "traits": { + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockdataautomation#NextToken" + } + }, + "traits": { + "smithy.api#documentation": "List DataAutomationProject Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Max Results", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.bedrockdataautomation#NextToken": { + "type": "string", + "traits": { + "smithy.api#documentation": "Pagination token", + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^\\S*$" + } + }, + "com.amazonaws.bedrockdataautomation#NonBlankString": { + "type": "string", + "traits": { + "smithy.api#documentation": "Non Blank String", + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.bedrockdataautomation#OverrideConfiguration": { + "type": "structure", + "members": { + "document": { + "target": "com.amazonaws.bedrockdataautomation#DocumentOverrideConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Override configuration" + } + }, + "com.amazonaws.bedrockdataautomation#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when a resource referenced by the operation does not exist", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.bedrockdataautomation#ResourceOwner": { + "type": "enum", + "members": { + "SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE" + } + }, + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCOUNT" + } + } + }, + "traits": { + "smithy.api#documentation": "Resource Owner" + } + }, + "com.amazonaws.bedrockdataautomation#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when a request is made beyond the service quota", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.bedrockdataautomation#SplitterConfiguration": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State" + } + }, + "traits": { + "smithy.api#documentation": "Configuration of Splitter" + } + }, + "com.amazonaws.bedrockdataautomation#StandardOutputConfiguration": { + "type": "structure", + "members": { + "document": { + "target": "com.amazonaws.bedrockdataautomation#DocumentStandardOutputConfiguration" + }, + "image": { + "target": "com.amazonaws.bedrockdataautomation#ImageStandardOutputConfiguration" + }, + "video": { + "target": "com.amazonaws.bedrockdataautomation#VideoStandardOutputConfiguration" + }, + "audio": { + "target": "com.amazonaws.bedrockdataautomation#AudioStandardOutputConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Standard output configuration" + } + }, + "com.amazonaws.bedrockdataautomation#State": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "State" + } + }, + "com.amazonaws.bedrockdataautomation#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when the number of requests exceeds the limit", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.bedrockdataautomation#Type": { + "type": "enum", + "members": { + "DOCUMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOCUMENT" + } + }, + "IMAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMAGE" + } + } + }, + "traits": { + "smithy.api#documentation": "Type" + } + }, + "com.amazonaws.bedrockdataautomation#UpdateBlueprint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#UpdateBlueprintRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#UpdateBlueprintResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ConflictException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an existing Amazon Bedrock Blueprint", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/blueprints/{blueprintArn}/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#UpdateBlueprintRequest": { + "type": "structure", + "members": { + "blueprintArn": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a Blueprint is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "schema": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintSchema", + "traits": { + "smithy.api#required": {} + } + }, + "blueprintStage": { + "target": "com.amazonaws.bedrockdataautomation#BlueprintStage" + } + }, + "traits": { + "smithy.api#documentation": "Update Blueprint Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#UpdateBlueprintResponse": { + "type": "structure", + "members": { + "blueprint": { + "target": "com.amazonaws.bedrockdataautomation#Blueprint", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Update Blueprint Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProject": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProjectRequest" + }, + "output": { + "target": "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockdataautomation#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ConflictException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockdataautomation#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an existing Amazon Bedrock DataAutomationProject", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/data-automation-projects/{projectArn}/" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProjectRequest": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#documentation": "ARN generated at the server side when a DataAutomationProject is created", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "projectDescription": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectDescription" + }, + "standardOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#StandardOutputConfiguration", + "traits": { + "smithy.api#required": {} + } + }, + "customOutputConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#CustomOutputConfiguration" + }, + "overrideConfiguration": { + "target": "com.amazonaws.bedrockdataautomation#OverrideConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "Update DataAutomationProject Request", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockdataautomation#UpdateDataAutomationProjectResponse": { + "type": "structure", + "members": { + "projectArn": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectArn", + "traits": { + "smithy.api#required": {} + } + }, + "projectStage": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStage" + }, + "status": { + "target": "com.amazonaws.bedrockdataautomation#DataAutomationProjectStatus" + } + }, + "traits": { + "smithy.api#documentation": "Update DataAutomationProject Response", + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockdataautomation#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString" + }, + "fieldList": { + "target": "com.amazonaws.bedrockdataautomation#ValidationExceptionFieldList" + } + }, + "traits": { + "smithy.api#documentation": "This exception is thrown when the request's input validation fails", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.bedrockdataautomation#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString", + "traits": { + "smithy.api#required": {} + } + }, + "message": { + "target": "com.amazonaws.bedrockdataautomation#NonBlankString", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Stores information about a field passed inside a request that resulted in an exception" + } + }, + "com.amazonaws.bedrockdataautomation#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#ValidationExceptionField" + }, + "traits": { + "smithy.api#documentation": "list of ValidationExceptionField" + } + }, + "com.amazonaws.bedrockdataautomation#VideoBoundingBox": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Bounding Box Configuration of Video Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#VideoExtractionCategory": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#VideoExtractionCategoryTypes" + } + }, + "traits": { + "smithy.api#documentation": "Category of Video Extraction" + } + }, + "com.amazonaws.bedrockdataautomation#VideoExtractionCategoryType": { + "type": "enum", + "members": { + "CONTENT_MODERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTENT_MODERATION" + } + }, + "TEXT_DETECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT_DETECTION" + } + }, + "TRANSCRIPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRANSCRIPT" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#VideoExtractionCategoryTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#VideoExtractionCategoryType" + }, + "traits": { + "smithy.api#documentation": "List of Video Extraction Category Type" + } + }, + "com.amazonaws.bedrockdataautomation#VideoStandardExtraction": { + "type": "structure", + "members": { + "category": { + "target": "com.amazonaws.bedrockdataautomation#VideoExtractionCategory", + "traits": { + "smithy.api#required": {} + } + }, + "boundingBox": { + "target": "com.amazonaws.bedrockdataautomation#VideoBoundingBox", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Standard Extraction Configuration of Video" + } + }, + "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeField": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.bedrockdataautomation#State", + "traits": { + "smithy.api#required": {} + } + }, + "types": { + "target": "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeFieldTypes" + } + }, + "traits": { + "smithy.api#documentation": "Standard Generative Field Configuration of Video" + } + }, + "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeFieldType": { + "type": "enum", + "members": { + "VIDEO_SUMMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIDEO_SUMMARY" + } + }, + "SCENE_SUMMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SCENE_SUMMARY" + } + }, + "IAB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAB" + } + } + } + }, + "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeFieldTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeFieldType" + }, + "traits": { + "smithy.api#documentation": "List of Video Standard Generative Field Type" + } + }, + "com.amazonaws.bedrockdataautomation#VideoStandardOutputConfiguration": { + "type": "structure", + "members": { + "extraction": { + "target": "com.amazonaws.bedrockdataautomation#VideoStandardExtraction" + }, + "generativeField": { + "target": "com.amazonaws.bedrockdataautomation#VideoStandardGenerativeField" + } + }, + "traits": { + "smithy.api#documentation": "Standard Output Configuration of Video" + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/bedrock-runtime.json b/codegen/sdk-codegen/aws-models/bedrock-runtime.json index b0451101a95..51a4ba49c9c 100644 --- a/codegen/sdk-codegen/aws-models/bedrock-runtime.json +++ b/codegen/sdk-codegen/aws-models/bedrock-runtime.json @@ -1244,7 +1244,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)|(^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?))$" + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)|(^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?))$|(^arn:aws:sagemaker:[a-z0-9-]+:[0-9]{12}:endpoint/[a-zA-Z0-9-]+$)|(^arn:aws(-[^:]+)?:bedrock:([0-9a-z-]{1,20}):([0-9]{12}):default-prompt-router/[a-zA-Z0-9-:.]+$)$" } }, "com.amazonaws.bedrockruntime#Converse": { @@ -1727,6 +1727,12 @@ "traits": { "smithy.api#documentation": "

The guardrail trace object.

" } + }, + "promptRouter": { + "target": "com.amazonaws.bedrockruntime#PromptRouterTrace", + "traits": { + "smithy.api#documentation": "

The request's prompt router.

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

The guardrail trace object.

" } + }, + "promptRouter": { + "target": "com.amazonaws.bedrockruntime#PromptRouterTrace", + "traits": { + "smithy.api#documentation": "

The request's prompt router.

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

Text within content block to be evaluated by the guardrail.

" } + }, + "image": { + "target": "com.amazonaws.bedrockruntime#GuardrailImageBlock", + "traits": { + "smithy.api#documentation": "

Image within guardrail content block to be evaluated by the guardrail.

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

The text to guard.

" } + }, + "image": { + "target": "com.amazonaws.bedrockruntime#GuardrailConverseImageBlock", + "traits": { + "smithy.api#documentation": "

Image within converse content block to be evaluated by the guardrail.

" + } } }, "traits": { @@ -2464,6 +2488,64 @@ "target": "com.amazonaws.bedrockruntime#GuardrailConverseContentQualifier" } }, + "com.amazonaws.bedrockruntime#GuardrailConverseImageBlock": { + "type": "structure", + "members": { + "format": { + "target": "com.amazonaws.bedrockruntime#GuardrailConverseImageFormat", + "traits": { + "smithy.api#documentation": "

The format details for the image type of the guardrail converse image block.

", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.bedrockruntime#GuardrailConverseImageSource", + "traits": { + "smithy.api#documentation": "

The image source (image bytes) of the guardrail converse image block.

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

An image block that contains images that you want to assess with a guardrail.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockruntime#GuardrailConverseImageFormat": { + "type": "enum", + "members": { + "PNG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "png" + } + }, + "JPEG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jpeg" + } + } + } + }, + "com.amazonaws.bedrockruntime#GuardrailConverseImageSource": { + "type": "union", + "members": { + "bytes": { + "target": "smithy.api#Blob", + "traits": { + "smithy.api#documentation": "

The raw image bytes for the image.

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

The image source (image bytes) of the guardrail converse image source.

", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockruntime#GuardrailConverseTextBlock": { "type": "structure", "members": { @@ -2493,6 +2575,12 @@ "traits": { "smithy.api#documentation": "

The text characters of the guardrail coverage details.

" } + }, + "images": { + "target": "com.amazonaws.bedrockruntime#GuardrailImageCoverage", + "traits": { + "smithy.api#documentation": "

The guardrail coverage for images (the number of images that guardrails guarded).

" + } } }, "traits": { @@ -2536,6 +2624,84 @@ "smithy.api#pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$" } }, + "com.amazonaws.bedrockruntime#GuardrailImageBlock": { + "type": "structure", + "members": { + "format": { + "target": "com.amazonaws.bedrockruntime#GuardrailImageFormat", + "traits": { + "smithy.api#documentation": "

The format details for the file type of the image blocked by the guardrail.

", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.bedrockruntime#GuardrailImageSource", + "traits": { + "smithy.api#documentation": "

The image source (image bytes) details of the image blocked by the guardrail.

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

Contain an image which user wants guarded. This block is accepted by the guardrails independent API.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockruntime#GuardrailImageCoverage": { + "type": "structure", + "members": { + "guarded": { + "target": "com.amazonaws.bedrockruntime#ImagesGuarded", + "traits": { + "smithy.api#documentation": "

The count (integer) of images guardrails guarded.

" + } + }, + "total": { + "target": "com.amazonaws.bedrockruntime#ImagesTotal", + "traits": { + "smithy.api#documentation": "

Represents the total number of images (integer) that were in the request (guarded and unguarded).

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

The details of the guardrail image coverage.

" + } + }, + "com.amazonaws.bedrockruntime#GuardrailImageFormat": { + "type": "enum", + "members": { + "PNG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "png" + } + }, + "JPEG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jpeg" + } + } + } + }, + "com.amazonaws.bedrockruntime#GuardrailImageSource": { + "type": "union", + "members": { + "bytes": { + "target": "smithy.api#Blob", + "traits": { + "smithy.api#documentation": "

The bytes details of the guardrail image source. Object used in independent api.

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

The image source (image bytes) of the guardrail image source. Object used in independent api.

", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockruntime#GuardrailInvocationMetrics": { "type": "structure", "members": { @@ -3324,6 +3490,12 @@ "smithy.api#documentation": "

The source for an image.

" } }, + "com.amazonaws.bedrockruntime#ImagesGuarded": { + "type": "integer" + }, + "com.amazonaws.bedrockruntime#ImagesTotal": { + "type": "integer" + }, "com.amazonaws.bedrockruntime#InferenceConfiguration": { "type": "structure", "members": { @@ -3466,7 +3638,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)$|(^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?))$" + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)$|(^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?))$|(^arn:aws:sagemaker:[a-z0-9-]+:[0-9]{12}:endpoint/[a-zA-Z0-9-]+$)|(^arn:aws(-[^:]+)?:bedrock:([0-9a-z-]{1,20}):([0-9]{12}):default-prompt-router/[a-zA-Z0-9-:.]+$)$" } }, "com.amazonaws.bedrockruntime#InvokeModelRequest": { @@ -3715,6 +3887,12 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrockruntime#InvokedModelId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):inference-profile/[a-zA-Z0-9-:.]+)$" + } + }, "com.amazonaws.bedrockruntime#KmsKeyId": { "type": "string", "traits": { @@ -4101,6 +4279,20 @@ "smithy.api#documentation": "

Performance settings for a model.

" } }, + "com.amazonaws.bedrockruntime#PromptRouterTrace": { + "type": "structure", + "members": { + "invokedModelId": { + "target": "com.amazonaws.bedrockruntime#InvokedModelId", + "traits": { + "smithy.api#documentation": "

The ID of the invoked model.

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

A prompt router trace.

" + } + }, "com.amazonaws.bedrockruntime#PromptVariableMap": { "type": "map", "key": { diff --git a/codegen/sdk-codegen/aws-models/bedrock.json b/codegen/sdk-codegen/aws-models/bedrock.json index a1a78a18580..278940da89b 100644 --- a/codegen/sdk-codegen/aws-models/bedrock.json +++ b/codegen/sdk-codegen/aws-models/bedrock.json @@ -1,6 +1,12 @@ { "smithy": "2.0", "shapes": { + "com.amazonaws.bedrock#AcceptEula": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.bedrock#AccessDeniedException": { "type": "structure", "members": { @@ -45,6 +51,9 @@ "type": "service", "version": "2023-04-20", "resources": [ + { + "target": "com.amazonaws.bedrock#BedrockMarketplaceResource" + }, { "target": "com.amazonaws.bedrock#EvaluationJobResource" }, @@ -69,6 +78,9 @@ { "target": "com.amazonaws.bedrock#ModelResource" }, + { + "target": "com.amazonaws.bedrock#PromptRouterResource" + }, { "target": "com.amazonaws.bedrock#ProvisionedModelThroughputResource" }, @@ -776,6 +788,14 @@ } } }, + "com.amazonaws.bedrock#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + } + } + }, "com.amazonaws.bedrock#AutomatedEvaluationConfig": { "type": "structure", "members": { @@ -976,6 +996,32 @@ } } }, + "com.amazonaws.bedrock#BedrockMarketplaceResource": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.bedrock#CreateMarketplaceModelEndpoint" + }, + { + "target": "com.amazonaws.bedrock#DeleteMarketplaceModelEndpoint" + }, + { + "target": "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpoint" + }, + { + "target": "com.amazonaws.bedrock#GetMarketplaceModelEndpoint" + }, + { + "target": "com.amazonaws.bedrock#ListMarketplaceModelEndpoints" + }, + { + "target": "com.amazonaws.bedrock#RegisterMarketplaceModelEndpoint" + }, + { + "target": "com.amazonaws.bedrock#UpdateMarketplaceModelEndpoint" + } + ] + }, "com.amazonaws.bedrock#BedrockModelArn": { "type": "string", "traits": { @@ -1607,6 +1653,110 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#CreateMarketplaceModelEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#CreateMarketplaceModelEndpointRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#CreateMarketplaceModelEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an endpoint for a model from Amazon Bedrock Marketplace. The endpoint is hosted by\n Amazon SageMaker.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/marketplace-model/endpoints" + } + } + }, + "com.amazonaws.bedrock#CreateMarketplaceModelEndpointRequest": { + "type": "structure", + "members": { + "modelSourceIdentifier": { + "target": "com.amazonaws.bedrock#ModelSourceIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the model from Amazon Bedrock Marketplace that you want to deploy to the\n endpoint.

", + "smithy.api#required": {} + } + }, + "endpointConfig": { + "target": "com.amazonaws.bedrock#EndpointConfig", + "traits": { + "smithy.api#documentation": "

The configuration for the endpoint, including the number and type of instances to\n use.

", + "smithy.api#required": {} + } + }, + "acceptEula": { + "target": "com.amazonaws.bedrock#AcceptEula", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether you accept the end-user license agreement (EULA) for the model. Set\n to true to accept the EULA.

" + } + }, + "endpointName": { + "target": "com.amazonaws.bedrock#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the endpoint. This name must be unique within your Amazon Web Services\n account and region.

", + "smithy.api#required": {} + } + }, + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. This token is listed as not required because Amazon Web Services SDKs\n automatically generate it for you and set this parameter. If you're not using the\n Amazon Web Services SDK or the CLI, you must provide this token or the\n action will fail.

", + "smithy.api#idempotencyToken": {} + } + }, + "tags": { + "target": "com.amazonaws.bedrock#TagList", + "traits": { + "smithy.api#documentation": "

An array of key-value pairs to apply to the underlying Amazon SageMaker endpoint. You can use\n these tags to organize and identify your Amazon Web Services resources.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#CreateMarketplaceModelEndpointResponse": { + "type": "structure", + "members": { + "marketplaceModelEndpoint": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpoint", + "traits": { + "smithy.api#documentation": "

Details about the created endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#CreateModelCopyJob": { "type": "operation", "input": { @@ -2581,6 +2731,64 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#DeleteMarketplaceModelEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#DeleteMarketplaceModelEndpointRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#DeleteMarketplaceModelEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an endpoint for a model from Amazon Bedrock Marketplace.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/marketplace-model/endpoints/{endpointArn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrock#DeleteMarketplaceModelEndpointRequest": { + "type": "structure", + "members": { + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the endpoint you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#DeleteMarketplaceModelEndpointResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfiguration": { "type": "operation", "input": { @@ -2685,6 +2893,66 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpointRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deregisters an endpoint for a model from Amazon Bedrock Marketplace. This operation removes the\n endpoint's association with Amazon Bedrock but does not delete the underlying Amazon SageMaker\n endpoint.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/marketplace-model/endpoints/{endpointArn}/registration" + } + } + }, + "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpointRequest": { + "type": "structure", + "members": { + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the endpoint you want to deregister.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#DeregisterMarketplaceModelEndpointResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#DistillationConfig": { "type": "structure", "members": { @@ -2700,6 +2968,29 @@ "smithy.api#documentation": "

Settings for distilling a foundation model into a smaller and more efficient model.

" } }, + "com.amazonaws.bedrock#EndpointConfig": { + "type": "union", + "members": { + "sageMaker": { + "target": "com.amazonaws.bedrock#SageMakerEndpoint", + "traits": { + "smithy.api#documentation": "

The configuration specific to Amazon SageMaker for the endpoint.

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

Specifies the configuration for the endpoint.

" + } + }, + "com.amazonaws.bedrock#EndpointName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, "com.amazonaws.bedrock#ErrorMessage": { "type": "string", "traits": { @@ -3066,7 +3357,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:((:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:application-inference-profile/[a-z0-9]{12})|([0-9]{12}:inference-profile/(([a-z]{2}.)[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))))|(([a-z]{2}[.]{1})([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))$" + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:((:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:application-inference-profile/[a-z0-9]{12})|([0-9]{12}:inference-profile/(([a-z-]{2,8}.)[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))|([0-9]{12}:default-prompt-router/[a-zA-Z0-9-:.]+)))|(([a-z]{2}[.]{1})([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:endpoint/[a-z0-9-]{1,63}$" } }, "com.amazonaws.bedrock#EvaluationModelIdentifiers": { @@ -4483,13 +4774,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.bedrock#GetModelCopyJob": { + "com.amazonaws.bedrock#GetMarketplaceModelEndpoint": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#GetModelCopyJobRequest" + "target": "com.amazonaws.bedrock#GetMarketplaceModelEndpointRequest" }, "output": { - "target": "com.amazonaws.bedrock#GetModelCopyJobResponse" + "target": "com.amazonaws.bedrock#GetMarketplaceModelEndpointResponse" }, "errors": [ { @@ -4509,22 +4800,22 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about a model copy job. For more information, see Copy models to be used in other regions in the Amazon Bedrock User Guide.

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

Retrieves details about a specific endpoint for a model from Amazon Bedrock Marketplace.

", "smithy.api#http": { "code": 200, "method": "GET", - "uri": "/model-copy-jobs/{jobArn}" + "uri": "/marketplace-model/endpoints/{endpointArn}" }, "smithy.api#readonly": {} } }, - "com.amazonaws.bedrock#GetModelCopyJobRequest": { + "com.amazonaws.bedrock#GetMarketplaceModelEndpointRequest": { "type": "structure", "members": { - "jobArn": { - "target": "com.amazonaws.bedrock#ModelCopyJobArn", + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model copy job.

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

The Amazon Resource Name (ARN) of the endpoint you want to get information\n about.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4534,28 +4825,93 @@ "smithy.api#input": {} } }, - "com.amazonaws.bedrock#GetModelCopyJobResponse": { + "com.amazonaws.bedrock#GetMarketplaceModelEndpointResponse": { "type": "structure", "members": { - "jobArn": { - "target": "com.amazonaws.bedrock#ModelCopyJobArn", + "marketplaceModelEndpoint": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpoint", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model copy job.

", - "smithy.api#required": {} - } - }, - "status": { - "target": "com.amazonaws.bedrock#ModelCopyJobStatus", - "traits": { - "smithy.api#documentation": "

The status of the model copy job.

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

The time at which the model copy job was created.

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

Details about the requested endpoint.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetModelCopyJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetModelCopyJobRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetModelCopyJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about a model copy job. For more information, see Copy models to be used in other regions in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/model-copy-jobs/{jobArn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetModelCopyJobRequest": { + "type": "structure", + "members": { + "jobArn": { + "target": "com.amazonaws.bedrock#ModelCopyJobArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model copy job.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetModelCopyJobResponse": { + "type": "structure", + "members": { + "jobArn": { + "target": "com.amazonaws.bedrock#ModelCopyJobArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model copy job.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#ModelCopyJobStatus", + "traits": { + "smithy.api#documentation": "

The status of the model copy job.

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

The time at which the model copy job was created.

", + "smithy.api#required": {} } }, "targetModelArn": { @@ -5156,6 +5512,132 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#GetPromptRouter": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetPromptRouterRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetPromptRouterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves details about a prompt router.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/prompt-routers/{promptRouterArn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetPromptRouterRequest": { + "type": "structure", + "members": { + "promptRouterArn": { + "target": "com.amazonaws.bedrock#PromptRouterArn", + "traits": { + "smithy.api#documentation": "

The prompt router's ARN

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetPromptRouterResponse": { + "type": "structure", + "members": { + "promptRouterName": { + "target": "com.amazonaws.bedrock#PromptRouterName", + "traits": { + "smithy.api#documentation": "

The router's name.

", + "smithy.api#required": {} + } + }, + "routingCriteria": { + "target": "com.amazonaws.bedrock#RoutingCriteria", + "traits": { + "smithy.api#documentation": "

The router's routing criteria.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrock#PromptRouterDescription", + "traits": { + "smithy.api#documentation": "

The router's description.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the router was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the router was updated.

" + } + }, + "promptRouterArn": { + "target": "com.amazonaws.bedrock#PromptRouterArn", + "traits": { + "smithy.api#documentation": "

The prompt router's ARN

", + "smithy.api#required": {} + } + }, + "models": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModels", + "traits": { + "smithy.api#documentation": "

The router's models.

", + "smithy.api#required": {} + } + }, + "fallbackModel": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModel", + "traits": { + "smithy.api#documentation": "

The router's fallback model.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#PromptRouterStatus", + "traits": { + "smithy.api#documentation": "

The router's status.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.bedrock#PromptRouterType", + "traits": { + "smithy.api#documentation": "

The router's type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#GetProvisionedModelThroughput": { "type": "operation", "input": { @@ -5376,6 +5858,18 @@ "smithy.api#documentation": "

The strength of the content filter to apply to model responses. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", "smithy.api#required": {} } + }, + "inputModalities": { + "target": "com.amazonaws.bedrock#GuardrailModalities", + "traits": { + "smithy.api#documentation": "

The input modalities selected for the guardrail content filter.

" + } + }, + "outputModalities": { + "target": "com.amazonaws.bedrock#GuardrailModalities", + "traits": { + "smithy.api#documentation": "

The output modalities selected for the guardrail content filter.

" + } } }, "traits": { @@ -5405,6 +5899,18 @@ "smithy.api#documentation": "

The strength of the content filter to apply to model responses. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", "smithy.api#required": {} } + }, + "inputModalities": { + "target": "com.amazonaws.bedrock#GuardrailModalities", + "traits": { + "smithy.api#documentation": "

The input modalities selected for the guardrail content filter configuration.

" + } + }, + "outputModalities": { + "target": "com.amazonaws.bedrock#GuardrailModalities", + "traits": { + "smithy.api#documentation": "

The output modalities selected for the guardrail content filter configuration.

" + } } }, "traits": { @@ -5765,6 +6271,38 @@ } } }, + "com.amazonaws.bedrock#GuardrailModalities": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailModality" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.bedrock#GuardrailModality": { + "type": "enum", + "members": { + "TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT" + } + }, + "IMAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMAGE" + } + } + }, + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrock#GuardrailName": { "type": "string", "traits": { @@ -5812,7 +6350,7 @@ "type": { "target": "com.amazonaws.bedrock#GuardrailPiiEntityType", "traits": { - "smithy.api#documentation": "

The type of PII entity. For exampvle, Social Security Number.

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

The type of PII entity. For example, Social Security Number.

", "smithy.api#required": {} } }, @@ -5834,7 +6372,7 @@ "type": { "target": "com.amazonaws.bedrock#GuardrailPiiEntityType", "traits": { - "smithy.api#documentation": "

Configure guardrail type when the PII entity is detected.

\n

The following PIIs are used to block or mask sensitive information:

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

Configure guardrail type when the PII entity is detected.

\n

The following PIIs are used to block or mask sensitive information:

\n ", "smithy.api#required": {} } }, @@ -7111,6 +7649,23 @@ "target": "com.amazonaws.bedrock#InferenceType" } }, + "com.amazonaws.bedrock#InstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.bedrock#InstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.bedrock#InstructSupported": { "type": "boolean" }, @@ -7975,13 +8530,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.bedrock#ListModelCopyJobs": { + "com.amazonaws.bedrock#ListMarketplaceModelEndpoints": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#ListModelCopyJobsRequest" + "target": "com.amazonaws.bedrock#ListMarketplaceModelEndpointsRequest" }, "output": { - "target": "com.amazonaws.bedrock#ListModelCopyJobsResponse" + "target": "com.amazonaws.bedrock#ListMarketplaceModelEndpointsResponse" }, "errors": [ { @@ -8001,39 +8556,129 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of model copy jobs that you have submitted. You can filter the jobs to return based on\n one or more criteria. For more information, see Copy models to be used in other regions in the Amazon Bedrock User Guide.

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

Lists the endpoints for models from Amazon Bedrock Marketplace in your Amazon Web Services\n account.

", "smithy.api#http": { "code": 200, "method": "GET", - "uri": "/model-copy-jobs" + "uri": "/marketplace-model/endpoints" }, "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", "pageSize": "maxResults", - "items": "modelCopyJobSummaries" + "items": "marketplaceModelEndpoints" }, "smithy.api#readonly": {} } }, - "com.amazonaws.bedrock#ListModelCopyJobsRequest": { + "com.amazonaws.bedrock#ListMarketplaceModelEndpointsRequest": { "type": "structure", "members": { - "creationTimeAfter": { - "target": "com.amazonaws.bedrock#Timestamp", + "maxResults": { + "target": "com.amazonaws.bedrock#MaxResults", "traits": { - "smithy.api#documentation": "

Filters for model copy jobs created after the specified time.

", - "smithy.api#httpQuery": "creationTimeAfter" + "smithy.api#documentation": "

The maximum number of results to return in a single call. If more results are\n available, the operation returns a NextToken value.

", + "smithy.api#httpQuery": "maxResults" } }, - "creationTimeBefore": { - "target": "com.amazonaws.bedrock#Timestamp", + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", "traits": { - "smithy.api#documentation": "

Filters for model copy jobs created before the specified time.

", - "smithy.api#httpQuery": "creationTimeBefore" + "smithy.api#documentation": "

The token for the next set of results. You receive this token from a previous\n ListMarketplaceModelEndpoints call.

", + "smithy.api#httpQuery": "nextToken" } }, - "statusEquals": { + "modelSourceEquals": { + "target": "com.amazonaws.bedrock#ModelSourceIdentifier", + "traits": { + "smithy.api#documentation": "

If specified, only endpoints for the given model source identifier are\n returned.

", + "smithy.api#httpQuery": "modelSourceIdentifier" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#ListMarketplaceModelEndpointsResponse": { + "type": "structure", + "members": { + "marketplaceModelEndpoints": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpointSummaries", + "traits": { + "smithy.api#documentation": "

An array of endpoint summaries.

" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use this token to get the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#ListModelCopyJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#ListModelCopyJobsRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#ListModelCopyJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of model copy jobs that you have submitted. You can filter the jobs to return based on\n one or more criteria. For more information, see Copy models to be used in other regions in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/model-copy-jobs" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "modelCopyJobSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#ListModelCopyJobsRequest": { + "type": "structure", + "members": { + "creationTimeAfter": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Filters for model copy jobs created after the specified time.

", + "smithy.api#httpQuery": "creationTimeAfter" + } + }, + "creationTimeBefore": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Filters for model copy jobs created before the specified time.

", + "smithy.api#httpQuery": "creationTimeBefore" + } + }, + "statusEquals": { "target": "com.amazonaws.bedrock#ModelCopyJobStatus", "traits": { "smithy.api#documentation": "

Filters for model copy jobs whose status matches the value that you specify.

", @@ -8480,6 +9125,86 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#ListPromptRouters": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#ListPromptRoutersRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#ListPromptRoutersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of prompt routers.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/prompt-routers" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "promptRouterSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#ListPromptRoutersRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.bedrock#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of prompt routers to return in one page of results.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#ListPromptRoutersResponse": { + "type": "structure", + "members": { + "promptRouterSummaries": { + "target": "com.amazonaws.bedrock#PromptRouterSummaries", + "traits": { + "smithy.api#documentation": "

A list of prompt router summaries.

" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#ListProvisionedModelThroughputs": { "type": "operation", "input": { @@ -8739,6 +9464,133 @@ } ] }, + "com.amazonaws.bedrock#MarketplaceModelEndpoint": { + "type": "structure", + "members": { + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the endpoint.

", + "smithy.api#required": {} + } + }, + "modelSourceIdentifier": { + "target": "com.amazonaws.bedrock#ModelSourceIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the model from Amazon Bedrock Marketplace that is deployed on this endpoint.

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

The overall status of the endpoint in Amazon Bedrock Marketplace (e.g., ACTIVE,\n INACTIVE).

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

Additional information about the overall status, if available.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the endpoint was registered.

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

The timestamp when the endpoint was last updated.

", + "smithy.api#required": {} + } + }, + "endpointConfig": { + "target": "com.amazonaws.bedrock#EndpointConfig", + "traits": { + "smithy.api#documentation": "

The configuration of the endpoint, including the number and type of instances\n used.

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

The current status of the endpoint (e.g., Creating, InService, Updating,\n Failed).

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

Additional information about the endpoint status, if available.

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

Contains details about an endpoint for a model from Amazon Bedrock Marketplace.

" + } + }, + "com.amazonaws.bedrock#MarketplaceModelEndpointSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpointSummary" + }, + "traits": { + "smithy.api#length": { + "max": 1000 + } + } + }, + "com.amazonaws.bedrock#MarketplaceModelEndpointSummary": { + "type": "structure", + "members": { + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the endpoint.

", + "smithy.api#required": {} + } + }, + "modelSourceIdentifier": { + "target": "com.amazonaws.bedrock#ModelSourceIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the model from Amazon Bedrock Marketplace that is deployed on this endpoint.

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

The overall status of the endpoint in Amazon Bedrock Marketplace.

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

Additional information about the overall status, if available.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the endpoint was created.

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

The timestamp when the endpoint was last updated.

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

Provides a summary of an endpoint for a model from Amazon Bedrock Marketplace.

" + } + }, "com.amazonaws.bedrock#MaxResults": { "type": "integer", "traits": { @@ -9629,6 +10481,15 @@ } ] }, + "com.amazonaws.bedrock#ModelSourceIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "arn:aws:sagemaker:.*:hub-content/SageMakerPublicHub/Model/.*" + } + }, "com.amazonaws.bedrock#NonBlankString": { "type": "string", "traits": { @@ -9683,16 +10544,200 @@ } } }, - "com.amazonaws.bedrock#PromptTemplate": { - "type": "structure", - "members": { - "textPromptTemplate": { - "target": "com.amazonaws.bedrock#TextPromptTemplate", - "traits": { - "smithy.api#documentation": "

The template for the prompt that's sent to the model for response generation. You can include \n prompt placeholders, which become replaced before the prompt is sent to the model to provide \n instructions and context to the model. In addition, you can include XML tags to delineate \n meaningful sections of the prompt template.

\n

For more information, see Knowledge base prompt template and \n Use XML tags with Anthropic Claude models.

" - } - } - }, + "com.amazonaws.bedrock#PromptRouterArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:default-prompt-router/[a-zA-Z0-9-:.]+$" + } + }, + "com.amazonaws.bedrock#PromptRouterDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^([0-9a-zA-Z:.][ _-]?)+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#PromptRouterName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^([0-9a-zA-Z][ _-]?)+$" + } + }, + "com.amazonaws.bedrock#PromptRouterResource": { + "type": "resource", + "identifiers": { + "promptRouterArn": { + "target": "com.amazonaws.bedrock#PromptRouterArn" + } + }, + "read": { + "target": "com.amazonaws.bedrock#GetPromptRouter" + }, + "list": { + "target": "com.amazonaws.bedrock#ListPromptRouters" + } + }, + "com.amazonaws.bedrock#PromptRouterStatus": { + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + } + } + }, + "com.amazonaws.bedrock#PromptRouterSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#PromptRouterSummary" + } + }, + "com.amazonaws.bedrock#PromptRouterSummary": { + "type": "structure", + "members": { + "promptRouterName": { + "target": "com.amazonaws.bedrock#PromptRouterName", + "traits": { + "smithy.api#documentation": "

The router's name.

", + "smithy.api#required": {} + } + }, + "routingCriteria": { + "target": "com.amazonaws.bedrock#RoutingCriteria", + "traits": { + "smithy.api#documentation": "

The router's routing criteria.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrock#PromptRouterDescription", + "traits": { + "smithy.api#documentation": "

The router's description.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the router was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the router was updated.

" + } + }, + "promptRouterArn": { + "target": "com.amazonaws.bedrock#PromptRouterArn", + "traits": { + "smithy.api#documentation": "

The router's ARN.

", + "smithy.api#required": {} + } + }, + "models": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModels", + "traits": { + "smithy.api#documentation": "

The router's models.

", + "smithy.api#required": {} + } + }, + "fallbackModel": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModel", + "traits": { + "smithy.api#documentation": "

The router's fallback model.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#PromptRouterStatus", + "traits": { + "smithy.api#documentation": "

The router's status.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.bedrock#PromptRouterType", + "traits": { + "smithy.api#documentation": "

The summary's type.

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

Details about a prompt router.

" + } + }, + "com.amazonaws.bedrock#PromptRouterTargetModel": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModelArn", + "traits": { + "smithy.api#documentation": "

The target model's ARN.

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

The target model for a prompt router.

" + } + }, + "com.amazonaws.bedrock#PromptRouterTargetModelArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})|(^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):inference-profile/[a-zA-Z0-9-:.]+)$" + } + }, + "com.amazonaws.bedrock#PromptRouterTargetModels": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#PromptRouterTargetModel" + } + }, + "com.amazonaws.bedrock#PromptRouterType": { + "type": "enum", + "members": { + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.bedrock#PromptTemplate": { + "type": "structure", + "members": { + "textPromptTemplate": { + "target": "com.amazonaws.bedrock#TextPromptTemplate", + "traits": { + "smithy.api#documentation": "

The template for the prompt that's sent to the model for response generation. You can include \n prompt placeholders, which become replaced before the prompt is sent to the model to provide \n instructions and context to the model. In addition, you can include XML tags to delineate \n meaningful sections of the prompt template.

\n

For more information, see Knowledge base prompt template and \n Use XML tags with Anthropic Claude models.

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

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

" } @@ -10006,6 +11051,81 @@ } } }, + "com.amazonaws.bedrock#RegisterMarketplaceModelEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#RegisterMarketplaceModelEndpointRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#RegisterMarketplaceModelEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Registers an existing Amazon SageMaker endpoint with Amazon Bedrock Marketplace, allowing it to be used with\n Amazon Bedrock APIs.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/marketplace-model/endpoints/{endpointIdentifier}/registration" + } + } + }, + "com.amazonaws.bedrock#RegisterMarketplaceModelEndpointRequest": { + "type": "structure", + "members": { + "endpointIdentifier": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon SageMaker endpoint you want to register with Amazon Bedrock Marketplace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "modelSourceIdentifier": { + "target": "com.amazonaws.bedrock#ModelSourceIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the model from Amazon Bedrock Marketplace that is deployed on the endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#RegisterMarketplaceModelEndpointResponse": { + "type": "structure", + "members": { + "marketplaceModelEndpoint": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpoint", + "traits": { + "smithy.api#documentation": "

Details about the registered endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#RequestMetadataBaseFilters": { "type": "structure", "members": { @@ -10287,6 +11407,25 @@ "smithy.api#pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$" } }, + "com.amazonaws.bedrock#RoutingCriteria": { + "type": "structure", + "members": { + "responseQualityDifference": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The criteria's response quality difference.

", + "smithy.api#range": { + "min": 0, + "max": 1 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Routing criteria for a prompt router.

" + } + }, "com.amazonaws.bedrock#S3Config": { "type": "structure", "members": { @@ -10359,6 +11498,47 @@ "smithy.api#pattern": "^s3://[a-z0-9][-.a-z0-9]{1,61}(?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?$" } }, + "com.amazonaws.bedrock#SageMakerEndpoint": { + "type": "structure", + "members": { + "initialInstanceCount": { + "target": "com.amazonaws.bedrock#InstanceCount", + "traits": { + "smithy.api#documentation": "

The number of Amazon EC2 compute instances to deploy for initial endpoint\n creation.

", + "smithy.api#required": {} + } + }, + "instanceType": { + "target": "com.amazonaws.bedrock#InstanceType", + "traits": { + "smithy.api#documentation": "

The Amazon EC2 compute instance type to deploy for hosting the model.

", + "smithy.api#required": {} + } + }, + "executionRole": { + "target": "com.amazonaws.bedrock#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts\n and docker image for deployment on Amazon EC2 compute instances or for batch\n transform jobs.

", + "smithy.api#required": {} + } + }, + "kmsEncryptionKey": { + "target": "com.amazonaws.bedrock#KmsKeyId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume\n attached to the Amazon EC2 compute instance that hosts the endpoint.

" + } + }, + "vpc": { + "target": "com.amazonaws.bedrock#VpcConfig", + "traits": { + "smithy.api#documentation": "

The VPC configuration for the endpoint.

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

Specifies the configuration for a Amazon SageMaker endpoint.

" + } + }, "com.amazonaws.bedrock#SageMakerFlowDefinitionArn": { "type": "string", "traits": { @@ -10419,6 +11599,19 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.bedrock#ServiceUnavailableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.bedrock#NonBlankString" + } + }, + "traits": { + "smithy.api#documentation": "

Returned if the service cannot complete the request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 503 + } + }, "com.amazonaws.bedrock#SortByProvisionedModels": { "type": "enum", "members": { @@ -10469,6 +11662,23 @@ } } }, + "com.amazonaws.bedrock#Status": { + "type": "enum", + "members": { + "REGISTERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REGISTERED" + } + }, + "INCOMPATIBLE_ENDPOINT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCOMPATIBLE_ENDPOINT" + } + } + } + }, "com.amazonaws.bedrock#StopEvaluationJob": { "type": "operation", "input": { @@ -11225,6 +12435,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#UpdateMarketplaceModelEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#UpdateMarketplaceModelEndpointRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#UpdateMarketplaceModelEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the configuration of an existing endpoint for a model from Amazon Bedrock\n Marketplace.

", + "smithy.api#http": { + "code": 200, + "method": "PATCH", + "uri": "/marketplace-model/endpoints/{endpointArn}" + } + } + }, + "com.amazonaws.bedrock#UpdateMarketplaceModelEndpointRequest": { + "type": "structure", + "members": { + "endpointArn": { + "target": "com.amazonaws.bedrock#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the endpoint you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "endpointConfig": { + "target": "com.amazonaws.bedrock#EndpointConfig", + "traits": { + "smithy.api#documentation": "

The new configuration for the endpoint, including the number and type of instances to\n use.

", + "smithy.api#required": {} + } + }, + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. This token is listed as not required because Amazon Web Services SDKs\n automatically generate it for you and set this parameter. If you're not using the\n Amazon Web Services SDK or the CLI, you must provide this token or the\n action will fail.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#UpdateMarketplaceModelEndpointResponse": { + "type": "structure", + "members": { + "marketplaceModelEndpoint": { + "target": "com.amazonaws.bedrock#MarketplaceModelEndpoint", + "traits": { + "smithy.api#documentation": "

Details about the updated endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#UpdateProvisionedModelThroughput": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/kendra.json b/codegen/sdk-codegen/aws-models/kendra.json index d2c25a3035d..8843498634f 100644 --- a/codegen/sdk-codegen/aws-models/kendra.json +++ b/codegen/sdk-codegen/aws-models/kendra.json @@ -1512,7 +1512,7 @@ } }, "traits": { - "smithy.api#documentation": "

Filters the search results based on document attributes or fields.

\n

You can filter results using attributes for your particular documents. The attributes\n must exist in your index. For example, if your documents include the custom attribute\n \"Department\", you can filter documents that belong to the \"HR\" department. You would use\n the EqualsTo operation to filter results or documents with \"Department\" equals\n to \"HR\".

\n

You can use AndAllFilters and AndOrFilters in combination with\n each other or with other operations such as EqualsTo. For example:

\n

\n AndAllFilters\n

\n \n

This example filters results or documents that belong to the HR department\n and belong to projects that contain \"new hires\"\n or \"new hiring\" in the project name (must use\n ContainAny with StringListValue). This example is filtering\n with a depth of 2.

\n

You cannot filter more than a depth of 2, otherwise you receive a\n ValidationException exception with the message \"AttributeFilter cannot have\n a depth of more than 2.\" Also, if you use more than 10 attribute filters in a given list\n for AndAllFilters or OrAllFilters, you receive a\n ValidationException with the message \"AttributeFilter cannot have a length\n of more than 10\".

\n

For examples of using AttributeFilter, see Using document attributes to\n filter search results.

" + "smithy.api#documentation": "

Filters the search results based on document attributes or fields.

\n

You can filter results using attributes for your particular documents. The attributes\n must exist in your index. For example, if your documents include the custom attribute\n \"Department\", you can filter documents that belong to the \"HR\" department. You would use\n the EqualsTo operation to filter results or documents with \"Department\" equals\n to \"HR\".

\n

You can use AndAllFilters and OrAllFilters in combination with\n each other or with other operations such as EqualsTo. For example:

\n

\n AndAllFilters\n

\n \n

This example filters results or documents that belong to the HR department\n AND belong to projects that contain \"new hires\"\n OR \"new hiring\" in the project name (must use\n ContainAny with StringListValue). This example is filtering\n with a depth of 2.

\n

You cannot filter more than a depth of 2, otherwise you receive a\n ValidationException exception with the message \"AttributeFilter cannot have\n a depth of more than 2.\" Also, if you use more than 10 attribute filters in a given list\n for AndAllFilters or OrAllFilters, you receive a\n ValidationException with the message \"AttributeFilter cannot have a length\n of more than 10\".

\n

For examples of using AttributeFilter, see Using document attributes to\n filter search results.

" } }, "com.amazonaws.kendra#AttributeFilterList": { @@ -1644,7 +1644,7 @@ "Credentials": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

Your secret ARN, which you can create in Secrets Manager\n

\n

You use a secret if basic authentication credentials are required to connect to a\n website. The secret stores your credentials of user name and password.

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

The Amazon Resource Name (ARN) of an Secrets Manager secret. You create a \n secret to store your credentials in Secrets Manager\n

\n

You use a secret if basic authentication credentials are required to connect to a\n website. The secret stores your credentials of user name and password.

", "smithy.api#required": {} } } @@ -1745,6 +1745,12 @@ "smithy.api#documentation": "

The identifier of the document that couldn't be removed from the index.

" } }, + "DataSourceId": { + "target": "com.amazonaws.kendra#DataSourceId", + "traits": { + "smithy.api#documentation": "

The identifier of the data source connector that the document belongs to.

" + } + }, "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { @@ -1952,6 +1958,12 @@ "smithy.api#documentation": "

The identifier of the document whose status could not be retrieved.

" } }, + "DataSourceId": { + "target": "com.amazonaws.kendra#DataSourceId", + "traits": { + "smithy.api#documentation": "

The identifier of the data source connector that the failed document belongs to.\n

" + } + }, "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { @@ -2067,6 +2079,12 @@ "smithy.api#documentation": "

The identifier of the document.

" } }, + "DataSourceId": { + "target": "com.amazonaws.kendra#DataSourceId", + "traits": { + "smithy.api#documentation": "

The identifier of the data source connector that the failed document belongs to.\n

" + } + }, "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { @@ -3196,7 +3214,7 @@ "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The\n credentials should be a user/password pair. For more information, see Using a\n Database Data Source. For more information about Secrets Manager, see\n What\n Is Secrets Manager in the \n Secrets Manager\n user guide.

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

The Amazon Resource Name (ARN) of an Secrets Manager secret that stores \n the credentials. The credentials should be a user-password pair. For more information, see Using a\n Database Data Source. For more information about Secrets Manager, see \n What\n Is Secrets Manager in the Secrets Manager \n user guide.

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

Creates an access configuration for your documents. This includes user and group\n access information for your documents. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents.

\n

You can use this to re-configure your existing document level access control without\n indexing all of your documents again. For example, your index contains top-secret\n company documents that only certain employees or users should access. One of these users\n leaves the company or switches to a team that should be blocked from accessing\n top-secret documents. The user still has access to top-secret documents because the user\n had access when your documents were previously indexed. You can create a specific access\n control configuration for the user with deny access. You can later update the access\n control configuration to allow access if the user returns to the company and re-joins\n the 'top-secret' team. You can re-configure access control for your documents as\n circumstances change.

\n

To apply your access control configuration to certain documents, you call the BatchPutDocument API with the AccessControlConfigurationId\n included in the Document object. If you use an S3 bucket as a data source, you update the\n .metadata.json with the AccessControlConfigurationId and\n synchronize your data source. Amazon Kendra currently only supports access control\n configuration for S3 data sources and documents indexed using the\n BatchPutDocument API.

" + "smithy.api#documentation": "

Creates an access configuration for your documents. This includes user and group\n access information for your documents. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents.

\n

You can use this to re-configure your existing document level access control without\n indexing all of your documents again. For example, your index contains top-secret\n company documents that only certain employees or users should access. One of these users\n leaves the company or switches to a team that should be blocked from accessing\n top-secret documents. The user still has access to top-secret documents because the user\n had access when your documents were previously indexed. You can create a specific access\n control configuration for the user with deny access. You can later update the access\n control configuration to allow access if the user returns to the company and re-joins\n the 'top-secret' team. You can re-configure access control for your documents as\n circumstances change.

\n

To apply your access control configuration to certain documents, you call the BatchPutDocument API with the AccessControlConfigurationId\n included in the Document object. If you use an S3 bucket as a data source, you update the\n .metadata.json with the AccessControlConfigurationId and\n synchronize your data source. Amazon Kendra currently only supports access control\n configuration for S3 data sources and documents indexed using the\n BatchPutDocument API.

\n \n

You can't configure access control using\n CreateAccessControlConfiguration for an Amazon Kendra Gen AI Enterprise\n Edition index. Amazon Kendra will return a ValidationException error for a\n Gen_AI_ENTERPRISE_EDITION index.

\n
" } }, "com.amazonaws.kendra#CreateAccessControlConfigurationRequest": { @@ -3758,7 +3776,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permission to access \n the S3 bucket that contains the FAQs. For more information, see IAM access roles for \n Amazon Kendra.

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

The Amazon Resource Name (ARN) of an IAM role with permission to access \n the S3 bucket that contains the FAQ file. For more information, see IAM access roles for \n Amazon Kendra.

", "smithy.api#required": {} } }, @@ -3961,13 +3979,13 @@ "Edition": { "target": "com.amazonaws.kendra#IndexEdition", "traits": { - "smithy.api#documentation": "

The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION\n for indexes intended for development, testing, or proof of concept. Use\n ENTERPRISE_EDITION for production. Once you set the edition for\n an index, it can't be changed.

\n

The Edition parameter is optional. If you don't supply a value, the default\n is ENTERPRISE_EDITION.

\n

For more information on quota limits for Enterprise and Developer editions, see Quotas.

" + "smithy.api#documentation": "

The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION\n for indexes intended for development, testing, or proof of concept. Use\n ENTERPRISE_EDITION for production. Use GEN_AI_ENTERPRISE_EDITION\n for creating generative AI applications. Once you set the edition for an index, it can't be\n changed.

\n

The Edition parameter is optional. If you don't supply a value, the default\n is ENTERPRISE_EDITION.

\n

For more information on quota limits for Gen AI Enterprise Edition, Enterprise Edition, and\n Developer Edition indices, see Quotas.

" } }, "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permission to access your \n Amazon CloudWatch logs and metrics. For more information, see IAM access roles for \n Amazon Kendra.

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

The Amazon Resource Name (ARN) of an IAM role with permission to access\n your Amazon CloudWatch logs and metrics. For more information, see IAM access roles\n for Amazon Kendra.

", "smithy.api#required": {} } }, @@ -3993,25 +4011,25 @@ "Tags": { "target": "com.amazonaws.kendra#TagList", "traits": { - "smithy.api#documentation": "

A list of key-value pairs that identify or categorize the index. You can also use tags to \n help control access to the index. Tag keys and values can consist of Unicode letters, digits, \n white space, and any of the following symbols: _ . : / = + - @.

" + "smithy.api#documentation": "

A list of key-value pairs that identify or categorize the index. You can also use tags to\n help control access to the index. Tag keys and values can consist of Unicode letters, digits,\n white space, and any of the following symbols: _ . : / = + - @.

" } }, "UserTokenConfigurations": { "target": "com.amazonaws.kendra#UserTokenConfigurationList", "traits": { - "smithy.api#documentation": "

The user token configuration.

" + "smithy.api#documentation": "

The user token configuration.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n UserTokenConfigurations to configure user context policy, Amazon Kendra returns\n a ValidationException error.

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

The user context policy.

\n
\n
ATTRIBUTE_FILTER
\n
\n

All indexed content is searchable and displayable for all users. If you want to\n filter search results on user context, you can use the attribute filters of\n _user_id and _group_ids or you can provide user and\n group information in UserContext.

\n
\n
USER_TOKEN
\n
\n

Enables token-based user access control to filter search results on user\n context. All documents with no access control and all documents accessible to the\n user will be searchable and displayable.

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

The user context policy.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use\n ATTRIBUTE_FILTER to filter search results by user context. If you're\n using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n USER_TOKEN to configure user context policy, Amazon Kendra returns a\n ValidationException error.

\n
\n
\n
ATTRIBUTE_FILTER
\n
\n

All indexed content is searchable and displayable for all users. If you want to\n filter search results on user context, you can use the attribute filters of\n _user_id and _group_ids or you can provide user and\n group information in UserContext.

\n
\n
USER_TOKEN
\n
\n

Enables token-based user access control to filter search results on user\n context. All documents with no access control and all documents accessible to the\n user will be searchable and displayable.

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

Gets users and groups from IAM Identity Center \n identity source. To configure this, see UserGroupResolutionConfiguration. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents.

" + "smithy.api#documentation": "

Gets users and groups from IAM Identity Center identity source. To configure this,\n see UserGroupResolutionConfiguration. This is useful for user context filtering,\n where search results are filtered based on the user or their group access to\n documents.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index,\n UserGroupResolutionConfiguration isn't supported.

\n
" } } }, @@ -4265,7 +4283,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a role with permission to run\n PreExtractionHookConfiguration and\n PostExtractionHookConfiguration for altering document metadata and\n content during the document ingestion process. For more information, see IAM roles for Amazon Kendra.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permission to run\n PreExtractionHookConfiguration and\n PostExtractionHookConfiguration for altering document metadata and\n content during the document ingestion process. For more information, see an IAM roles for Amazon Kendra.

" } } }, @@ -5252,7 +5270,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes an FAQ from an index.

" + "smithy.api#documentation": "

Removes a FAQ from an index.

" } }, "com.amazonaws.kendra#DeleteFaqRequest": { @@ -5306,7 +5324,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Amazon Kendra index. An exception is not thrown if the index is\n already being deleted. While the index is being deleted, the Status field\n returned by a call to the DescribeIndex API is set to\n DELETING.

" + "smithy.api#documentation": "

Deletes an Amazon Kendra index. An exception is not thrown if the index is already\n being deleted. While the index is being deleted, the Status field returned by a\n call to the DescribeIndex API is set to DELETING.

" } }, "com.amazonaws.kendra#DeleteIndexRequest": { @@ -5353,7 +5371,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a group so that all users and sub groups that belong to the group can no\n longer access documents only available to that group.

\n

For example, after deleting the group \"Summer Interns\", all interns who belonged to\n that group no longer see intern-only documents in their search results.

\n

If you want to delete or replace users or sub groups of a group, you need to use the\n PutPrincipalMapping operation. For example, if a user in the group\n \"Engineering\" leaves the engineering team and another user takes their place, you\n provide an updated list of users or sub groups that belong to the \"Engineering\" group\n when calling PutPrincipalMapping. You can update your internal list of\n users or sub groups and input this list when calling\n PutPrincipalMapping.

\n

\n DeletePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "smithy.api#documentation": "

Deletes a group so that all users that belong to the group can no\n longer access documents only available to that group.

\n

For example, after deleting the group \"Summer Interns\", all interns who belonged to\n that group no longer see intern-only documents in their search results.

\n

If you want to delete or replace users or sub groups of a group, you need to use the\n PutPrincipalMapping operation. For example, if a user in the group\n \"Engineering\" leaves the engineering team and another user takes their place, you\n provide an updated list of users or sub groups that belong to the \"Engineering\" group\n when calling PutPrincipalMapping. You can update your internal list of\n users or sub groups and input this list when calling\n PutPrincipalMapping.

\n

\n DeletePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" } }, "com.amazonaws.kendra#DeletePrincipalMappingRequest": { @@ -5711,7 +5729,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role with permission to access the data source and\n required resources.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permission to \n access the data source and required resources.

" } }, "ErrorMessage": { @@ -5848,7 +5866,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

Shows the Amazon Resource Name (ARN) of a role with permission to access \n Query API, QuerySuggestions API, \n SubmitFeedback API, and IAM Identity Center that stores \n your user and group information.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permission to access \n the Query API, QuerySuggestions API, \n SubmitFeedback API, and IAM Identity Center that stores \n your users and groups information.

" } }, "ErrorMessage": { @@ -5888,7 +5906,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about an FAQ list.

" + "smithy.api#documentation": "

Gets information about a FAQ.

" } }, "com.amazonaws.kendra#DescribeFaqRequest": { @@ -5964,7 +5982,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that provides access to the S3 bucket\n containing the input files for the FAQ.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that provides access \n to the S3 bucket containing the FAQ file.

" } }, "ErrorMessage": { @@ -5976,7 +5994,7 @@ "FileFormat": { "target": "com.amazonaws.kendra#FaqFileFormat", "traits": { - "smithy.api#documentation": "

The file format used by the input files for the FAQ.

" + "smithy.api#documentation": "

The file format used for the FAQ file.

" } }, "LanguageCode": { @@ -6171,7 +6189,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that gives \n Amazon Kendra permission to write to your Amazon CloudWatch logs.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra permission to write to your Amazon CloudWatch logs.

" } }, "ServerSideEncryptionConfiguration": { @@ -6243,7 +6261,7 @@ "UserGroupResolutionConfiguration": { "target": "com.amazonaws.kendra#UserGroupResolutionConfiguration", "traits": { - "smithy.api#documentation": "

Whether you have enabled IAM Identity Center identity source for your \n users and groups. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents.

" + "smithy.api#documentation": "

Whether you have enabled IAM Identity Center identity source for your users and\n groups. This is useful for user context filtering, where search results are filtered based\n on the user or their group access to documents.

" } } }, @@ -8047,13 +8065,13 @@ "target": "com.amazonaws.kendra#IndexedQuestionAnswersCount", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The total number of FAQ questions and answers contained in the index.

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

The total number of FAQ questions and answers for an index.

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

Provides statistical information about the FAQ questions and answers contained in an\n index.

" + "smithy.api#documentation": "

Provides statistical information about the FAQ questions and answers for an\n index.

" } }, "com.amazonaws.kendra#FaqStatus": { @@ -9036,7 +9054,7 @@ "MemberGroups": { "target": "com.amazonaws.kendra#MemberGroups", "traits": { - "smithy.api#documentation": "

A list of sub groups that belong to a group. For example, the sub groups \"Research\",\n \"Engineering\", and \"Sales and Marketing\" all belong to the group \"Company\".

" + "smithy.api#documentation": "

A list of users that belong to a group. This can also include sub groups. For example, \n the sub groups \"Research\", \"Engineering\", and \"Sales and Marketing\" all belong to the group \n \"Company A\".

" } }, "MemberUsers": { @@ -9053,7 +9071,7 @@ } }, "traits": { - "smithy.api#documentation": "

A list of users or sub groups that belong to a group. This is useful for user context\n filtering, where search results are filtered based on the user or their group access to\n documents.

" + "smithy.api#documentation": "

A list of users that belong to a group. This is useful for user context\n filtering, where search results are filtered based on the user or their group access to\n documents.

" } }, "com.amazonaws.kendra#GroupOrderingIdSummaries": { @@ -9236,7 +9254,7 @@ "LambdaArn": { "target": "com.amazonaws.kendra#LambdaArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a role with permission to run a Lambda function\n during ingestion. For more information, see IAM roles for Amazon Kendra.

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

The Amazon Resource Name (ARN) of an IAM role with permission to run a Lambda function\n during ingestion. For more information, see an IAM roles for Amazon Kendra.

", "smithy.api#required": {} } }, @@ -9348,6 +9366,12 @@ "traits": { "smithy.api#enumValue": "ENTERPRISE_EDITION" } + }, + "GEN_AI_ENTERPRISE_EDITION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GEN_AI_ENTERPRISE_EDITION" + } } } }, @@ -10411,7 +10435,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of FAQ lists associated with an index.

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

Gets a list of FAQs associated with an index.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -10425,7 +10449,7 @@ "IndexId": { "target": "com.amazonaws.kendra#IndexId", "traits": { - "smithy.api#documentation": "

The index that contains the FAQ lists.

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

The index for the FAQs.

", "smithy.api#required": {} } }, @@ -10458,7 +10482,7 @@ "FaqSummaryItems": { "target": "com.amazonaws.kendra#FaqSummaryItems", "traits": { - "smithy.api#documentation": "

information about the FAQs associated with the specified index.

" + "smithy.api#documentation": "

Summary information about the FAQs for a specified index.

" } } }, @@ -10823,7 +10847,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of tags associated with a specified resource. Indexes, FAQs, and data sources\n can have tags associated with them.

" + "smithy.api#documentation": "

Gets a list of tags associated with a resource. Indexes, FAQs, data sources, and \n other resources can have tags associated with them.

" } }, "com.amazonaws.kendra#ListTagsForResourceRequest": { @@ -10832,7 +10856,7 @@ "ResourceARN": { "target": "com.amazonaws.kendra#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the index, FAQ, or data source to get a list of tags\n for.

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

The Amazon Resource Name (ARN) of the index, FAQ, data source, or other resource to \n get a list of tags for. For example, the ARN of an index is constructed as follows: \n arn:aws:kendra:your-region:your-account-id:index/index-id \n For information on how to construct an ARN for all types of Amazon Kendra resources, see \n Resource \n types.

", "smithy.api#required": {} } } @@ -10847,7 +10871,7 @@ "Tags": { "target": "com.amazonaws.kendra#TagList", "traits": { - "smithy.api#documentation": "

A list of tags associated with the index, FAQ, or data source.

" + "smithy.api#documentation": "

A list of tags associated with the index, FAQ, data source, or other resource.

" } } }, @@ -11383,7 +11407,7 @@ "OneDriveUserList": { "target": "com.amazonaws.kendra#OneDriveUserList", "traits": { - "smithy.api#documentation": "

A list of users whose documents should be indexed. Specify the user names in email\n format, for example, username@tenantdomain. If you need to index the\n documents of more than 100 users, use the OneDriveUserS3Path field to\n specify the location of a file containing a list of users.

" + "smithy.api#documentation": "

A list of users whose documents should be indexed. Specify the user names in email\n format, for example, username@tenantdomain. If you need to index the\n documents of more than 10 users, use the OneDriveUserS3Path field to\n specify the location of a file containing a list of users.

" } }, "OneDriveUserS3Path": { @@ -11642,7 +11666,7 @@ "Credentials": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

Your secret ARN, which you can create in Secrets Manager\n

\n

The credentials are optional. You use a secret if web proxy credentials are required\n to connect to a website host. Amazon Kendra currently support basic authentication\n to connect to a web proxy server. The secret stores your credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Secrets Manager secret. You create a \n secret to store your credentials in Secrets Manager\n

\n

The credentials are optional. You use a secret if web proxy credentials are required\n to connect to a website host. Amazon Kendra currently support basic authentication\n to connect to a web proxy server. The secret stores your credentials.

" } } }, @@ -11717,20 +11741,20 @@ "GroupMembers": { "target": "com.amazonaws.kendra#GroupMembers", "traits": { - "smithy.api#documentation": "

The list that contains your users or sub groups that belong the same group.

\n

For example, the group \"Company\" includes the user \"CEO\" and the sub groups\n \"Research\", \"Engineering\", and \"Sales and Marketing\".

\n

If you have more than 1000 users and/or sub groups for a single group, you need to\n provide the path to the S3 file that lists your users and sub groups for a group. Your\n sub groups can contain more than 1000 users, but the list of sub groups that belong to a\n group (and/or users) must be no more than 1000.

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

The list that contains your users that belong the same group. This can include sub groups \n that belong to a group.

\n

For example, the group \"Company A\" includes the user \"CEO\" and the sub groups\n \"Research\", \"Engineering\", and \"Sales and Marketing\".

\n

If you have more than 1000 users and/or sub groups for a single group, you need to\n provide the path to the S3 file that lists your users and sub groups for a group. Your\n sub groups can contain more than 1000 users, but the list of sub groups that belong to a\n group (and/or users) must be no more than 1000.

", "smithy.api#required": {} } }, "OrderingId": { "target": "com.amazonaws.kendra#PrincipalOrderingId", "traits": { - "smithy.api#documentation": "

The timestamp identifier you specify to ensure Amazon Kendra does not override\n the latest PUT action with previous actions. The highest number ID, which\n is the ordering ID, is the latest action you want to process and apply on top of other\n actions with lower number IDs. This prevents previous actions with lower number IDs from\n possibly overriding the latest action.

\n

The ordering ID can be the Unix time of the last update you made to a group members\n list. You would then provide this list when calling PutPrincipalMapping.\n This ensures your PUT action for that updated group with the latest members\n list doesn't get overwritten by earlier PUT actions for the same group\n which are yet to be processed.

\n

The default ordering ID is the current Unix time in milliseconds that the action was\n received by Amazon Kendra.

" + "smithy.api#documentation": "

The timestamp identifier you specify to ensure Amazon Kendra doesn't override\n the latest PUT action with previous actions. The highest number ID, which\n is the ordering ID, is the latest action you want to process and apply on top of other\n actions with lower number IDs. This prevents previous actions with lower number IDs from\n possibly overriding the latest action.

\n

The ordering ID can be the Unix time of the last update you made to a group members\n list. You would then provide this list when calling PutPrincipalMapping.\n This ensures your PUT action for that updated group with the latest members\n list doesn't get overwritten by earlier PUT actions for the same group\n which are yet to be processed.

\n

The default ordering ID is the current Unix time in milliseconds that the action was\n received by Amazon Kendra.

" } }, "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a role that has access to the S3 file that contains\n your list of users or sub groups that belong to a group.

\n

For more information, see IAM roles for Amazon Kendra.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that has access to the \n S3 file that contains your list of users that belong to a group.

\n

For more information, see IAM roles for \n Amazon Kendra.

" } } }, @@ -11770,7 +11794,7 @@ } ], "traits": { - "smithy.api#documentation": "

Searches an index given an input query.

\n \n

If you are working with large language models (LLMs) or implementing retrieval\n augmented generation (RAG) systems, you can use Amazon Kendra's Retrieve API, which can return longer semantically relevant passages. We\n recommend using the Retrieve API instead of filing a service limit increase\n to increase the Query API document excerpt length.

\n
\n

You can configure boosting or relevance tuning at the query level to override boosting\n at the index level, filter based on document fields/attributes and faceted search, and\n filter based on the user or their group access to documents. You can also include certain\n fields in the response that might provide useful additional information.

\n

A query response contains three types of results.

\n \n

You can specify that the query return only one type of result using the\n QueryResultTypeFilter parameter. Each query returns the 100 most relevant\n results. If you filter result type to only question-answers, a maximum of four results are\n returned. If you filter result type to only answers, a maximum of three results are\n returned.

" + "smithy.api#documentation": "

Searches an index given an input query.

\n \n

If you are working with large language models (LLMs) or implementing retrieval\n augmented generation (RAG) systems, you can use Amazon Kendra's Retrieve API, which can return longer semantically relevant passages. We\n recommend using the Retrieve API instead of filing a service limit increase\n to increase the Query API document excerpt length.

\n
\n

You can configure boosting or relevance tuning at the query level to override boosting\n at the index level, filter based on document fields/attributes and faceted search, and\n filter based on the user or their group access to documents. You can also include certain\n fields in the response that might provide useful additional information.

\n

A query response contains three types of results.

\n \n

You can specify that the query return only one type of result using the\n QueryResultTypeFilter parameter. Each query returns the 100 most relevant\n results. If you filter result type to only question-answers, a maximum of four results are\n returned. If you filter result type to only answers, a maximum of three results are\n returned.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use\n ATTRIBUTE_FILTER to filter search results by user context. If you're\n using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n USER_TOKEN to configure user context policy, Amazon Kendra returns a\n ValidationException error.

\n
" } }, "com.amazonaws.kendra#QueryCapacityUnit": { @@ -11827,7 +11851,7 @@ "AttributeFilter": { "target": "com.amazonaws.kendra#AttributeFilter", "traits": { - "smithy.api#documentation": "

Filters search results by document fields/attributes. You can only provide one attribute\n filter; however, the AndAllFilters, NotFilter, and\n OrAllFilters parameters contain a list of other filters.

\n

The AttributeFilter parameter means you can create a set of filtering rules\n that a document must satisfy to be included in the query results.

" + "smithy.api#documentation": "

Filters search results by document fields/attributes. You can only provide one attribute\n filter; however, the AndAllFilters, NotFilter, and\n OrAllFilters parameters contain a list of other filters.

\n

The AttributeFilter parameter means you can create a set of filtering rules\n that a document must satisfy to be included in the query results.

\n \n

For Amazon Kendra Gen AI Enterprise Edition indices use AttributeFilter to\n enable document filtering for end users using _email_id or include public\n documents (_email_id=null).

\n
" } }, "Facets": { @@ -12535,7 +12559,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves relevant passages or text excerpts given an input query.

\n

This API is similar to the Query API. However, by\n default, the Query API only returns excerpt passages of up to 100 token\n words. With the Retrieve API, you can retrieve longer passages of up to 200\n token words and up to 100 semantically relevant passages. This doesn't include\n question-answer or FAQ type responses from your index. The passages are text excerpts\n that can be semantically extracted from multiple documents and multiple parts of the\n same document. If in extreme cases your documents produce zero passages using the\n Retrieve API, you can alternatively use the Query API and\n its types of responses.

\n

You can also do the following:

\n \n

You can also include certain fields in the response that might provide useful\n additional information.

\n

The Retrieve API shares the number of query capacity\n units that you set for your index. For more information on what's included\n in a single capacity unit and the default base capacity for an index, see Adjusting\n capacity.

" + "smithy.api#documentation": "

Retrieves relevant passages or text excerpts given an input query.

\n

This API is similar to the Query API. However, by\n default, the Query API only returns excerpt passages of up to 100 token\n words. With the Retrieve API, you can retrieve longer passages of up to 200\n token words and up to 100 semantically relevant passages. This doesn't include\n question-answer or FAQ type responses from your index. The passages are text excerpts\n that can be semantically extracted from multiple documents and multiple parts of the\n same document. If in extreme cases your documents produce zero passages using the\n Retrieve API, you can alternatively use the Query API and\n its types of responses.

\n

You can also do the following:

\n \n

You can also include certain fields in the response that might provide useful\n additional information.

\n

The Retrieve API shares the number of query capacity\n units that you set for your index. For more information on what's included\n in a single capacity unit and the default base capacity for an index, see Adjusting\n capacity.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use\n ATTRIBUTE_FILTER to filter search results by user context. If\n you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n USER_TOKEN to configure user context policy, Amazon Kendra returns a\n ValidationException error.

\n
" } }, "com.amazonaws.kendra#RetrieveRequest": { @@ -12558,7 +12582,7 @@ "AttributeFilter": { "target": "com.amazonaws.kendra#AttributeFilter", "traits": { - "smithy.api#documentation": "

Filters search results by document fields/attributes. You can only provide one\n attribute filter; however, the AndAllFilters, NotFilter, and\n OrAllFilters parameters contain a list of other filters.

\n

The AttributeFilter parameter means you can create a set of filtering\n rules that a document must satisfy to be included in the query results.

" + "smithy.api#documentation": "

Filters search results by document fields/attributes. You can only provide one\n attribute filter; however, the AndAllFilters, NotFilter, and\n OrAllFilters parameters contain a list of other filters.

\n

The AttributeFilter parameter means you can create a set of filtering\n rules that a document must satisfy to be included in the query results.

\n \n

For Amazon Kendra Gen AI Enterprise Edition indices use AttributeFilter to\n enable document filtering for end users using _email_id or include\n public documents (_email_id=null).

\n
" } }, "RequestedDocumentAttributes": { @@ -14661,7 +14685,7 @@ "Key": { "target": "com.amazonaws.kendra#TagKey", "traits": { - "smithy.api#documentation": "

The key for the tag. Keys are not case sensitive and must be unique for the index, FAQ, or\n data source.

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

The key for the tag. Keys are not case sensitive and must be unique for the index, FAQ, \n data source, or other resource.

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

A list of key/value pairs that identify an index, FAQ, or data source. Tag keys and values\n can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : /\n = + - @.

" + "smithy.api#documentation": "

A key-value pair that identifies or categorizes an index, FAQ, \n data source, or other resource. TA tag key and value can consist of Unicode letters, \n digits, white space, and any of the following symbols: _ . : / = + - @.

" } }, "com.amazonaws.kendra#TagKey": { @@ -14736,7 +14760,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds the specified tag to the specified index, FAQ, or data source resource. If the tag\n already exists, the existing value is replaced with the new value.

" + "smithy.api#documentation": "

Adds the specified tag to the specified index, FAQ, data source, or other resource. If \n the tag already exists, the existing value is replaced with the new value.

" } }, "com.amazonaws.kendra#TagResourceRequest": { @@ -14745,14 +14769,14 @@ "ResourceARN": { "target": "com.amazonaws.kendra#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the index, FAQ, or data source to tag.

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

The Amazon Resource Name (ARN) of the index, FAQ, data source, or other resource to add a tag. \n For example, the ARN of an index is constructed as follows: \n arn:aws:kendra:your-region:your-account-id:index/index-id \n For information on how to construct an ARN for all types of Amazon Kendra resources, see \n Resource \n types.

", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.kendra#TagList", "traits": { - "smithy.api#documentation": "

A list of tag keys to add to the index, FAQ, or data source. If a tag already exists, the\n existing value is replaced with the new value.

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

A list of tag keys to add to the index, FAQ, data source, or other resource. If a tag already \n exists, the existing value is replaced with the new value.

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

Removes a tag from an index, FAQ, or a data source.

" + "smithy.api#documentation": "

Removes a tag from an index, FAQ, data source, or other resource.

" } }, "com.amazonaws.kendra#UntagResourceRequest": { @@ -15077,14 +15101,14 @@ "ResourceARN": { "target": "com.amazonaws.kendra#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the index, FAQ, or data source to remove the tag\n from.

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

The Amazon Resource Name (ARN) of the index, FAQ, data source, or other resource to remove a tag. \n For example, the ARN of an index is constructed as follows: \n arn:aws:kendra:your-region:your-account-id:index/index-id \n For information on how to construct an ARN for all types of Amazon Kendra resources, see \n Resource \n types.

", "smithy.api#required": {} } }, "TagKeys": { "target": "com.amazonaws.kendra#TagKeyList", "traits": { - "smithy.api#documentation": "

A list of tag keys to remove from the index, FAQ, or data source. If a tag key does not\n exist on the resource, it is ignored.

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

A list of tag keys to remove from the index, FAQ, data source, or other resource. If a tag \n key doesn't exist for the resource, it is ignored.

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

Updates an access control configuration for your documents in an index. This includes\n user and group access information for your documents. This is useful for user context\n filtering, where search results are filtered based on the user or their group access to\n documents.

\n

You can update an access control configuration you created without indexing all of\n your documents again. For example, your index contains top-secret company documents that\n only certain employees or users should access. You created an 'allow' access control\n configuration for one user who recently joined the 'top-secret' team, switching from a\n team with 'deny' access to top-secret documents. However, the user suddenly returns to\n their previous team and should no longer have access to top secret documents. You can\n update the access control configuration to re-configure access control for your\n documents as circumstances change.

\n

You call the BatchPutDocument API to\n apply the updated access control configuration, with the\n AccessControlConfigurationId included in the Document\n object. If you use an S3 bucket as a data source, you synchronize your data source to\n apply the AccessControlConfigurationId in the .metadata.json\n file. Amazon Kendra currently only supports access control configuration for S3\n data sources and documents indexed using the BatchPutDocument API.

" + "smithy.api#documentation": "

Updates an access control configuration for your documents in an index. This includes\n user and group access information for your documents. This is useful for user context\n filtering, where search results are filtered based on the user or their group access to\n documents.

\n

You can update an access control configuration you created without indexing all of\n your documents again. For example, your index contains top-secret company documents that\n only certain employees or users should access. You created an 'allow' access control\n configuration for one user who recently joined the 'top-secret' team, switching from a\n team with 'deny' access to top-secret documents. However, the user suddenly returns to\n their previous team and should no longer have access to top secret documents. You can\n update the access control configuration to re-configure access control for your\n documents as circumstances change.

\n

You call the BatchPutDocument API to\n apply the updated access control configuration, with the\n AccessControlConfigurationId included in the Document\n object. If you use an S3 bucket as a data source, you synchronize your data source to\n apply the AccessControlConfigurationId in the .metadata.json\n file. Amazon Kendra currently only supports access control configuration for S3\n data sources and documents indexed using the BatchPutDocument API.

\n \n

You can't configure access control using\n CreateAccessControlConfiguration for an Amazon Kendra Gen AI Enterprise\n Edition index. Amazon Kendra will return a ValidationException error for a\n Gen_AI_ENTERPRISE_EDITION index.

\n
" } }, "com.amazonaws.kendra#UpdateAccessControlConfigurationRequest": { @@ -15270,7 +15294,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a role with permission to access the data source and\n required resources. For more information, see IAM roles for Amazon Kendra.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permission to access \n the data source and required resources. For more information, see IAM roles for Amazon Kendra.

" } }, "LanguageCode": { @@ -15348,7 +15372,7 @@ "RoleArn": { "target": "com.amazonaws.kendra#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a role with permission to access Query\n API, QuerySuggestions API, SubmitFeedback\n API, and IAM Identity Center that stores your user and group information. \n For more information, see IAM roles for Amazon Kendra.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permission to access \n the Query API, QuerySuggestions API, SubmitFeedback\n API, and IAM Identity Center that stores your users and groups information. \n For more information, see IAM roles for Amazon Kendra.

" } }, "Configuration": { @@ -15544,19 +15568,19 @@ "UserTokenConfigurations": { "target": "com.amazonaws.kendra#UserTokenConfigurationList", "traits": { - "smithy.api#documentation": "

The user token configuration.

" + "smithy.api#documentation": "

The user token configuration.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n UserTokenConfigurations to configure user context policy, Amazon Kendra returns\n a ValidationException error.

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

The user context policy.

" + "smithy.api#documentation": "

The user context policy.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use\n ATTRIBUTE_FILTER to filter search results by user context. If you're\n using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n USER_TOKEN to configure user context policy, Amazon Kendra returns a\n ValidationException error.

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

Gets users and groups from IAM Identity Center\n identity source. To configure this, see UserGroupResolutionConfiguration. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents.

" + "smithy.api#documentation": "

Gets users and groups from IAM Identity Center identity source. To configure this,\n see UserGroupResolutionConfiguration. This is useful for user context filtering,\n where search results are filtered based on the user or their group access to\n documents.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index,\n UserGroupResolutionConfiguration isn't supported.

\n
" } } }, @@ -15869,7 +15893,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information about the user context for an Amazon Kendra index.

\n

User context filtering is a kind of personalized search with the benefit of controlling\n access to documents. For example, not all teams that search the company portal for\n information should access top-secret company documents, nor are these documents relevant to\n all users. Only specific users or groups of teams given access to top-secret documents\n should see these documents in their search results.

\n

You provide one of the following:

\n \n

If you provide both, an exception is thrown.

" + "smithy.api#documentation": "

Provides information about the user context for an Amazon Kendra index.

\n

User context filtering is a kind of personalized search with the benefit of controlling\n access to documents. For example, not all teams that search the company portal for\n information should access top-secret company documents, nor are these documents relevant to\n all users. Only specific users or groups of teams given access to top-secret documents\n should see these documents in their search results.

\n

You provide one of the following:

\n \n

If you provide both, an exception is thrown.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can use\n UserId, Groups, and DataSourceGroups to filter\n content. If you set the UserId to a particular user ID, it also includes\n all public documents.

\n

Amazon Kendra Gen AI Enterprise Edition indices don't support token based document filtering.\n If you're using an Amazon Kendra Gen AI Enterprise Edition index, Amazon Kendra returns a\n ValidationException error if the Token field has a non-null\n value.

\n
" } }, "com.amazonaws.kendra#UserContextPolicy": { @@ -15895,13 +15919,13 @@ "UserGroupResolutionMode": { "target": "com.amazonaws.kendra#UserGroupResolutionMode", "traits": { - "smithy.api#documentation": "

The identity store provider (mode) you want to use to get users and groups. \n IAM Identity Center is currently the only available mode. Your users and groups\n must exist in an IAM Identity Center identity source in order to use this mode.

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

The identity store provider (mode) you want to use to get users and groups. IAM Identity Center is currently the only available mode. Your users and groups must exist in\n an IAM Identity Center identity source in order to use this mode.

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

Provides the configuration information to get users and groups from\n an IAM Identity Center identity source. This is useful for user context filtering, where\n search results are filtered based on the user or their group access to documents. You can\n also use the PutPrincipalMapping API to\n map users to their groups so that you only need to provide the user ID when you issue the\n query.

\n

To set up an IAM Identity Center identity source in the console to use with Amazon Kendra, see Getting started with an IAM Identity Center identity source. You must also grant the required permissions to\n use IAM Identity Center with Amazon Kendra. For more information, see IAM roles for IAM Identity Center.

\n

Amazon Kendra currently does not support using\n UserGroupResolutionConfiguration with an Amazon Web Services organization\n member account for your IAM Identity Center identify source. You must create your index in\n the management account for the organization in order to use\n UserGroupResolutionConfiguration.

" + "smithy.api#documentation": "

Provides the configuration information to get users and groups from an IAM Identity Center identity source. This is useful for user context filtering, where search\n results are filtered based on the user or their group access to documents. You can also use\n the PutPrincipalMapping API to map users to their groups so that you only need to\n provide the user ID when you issue the query.

\n

To set up an IAM Identity Center identity source in the console to use with Amazon Kendra, see Getting started with an IAM Identity Center identity source. You must also grant the required permissions to\n use IAM Identity Center with Amazon Kendra. For more information, see IAM roles for IAM Identity Center.

\n

Amazon Kendra currently does not support using\n UserGroupResolutionConfiguration with an Amazon Web Services organization\n member account for your IAM Identity Center identify source. You must create your index in\n the management account for the organization in order to use\n UserGroupResolutionConfiguration.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index,\n UserGroupResolutionConfiguration isn't supported.

\n
" } }, "com.amazonaws.kendra#UserGroupResolutionMode": { @@ -15972,7 +15996,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information for a token.

" + "smithy.api#documentation": "

Provides the configuration information for a token.

\n \n

If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use\n UserTokenConfigurations to configure user context policy, Amazon Kendra returns\n a ValidationException error.

\n
" } }, "com.amazonaws.kendra#UserTokenConfigurationList": { diff --git a/codegen/sdk-codegen/aws-models/sagemaker.json b/codegen/sdk-codegen/aws-models/sagemaker.json index bca2c2aa11f..81d80318975 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.json @@ -187,6 +187,23 @@ "smithy.api#documentation": "

Lists the properties of an action. An action represents an action\n or activity. Some examples are a workflow step and a model deployment. Generally, an\n action involves at least one input artifact or output artifact.

" } }, + "com.amazonaws.sagemaker#ActivationState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, "com.amazonaws.sagemaker#AddAssociation": { "type": "operation", "input": { @@ -4637,6 +4654,24 @@ } } }, + "com.amazonaws.sagemaker#AvailabilityZone": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-z]+\\-[0-9a-z\\-]+$" + } + }, + "com.amazonaws.sagemaker#AvailableInstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.sagemaker#AwsManagedHumanLoopRequestSource": { "type": "enum", "members": { @@ -5182,6 +5217,15 @@ } } }, + "com.amazonaws.sagemaker#BorrowLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, "com.amazonaws.sagemaker#Branch": { "type": "string", "traits": { @@ -6890,6 +6934,24 @@ "smithy.api#documentation": "

A flag indicating whether deep health checks should be performed when the cluster\n instance group is created or updated.

" } }, + "Status": { + "target": "com.amazonaws.sagemaker#InstanceGroupStatus", + "traits": { + "smithy.api#documentation": "

The current status of the cluster instance group.

\n " + } + }, + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan associated with this cluster instance group.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, + "TrainingPlanStatus": { + "target": "com.amazonaws.sagemaker#InstanceGroupTrainingPlanStatus", + "traits": { + "smithy.api#documentation": "

The current status of the training plan associated with this cluster instance\n group.

" + } + }, "OverrideVpcConfig": { "target": "com.amazonaws.sagemaker#VpcConfig" } @@ -6975,6 +7037,12 @@ "smithy.api#documentation": "

A flag indicating whether deep health checks should be performed when the cluster\n instance group is created or updated.

" } }, + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan to use for this cluster instance group.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, "OverrideVpcConfig": { "target": "com.amazonaws.sagemaker#VpcConfig" } @@ -7448,6 +7516,18 @@ "traits": { "smithy.api#enumValue": "ml.p5e.48xlarge" } + }, + "ML_P5EN_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p5en.48xlarge" + } + }, + "ML_TRN2_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn2.48xlarge" + } } } }, @@ -7727,6 +7807,110 @@ "smithy.api#pattern": "^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$" } }, + "com.amazonaws.sagemaker#ClusterSchedulerConfigArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:cluster-scheduler-config/[a-z0-9]{12}$" + } + }, + "com.amazonaws.sagemaker#ClusterSchedulerConfigId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 12 + }, + "smithy.api#pattern": "^[a-z0-9]{12}$" + } + }, + "com.amazonaws.sagemaker#ClusterSchedulerConfigSummary": { + "type": "structure", + "members": { + "ClusterSchedulerConfigArn": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#documentation": "

Version of the cluster policy.

" + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the cluster policy.

", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Creation time of the cluster policy.

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

Last modified time of the cluster policy.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the cluster policy.

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

ARN of the cluster.

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

Summary of the cluster policy.

" + } + }, + "com.amazonaws.sagemaker#ClusterSchedulerConfigSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigSummary" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.sagemaker#ClusterSchedulerPriorityClassName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9]){0,39}?$" + } + }, "com.amazonaws.sagemaker#ClusterSortBy": { "type": "enum", "members": { @@ -7831,6 +8015,12 @@ "smithy.api#documentation": "

The status of the SageMaker HyperPod cluster.

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

A list of Amazon Resource Names (ARNs) of the training plans associated with this\n cluster.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } } }, "traits": { @@ -8414,6 +8604,210 @@ "target": "com.amazonaws.sagemaker#CompressionType" } }, + "com.amazonaws.sagemaker#ComputeQuotaArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:compute-quota/[a-z0-9]{12}$" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaConfig": { + "type": "structure", + "members": { + "ComputeQuotaResources": { + "target": "com.amazonaws.sagemaker#ComputeQuotaResourceConfigList", + "traits": { + "smithy.api#documentation": "

Allocate compute resources by instance types.

" + } + }, + "ResourceSharingConfig": { + "target": "com.amazonaws.sagemaker#ResourceSharingConfig", + "traits": { + "smithy.api#documentation": "

Resource sharing configuration. This defines how an entity can lend and borrow idle\n compute with other entities within the cluster.

" + } + }, + "PreemptTeamTasks": { + "target": "com.amazonaws.sagemaker#PreemptTeamTasks", + "traits": { + "smithy.api#documentation": "

Allows workloads from within an entity to preempt same-team workloads. When set to\n LowerPriority, the entity's lower priority tasks are preempted by their own\n higher priority tasks.

\n

Default is LowerPriority.

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

Configuration of the compute allocation definition for an entity. This includes the\n resource sharing option and the setting to preempt low priority tasks.

" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]{12}$" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaResourceConfig": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.sagemaker#ClusterInstanceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance type of the instance group for the cluster.

", + "smithy.api#required": {} + } + }, + "Count": { + "target": "com.amazonaws.sagemaker#InstanceCount", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances to add to the instance group of a SageMaker HyperPod\n cluster.

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

Configuration of the resources used for the compute allocation definition.

" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaResourceConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ComputeQuotaResourceConfig" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 15 + } + } + }, + "com.amazonaws.sagemaker#ComputeQuotaSummary": { + "type": "structure", + "members": { + "ComputeQuotaArn": { + "target": "com.amazonaws.sagemaker#ComputeQuotaArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#documentation": "

Version of the compute allocation definition.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the compute allocation definition.

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

ARN of the cluster.

" + } + }, + "ComputeQuotaConfig": { + "target": "com.amazonaws.sagemaker#ComputeQuotaConfig", + "traits": { + "smithy.api#documentation": "

Configuration of the compute allocation definition. This includes the resource sharing\n option, and the setting to preempt low priority tasks.

" + } + }, + "ComputeQuotaTarget": { + "target": "com.amazonaws.sagemaker#ComputeQuotaTarget", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target entity to allocate compute resources to.

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

The state of the compute allocation being described. Use to enable or disable compute\n allocation.

\n

Default is Enabled.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Creation time of the compute allocation definition.

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

Last modified time of the compute allocation definition.

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

Summary of the compute allocation definition.

" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ComputeQuotaSummary" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.sagemaker#ComputeQuotaTarget": { + "type": "structure", + "members": { + "TeamName": { + "target": "com.amazonaws.sagemaker#ComputeQuotaTargetTeamName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the team to allocate compute resources to.

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

Assigned entity fair-share weight. Idle compute will be shared across entities based on\n these assigned weights. This weight is only used when FairShare is\n enabled.

\n

A weight of 0 is the lowest priority and 100 is the highest. Weight 0 is the\n default.

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

The target entity to allocate compute resources to.

" + } + }, + "com.amazonaws.sagemaker#ComputeQuotaTargetTeamName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9]){0,39}?$" + } + }, "com.amazonaws.sagemaker#ConditionOutcome": { "type": "enum", "members": { @@ -9662,6 +10056,94 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#CreateClusterSchedulerConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateClusterSchedulerConfigRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateClusterSchedulerConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

Create cluster policy configuration. This policy is used for task prioritization and\n fair-share allocation of idle compute. This helps prioritize critical workloads and distributes\n idle compute across entities.

" + } + }, + "com.amazonaws.sagemaker#CreateClusterSchedulerConfigRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name for the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster.

", + "smithy.api#required": {} + } + }, + "SchedulerConfig": { + "target": "com.amazonaws.sagemaker#SchedulerConfig", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Configuration about the monitoring schedule.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the cluster policy.

" + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

Tags of the cluster policy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#CreateClusterSchedulerConfigResponse": { + "type": "structure", + "members": { + "ClusterSchedulerConfigArn": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#CreateCodeRepository": { "type": "operation", "input": { @@ -9820,6 +10302,108 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#CreateComputeQuota": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateComputeQuotaRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateComputeQuotaResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

Create compute allocation definition. This defines how compute is allocated, shared, and\n borrowed for specified entities. Specifically, how to lend and borrow idle compute and\n assign a fair-share weight to the specified entities.

" + } + }, + "com.amazonaws.sagemaker#CreateComputeQuotaRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name to the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the compute allocation definition.

" + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaConfig": { + "target": "com.amazonaws.sagemaker#ComputeQuotaConfig", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Configuration of the compute allocation definition. This includes the resource sharing\n option, and the setting to preempt low priority tasks.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaTarget": { + "target": "com.amazonaws.sagemaker#ComputeQuotaTarget", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target entity to allocate compute resources to.

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

The state of the compute allocation being described. Use to enable or disable compute\n allocation.

\n

Default is Enabled.

" + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

Tags of the compute allocation definition.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#CreateComputeQuotaResponse": { + "type": "structure", + "members": { + "ComputeQuotaArn": { + "target": "com.amazonaws.sagemaker#ComputeQuotaArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#CreateContext": { "type": "operation", "input": { @@ -13100,6 +13684,178 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#CreatePartnerApp": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreatePartnerAppRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreatePartnerAppResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Amazon SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrl": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrlRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a presigned URL to access an Amazon SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrlRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App to create the presigned URL for.

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

The time that will pass before the presigned URL expires.

" + } + }, + "SessionExpirationDurationInSeconds": { + "target": "com.amazonaws.sagemaker#SessionExpirationDurationInSeconds", + "traits": { + "smithy.api#documentation": "

Indicates how long the Amazon SageMaker Partner AI App session can be accessed for after logging in.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrlResponse": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.sagemaker#String2048", + "traits": { + "smithy.api#documentation": "

The presigned URL that you can use to access the SageMaker Partner AI App.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.sagemaker#CreatePartnerAppRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sagemaker#PartnerAppName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name to give the SageMaker Partner AI App.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.sagemaker#PartnerAppType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of SageMaker Partner AI App to create. Must be one of the following: lakera-guard, comet, deepchecks-llm-evaluation, or fiddler.

", + "smithy.api#required": {} + } + }, + "ExecutionRoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the IAM role that the partner application uses.

", + "smithy.api#required": {} + } + }, + "MaintenanceConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppMaintenanceConfig", + "traits": { + "smithy.api#documentation": "

Maintenance configuration settings for the SageMaker Partner AI App.

" + } + }, + "Tier": { + "target": "com.amazonaws.sagemaker#NonEmptyString64", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates the instance type and size of the cluster attached to the SageMaker Partner AI App.

", + "smithy.api#required": {} + } + }, + "ApplicationConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppConfig", + "traits": { + "smithy.api#documentation": "

Configuration settings for the SageMaker Partner AI App.

" + } + }, + "AuthType": { + "target": "com.amazonaws.sagemaker#PartnerAppAuthType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The authorization type that users use to access the SageMaker Partner AI App.

", + "smithy.api#required": {} + } + }, + "EnableIamSessionBasedIdentity": { + "target": "com.amazonaws.sagemaker#Boolean", + "traits": { + "smithy.api#documentation": "

When set to TRUE, the SageMaker Partner AI App sets the Amazon Web Services IAM session name or the authenticated IAM user as the identity of the SageMaker Partner AI App user.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.sagemaker#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique token that guarantees that the call to this API is idempotent.

", + "smithy.api#idempotencyToken": {} + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

Each tag consists of a key and an optional value. Tag keys must be unique per\n resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#CreatePartnerAppResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#CreatePipeline": { "type": "operation", "input": { @@ -13941,6 +14697,75 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#CreateTrainingPlan": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateTrainingPlanRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateTrainingPlanResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new training plan in SageMaker to reserve compute capacity.

\n

Amazon SageMaker Training Plan is a capability within SageMaker that allows customers to reserve and manage GPU\n capacity for large-scale AI model training. It provides a way to secure predictable access\n to computational resources within specific timelines and budgets, without the need to\n manage underlying infrastructure.

\n

\n How it works\n

\n

Plans can be created for specific resources such as SageMaker Training Jobs or SageMaker HyperPod\n clusters, automatically provisioning resources, setting up infrastructure, executing\n workloads, and handling infrastructure failures.

\n

\n Plan creation workflow\n

\n \n

\n Plan composition\n

\n

A plan can consist of one or more Reserved Capacities, each defined by a specific\n instance type, quantity, Availability Zone, duration, and start and end times. For more\n information about Reserved Capacity, see \n ReservedCapacitySummary\n .

" + } + }, + "com.amazonaws.sagemaker#CreateTrainingPlanRequest": { + "type": "structure", + "members": { + "TrainingPlanName": { + "target": "com.amazonaws.sagemaker#TrainingPlanName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the training plan to create.

", + "smithy.api#required": {} + } + }, + "TrainingPlanOfferingId": { + "target": "com.amazonaws.sagemaker#TrainingPlanOfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of the training plan offering to use for creating this\n plan.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

An array of key-value pairs to apply to this training plan.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#CreateTrainingPlanResponse": { + "type": "structure", + "members": { + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the created training plan.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#CreateTransformJob": { "type": "operation", "input": { @@ -14535,6 +15360,9 @@ } } }, + "com.amazonaws.sagemaker#CurrencyCode": { + "type": "string" + }, "com.amazonaws.sagemaker#CustomFileSystem": { "type": "union", "members": { @@ -14543,6 +15371,12 @@ "traits": { "smithy.api#documentation": "

A custom file system in Amazon EFS.

" } + }, + "FSxLustreFileSystem": { + "target": "com.amazonaws.sagemaker#FSxLustreFileSystem", + "traits": { + "smithy.api#documentation": "

A custom file system in Amazon FSx for Lustre.

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

The settings for a custom Amazon EFS file system.

" } + }, + "FSxLustreFileSystemConfig": { + "target": "com.amazonaws.sagemaker#FSxLustreFileSystemConfig", + "traits": { + "smithy.api#documentation": "

The settings for a custom Amazon FSx for Lustre file system.

" + } } }, "traits": { @@ -15717,6 +16557,39 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#DeleteClusterSchedulerConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteClusterSchedulerConfigRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the cluster policy of the cluster.

" + } + }, + "com.amazonaws.sagemaker#DeleteClusterSchedulerConfigRequest": { + "type": "structure", + "members": { + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.sagemaker#DeleteCodeRepository": { "type": "operation", "input": { @@ -15778,6 +16651,39 @@ "smithy.api#input": {} } }, + "com.amazonaws.sagemaker#DeleteComputeQuota": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteComputeQuotaRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the compute allocation from the cluster.

" + } + }, + "com.amazonaws.sagemaker#DeleteComputeQuotaRequest": { + "type": "structure", + "members": { + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.sagemaker#DeleteContext": { "type": "operation", "input": { @@ -17003,6 +17909,63 @@ "smithy.api#input": {} } }, + "com.amazonaws.sagemaker#DeletePartnerApp": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeletePartnerAppRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DeletePartnerAppResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#DeletePartnerAppRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App to delete.

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

A unique token that guarantees that the call to this API is idempotent.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#DeletePartnerAppResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App that was deleted.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#DeletePipeline": { "type": "operation", "input": { @@ -18766,6 +19729,137 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#DescribeClusterSchedulerConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeClusterSchedulerConfigRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeClusterSchedulerConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Description of the cluster policy. This policy is used for task prioritization and\n fair-share allocation. This helps prioritize critical workloads and distributes\n idle compute across entities.

" + } + }, + "com.amazonaws.sagemaker#DescribeClusterSchedulerConfigRequest": { + "type": "structure", + "members": { + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#documentation": "

Version of the cluster policy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#DescribeClusterSchedulerConfigResponse": { + "type": "structure", + "members": { + "ClusterSchedulerConfigArn": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Version of the cluster policy.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the cluster policy.

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

Failure reason of the cluster policy.

" + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#documentation": "

ARN of the cluster where the cluster policy is applied.

" + } + }, + "SchedulerConfig": { + "target": "com.amazonaws.sagemaker#SchedulerConfig", + "traits": { + "smithy.api#documentation": "

Cluster policy configuration. This policy is used for task prioritization and fair-share\n allocation. This helps prioritize critical workloads and distributes idle compute\n across entities.

" + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the cluster policy.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Creation time of the cluster policy.

", + "smithy.api#required": {} + } + }, + "CreatedBy": { + "target": "com.amazonaws.sagemaker#UserContext" + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Last modified time of the cluster policy.

" + } + }, + "LastModifiedBy": { + "target": "com.amazonaws.sagemaker#UserContext" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#DescribeCodeRepository": { "type": "operation", "input": { @@ -19011,6 +20105,151 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#DescribeComputeQuota": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeComputeQuotaRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeComputeQuotaResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Description of the compute allocation definition.

" + } + }, + "com.amazonaws.sagemaker#DescribeComputeQuotaRequest": { + "type": "structure", + "members": { + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#documentation": "

Version of the compute allocation definition.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#DescribeComputeQuotaResponse": { + "type": "structure", + "members": { + "ComputeQuotaArn": { + "target": "com.amazonaws.sagemaker#ComputeQuotaArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the compute allocation definition.

" + } + }, + "ComputeQuotaVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Version of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the compute allocation definition.

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

Failure reason of the compute allocation definition.

" + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#documentation": "

ARN of the cluster.

" + } + }, + "ComputeQuotaConfig": { + "target": "com.amazonaws.sagemaker#ComputeQuotaConfig", + "traits": { + "smithy.api#documentation": "

Configuration of the compute allocation definition. This includes the resource sharing\n option, and the setting to preempt low priority tasks.

" + } + }, + "ComputeQuotaTarget": { + "target": "com.amazonaws.sagemaker#ComputeQuotaTarget", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target entity to allocate compute resources to.

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

The state of the compute allocation being described. Use to enable or disable compute\n allocation.

\n

Default is Enabled.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Creation time of the compute allocation configuration.

", + "smithy.api#required": {} + } + }, + "CreatedBy": { + "target": "com.amazonaws.sagemaker#UserContext" + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Last modified time of the compute allocation configuration.

" + } + }, + "LastModifiedBy": { + "target": "com.amazonaws.sagemaker#UserContext" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#DescribeContext": { "type": "operation", "input": { @@ -23998,6 +25237,131 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#DescribePartnerApp": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribePartnerAppRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribePartnerAppResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#DescribePartnerAppRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#DescribePartnerAppResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App that was described.

" + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#PartnerAppName", + "traits": { + "smithy.api#documentation": "

The name of the SageMaker Partner AI App.

" + } + }, + "Type": { + "target": "com.amazonaws.sagemaker#PartnerAppType", + "traits": { + "smithy.api#documentation": "

The type of SageMaker Partner AI App. Must be one of the following: lakera-guard, comet, deepchecks-llm-evaluation, or fiddler.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#PartnerAppStatus", + "traits": { + "smithy.api#documentation": "

The status of the SageMaker Partner AI App.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the SageMaker Partner AI App was created.

" + } + }, + "ExecutionRoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role associated with the SageMaker Partner AI App.

" + } + }, + "BaseUrl": { + "target": "com.amazonaws.sagemaker#String2048", + "traits": { + "smithy.api#documentation": "

The URL of the SageMaker Partner AI App that the Application SDK uses to support in-app calls for the user.

" + } + }, + "MaintenanceConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppMaintenanceConfig", + "traits": { + "smithy.api#documentation": "

Maintenance configuration settings for the SageMaker Partner AI App.

" + } + }, + "Tier": { + "target": "com.amazonaws.sagemaker#NonEmptyString64", + "traits": { + "smithy.api#documentation": "

The instance type and size of the cluster attached to the SageMaker Partner AI App.

" + } + }, + "Version": { + "target": "com.amazonaws.sagemaker#NonEmptyString64", + "traits": { + "smithy.api#documentation": "

The version of the SageMaker Partner AI App.

" + } + }, + "ApplicationConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppConfig", + "traits": { + "smithy.api#documentation": "

Configuration settings for the SageMaker Partner AI App.

" + } + }, + "AuthType": { + "target": "com.amazonaws.sagemaker#PartnerAppAuthType", + "traits": { + "smithy.api#documentation": "

The authorization type that users use to access the SageMaker Partner AI App.

" + } + }, + "EnableIamSessionBasedIdentity": { + "target": "com.amazonaws.sagemaker#Boolean", + "traits": { + "smithy.api#documentation": "

When set to TRUE, the SageMaker Partner AI App sets the Amazon Web Services IAM session name or the authenticated IAM user as the identity of the SageMaker Partner AI App user.

" + } + }, + "Error": { + "target": "com.amazonaws.sagemaker#ErrorInfo", + "traits": { + "smithy.api#documentation": "

This is an error field object that contains the error code and the reason for an operation failure.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#DescribePipeline": { "type": "operation", "input": { @@ -25203,6 +26567,143 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#DescribeTrainingPlan": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeTrainingPlanRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeTrainingPlanResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves detailed information about a specific training plan.

" + } + }, + "com.amazonaws.sagemaker#DescribeTrainingPlanRequest": { + "type": "structure", + "members": { + "TrainingPlanName": { + "target": "com.amazonaws.sagemaker#TrainingPlanName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the training plan to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#DescribeTrainingPlanResponse": { + "type": "structure", + "members": { + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan.

", + "smithy.api#required": {} + } + }, + "TrainingPlanName": { + "target": "com.amazonaws.sagemaker#TrainingPlanName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the training plan.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#TrainingPlanStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The current status of the training plan (e.g., Pending, Active, Expired). To see the\n complete list of status values available for a training plan, refer to the\n Status attribute within the \n TrainingPlanSummary\n object.

", + "smithy.api#required": {} + } + }, + "StatusMessage": { + "target": "com.amazonaws.sagemaker#TrainingPlanStatusMessage", + "traits": { + "smithy.api#documentation": "

A message providing additional information about the current status of the training\n plan.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationHours", + "traits": { + "smithy.api#documentation": "

The number of whole hours in the total duration for this training plan.

" + } + }, + "DurationMinutes": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationMinutes", + "traits": { + "smithy.api#documentation": "

The additional minutes beyond whole hours in the total duration for this training\n plan.

" + } + }, + "StartTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The start time of the training plan.

" + } + }, + "EndTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the training plan.

" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.sagemaker#String256", + "traits": { + "smithy.api#documentation": "

The upfront fee for the training plan.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.sagemaker#CurrencyCode", + "traits": { + "smithy.api#documentation": "

The currency code for the upfront fee (e.g., USD).

" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.sagemaker#TotalInstanceCount", + "traits": { + "smithy.api#documentation": "

The total number of instances reserved in this training plan.

" + } + }, + "AvailableInstanceCount": { + "target": "com.amazonaws.sagemaker#AvailableInstanceCount", + "traits": { + "smithy.api#documentation": "

The number of instances currently available for use in this training plan.

" + } + }, + "InUseInstanceCount": { + "target": "com.amazonaws.sagemaker#InUseInstanceCount", + "traits": { + "smithy.api#documentation": "

The number of instances currently in use from this training plan.

" + } + }, + "TargetResources": { + "target": "com.amazonaws.sagemaker#SageMakerResourceNames", + "traits": { + "smithy.api#documentation": "

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) that can use this training\n plan.

\n

Training plans are specific to their target resource.

\n " + } + }, + "ReservedCapacitySummaries": { + "target": "com.amazonaws.sagemaker#ReservedCapacitySummaries", + "traits": { + "smithy.api#documentation": "

The list of Reserved Capacity providing the underlying compute resources of the plan.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#DescribeTransformJob": { "type": "operation", "input": { @@ -28541,6 +30042,26 @@ "smithy.api#pattern": "^[\\S\\s]*$" } }, + "com.amazonaws.sagemaker#ErrorInfo": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.sagemaker#NonEmptyString64", + "traits": { + "smithy.api#documentation": "

The error code for an invalid or failed operation.

" + } + }, + "Reason": { + "target": "com.amazonaws.sagemaker#NonEmptyString256", + "traits": { + "smithy.api#documentation": "

The failure reason for the operation.

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

This is an error field object that contains the error code and the reason for an operation failure.

" + } + }, "com.amazonaws.sagemaker#ExcludeFeaturesAttribute": { "type": "string", "traits": { @@ -28894,6 +30415,44 @@ "smithy.api#documentation": "

A parameter to activate explainers.

" } }, + "com.amazonaws.sagemaker#FSxLustreFileSystem": { + "type": "structure", + "members": { + "FileSystemId": { + "target": "com.amazonaws.sagemaker#FileSystemId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Amazon FSx for Lustre file system ID.

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

A custom file system in Amazon FSx for Lustre.

" + } + }, + "com.amazonaws.sagemaker#FSxLustreFileSystemConfig": { + "type": "structure", + "members": { + "FileSystemId": { + "target": "com.amazonaws.sagemaker#FileSystemId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The globally unique, 17-digit, ID of the file system, assigned by Amazon FSx for Lustre.

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

The path to the file system directory that is accessible in Amazon SageMaker Studio. Permitted\n users can access only this directory and below.

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

The settings for assigning a custom Amazon FSx for Lustre file system to a user profile or space for an\n Amazon SageMaker Domain.

" + } + }, "com.amazonaws.sagemaker#FailStepMetadata": { "type": "structure", "members": { @@ -28934,6 +30493,32 @@ } } }, + "com.amazonaws.sagemaker#FairShare": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.sagemaker#FairShareWeight": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.sagemaker#FeatureAdditions": { "type": "list", "member": { @@ -33395,6 +34980,14 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#InUseInstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.sagemaker#InferenceComponentArn": { "type": "string", "traits": { @@ -34489,6 +36082,14 @@ } } }, + "com.amazonaws.sagemaker#InstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, "com.amazonaws.sagemaker#InstanceGroup": { "type": "structure", "members": { @@ -34543,6 +36144,62 @@ } } }, + "com.amazonaws.sagemaker#InstanceGroupStatus": { + "type": "enum", + "members": { + "INSERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InService" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Creating" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Updating" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "DEGRADED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Degraded" + } + }, + "SYSTEMUPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SystemUpdating" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleting" + } + } + } + }, + "com.amazonaws.sagemaker#InstanceGroupTrainingPlanStatus": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + } + } + }, "com.amazonaws.sagemaker#InstanceGroups": { "type": "list", "member": { @@ -37780,6 +39437,106 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#ListClusterSchedulerConfigs": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListClusterSchedulerConfigsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListClusterSchedulerConfigsResponse" + }, + "traits": { + "smithy.api#documentation": "

List the cluster policy configurations.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ClusterSchedulerConfigSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListClusterSchedulerConfigsRequest": { + "type": "structure", + "members": { + "CreatedAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter for after this creation time. The input for this parameter is a Unix timestamp.\n To convert a date and time into a Unix timestamp, see EpochConverter.

" + } + }, + "CreatedBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter for before this creation time. The input for this parameter is a Unix timestamp.\n To convert a date and time into a Unix timestamp, see EpochConverter.

" + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

Filter for name containing this string.

" + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#documentation": "

Filter for ARN of the cluster.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#documentation": "

Filter for status.

" + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#SortClusterSchedulerConfigBy", + "traits": { + "smithy.api#documentation": "

Filter for sorting the list by a given value. For example, sort by name, creation time,\n or status.

" + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

The order of the list. By default, listed in Descending order according to\n by SortBy. To change the list order, you can specify SortOrder to\n be Ascending.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of cluster policies to list.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#ListClusterSchedulerConfigsResponse": { + "type": "structure", + "members": { + "ClusterSchedulerConfigSummaries": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigSummaryList", + "traits": { + "smithy.api#documentation": "

Summaries of the cluster policies.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#ListClusters": { "type": "operation", "input": { @@ -37836,6 +39593,12 @@ "traits": { "smithy.api#documentation": "

The sort order for results. The default value is Ascending.

" } + }, + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan to filter clusters by. For more information about\n reserving GPU capacity for your SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } } }, "traits": { @@ -38099,6 +39862,106 @@ } } }, + "com.amazonaws.sagemaker#ListComputeQuotas": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListComputeQuotasRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListComputeQuotasResponse" + }, + "traits": { + "smithy.api#documentation": "

List the resource allocation definitions.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ComputeQuotaSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListComputeQuotasRequest": { + "type": "structure", + "members": { + "CreatedAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter for after this creation time. The input for this parameter is a Unix timestamp.\n To convert a date and time into a Unix timestamp, see EpochConverter.

" + } + }, + "CreatedBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter for before this creation time. The input for this parameter is a Unix timestamp.\n To convert a date and time into a Unix timestamp, see EpochConverter.

" + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

Filter for name containing this string.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#SchedulerResourceStatus", + "traits": { + "smithy.api#documentation": "

Filter for status.

" + } + }, + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#documentation": "

Filter for ARN of the cluster.

" + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#SortQuotaBy", + "traits": { + "smithy.api#documentation": "

Filter for sorting the list by a given value. For example, sort by name, creation time,\n or status.

" + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

The order of the list. By default, listed in Descending order according to\n by SortBy. To change the list order, you can specify SortOrder to\n be Ascending.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of compute allocation definitions to list.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#ListComputeQuotasResponse": { + "type": "structure", + "members": { + "ComputeQuotaSummaries": { + "target": "com.amazonaws.sagemaker#ComputeQuotaSummaryList", + "traits": { + "smithy.api#documentation": "

Summaries of the compute allocation definitions.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#ListContexts": { "type": "operation", "input": { @@ -42646,6 +44509,64 @@ } } }, + "com.amazonaws.sagemaker#ListPartnerApps": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListPartnerAppsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListPartnerAppsResponse" + }, + "traits": { + "smithy.api#documentation": "

Lists all of the SageMaker Partner AI Apps in an account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListPartnerAppsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

This parameter defines the maximum number of results that can be returned in a single\n response. The MaxResults parameter is an upper bound, not a target. If there are\n more results available than the value specified, a NextToken is provided in the\n response. The NextToken indicates that the user should get the next set of\n results by providing this token as a part of a subsequent call. The default value for\n MaxResults is 10.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#ListPartnerAppsResponse": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.sagemaker#PartnerAppSummaries", + "traits": { + "smithy.api#documentation": "

The information related to each of the SageMaker Partner AI Apps in an account.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous response was truncated, you will receive this token. Use it in your next\n request to receive the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#ListPipelineExecutionSteps": { "type": "operation", "input": { @@ -43852,6 +45773,12 @@ "traits": { "smithy.api#documentation": "

A filter that retrieves only training jobs with a specific warm pool status.

" } + }, + "TrainingPlanArnEquals": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan to filter training jobs by. For more information\n about reserving GPU capacity for your SageMaker training jobs using Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } } }, "traits": { @@ -43880,6 +45807,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#ListTrainingPlans": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListTrainingPlansRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListTrainingPlansResponse" + }, + "traits": { + "smithy.api#documentation": "

Retrieves a list of training plans for the current account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TrainingPlanSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListTrainingPlansRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

A token to continue pagination if more results are available.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in the response.

" + } + }, + "StartTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter to list only training plans with an actual start time after this date.

" + } + }, + "StartTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

Filter to list only training plans with an actual start time before this date.

" + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#TrainingPlanSortBy", + "traits": { + "smithy.api#documentation": "

The training plan field to sort the results by (e.g., StartTime, Status).

" + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#TrainingPlanSortOrder", + "traits": { + "smithy.api#documentation": "

The order to sort the results (Ascending or Descending).

" + } + }, + "Filters": { + "target": "com.amazonaws.sagemaker#TrainingPlanFilters", + "traits": { + "smithy.api#documentation": "

Additional filters to apply to the list of training plans.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#ListTrainingPlansResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

A token to continue pagination if more results are available.

" + } + }, + "TrainingPlanSummaries": { + "target": "com.amazonaws.sagemaker#TrainingPlanSummaries", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of summary information for the training plans.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#ListTransformJobs": { "type": "operation", "input": { @@ -45089,6 +47106,36 @@ "traits": { "smithy.api#enumValue": "PerformanceEvaluation" } + }, + "HYPER_POD_CLUSTERS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HyperPodClusters" + } + }, + "LAKERA_GUARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LakeraGuard" + } + }, + "COMET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Comet" + } + }, + "DEEPCHECKS_LLM_EVALUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeepchecksLLMEvaluation" + } + }, + "FIDDLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Fiddler" + } } } }, @@ -51094,6 +53141,218 @@ "target": "com.amazonaws.sagemaker#Parent" } }, + "com.amazonaws.sagemaker#PartnerAppAdminUserList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#NonEmptyString256" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.sagemaker#PartnerAppArguments": { + "type": "map", + "key": { + "target": "com.amazonaws.sagemaker#NonEmptyString256" + }, + "value": { + "target": "com.amazonaws.sagemaker#String1024" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.sagemaker#PartnerAppArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:partner-app\\/app-[A-Z0-9]{12}$" + } + }, + "com.amazonaws.sagemaker#PartnerAppAuthType": { + "type": "enum", + "members": { + "IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM" + } + } + } + }, + "com.amazonaws.sagemaker#PartnerAppConfig": { + "type": "structure", + "members": { + "AdminUsers": { + "target": "com.amazonaws.sagemaker#PartnerAppAdminUserList", + "traits": { + "smithy.api#documentation": "

The list of users that are given admin access to the SageMaker Partner AI App.

" + } + }, + "Arguments": { + "target": "com.amazonaws.sagemaker#PartnerAppArguments", + "traits": { + "smithy.api#documentation": "

This is a map of required inputs for a SageMaker Partner AI App. Based on the application type, the map is populated with a key and value pair that is specific to the user and application.

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

Configuration settings for the SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#PartnerAppMaintenanceConfig": { + "type": "structure", + "members": { + "MaintenanceWindowStart": { + "target": "com.amazonaws.sagemaker#WeeklyScheduleTimeFormat", + "traits": { + "smithy.api#documentation": "

The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. This value must take the following format: 3-letter-day:24-h-hour:minute. For example: TUE:03:30.

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

Maintenance configuration settings for the SageMaker Partner AI App.

" + } + }, + "com.amazonaws.sagemaker#PartnerAppName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.sagemaker#PartnerAppStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Creating" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Updating" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleting" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Available" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateFailed" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleted" + } + } + } + }, + "com.amazonaws.sagemaker#PartnerAppSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#PartnerAppSummary" + } + }, + "com.amazonaws.sagemaker#PartnerAppSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App.

" + } + }, + "Name": { + "target": "com.amazonaws.sagemaker#PartnerAppName", + "traits": { + "smithy.api#documentation": "

The name of the SageMaker Partner AI App.

" + } + }, + "Type": { + "target": "com.amazonaws.sagemaker#PartnerAppType", + "traits": { + "smithy.api#documentation": "

The type of SageMaker Partner AI App to create. Must be one of the following: lakera-guard, comet, deepchecks-llm-evaluation, or fiddler.

" + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#PartnerAppStatus", + "traits": { + "smithy.api#documentation": "

The status of the SageMaker Partner AI App.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The creation time of the SageMaker Partner AI App.

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

A subset of information related to a SageMaker Partner AI App. This information is used as part of the ListPartnerApps API response.

" + } + }, + "com.amazonaws.sagemaker#PartnerAppType": { + "type": "enum", + "members": { + "LAKERA_GUARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lakera-guard" + } + }, + "COMET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "comet" + } + }, + "DEEPCHECKS_LLM_EVALUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deepchecks-llm-evaluation" + } + }, + "FIDDLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fiddler" + } + } + } + }, "com.amazonaws.sagemaker#PendingDeploymentSummary": { "type": "structure", "members": { @@ -51985,9 +54244,71 @@ "smithy.api#documentation": "

A specification for a predefined metric.

" } }, + "com.amazonaws.sagemaker#PreemptTeamTasks": { + "type": "enum", + "members": { + "NEVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Never" + } + }, + "LOWERPRIORITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LowerPriority" + } + } + } + }, "com.amazonaws.sagemaker#PresignedDomainUrl": { "type": "string" }, + "com.amazonaws.sagemaker#PriorityClass": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerPriorityClassName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Name of the priority class.

", + "smithy.api#required": {} + } + }, + "Weight": { + "target": "com.amazonaws.sagemaker#PriorityWeight", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Weight of the priority class. The value is within a range from 0 to 100, where 0 is the\n default.

\n

A weight of 0 is the lowest priority and 100 is the highest. Weight 0 is the\n default.

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

Priority class configuration. When included in PriorityClasses, these class\n configurations define how tasks are queued.

" + } + }, + "com.amazonaws.sagemaker#PriorityClassList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#PriorityClass" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.sagemaker#PriorityWeight": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.sagemaker#ProbabilityThresholdAttribute": { "type": "double" }, @@ -57077,6 +59398,261 @@ "smithy.api#pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$" } }, + "com.amazonaws.sagemaker#ReservedCapacityArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 50, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:reserved-capacity/" + } + }, + "com.amazonaws.sagemaker#ReservedCapacityDurationHours": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 87600 + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacityDurationMinutes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 59 + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacityInstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacityInstanceType": { + "type": "enum", + "members": { + "ML_P4D_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p4d.24xlarge" + } + }, + "ML_P5_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p5.48xlarge" + } + }, + "ML_P5E_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p5e.48xlarge" + } + }, + "ML_P5EN_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p5en.48xlarge" + } + }, + "ML_TRN2_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn2.48xlarge" + } + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacityOffering": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.sagemaker#ReservedCapacityInstanceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance type for the reserved capacity offering.

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.sagemaker#ReservedCapacityInstanceCount", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances in the reserved capacity offering.

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

The availability zone for the reserved capacity offering.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#ReservedCapacityDurationHours", + "traits": { + "smithy.api#documentation": "

The number of whole hours in the total duration for this reserved capacity\n offering.

" + } + }, + "DurationMinutes": { + "target": "com.amazonaws.sagemaker#ReservedCapacityDurationMinutes", + "traits": { + "smithy.api#documentation": "

The additional minutes beyond whole hours in the total duration for this reserved\n capacity offering.

" + } + }, + "StartTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The start time of the reserved capacity offering.

" + } + }, + "EndTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the reserved capacity offering.

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

Details about a reserved capacity offering for a training plan offering.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, + "com.amazonaws.sagemaker#ReservedCapacityOfferings": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ReservedCapacityOffering" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacityStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Active" + } + }, + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Scheduled" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expired" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacitySummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ReservedCapacitySummary" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.sagemaker#ReservedCapacitySummary": { + "type": "structure", + "members": { + "ReservedCapacityArn": { + "target": "com.amazonaws.sagemaker#ReservedCapacityArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the reserved capacity.

", + "smithy.api#required": {} + } + }, + "InstanceType": { + "target": "com.amazonaws.sagemaker#ReservedCapacityInstanceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance type for the reserved capacity.

", + "smithy.api#required": {} + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.sagemaker#TotalInstanceCount", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The total number of instances in the reserved capacity.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#ReservedCapacityStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The current status of the reserved capacity.

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

The availability zone for the reserved capacity.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#ReservedCapacityDurationHours", + "traits": { + "smithy.api#documentation": "

The number of whole hours in the total duration for this reserved capacity.

" + } + }, + "DurationMinutes": { + "target": "com.amazonaws.sagemaker#ReservedCapacityDurationMinutes", + "traits": { + "smithy.api#documentation": "

The additional minutes beyond whole hours in the total duration for this reserved\n capacity.

" + } + }, + "StartTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The start time of the reserved capacity.

" + } + }, + "EndTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the reserved capacity.

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

Details of a reserved capacity for the training plan.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, "com.amazonaws.sagemaker#ResolvedAttributes": { "type": "structure", "members": { @@ -57249,6 +59825,12 @@ "traits": { "smithy.api#documentation": "

The configuration of a heterogeneous cluster in JSON format.

" } + }, + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan to use for this resource configuration.

" + } } }, "traits": { @@ -57373,6 +59955,51 @@ } } }, + "com.amazonaws.sagemaker#ResourceSharingConfig": { + "type": "structure", + "members": { + "Strategy": { + "target": "com.amazonaws.sagemaker#ResourceSharingStrategy", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The strategy of how idle compute is shared within the cluster. The following are the\n options of strategies.

\n \n

Default is LendandBorrow.

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

The limit on how much idle compute can be borrowed.The values can be 1 - 500 percent of\n idle compute that the team is allowed to borrow.

\n

Default is 50.

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

Resource sharing configuration.

" + } + }, + "com.amazonaws.sagemaker#ResourceSharingStrategy": { + "type": "enum", + "members": { + "LEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lend" + } + }, + "DONTLEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DontLend" + } + }, + "LENDANDBORROW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LendAndBorrow" + } + } + } + }, "com.amazonaws.sagemaker#ResourceSpec": { "type": "structure", "members": { @@ -58059,12 +60686,18 @@ { "target": "com.amazonaws.sagemaker#CreateCluster" }, + { + "target": "com.amazonaws.sagemaker#CreateClusterSchedulerConfig" + }, { "target": "com.amazonaws.sagemaker#CreateCodeRepository" }, { "target": "com.amazonaws.sagemaker#CreateCompilationJob" }, + { + "target": "com.amazonaws.sagemaker#CreateComputeQuota" + }, { "target": "com.amazonaws.sagemaker#CreateContext" }, @@ -58170,6 +60803,12 @@ { "target": "com.amazonaws.sagemaker#CreateOptimizationJob" }, + { + "target": "com.amazonaws.sagemaker#CreatePartnerApp" + }, + { + "target": "com.amazonaws.sagemaker#CreatePartnerAppPresignedUrl" + }, { "target": "com.amazonaws.sagemaker#CreatePipeline" }, @@ -58197,6 +60836,9 @@ { "target": "com.amazonaws.sagemaker#CreateTrainingJob" }, + { + "target": "com.amazonaws.sagemaker#CreateTrainingPlan" + }, { "target": "com.amazonaws.sagemaker#CreateTransformJob" }, @@ -58236,12 +60878,18 @@ { "target": "com.amazonaws.sagemaker#DeleteCluster" }, + { + "target": "com.amazonaws.sagemaker#DeleteClusterSchedulerConfig" + }, { "target": "com.amazonaws.sagemaker#DeleteCodeRepository" }, { "target": "com.amazonaws.sagemaker#DeleteCompilationJob" }, + { + "target": "com.amazonaws.sagemaker#DeleteComputeQuota" + }, { "target": "com.amazonaws.sagemaker#DeleteContext" }, @@ -58341,6 +60989,9 @@ { "target": "com.amazonaws.sagemaker#DeleteOptimizationJob" }, + { + "target": "com.amazonaws.sagemaker#DeletePartnerApp" + }, { "target": "com.amazonaws.sagemaker#DeletePipeline" }, @@ -58401,12 +61052,18 @@ { "target": "com.amazonaws.sagemaker#DescribeClusterNode" }, + { + "target": "com.amazonaws.sagemaker#DescribeClusterSchedulerConfig" + }, { "target": "com.amazonaws.sagemaker#DescribeCodeRepository" }, { "target": "com.amazonaws.sagemaker#DescribeCompilationJob" }, + { + "target": "com.amazonaws.sagemaker#DescribeComputeQuota" + }, { "target": "com.amazonaws.sagemaker#DescribeContext" }, @@ -58518,6 +61175,9 @@ { "target": "com.amazonaws.sagemaker#DescribeOptimizationJob" }, + { + "target": "com.amazonaws.sagemaker#DescribePartnerApp" + }, { "target": "com.amazonaws.sagemaker#DescribePipeline" }, @@ -58545,6 +61205,9 @@ { "target": "com.amazonaws.sagemaker#DescribeTrainingJob" }, + { + "target": "com.amazonaws.sagemaker#DescribeTrainingPlan" + }, { "target": "com.amazonaws.sagemaker#DescribeTransformJob" }, @@ -58626,12 +61289,18 @@ { "target": "com.amazonaws.sagemaker#ListClusters" }, + { + "target": "com.amazonaws.sagemaker#ListClusterSchedulerConfigs" + }, { "target": "com.amazonaws.sagemaker#ListCodeRepositories" }, { "target": "com.amazonaws.sagemaker#ListCompilationJobs" }, + { + "target": "com.amazonaws.sagemaker#ListComputeQuotas" + }, { "target": "com.amazonaws.sagemaker#ListContexts" }, @@ -58764,6 +61433,9 @@ { "target": "com.amazonaws.sagemaker#ListOptimizationJobs" }, + { + "target": "com.amazonaws.sagemaker#ListPartnerApps" + }, { "target": "com.amazonaws.sagemaker#ListPipelineExecutions" }, @@ -58806,6 +61478,9 @@ { "target": "com.amazonaws.sagemaker#ListTrainingJobsForHyperParameterTuningJob" }, + { + "target": "com.amazonaws.sagemaker#ListTrainingPlans" + }, { "target": "com.amazonaws.sagemaker#ListTransformJobs" }, @@ -58842,6 +61517,9 @@ { "target": "com.amazonaws.sagemaker#Search" }, + { + "target": "com.amazonaws.sagemaker#SearchTrainingPlanOfferings" + }, { "target": "com.amazonaws.sagemaker#SendPipelineExecutionStepFailure" }, @@ -58926,12 +61604,18 @@ { "target": "com.amazonaws.sagemaker#UpdateCluster" }, + { + "target": "com.amazonaws.sagemaker#UpdateClusterSchedulerConfig" + }, { "target": "com.amazonaws.sagemaker#UpdateClusterSoftware" }, { "target": "com.amazonaws.sagemaker#UpdateCodeRepository" }, + { + "target": "com.amazonaws.sagemaker#UpdateComputeQuota" + }, { "target": "com.amazonaws.sagemaker#UpdateContext" }, @@ -58998,6 +61682,9 @@ { "target": "com.amazonaws.sagemaker#UpdateNotebookInstanceLifecycleConfig" }, + { + "target": "com.amazonaws.sagemaker#UpdatePartnerApp" + }, { "target": "com.amazonaws.sagemaker#UpdatePipeline" }, @@ -60101,6 +62788,34 @@ "smithy.api#pattern": "^arn:[a-z0-9-\\.]{1,63}:sagemaker:\\w+(?:-\\w+)+:aws:hub-content\\/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}\\/Model\\/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}$" } }, + "com.amazonaws.sagemaker#SageMakerResourceName": { + "type": "enum", + "members": { + "TRAINING_JOB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "training-job" + } + }, + "HYPERPOD_CLUSTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hyperpod-cluster" + } + } + } + }, + "com.amazonaws.sagemaker#SageMakerResourceNames": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#SageMakerResourceName" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.sagemaker#SagemakerServicecatalogStatus": { "type": "enum", "members": { @@ -60263,6 +62978,103 @@ } } }, + "com.amazonaws.sagemaker#SchedulerConfig": { + "type": "structure", + "members": { + "PriorityClasses": { + "target": "com.amazonaws.sagemaker#PriorityClassList", + "traits": { + "smithy.api#documentation": "

List of the priority classes, PriorityClass, of the cluster policy. When\n specified, these class configurations define how tasks are queued.

" + } + }, + "FairShare": { + "target": "com.amazonaws.sagemaker#FairShare", + "traits": { + "smithy.api#documentation": "

When enabled, entities borrow idle compute based on their assigned\n FairShareWeight.

\n

When disabled, entities borrow idle compute based on a first-come first-serve\n basis.

\n

Default is Enabled.

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

Cluster policy configuration. This policy is used for task prioritization and fair-share\n allocation. This helps prioritize critical workloads and distributes idle compute\n across entities.

" + } + }, + "com.amazonaws.sagemaker#SchedulerResourceStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Creating" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateFailed" + } + }, + "CREATE_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateRollbackFailed" + } + }, + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Created" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Updating" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateFailed" + } + }, + "UPDATE_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateRollbackFailed" + } + }, + "UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Updated" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleting" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteFailed" + } + }, + "DELETE_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteRollbackFailed" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleted" + } + } + } + }, "com.amazonaws.sagemaker#Scope": { "type": "string", "traits": { @@ -60513,6 +63325,89 @@ } } }, + "com.amazonaws.sagemaker#SearchTrainingPlanOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#SearchTrainingPlanOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#SearchTrainingPlanOfferingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

Searches for available training plan offerings based on specified criteria.

\n \n

For more information about how to reserve GPU capacity for your SageMaker training jobs or\n SageMaker HyperPod clusters using Amazon SageMaker Training Plan , see \n CreateTrainingPlan\n .

" + } + }, + "com.amazonaws.sagemaker#SearchTrainingPlanOfferingsRequest": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.sagemaker#ReservedCapacityInstanceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of instance you want to search for in the available training plan offerings.\n This field allows you to filter the search results based on the specific compute resources\n you require for your SageMaker training jobs or SageMaker HyperPod clusters. When searching for training\n plan offerings, specifying the instance type helps you find Reserved Instances that match\n your computational needs.

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.sagemaker#ReservedCapacityInstanceCount", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances you want to reserve in the training plan offerings. This allows\n you to specify the quantity of compute resources needed for your SageMaker training jobs or\n SageMaker HyperPod clusters, helping you find reserved capacity offerings that match your\n requirements.

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

A filter to search for training plan offerings with a start time after a specified\n date.

" + } + }, + "EndTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

A filter to search for reserved capacity offerings with an end time before a specified\n date.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationHoursInput", + "traits": { + "smithy.api#documentation": "

The desired duration in hours for the training plan offerings.

" + } + }, + "TargetResources": { + "target": "com.amazonaws.sagemaker#SageMakerResourceNames", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) to search for in the\n offerings.

\n

Training plans are specific to their target resource.

\n ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#SearchTrainingPlanOfferingsResponse": { + "type": "structure", + "members": { + "TrainingPlanOfferings": { + "target": "com.amazonaws.sagemaker#TrainingPlanOfferings", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of training plan offerings that match the search criteria.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#SecondaryStatus": { "type": "enum", "members": { @@ -61271,6 +64166,29 @@ } } }, + "com.amazonaws.sagemaker#SortClusterSchedulerConfigBy": { + "type": "enum", + "members": { + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Name" + } + }, + "CREATION_TIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreationTime" + } + }, + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Status" + } + } + } + }, "com.amazonaws.sagemaker#SortContextsBy": { "type": "enum", "members": { @@ -61396,6 +64314,35 @@ } } }, + "com.amazonaws.sagemaker#SortQuotaBy": { + "type": "enum", + "members": { + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Name" + } + }, + "CREATION_TIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreationTime" + } + }, + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Status" + } + }, + "CLUSTER_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ClusterArn" + } + } + } + }, "com.amazonaws.sagemaker#SortTrackingServerBy": { "type": "enum", "members": { @@ -63105,6 +66052,15 @@ "smithy.api#pattern": "^.+$" } }, + "com.amazonaws.sagemaker#String2048": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + } + } + }, "com.amazonaws.sagemaker#String256": { "type": "string", "traits": { @@ -64522,6 +67478,14 @@ } } }, + "com.amazonaws.sagemaker#TotalInstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.sagemaker#TrackingServerArn": { "type": "string", "traits": { @@ -65183,6 +68147,12 @@ "smithy.api#enumValue": "ml.p5e.48xlarge" } }, + "ML_P5EN_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.p5en.48xlarge" + } + }, "ML_C5_XLARGE": { "target": "smithy.api#Unit", "traits": { @@ -65405,6 +68375,12 @@ "smithy.api#enumValue": "ml.trn1n.32xlarge" } }, + "ML_TRN2_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn2.48xlarge" + } + }, "ML_M6I_LARGE": { "target": "smithy.api#Unit", "traits": { @@ -66134,12 +69110,399 @@ "traits": { "smithy.api#documentation": "

The status of the warm pool associated with the training job.

" } + }, + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan associated with this training job.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

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

Provides summary information about a training job.

" } }, + "com.amazonaws.sagemaker#TrainingPlanArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 50, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:training-plan/" + } + }, + "com.amazonaws.sagemaker#TrainingPlanArns": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn" + } + }, + "com.amazonaws.sagemaker#TrainingPlanDurationHours": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 87600 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanDurationHoursInput": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 87600 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanDurationMinutes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 59 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sagemaker#TrainingPlanFilterName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the filter field (e.g., Status, InstanceType).

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.sagemaker#String64", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The value to filter by for the specified field.

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

A filter to apply when listing or searching for training plans.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, + "com.amazonaws.sagemaker#TrainingPlanFilterName": { + "type": "enum", + "members": { + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Status" + } + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#TrainingPlanFilter" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}$" + } + }, + "com.amazonaws.sagemaker#TrainingPlanOffering": { + "type": "structure", + "members": { + "TrainingPlanOfferingId": { + "target": "com.amazonaws.sagemaker#TrainingPlanOfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier for this training plan offering.

", + "smithy.api#required": {} + } + }, + "TargetResources": { + "target": "com.amazonaws.sagemaker#SageMakerResourceNames", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) for this training plan\n offering.

\n

Training plans are specific to their target resource.

\n ", + "smithy.api#required": {} + } + }, + "RequestedStartTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The requested start time that the user specified when searching for the training plan\n offering.

" + } + }, + "RequestedEndTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The requested end time that the user specified when searching for the training plan\n offering.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationHours", + "traits": { + "smithy.api#documentation": "

The number of whole hours in the total duration for this training plan offering.

" + } + }, + "DurationMinutes": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationMinutes", + "traits": { + "smithy.api#documentation": "

The additional minutes beyond whole hours in the total duration for this training plan\n offering.

" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.sagemaker#String256", + "traits": { + "smithy.api#documentation": "

The upfront fee for this training plan offering.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.sagemaker#CurrencyCode", + "traits": { + "smithy.api#documentation": "

The currency code for the upfront fee (e.g., USD).

" + } + }, + "ReservedCapacityOfferings": { + "target": "com.amazonaws.sagemaker#ReservedCapacityOfferings", + "traits": { + "smithy.api#documentation": "

A list of reserved capacity offerings associated with this training plan\n offering.

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

Details about a training plan offering.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, + "com.amazonaws.sagemaker#TrainingPlanOfferingId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-z0-9\\-]+$" + } + }, + "com.amazonaws.sagemaker#TrainingPlanOfferings": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#TrainingPlanOffering" + }, + "traits": { + "smithy.api#length": { + "min": 0 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanSortBy": { + "type": "enum", + "members": { + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TrainingPlanName" + } + }, + "START_TIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StartTime" + } + }, + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Status" + } + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanSortOrder": { + "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.sagemaker#TrainingPlanStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Active" + } + }, + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Scheduled" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expired" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanStatusMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.sagemaker#TrainingPlanSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#TrainingPlanSummary" + } + }, + "com.amazonaws.sagemaker#TrainingPlanSummary": { + "type": "structure", + "members": { + "TrainingPlanArn": { + "target": "com.amazonaws.sagemaker#TrainingPlanArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN); of the training plan.

", + "smithy.api#required": {} + } + }, + "TrainingPlanName": { + "target": "com.amazonaws.sagemaker#TrainingPlanName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the training plan.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.sagemaker#TrainingPlanStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The current status of the training plan (e.g., Pending, Active, Expired). To see the\n complete list of status values available for a training plan, refer to the\n Status attribute within the \n TrainingPlanSummary\n object.

", + "smithy.api#required": {} + } + }, + "StatusMessage": { + "target": "com.amazonaws.sagemaker#TrainingPlanStatusMessage", + "traits": { + "smithy.api#documentation": "

A message providing additional information about the current status of the training\n plan.

" + } + }, + "DurationHours": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationHours", + "traits": { + "smithy.api#documentation": "

The number of whole hours in the total duration for this training plan.

" + } + }, + "DurationMinutes": { + "target": "com.amazonaws.sagemaker#TrainingPlanDurationMinutes", + "traits": { + "smithy.api#documentation": "

The additional minutes beyond whole hours in the total duration for this training\n plan.

" + } + }, + "StartTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The start time of the training plan.

" + } + }, + "EndTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the training plan.

" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.sagemaker#String256", + "traits": { + "smithy.api#documentation": "

The upfront fee for the training plan.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.sagemaker#CurrencyCode", + "traits": { + "smithy.api#documentation": "

The currency code for the upfront fee (e.g., USD).

" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.sagemaker#TotalInstanceCount", + "traits": { + "smithy.api#documentation": "

The total number of instances reserved in this training plan.

" + } + }, + "AvailableInstanceCount": { + "target": "com.amazonaws.sagemaker#AvailableInstanceCount", + "traits": { + "smithy.api#documentation": "

The number of instances currently available for use in this training plan.

" + } + }, + "InUseInstanceCount": { + "target": "com.amazonaws.sagemaker#InUseInstanceCount", + "traits": { + "smithy.api#documentation": "

The number of instances currently in use from this training plan.

" + } + }, + "TargetResources": { + "target": "com.amazonaws.sagemaker#SageMakerResourceNames", + "traits": { + "smithy.api#documentation": "

The target resources (e.g., training jobs, HyperPod clusters) that can use this training\n plan.

\n

Training plans are specific to their target resource.

\n " + } + }, + "ReservedCapacitySummaries": { + "target": "com.amazonaws.sagemaker#ReservedCapacitySummaries", + "traits": { + "smithy.api#documentation": "

A list of reserved capacities associated with this training plan, including details such\n as instance types, counts, and availability zones.

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

Details of the training plan.

\n

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using\n Amazon SageMaker Training Plan, see \n CreateTrainingPlan\n .

" + } + }, "com.amazonaws.sagemaker#TrainingRepositoryAccessMode": { "type": "enum", "members": { @@ -68556,6 +71919,89 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#UpdateClusterSchedulerConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateClusterSchedulerConfigRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#UpdateClusterSchedulerConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Update the cluster policy configuration.

" + } + }, + "com.amazonaws.sagemaker#UpdateClusterSchedulerConfigRequest": { + "type": "structure", + "members": { + "ClusterSchedulerConfigId": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the cluster policy.

", + "smithy.api#required": {} + } + }, + "TargetVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Target version.

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

Cluster policy configuration.

" + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the cluster policy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#UpdateClusterSchedulerConfigResponse": { + "type": "structure", + "members": { + "ClusterSchedulerConfigArn": { + "target": "com.amazonaws.sagemaker#ClusterSchedulerConfigArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the cluster policy.

", + "smithy.api#required": {} + } + }, + "ClusterSchedulerConfigVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Version of the cluster policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#UpdateClusterSoftware": { "type": "operation", "input": { @@ -68663,6 +72109,101 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#UpdateComputeQuota": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateComputeQuotaRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#UpdateComputeQuotaResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Update the compute allocation definition.

" + } + }, + "com.amazonaws.sagemaker#UpdateComputeQuotaRequest": { + "type": "structure", + "members": { + "ComputeQuotaId": { + "target": "com.amazonaws.sagemaker#ComputeQuotaId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ID of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "TargetVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Target version.

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

Configuration of the compute allocation definition. This includes the resource sharing\n option, and the setting to preempt low priority tasks.

" + } + }, + "ComputeQuotaTarget": { + "target": "com.amazonaws.sagemaker#ComputeQuotaTarget", + "traits": { + "smithy.api#documentation": "

The target entity to allocate compute resources to.

" + } + }, + "ActivationState": { + "target": "com.amazonaws.sagemaker#ActivationState", + "traits": { + "smithy.api#documentation": "

The state of the compute allocation being described. Use to enable or disable compute\n allocation.

\n

Default is Enabled.

" + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#EntityDescription", + "traits": { + "smithy.api#documentation": "

Description of the compute allocation definition.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#UpdateComputeQuotaResponse": { + "type": "structure", + "members": { + "ComputeQuotaArn": { + "target": "com.amazonaws.sagemaker#ComputeQuotaArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

ARN of the compute allocation definition.

", + "smithy.api#required": {} + } + }, + "ComputeQuotaVersion": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Version of the compute allocation definition.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#UpdateContext": { "type": "operation", "input": { @@ -70269,6 +73810,93 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#UpdatePartnerApp": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdatePartnerAppRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#UpdatePartnerAppResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Updates all of the SageMaker Partner AI Apps in an account.

" + } + }, + "com.amazonaws.sagemaker#UpdatePartnerAppRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App to update.

", + "smithy.api#required": {} + } + }, + "MaintenanceConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppMaintenanceConfig", + "traits": { + "smithy.api#documentation": "

Maintenance configuration settings for the SageMaker Partner AI App.

" + } + }, + "Tier": { + "target": "com.amazonaws.sagemaker#NonEmptyString64", + "traits": { + "smithy.api#documentation": "

Indicates the instance type and size of the cluster attached to the SageMaker Partner AI App.

" + } + }, + "ApplicationConfig": { + "target": "com.amazonaws.sagemaker#PartnerAppConfig", + "traits": { + "smithy.api#documentation": "

Configuration settings for the SageMaker Partner AI App.

" + } + }, + "EnableIamSessionBasedIdentity": { + "target": "com.amazonaws.sagemaker#Boolean", + "traits": { + "smithy.api#documentation": "

When set to TRUE, the SageMaker Partner AI App sets the Amazon Web Services IAM session name or the authenticated IAM user as the identity of the SageMaker Partner AI App user.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.sagemaker#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique token that guarantees that the call to this API is idempotent.

", + "smithy.api#idempotencyToken": {} + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

Each tag consists of a key and an optional value. Tag keys must be unique per\n resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#UpdatePartnerAppResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.sagemaker#PartnerAppArn", + "traits": { + "smithy.api#documentation": "

The ARN of the SageMaker Partner AI App that was updated.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#UpdatePipeline": { "type": "operation", "input": { @@ -71749,6 +75377,16 @@ "smithy.api#pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$" } }, + "com.amazonaws.sagemaker#WeeklyScheduleTimeFormat": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 9 + }, + "smithy.api#pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$" + } + }, "com.amazonaws.sagemaker#WorkerAccessConfiguration": { "type": "structure", "members": { From 384679bf53b8f5e43fc86c471d2e4475851671a4 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 4 Dec 2024 19:28:51 +0000 Subject: [PATCH 02/21] Regenerated Clients --- .../41575353444b40ffbf474f4155544f00.json | 9 + .../752bed98e3a74857bfd1328c5d83d12f.json | 8 + .../a0274ad5111d49b6aee0d4def7c16234.json | 8 + .../a1e1e7e0d8c442a58710de7a2e051c9f.json | 8 + .../a8a77fadb4444724a3a8931c6b27b762.json | 8 + .../be02e0fb9f7341a494dad62dd15af644.json | 8 + .../c03222513c2c4bedbedead6d8d051764.json | 8 + .../ca46f610073445d495baa8760c42037c.json | 8 + .../d72ed3ee22fc405a90029df4f52afd6b.json | 8 + .../api_op_CreateMarketplaceModelEndpoint.go | 225 + .../api_op_DeleteMarketplaceModelEndpoint.go | 152 + ...i_op_DeregisterMarketplaceModelEndpoint.go | 154 + .../api_op_GetMarketplaceModelEndpoint.go | 159 + service/bedrock/api_op_GetPromptRouter.go | 199 + .../api_op_ListMarketplaceModelEndpoints.go | 262 + service/bedrock/api_op_ListPromptRouters.go | 253 + ...api_op_RegisterMarketplaceModelEndpoint.go | 167 + .../api_op_UpdateMarketplaceModelEndpoint.go | 209 + service/bedrock/deserializers.go | 2777 +++- service/bedrock/generated.json | 9 + service/bedrock/serializers.go | 872 +- ..._op_CreateMarketplaceModelEndpoint.go.snap | 42 + ..._op_DeleteMarketplaceModelEndpoint.go.snap | 41 + ...DeregisterMarketplaceModelEndpoint.go.snap | 41 + ...api_op_GetMarketplaceModelEndpoint.go.snap | 41 + .../snapshot/api_op_GetPromptRouter.go.snap | 41 + ...i_op_ListMarketplaceModelEndpoints.go.snap | 40 + .../snapshot/api_op_ListPromptRouters.go.snap | 40 + ...p_RegisterMarketplaceModelEndpoint.go.snap | 41 + ..._op_UpdateMarketplaceModelEndpoint.go.snap | 42 + service/bedrock/snapshot_test.go | 216 + service/bedrock/types/enums.go | 74 + service/bedrock/types/errors.go | 26 + service/bedrock/types/types.go | 221 +- service/bedrock/types/types_exported_test.go | 18 + service/bedrock/validators.go | 343 + .../api_op_CreateKnowledgeBase.go | 10 +- .../api_op_UpdateKnowledgeBase.go | 8 +- service/bedrockagent/deserializers.go | 1326 +- service/bedrockagent/serializers.go | 476 + service/bedrockagent/types/enums.go | 170 +- service/bedrockagent/types/types.go | 382 +- service/bedrockagent/validators.go | 422 +- .../api_op_GenerateQuery.go | 166 + service/bedrockagentruntime/deserializers.go | 464 + service/bedrockagentruntime/generated.json | 1 + service/bedrockagentruntime/serializers.go | 157 + .../snapshot/api_op_GenerateQuery.go.snap | 41 + service/bedrockagentruntime/snapshot_test.go | 24 + service/bedrockagentruntime/types/enums.go | 121 + service/bedrockagentruntime/types/types.go | 127 +- service/bedrockagentruntime/validators.go | 123 + service/bedrockdataautomation/LICENSE.txt | 202 + service/bedrockdataautomation/api_client.go | 929 ++ .../bedrockdataautomation/api_client_test.go | 127 + .../api_op_CreateBlueprint.go | 216 + .../api_op_CreateBlueprintVersion.go | 200 + .../api_op_CreateDataAutomationProject.go | 226 + .../api_op_DeleteBlueprint.go | 157 + .../api_op_DeleteDataAutomationProject.go | 164 + .../api_op_GetBlueprint.go | 167 + .../api_op_GetDataAutomationProject.go | 164 + .../api_op_ListBlueprints.go | 270 + .../api_op_ListDataAutomationProjects.go | 270 + .../api_op_UpdateBlueprint.go | 169 + .../api_op_UpdateDataAutomationProject.go | 184 + service/bedrockdataautomation/auth.go | 313 + .../bedrockdataautomation/deserializers.go | 4494 +++++ service/bedrockdataautomation/doc.go | 7 + service/bedrockdataautomation/endpoints.go | 537 + .../endpoints_config_test.go | 139 + .../bedrockdataautomation/endpoints_test.go | 820 + service/bedrockdataautomation/generated.json | 43 + service/bedrockdataautomation/go.mod | 16 + service/bedrockdataautomation/go.sum | 2 + .../go_module_metadata.go | 6 + .../internal/endpoints/endpoints.go | 296 + .../internal/endpoints/endpoints_test.go | 11 + service/bedrockdataautomation/options.go | 236 + .../bedrockdataautomation/protocol_test.go | 3 + service/bedrockdataautomation/serializers.go | 1783 ++ .../snapshot/api_op_CreateBlueprint.go.snap | 42 + .../api_op_CreateBlueprintVersion.go.snap | 42 + ...api_op_CreateDataAutomationProject.go.snap | 42 + .../snapshot/api_op_DeleteBlueprint.go.snap | 41 + ...api_op_DeleteDataAutomationProject.go.snap | 41 + .../snapshot/api_op_GetBlueprint.go.snap | 41 + .../api_op_GetDataAutomationProject.go.snap | 41 + .../snapshot/api_op_ListBlueprints.go.snap | 41 + .../api_op_ListDataAutomationProjects.go.snap | 41 + .../snapshot/api_op_UpdateBlueprint.go.snap | 41 + ...api_op_UpdateDataAutomationProject.go.snap | 41 + .../bedrockdataautomation/snapshot_test.go | 326 + service/bedrockdataautomation/types/enums.go | 337 + service/bedrockdataautomation/types/errors.go | 194 + service/bedrockdataautomation/types/types.go | 576 + service/bedrockdataautomation/validators.go | 986 ++ .../bedrockdataautomationruntime/LICENSE.txt | 202 + .../api_client.go | 929 ++ .../api_client_test.go | 127 + .../api_op_GetDataAutomationStatus.go | 168 + .../api_op_InvokeDataAutomationAsync.go | 217 + service/bedrockdataautomationruntime/auth.go | 313 + .../deserializers.go | 898 + service/bedrockdataautomationruntime/doc.go | 7 + .../bedrockdataautomationruntime/endpoints.go | 537 + .../endpoints_config_test.go | 139 + .../endpoints_test.go | 820 + .../generated.json | 34 + service/bedrockdataautomationruntime/go.mod | 16 + service/bedrockdataautomationruntime/go.sum | 2 + .../go_module_metadata.go | 6 + .../internal/endpoints/endpoints.go | 296 + .../internal/endpoints/endpoints_test.go | 11 + .../bedrockdataautomationruntime/options.go | 236 + .../protocol_test.go | 3 + .../serializers.go | 336 + .../api_op_GetDataAutomationStatus.go.snap | 41 + .../api_op_InvokeDataAutomationAsync.go.snap | 42 + .../snapshot_test.go | 110 + .../types/enums.go | 66 + .../types/errors.go | 164 + .../types/types.go | 98 + .../validators.go | 246 + service/bedrockruntime/deserializers.go | 213 + service/bedrockruntime/serializers.go | 82 + service/bedrockruntime/types/enums.go | 39 + service/bedrockruntime/types/types.go | 124 + .../types/types_exported_test.go | 44 + service/bedrockruntime/validators.go | 46 + ...api_op_CreateAccessControlConfiguration.go | 4 + service/kendra/api_op_CreateFaq.go | 2 +- service/kendra/api_op_CreateIndex.go | 22 +- service/kendra/api_op_DeleteFaq.go | 2 +- .../kendra/api_op_DeletePrincipalMapping.go | 4 +- service/kendra/api_op_DescribeDataSource.go | 4 +- service/kendra/api_op_DescribeExperience.go | 6 +- service/kendra/api_op_DescribeFaq.go | 8 +- service/kendra/api_op_ListFaqs.go | 6 +- service/kendra/api_op_ListTagsForResource.go | 15 +- service/kendra/api_op_PutPrincipalMapping.go | 11 +- service/kendra/api_op_Query.go | 10 + service/kendra/api_op_Retrieve.go | 10 + service/kendra/api_op_TagResource.go | 17 +- service/kendra/api_op_UntagResource.go | 15 +- ...api_op_UpdateAccessControlConfiguration.go | 4 + service/kendra/api_op_UpdateDataSource.go | 4 +- service/kendra/api_op_UpdateExperience.go | 6 +- service/kendra/api_op_UpdateIndex.go | 13 + service/kendra/deserializers.go | 27 + service/kendra/types/enums.go | 6 +- service/kendra/types/types.go | 88 +- .../api_op_CreateClusterSchedulerConfig.go | 182 + .../sagemaker/api_op_CreateComputeQuota.go | 194 + service/sagemaker/api_op_CreatePartnerApp.go | 233 + .../api_op_CreatePartnerAppPresignedUrl.go | 163 + .../sagemaker/api_op_CreateTrainingPlan.go | 212 + .../api_op_DeleteClusterSchedulerConfig.go | 152 + .../sagemaker/api_op_DeleteComputeQuota.go | 152 + service/sagemaker/api_op_DeletePartnerApp.go | 195 + .../api_op_DescribeClusterSchedulerConfig.go | 215 + .../sagemaker/api_op_DescribeComputeQuota.go | 223 + .../sagemaker/api_op_DescribePartnerApp.go | 203 + .../sagemaker/api_op_DescribeTrainingPlan.go | 222 + .../api_op_ListClusterSchedulerConfigs.go | 286 + service/sagemaker/api_op_ListClusters.go | 7 + service/sagemaker/api_op_ListComputeQuotas.go | 283 + service/sagemaker/api_op_ListPartnerApps.go | 263 + service/sagemaker/api_op_ListTrainingJobs.go | 7 + service/sagemaker/api_op_ListTrainingPlans.go | 272 + .../api_op_SearchTrainingPlanOfferings.go | 210 + .../api_op_UpdateClusterSchedulerConfig.go | 175 + .../sagemaker/api_op_UpdateComputeQuota.go | 185 + service/sagemaker/api_op_UpdatePartnerApp.go | 215 + service/sagemaker/deserializers.go | 13653 +++++++++++----- service/sagemaker/generated.json | 20 + service/sagemaker/serializers.go | 2130 +++ ...pi_op_CreateClusterSchedulerConfig.go.snap | 41 + .../api_op_CreateComputeQuota.go.snap | 41 + .../snapshot/api_op_CreatePartnerApp.go.snap | 42 + ...pi_op_CreatePartnerAppPresignedUrl.go.snap | 41 + .../api_op_CreateTrainingPlan.go.snap | 41 + ...pi_op_DeleteClusterSchedulerConfig.go.snap | 41 + .../api_op_DeleteComputeQuota.go.snap | 41 + .../snapshot/api_op_DeletePartnerApp.go.snap | 42 + ..._op_DescribeClusterSchedulerConfig.go.snap | 41 + .../api_op_DescribeComputeQuota.go.snap | 41 + .../api_op_DescribePartnerApp.go.snap | 41 + .../api_op_DescribeTrainingPlan.go.snap | 41 + ...api_op_ListClusterSchedulerConfigs.go.snap | 40 + .../snapshot/api_op_ListComputeQuotas.go.snap | 40 + .../snapshot/api_op_ListPartnerApps.go.snap | 40 + .../snapshot/api_op_ListTrainingPlans.go.snap | 41 + ...api_op_SearchTrainingPlanOfferings.go.snap | 41 + ...pi_op_UpdateClusterSchedulerConfig.go.snap | 41 + .../api_op_UpdateComputeQuota.go.snap | 41 + .../snapshot/api_op_UpdatePartnerApp.go.snap | 42 + service/sagemaker/snapshot_test.go | 480 + service/sagemaker/types/enums.go | 460 +- service/sagemaker/types/types.go | 630 + .../sagemaker/types/types_exported_test.go | 8 + service/sagemaker/validators.go | 973 ++ 202 files changed, 51483 insertions(+), 4656 deletions(-) create mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json create mode 100644 .changelog/752bed98e3a74857bfd1328c5d83d12f.json create mode 100644 .changelog/a0274ad5111d49b6aee0d4def7c16234.json create mode 100644 .changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json create mode 100644 .changelog/a8a77fadb4444724a3a8931c6b27b762.json create mode 100644 .changelog/be02e0fb9f7341a494dad62dd15af644.json create mode 100644 .changelog/c03222513c2c4bedbedead6d8d051764.json create mode 100644 .changelog/ca46f610073445d495baa8760c42037c.json create mode 100644 .changelog/d72ed3ee22fc405a90029df4f52afd6b.json create mode 100644 service/bedrock/api_op_CreateMarketplaceModelEndpoint.go create mode 100644 service/bedrock/api_op_DeleteMarketplaceModelEndpoint.go create mode 100644 service/bedrock/api_op_DeregisterMarketplaceModelEndpoint.go create mode 100644 service/bedrock/api_op_GetMarketplaceModelEndpoint.go create mode 100644 service/bedrock/api_op_GetPromptRouter.go create mode 100644 service/bedrock/api_op_ListMarketplaceModelEndpoints.go create mode 100644 service/bedrock/api_op_ListPromptRouters.go create mode 100644 service/bedrock/api_op_RegisterMarketplaceModelEndpoint.go create mode 100644 service/bedrock/api_op_UpdateMarketplaceModelEndpoint.go create mode 100644 service/bedrock/snapshot/api_op_CreateMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrock/snapshot/api_op_DeleteMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrock/snapshot/api_op_DeregisterMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrock/snapshot/api_op_GetMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrock/snapshot/api_op_GetPromptRouter.go.snap create mode 100644 service/bedrock/snapshot/api_op_ListMarketplaceModelEndpoints.go.snap create mode 100644 service/bedrock/snapshot/api_op_ListPromptRouters.go.snap create mode 100644 service/bedrock/snapshot/api_op_RegisterMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrock/snapshot/api_op_UpdateMarketplaceModelEndpoint.go.snap create mode 100644 service/bedrockagentruntime/api_op_GenerateQuery.go create mode 100644 service/bedrockagentruntime/snapshot/api_op_GenerateQuery.go.snap create mode 100644 service/bedrockdataautomation/LICENSE.txt create mode 100644 service/bedrockdataautomation/api_client.go create mode 100644 service/bedrockdataautomation/api_client_test.go create mode 100644 service/bedrockdataautomation/api_op_CreateBlueprint.go create mode 100644 service/bedrockdataautomation/api_op_CreateBlueprintVersion.go create mode 100644 service/bedrockdataautomation/api_op_CreateDataAutomationProject.go create mode 100644 service/bedrockdataautomation/api_op_DeleteBlueprint.go create mode 100644 service/bedrockdataautomation/api_op_DeleteDataAutomationProject.go create mode 100644 service/bedrockdataautomation/api_op_GetBlueprint.go create mode 100644 service/bedrockdataautomation/api_op_GetDataAutomationProject.go create mode 100644 service/bedrockdataautomation/api_op_ListBlueprints.go create mode 100644 service/bedrockdataautomation/api_op_ListDataAutomationProjects.go create mode 100644 service/bedrockdataautomation/api_op_UpdateBlueprint.go create mode 100644 service/bedrockdataautomation/api_op_UpdateDataAutomationProject.go create mode 100644 service/bedrockdataautomation/auth.go create mode 100644 service/bedrockdataautomation/deserializers.go create mode 100644 service/bedrockdataautomation/doc.go create mode 100644 service/bedrockdataautomation/endpoints.go create mode 100644 service/bedrockdataautomation/endpoints_config_test.go create mode 100644 service/bedrockdataautomation/endpoints_test.go create mode 100644 service/bedrockdataautomation/generated.json create mode 100644 service/bedrockdataautomation/go.mod create mode 100644 service/bedrockdataautomation/go.sum create mode 100644 service/bedrockdataautomation/go_module_metadata.go create mode 100644 service/bedrockdataautomation/internal/endpoints/endpoints.go create mode 100644 service/bedrockdataautomation/internal/endpoints/endpoints_test.go create mode 100644 service/bedrockdataautomation/options.go create mode 100644 service/bedrockdataautomation/protocol_test.go create mode 100644 service/bedrockdataautomation/serializers.go create mode 100644 service/bedrockdataautomation/snapshot/api_op_CreateBlueprint.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_CreateBlueprintVersion.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_CreateDataAutomationProject.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_DeleteBlueprint.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_DeleteDataAutomationProject.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_GetBlueprint.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_GetDataAutomationProject.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_ListBlueprints.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_ListDataAutomationProjects.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_UpdateBlueprint.go.snap create mode 100644 service/bedrockdataautomation/snapshot/api_op_UpdateDataAutomationProject.go.snap create mode 100644 service/bedrockdataautomation/snapshot_test.go create mode 100644 service/bedrockdataautomation/types/enums.go create mode 100644 service/bedrockdataautomation/types/errors.go create mode 100644 service/bedrockdataautomation/types/types.go create mode 100644 service/bedrockdataautomation/validators.go create mode 100644 service/bedrockdataautomationruntime/LICENSE.txt create mode 100644 service/bedrockdataautomationruntime/api_client.go create mode 100644 service/bedrockdataautomationruntime/api_client_test.go create mode 100644 service/bedrockdataautomationruntime/api_op_GetDataAutomationStatus.go create mode 100644 service/bedrockdataautomationruntime/api_op_InvokeDataAutomationAsync.go create mode 100644 service/bedrockdataautomationruntime/auth.go create mode 100644 service/bedrockdataautomationruntime/deserializers.go create mode 100644 service/bedrockdataautomationruntime/doc.go create mode 100644 service/bedrockdataautomationruntime/endpoints.go create mode 100644 service/bedrockdataautomationruntime/endpoints_config_test.go create mode 100644 service/bedrockdataautomationruntime/endpoints_test.go create mode 100644 service/bedrockdataautomationruntime/generated.json create mode 100644 service/bedrockdataautomationruntime/go.mod create mode 100644 service/bedrockdataautomationruntime/go.sum create mode 100644 service/bedrockdataautomationruntime/go_module_metadata.go create mode 100644 service/bedrockdataautomationruntime/internal/endpoints/endpoints.go create mode 100644 service/bedrockdataautomationruntime/internal/endpoints/endpoints_test.go create mode 100644 service/bedrockdataautomationruntime/options.go create mode 100644 service/bedrockdataautomationruntime/protocol_test.go create mode 100644 service/bedrockdataautomationruntime/serializers.go create mode 100644 service/bedrockdataautomationruntime/snapshot/api_op_GetDataAutomationStatus.go.snap create mode 100644 service/bedrockdataautomationruntime/snapshot/api_op_InvokeDataAutomationAsync.go.snap create mode 100644 service/bedrockdataautomationruntime/snapshot_test.go create mode 100644 service/bedrockdataautomationruntime/types/enums.go create mode 100644 service/bedrockdataautomationruntime/types/errors.go create mode 100644 service/bedrockdataautomationruntime/types/types.go create mode 100644 service/bedrockdataautomationruntime/validators.go create mode 100644 service/sagemaker/api_op_CreateClusterSchedulerConfig.go create mode 100644 service/sagemaker/api_op_CreateComputeQuota.go create mode 100644 service/sagemaker/api_op_CreatePartnerApp.go create mode 100644 service/sagemaker/api_op_CreatePartnerAppPresignedUrl.go create mode 100644 service/sagemaker/api_op_CreateTrainingPlan.go create mode 100644 service/sagemaker/api_op_DeleteClusterSchedulerConfig.go create mode 100644 service/sagemaker/api_op_DeleteComputeQuota.go create mode 100644 service/sagemaker/api_op_DeletePartnerApp.go create mode 100644 service/sagemaker/api_op_DescribeClusterSchedulerConfig.go create mode 100644 service/sagemaker/api_op_DescribeComputeQuota.go create mode 100644 service/sagemaker/api_op_DescribePartnerApp.go create mode 100644 service/sagemaker/api_op_DescribeTrainingPlan.go create mode 100644 service/sagemaker/api_op_ListClusterSchedulerConfigs.go create mode 100644 service/sagemaker/api_op_ListComputeQuotas.go create mode 100644 service/sagemaker/api_op_ListPartnerApps.go create mode 100644 service/sagemaker/api_op_ListTrainingPlans.go create mode 100644 service/sagemaker/api_op_SearchTrainingPlanOfferings.go create mode 100644 service/sagemaker/api_op_UpdateClusterSchedulerConfig.go create mode 100644 service/sagemaker/api_op_UpdateComputeQuota.go create mode 100644 service/sagemaker/api_op_UpdatePartnerApp.go create mode 100644 service/sagemaker/snapshot/api_op_CreateClusterSchedulerConfig.go.snap create mode 100644 service/sagemaker/snapshot/api_op_CreateComputeQuota.go.snap create mode 100644 service/sagemaker/snapshot/api_op_CreatePartnerApp.go.snap create mode 100644 service/sagemaker/snapshot/api_op_CreatePartnerAppPresignedUrl.go.snap create mode 100644 service/sagemaker/snapshot/api_op_CreateTrainingPlan.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DeleteClusterSchedulerConfig.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DeleteComputeQuota.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DeletePartnerApp.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DescribeClusterSchedulerConfig.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DescribeComputeQuota.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DescribePartnerApp.go.snap create mode 100644 service/sagemaker/snapshot/api_op_DescribeTrainingPlan.go.snap create mode 100644 service/sagemaker/snapshot/api_op_ListClusterSchedulerConfigs.go.snap create mode 100644 service/sagemaker/snapshot/api_op_ListComputeQuotas.go.snap create mode 100644 service/sagemaker/snapshot/api_op_ListPartnerApps.go.snap create mode 100644 service/sagemaker/snapshot/api_op_ListTrainingPlans.go.snap create mode 100644 service/sagemaker/snapshot/api_op_SearchTrainingPlanOfferings.go.snap create mode 100644 service/sagemaker/snapshot/api_op_UpdateClusterSchedulerConfig.go.snap create mode 100644 service/sagemaker/snapshot/api_op_UpdateComputeQuota.go.snap create mode 100644 service/sagemaker/snapshot/api_op_UpdatePartnerApp.go.snap diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json new file mode 100644 index 00000000000..468a64014fa --- /dev/null +++ b/.changelog/41575353444b40ffbf474f4155544f00.json @@ -0,0 +1,9 @@ +{ + "id": "41575353-444b-40ff-bf47-4f4155544f00", + "type": "release", + "description": "New AWS service client module", + "modules": [ + "service/bedrockdataautomation", + "service/bedrockdataautomationruntime" + ] +} \ No newline at end of file diff --git a/.changelog/752bed98e3a74857bfd1328c5d83d12f.json b/.changelog/752bed98e3a74857bfd1328c5d83d12f.json new file mode 100644 index 00000000000..bb5b53ed79f --- /dev/null +++ b/.changelog/752bed98e3a74857bfd1328c5d83d12f.json @@ -0,0 +1,8 @@ +{ + "id": "752bed98-e3a7-4857-bfd1-328c5d83d12f", + "type": "feature", + "description": "Added support for Intelligent Prompt Router in Invoke, InvokeStream, Converse and ConverseStream. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.", + "modules": [ + "service/bedrockruntime" + ] +} \ No newline at end of file diff --git a/.changelog/a0274ad5111d49b6aee0d4def7c16234.json b/.changelog/a0274ad5111d49b6aee0d4def7c16234.json new file mode 100644 index 00000000000..325c4e2097a --- /dev/null +++ b/.changelog/a0274ad5111d49b6aee0d4def7c16234.json @@ -0,0 +1,8 @@ +{ + "id": "a0274ad5-111d-49b6-aee0-d4def7c16234", + "type": "feature", + "description": "Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.", + "modules": [ + "service/bedrock" + ] +} \ No newline at end of file diff --git a/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json b/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json new file mode 100644 index 00000000000..0eb6f5e8390 --- /dev/null +++ b/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json @@ -0,0 +1,8 @@ +{ + "id": "a1e1e7e0-d8c4-42a5-8710-de7a2e051c9f", + "type": "feature", + "description": "This release adds GenAI Index in Amazon Kendra for Retrieval Augmented Generation (RAG) and intelligent search. With the Kendra GenAI Index, customers get high retrieval accuracy powered by the latest information retrieval technologies and semantic models.", + "modules": [ + "service/kendra" + ] +} \ No newline at end of file diff --git a/.changelog/a8a77fadb4444724a3a8931c6b27b762.json b/.changelog/a8a77fadb4444724a3a8931c6b27b762.json new file mode 100644 index 00000000000..6bdf17b068d --- /dev/null +++ b/.changelog/a8a77fadb4444724a3a8931c6b27b762.json @@ -0,0 +1,8 @@ +{ + "id": "a8a77fad-b444-4724-a3a8-931c6b27b762", + "type": "feature", + "description": "Amazon SageMaker HyperPod launched task governance to help customers maximize accelerator utilization for model development and flexible training plans to meet training timelines and budget while reducing weeks of training time. AI apps from AWS partner is now available in SageMaker.", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/be02e0fb9f7341a494dad62dd15af644.json b/.changelog/be02e0fb9f7341a494dad62dd15af644.json new file mode 100644 index 00000000000..47ce22e9eb9 --- /dev/null +++ b/.changelog/be02e0fb9f7341a494dad62dd15af644.json @@ -0,0 +1,8 @@ +{ + "id": "be02e0fb-9f73-41a4-94da-d62dd15af644", + "type": "feature", + "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.", + "modules": [ + "service/bedrockagent" + ] +} \ No newline at end of file diff --git a/.changelog/c03222513c2c4bedbedead6d8d051764.json b/.changelog/c03222513c2c4bedbedead6d8d051764.json new file mode 100644 index 00000000000..ec403712ef0 --- /dev/null +++ b/.changelog/c03222513c2c4bedbedead6d8d051764.json @@ -0,0 +1,8 @@ +{ + "id": "c0322251-3c2c-4bed-bede-ad6d8d051764", + "type": "feature", + "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.", + "modules": [ + "service/bedrockagentruntime" + ] +} \ No newline at end of file diff --git a/.changelog/ca46f610073445d495baa8760c42037c.json b/.changelog/ca46f610073445d495baa8760c42037c.json new file mode 100644 index 00000000000..dfa3ee17550 --- /dev/null +++ b/.changelog/ca46f610073445d495baa8760c42037c.json @@ -0,0 +1,8 @@ +{ + "id": "ca46f610-0734-45d4-95ba-a8760c42037c", + "type": "feature", + "description": "Release Bedrock Data Automation Runtime SDK", + "modules": [ + "service/bedrockdataautomationruntime" + ] +} \ No newline at end of file diff --git a/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json b/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json new file mode 100644 index 00000000000..1fc7c2b3245 --- /dev/null +++ b/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json @@ -0,0 +1,8 @@ +{ + "id": "d72ed3ee-22fc-405a-9002-9df4f52afd6b", + "type": "feature", + "description": "Release Bedrock Data Automation SDK", + "modules": [ + "service/bedrockdataautomation" + ] +} \ No newline at end of file diff --git a/service/bedrock/api_op_CreateMarketplaceModelEndpoint.go b/service/bedrock/api_op_CreateMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..70841357476 --- /dev/null +++ b/service/bedrock/api_op_CreateMarketplaceModelEndpoint.go @@ -0,0 +1,225 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an endpoint for a model from Amazon Bedrock Marketplace. The endpoint +// is hosted by Amazon SageMaker. +func (c *Client) CreateMarketplaceModelEndpoint(ctx context.Context, params *CreateMarketplaceModelEndpointInput, optFns ...func(*Options)) (*CreateMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &CreateMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateMarketplaceModelEndpoint", params, optFns, c.addOperationCreateMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateMarketplaceModelEndpointInput struct { + + // The configuration for the endpoint, including the number and type of instances + // to use. + // + // This member is required. + EndpointConfig types.EndpointConfig + + // The name of the endpoint. This name must be unique within your Amazon Web + // Services account and region. + // + // This member is required. + EndpointName *string + + // The ARN of the model from Amazon Bedrock Marketplace that you want to deploy to + // the endpoint. + // + // This member is required. + ModelSourceIdentifier *string + + // Indicates whether you accept the end-user license agreement (EULA) for the + // model. Set to true to accept the EULA. + AcceptEula bool + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. This token is listed as not required because Amazon Web Services + // SDKs automatically generate it for you and set this parameter. If you're not + // using the Amazon Web Services SDK or the CLI, you must provide this token or the + // action will fail. + ClientRequestToken *string + + // An array of key-value pairs to apply to the underlying Amazon SageMaker + // endpoint. You can use these tags to organize and identify your Amazon Web + // Services resources. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateMarketplaceModelEndpointOutput struct { + + // Details about the created endpoint. + // + // This member is required. + MarketplaceModelEndpoint *types.MarketplaceModelEndpoint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateMarketplaceModelEndpoint"); 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_opCreateMarketplaceModelEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateMarketplaceModelEndpoint(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_initializeOpCreateMarketplaceModelEndpoint struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateMarketplaceModelEndpoint) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateMarketplaceModelEndpoint) 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.(*CreateMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateMarketplaceModelEndpointInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateMarketplaceModelEndpointMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateMarketplaceModelEndpoint{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/api_op_DeleteMarketplaceModelEndpoint.go b/service/bedrock/api_op_DeleteMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..c4dcfdb217f --- /dev/null +++ b/service/bedrock/api_op_DeleteMarketplaceModelEndpoint.go @@ -0,0 +1,152 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +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 endpoint for a model from Amazon Bedrock Marketplace. +func (c *Client) DeleteMarketplaceModelEndpoint(ctx context.Context, params *DeleteMarketplaceModelEndpointInput, optFns ...func(*Options)) (*DeleteMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &DeleteMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteMarketplaceModelEndpoint", params, optFns, c.addOperationDeleteMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteMarketplaceModelEndpointInput struct { + + // The Amazon Resource Name (ARN) of the endpoint you want to delete. + // + // This member is required. + EndpointArn *string + + noSmithyDocumentSerde +} + +type DeleteMarketplaceModelEndpointOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteMarketplaceModelEndpoint"); 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 = addOpDeleteMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteMarketplaceModelEndpoint(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_opDeleteMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/api_op_DeregisterMarketplaceModelEndpoint.go b/service/bedrock/api_op_DeregisterMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..7a4bf096ee8 --- /dev/null +++ b/service/bedrock/api_op_DeregisterMarketplaceModelEndpoint.go @@ -0,0 +1,154 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +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" +) + +// Deregisters an endpoint for a model from Amazon Bedrock Marketplace. This +// operation removes the endpoint's association with Amazon Bedrock but does not +// delete the underlying Amazon SageMaker endpoint. +func (c *Client) DeregisterMarketplaceModelEndpoint(ctx context.Context, params *DeregisterMarketplaceModelEndpointInput, optFns ...func(*Options)) (*DeregisterMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &DeregisterMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeregisterMarketplaceModelEndpoint", params, optFns, c.addOperationDeregisterMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeregisterMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeregisterMarketplaceModelEndpointInput struct { + + // The Amazon Resource Name (ARN) of the endpoint you want to deregister. + // + // This member is required. + EndpointArn *string + + noSmithyDocumentSerde +} + +type DeregisterMarketplaceModelEndpointOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeregisterMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeregisterMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeregisterMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeregisterMarketplaceModelEndpoint"); 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 = addOpDeregisterMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeregisterMarketplaceModelEndpoint(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_opDeregisterMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeregisterMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/api_op_GetMarketplaceModelEndpoint.go b/service/bedrock/api_op_GetMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..a350eb69cab --- /dev/null +++ b/service/bedrock/api_op_GetMarketplaceModelEndpoint.go @@ -0,0 +1,159 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves details about a specific endpoint for a model from Amazon Bedrock +// Marketplace. +func (c *Client) GetMarketplaceModelEndpoint(ctx context.Context, params *GetMarketplaceModelEndpointInput, optFns ...func(*Options)) (*GetMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &GetMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetMarketplaceModelEndpoint", params, optFns, c.addOperationGetMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetMarketplaceModelEndpointInput struct { + + // The Amazon Resource Name (ARN) of the endpoint you want to get information + // about. + // + // This member is required. + EndpointArn *string + + noSmithyDocumentSerde +} + +type GetMarketplaceModelEndpointOutput struct { + + // Details about the requested endpoint. + MarketplaceModelEndpoint *types.MarketplaceModelEndpoint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetMarketplaceModelEndpoint"); 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 = addOpGetMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMarketplaceModelEndpoint(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_opGetMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/api_op_GetPromptRouter.go b/service/bedrock/api_op_GetPromptRouter.go new file mode 100644 index 00000000000..9c4b688bfb5 --- /dev/null +++ b/service/bedrock/api_op_GetPromptRouter.go @@ -0,0 +1,199 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Retrieves details about a prompt router. +func (c *Client) GetPromptRouter(ctx context.Context, params *GetPromptRouterInput, optFns ...func(*Options)) (*GetPromptRouterOutput, error) { + if params == nil { + params = &GetPromptRouterInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetPromptRouter", params, optFns, c.addOperationGetPromptRouterMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetPromptRouterOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetPromptRouterInput struct { + + // The prompt router's ARN + // + // This member is required. + PromptRouterArn *string + + noSmithyDocumentSerde +} + +type GetPromptRouterOutput struct { + + // The router's fallback model. + // + // This member is required. + FallbackModel *types.PromptRouterTargetModel + + // The router's models. + // + // This member is required. + Models []types.PromptRouterTargetModel + + // The prompt router's ARN + // + // This member is required. + PromptRouterArn *string + + // The router's name. + // + // This member is required. + PromptRouterName *string + + // The router's routing criteria. + // + // This member is required. + RoutingCriteria *types.RoutingCriteria + + // The router's status. + // + // This member is required. + Status types.PromptRouterStatus + + // The router's type. + // + // This member is required. + Type types.PromptRouterType + + // When the router was created. + CreatedAt *time.Time + + // The router's description. + Description *string + + // When the router was updated. + UpdatedAt *time.Time + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetPromptRouterMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetPromptRouter{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetPromptRouter{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetPromptRouter"); 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 = addOpGetPromptRouterValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetPromptRouter(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_opGetPromptRouter(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetPromptRouter", + } +} diff --git a/service/bedrock/api_op_ListMarketplaceModelEndpoints.go b/service/bedrock/api_op_ListMarketplaceModelEndpoints.go new file mode 100644 index 00000000000..7814376d247 --- /dev/null +++ b/service/bedrock/api_op_ListMarketplaceModelEndpoints.go @@ -0,0 +1,262 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the endpoints for models from Amazon Bedrock Marketplace in your Amazon +// Web Services account. +func (c *Client) ListMarketplaceModelEndpoints(ctx context.Context, params *ListMarketplaceModelEndpointsInput, optFns ...func(*Options)) (*ListMarketplaceModelEndpointsOutput, error) { + if params == nil { + params = &ListMarketplaceModelEndpointsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListMarketplaceModelEndpoints", params, optFns, c.addOperationListMarketplaceModelEndpointsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListMarketplaceModelEndpointsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListMarketplaceModelEndpointsInput struct { + + // The maximum number of results to return in a single call. If more results are + // available, the operation returns a NextToken value. + MaxResults *int32 + + // If specified, only endpoints for the given model source identifier are returned. + ModelSourceEquals *string + + // The token for the next set of results. You receive this token from a previous + // ListMarketplaceModelEndpoints call. + NextToken *string + + noSmithyDocumentSerde +} + +type ListMarketplaceModelEndpointsOutput struct { + + // An array of endpoint summaries. + MarketplaceModelEndpoints []types.MarketplaceModelEndpointSummary + + // The token for the next set of results. Use this token to get the next set of + // results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListMarketplaceModelEndpointsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListMarketplaceModelEndpoints{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListMarketplaceModelEndpoints{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListMarketplaceModelEndpoints"); 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_opListMarketplaceModelEndpoints(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 +} + +// ListMarketplaceModelEndpointsPaginatorOptions is the paginator options for +// ListMarketplaceModelEndpoints +type ListMarketplaceModelEndpointsPaginatorOptions struct { + // The maximum number of results to return in a single call. If more results are + // available, the operation returns a NextToken value. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListMarketplaceModelEndpointsPaginator is a paginator for +// ListMarketplaceModelEndpoints +type ListMarketplaceModelEndpointsPaginator struct { + options ListMarketplaceModelEndpointsPaginatorOptions + client ListMarketplaceModelEndpointsAPIClient + params *ListMarketplaceModelEndpointsInput + nextToken *string + firstPage bool +} + +// NewListMarketplaceModelEndpointsPaginator returns a new +// ListMarketplaceModelEndpointsPaginator +func NewListMarketplaceModelEndpointsPaginator(client ListMarketplaceModelEndpointsAPIClient, params *ListMarketplaceModelEndpointsInput, optFns ...func(*ListMarketplaceModelEndpointsPaginatorOptions)) *ListMarketplaceModelEndpointsPaginator { + if params == nil { + params = &ListMarketplaceModelEndpointsInput{} + } + + options := ListMarketplaceModelEndpointsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListMarketplaceModelEndpointsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListMarketplaceModelEndpointsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListMarketplaceModelEndpoints page. +func (p *ListMarketplaceModelEndpointsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListMarketplaceModelEndpointsOutput, 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.ListMarketplaceModelEndpoints(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 +} + +// ListMarketplaceModelEndpointsAPIClient is a client that implements the +// ListMarketplaceModelEndpoints operation. +type ListMarketplaceModelEndpointsAPIClient interface { + ListMarketplaceModelEndpoints(context.Context, *ListMarketplaceModelEndpointsInput, ...func(*Options)) (*ListMarketplaceModelEndpointsOutput, error) +} + +var _ ListMarketplaceModelEndpointsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListMarketplaceModelEndpoints(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListMarketplaceModelEndpoints", + } +} diff --git a/service/bedrock/api_op_ListPromptRouters.go b/service/bedrock/api_op_ListPromptRouters.go new file mode 100644 index 00000000000..2c99926d737 --- /dev/null +++ b/service/bedrock/api_op_ListPromptRouters.go @@ -0,0 +1,253 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a list of prompt routers. +func (c *Client) ListPromptRouters(ctx context.Context, params *ListPromptRoutersInput, optFns ...func(*Options)) (*ListPromptRoutersOutput, error) { + if params == nil { + params = &ListPromptRoutersInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPromptRouters", params, optFns, c.addOperationListPromptRoutersMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPromptRoutersOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPromptRoutersInput struct { + + // The maximum number of prompt routers to return in one page of results. + MaxResults *int32 + + // Specify the pagination token from a previous request to retrieve the next page + // of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListPromptRoutersOutput struct { + + // Specify the pagination token from a previous request to retrieve the next page + // of results. + NextToken *string + + // A list of prompt router summaries. + PromptRouterSummaries []types.PromptRouterSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPromptRoutersMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListPromptRouters{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListPromptRouters{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListPromptRouters"); 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_opListPromptRouters(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 +} + +// ListPromptRoutersPaginatorOptions is the paginator options for ListPromptRouters +type ListPromptRoutersPaginatorOptions struct { + // The maximum number of prompt routers to return in one page of results. + 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 +} + +// ListPromptRoutersPaginator is a paginator for ListPromptRouters +type ListPromptRoutersPaginator struct { + options ListPromptRoutersPaginatorOptions + client ListPromptRoutersAPIClient + params *ListPromptRoutersInput + nextToken *string + firstPage bool +} + +// NewListPromptRoutersPaginator returns a new ListPromptRoutersPaginator +func NewListPromptRoutersPaginator(client ListPromptRoutersAPIClient, params *ListPromptRoutersInput, optFns ...func(*ListPromptRoutersPaginatorOptions)) *ListPromptRoutersPaginator { + if params == nil { + params = &ListPromptRoutersInput{} + } + + options := ListPromptRoutersPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPromptRoutersPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPromptRoutersPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPromptRouters page. +func (p *ListPromptRoutersPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPromptRoutersOutput, 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.ListPromptRouters(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 +} + +// ListPromptRoutersAPIClient is a client that implements the ListPromptRouters +// operation. +type ListPromptRoutersAPIClient interface { + ListPromptRouters(context.Context, *ListPromptRoutersInput, ...func(*Options)) (*ListPromptRoutersOutput, error) +} + +var _ ListPromptRoutersAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListPromptRouters(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListPromptRouters", + } +} diff --git a/service/bedrock/api_op_RegisterMarketplaceModelEndpoint.go b/service/bedrock/api_op_RegisterMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..1703125a780 --- /dev/null +++ b/service/bedrock/api_op_RegisterMarketplaceModelEndpoint.go @@ -0,0 +1,167 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Registers an existing Amazon SageMaker endpoint with Amazon Bedrock +// Marketplace, allowing it to be used with Amazon Bedrock APIs. +func (c *Client) RegisterMarketplaceModelEndpoint(ctx context.Context, params *RegisterMarketplaceModelEndpointInput, optFns ...func(*Options)) (*RegisterMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &RegisterMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "RegisterMarketplaceModelEndpoint", params, optFns, c.addOperationRegisterMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*RegisterMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type RegisterMarketplaceModelEndpointInput struct { + + // The ARN of the Amazon SageMaker endpoint you want to register with Amazon + // Bedrock Marketplace. + // + // This member is required. + EndpointIdentifier *string + + // The ARN of the model from Amazon Bedrock Marketplace that is deployed on the + // endpoint. + // + // This member is required. + ModelSourceIdentifier *string + + noSmithyDocumentSerde +} + +type RegisterMarketplaceModelEndpointOutput struct { + + // Details about the registered endpoint. + // + // This member is required. + MarketplaceModelEndpoint *types.MarketplaceModelEndpoint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationRegisterMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpRegisterMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpRegisterMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "RegisterMarketplaceModelEndpoint"); 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 = addOpRegisterMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRegisterMarketplaceModelEndpoint(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_opRegisterMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "RegisterMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/api_op_UpdateMarketplaceModelEndpoint.go b/service/bedrock/api_op_UpdateMarketplaceModelEndpoint.go new file mode 100644 index 00000000000..816e69283f4 --- /dev/null +++ b/service/bedrock/api_op_UpdateMarketplaceModelEndpoint.go @@ -0,0 +1,209 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrock + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the configuration of an existing endpoint for a model from Amazon +// Bedrock Marketplace. +func (c *Client) UpdateMarketplaceModelEndpoint(ctx context.Context, params *UpdateMarketplaceModelEndpointInput, optFns ...func(*Options)) (*UpdateMarketplaceModelEndpointOutput, error) { + if params == nil { + params = &UpdateMarketplaceModelEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateMarketplaceModelEndpoint", params, optFns, c.addOperationUpdateMarketplaceModelEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateMarketplaceModelEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateMarketplaceModelEndpointInput struct { + + // The Amazon Resource Name (ARN) of the endpoint you want to update. + // + // This member is required. + EndpointArn *string + + // The new configuration for the endpoint, including the number and type of + // instances to use. + // + // This member is required. + EndpointConfig types.EndpointConfig + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. This token is listed as not required because Amazon Web Services + // SDKs automatically generate it for you and set this parameter. If you're not + // using the Amazon Web Services SDK or the CLI, you must provide this token or the + // action will fail. + ClientRequestToken *string + + noSmithyDocumentSerde +} + +type UpdateMarketplaceModelEndpointOutput struct { + + // Details about the updated endpoint. + // + // This member is required. + MarketplaceModelEndpoint *types.MarketplaceModelEndpoint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateMarketplaceModelEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateMarketplaceModelEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateMarketplaceModelEndpoint"); 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_opUpdateMarketplaceModelEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdateMarketplaceModelEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateMarketplaceModelEndpoint(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_initializeOpUpdateMarketplaceModelEndpoint struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdateMarketplaceModelEndpoint) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdateMarketplaceModelEndpoint) 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.(*UpdateMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdateMarketplaceModelEndpointInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opUpdateMarketplaceModelEndpointMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdateMarketplaceModelEndpoint{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdateMarketplaceModelEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateMarketplaceModelEndpoint", + } +} diff --git a/service/bedrock/deserializers.go b/service/bedrock/deserializers.go index 70ae19481e4..23fd6642975 100644 --- a/service/bedrock/deserializers.go +++ b/service/bedrock/deserializers.go @@ -956,6 +956,176 @@ func awsRestjson1_deserializeOpDocumentCreateInferenceProfileOutput(v **CreateIn return nil } +type awsRestjson1_deserializeOpCreateMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_deserializeOpCreateMarketplaceModelEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateMarketplaceModelEndpoint) HandleDeserialize(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_deserializeOpErrorCreateMarketplaceModelEndpoint(response, &metadata) + } + output := &CreateMarketplaceModelEndpointOutput{} + 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_deserializeOpDocumentCreateMarketplaceModelEndpointOutput(&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_deserializeOpErrorCreateMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentCreateMarketplaceModelEndpointOutput(v **CreateMarketplaceModelEndpointOutput, 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 *CreateMarketplaceModelEndpointOutput + if *v == nil { + sv = &CreateMarketplaceModelEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "marketplaceModelEndpoint": + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpoint(&sv.MarketplaceModelEndpoint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateModelCopyJob struct { } @@ -2235,14 +2405,14 @@ func awsRestjson1_deserializeOpErrorDeleteInferenceProfile(response *smithyhttp. } } -type awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration struct { +type awsRestjson1_deserializeOpDeleteMarketplaceModelEndpoint struct { } -func (*awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration) ID() string { +func (*awsRestjson1_deserializeOpDeleteMarketplaceModelEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteMarketplaceModelEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2260,16 +2430,16 @@ func (m *awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration) Ha } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteMarketplaceModelEndpoint(response, &metadata) } - output := &DeleteModelInvocationLoggingConfigurationOutput{} + output := &DeleteMarketplaceModelEndpointOutput{} out.Result = output span.End() return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2316,9 +2486,15 @@ func awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(re 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, @@ -2329,14 +2505,14 @@ func awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(re } } -type awsRestjson1_deserializeOpDeleteProvisionedModelThroughput struct { +type awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration struct { } -func (*awsRestjson1_deserializeOpDeleteProvisionedModelThroughput) ID() string { +func (*awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteProvisionedModelThroughput) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteModelInvocationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2354,16 +2530,16 @@ func (m *awsRestjson1_deserializeOpDeleteProvisionedModelThroughput) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(response, &metadata) } - output := &DeleteProvisionedModelThroughputOutput{} + output := &DeleteModelInvocationLoggingConfigurationOutput{} out.Result = output span.End() return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteModelInvocationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2407,21 +2583,12 @@ func awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response *s 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, @@ -2432,14 +2599,14 @@ func awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response *s } } -type awsRestjson1_deserializeOpGetCustomModel struct { +type awsRestjson1_deserializeOpDeleteProvisionedModelThroughput struct { } -func (*awsRestjson1_deserializeOpGetCustomModel) ID() string { +func (*awsRestjson1_deserializeOpDeleteProvisionedModelThroughput) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetCustomModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteProvisionedModelThroughput) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2457,44 +2624,16 @@ func (m *awsRestjson1_deserializeOpGetCustomModel) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetCustomModel(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response, &metadata) } - output := &GetCustomModelOutput{} + output := &DeleteProvisionedModelThroughputOutput{} 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_deserializeOpDocumentGetCustomModelOutput(&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_deserializeOpErrorGetCustomModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteProvisionedModelThroughput(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2538,6 +2677,9 @@ func awsRestjson1_deserializeOpErrorGetCustomModel(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("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -2560,22 +2702,253 @@ func awsRestjson1_deserializeOpErrorGetCustomModel(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentGetCustomModelOutput(v **GetCustomModelOutput, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } +type awsRestjson1_deserializeOpDeregisterMarketplaceModelEndpoint struct { +} - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) +func (*awsRestjson1_deserializeOpDeregisterMarketplaceModelEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeregisterMarketplaceModelEndpoint) HandleDeserialize(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 } - var sv *GetCustomModelOutput - if *v == nil { - sv = &GetCustomModelOutput{} + _, 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_deserializeOpErrorDeregisterMarketplaceModelEndpoint(response, &metadata) + } + output := &DeregisterMarketplaceModelEndpointOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeregisterMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(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 + + } +} + +type awsRestjson1_deserializeOpGetCustomModel struct { +} + +func (*awsRestjson1_deserializeOpGetCustomModel) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetCustomModel) HandleDeserialize(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_deserializeOpErrorGetCustomModel(response, &metadata) + } + output := &GetCustomModelOutput{} + 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_deserializeOpDocumentGetCustomModelOutput(&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_deserializeOpErrorGetCustomModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetCustomModelOutput(v **GetCustomModelOutput, 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 *GetCustomModelOutput + if *v == nil { + sv = &GetCustomModelOutput{} } else { sv = *v } @@ -3928,14 +4301,14 @@ func awsRestjson1_deserializeOpDocumentGetInferenceProfileOutput(v **GetInferenc return nil } -type awsRestjson1_deserializeOpGetModelCopyJob struct { +type awsRestjson1_deserializeOpGetMarketplaceModelEndpoint struct { } -func (*awsRestjson1_deserializeOpGetModelCopyJob) ID() string { +func (*awsRestjson1_deserializeOpGetMarketplaceModelEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetModelCopyJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetMarketplaceModelEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3953,9 +4326,9 @@ func (m *awsRestjson1_deserializeOpGetModelCopyJob) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetModelCopyJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetMarketplaceModelEndpoint(response, &metadata) } - output := &GetModelCopyJobOutput{} + output := &GetMarketplaceModelEndpointOutput{} out.Result = output var buff [1024]byte @@ -3976,7 +4349,7 @@ func (m *awsRestjson1_deserializeOpGetModelCopyJob) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetModelCopyJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetMarketplaceModelEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3990,7 +4363,7 @@ func (m *awsRestjson1_deserializeOpGetModelCopyJob) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetModelCopyJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4056,7 +4429,7 @@ func awsRestjson1_deserializeOpErrorGetModelCopyJob(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpDocumentGetModelCopyJobOutput(v **GetModelCopyJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetMarketplaceModelEndpointOutput(v **GetMarketplaceModelEndpointOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4069,35 +4442,199 @@ func awsRestjson1_deserializeOpDocumentGetModelCopyJobOutput(v **GetModelCopyJob return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetModelCopyJobOutput + var sv *GetMarketplaceModelEndpointOutput if *v == nil { - sv = &GetModelCopyJobOutput{} + sv = &GetMarketplaceModelEndpointOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "creationTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) - } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err - } - sv.CreationTime = ptr.Time(t) + case "marketplaceModelEndpoint": + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpoint(&sv.MarketplaceModelEndpoint, value); err != nil { + return err } - case "failureMessage": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) - } - sv.FailureMessage = ptr.String(jtv) + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetModelCopyJob struct { +} + +func (*awsRestjson1_deserializeOpGetModelCopyJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetModelCopyJob) HandleDeserialize(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_deserializeOpErrorGetModelCopyJob(response, &metadata) + } + output := &GetModelCopyJobOutput{} + 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_deserializeOpDocumentGetModelCopyJobOutput(&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_deserializeOpErrorGetModelCopyJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetModelCopyJobOutput(v **GetModelCopyJobOutput, 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 *GetModelCopyJobOutput + if *v == nil { + sv = &GetModelCopyJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "creationTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreationTime = ptr.Time(t) + } + + case "failureMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.FailureMessage = ptr.String(jtv) } case "jobArn": @@ -5263,14 +5800,14 @@ func awsRestjson1_deserializeOpDocumentGetModelInvocationLoggingConfigurationOut return nil } -type awsRestjson1_deserializeOpGetProvisionedModelThroughput struct { +type awsRestjson1_deserializeOpGetPromptRouter struct { } -func (*awsRestjson1_deserializeOpGetProvisionedModelThroughput) ID() string { +func (*awsRestjson1_deserializeOpGetPromptRouter) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetProvisionedModelThroughput) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetPromptRouter) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5288,9 +5825,9 @@ func (m *awsRestjson1_deserializeOpGetProvisionedModelThroughput) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetProvisionedModelThroughput(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetPromptRouter(response, &metadata) } - output := &GetProvisionedModelThroughputOutput{} + output := &GetPromptRouterOutput{} out.Result = output var buff [1024]byte @@ -5311,7 +5848,7 @@ func (m *awsRestjson1_deserializeOpGetProvisionedModelThroughput) HandleDeserial return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetProvisionedModelThroughputOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetPromptRouterOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5325,7 +5862,7 @@ func (m *awsRestjson1_deserializeOpGetProvisionedModelThroughput) HandleDeserial return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetProvisionedModelThroughput(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetPromptRouter(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5391,7 +5928,7 @@ func awsRestjson1_deserializeOpErrorGetProvisionedModelThroughput(response *smit } } -func awsRestjson1_deserializeOpDocumentGetProvisionedModelThroughputOutput(v **GetProvisionedModelThroughputOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetPromptRouterOutput(v **GetPromptRouterOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5404,25 +5941,16 @@ func awsRestjson1_deserializeOpDocumentGetProvisionedModelThroughputOutput(v **G return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetProvisionedModelThroughputOutput + var sv *GetPromptRouterOutput if *v == nil { - sv = &GetProvisionedModelThroughputOutput{} + sv = &GetPromptRouterOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "commitmentDuration": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected CommitmentDuration to be of type string, got %T instead", value) - } - sv.CommitmentDuration = types.CommitmentDuration(jtv) - } - - case "commitmentExpirationTime": + case "createdAt": if value != nil { jtv, ok := value.(string) if !ok { @@ -5432,63 +5960,70 @@ func awsRestjson1_deserializeOpDocumentGetProvisionedModelThroughputOutput(v **G if err != nil { return err } - sv.CommitmentExpirationTime = ptr.Time(t) + sv.CreatedAt = ptr.Time(t) } - case "creationTime": + case "description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) - } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + return fmt.Errorf("expected PromptRouterDescription to be of type string, got %T instead", value) } - sv.CreationTime = ptr.Time(t) + sv.Description = ptr.String(jtv) } - case "desiredModelArn": + case "fallbackModel": + if err := awsRestjson1_deserializeDocumentPromptRouterTargetModel(&sv.FallbackModel, value); err != nil { + return err + } + + case "models": + if err := awsRestjson1_deserializeDocumentPromptRouterTargetModels(&sv.Models, value); err != nil { + return err + } + + case "promptRouterArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + return fmt.Errorf("expected PromptRouterArn to be of type string, got %T instead", value) } - sv.DesiredModelArn = ptr.String(jtv) + sv.PromptRouterArn = ptr.String(jtv) } - case "desiredModelUnits": + case "promptRouterName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected PromptRouterName to be of type string, got %T instead", value) } - sv.DesiredModelUnits = ptr.Int32(int32(i64)) + sv.PromptRouterName = ptr.String(jtv) } - case "failureMessage": + case "routingCriteria": + if err := awsRestjson1_deserializeDocumentRoutingCriteria(&sv.RoutingCriteria, value); err != nil { + return err + } + + case "status": 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 PromptRouterStatus to be of type string, got %T instead", value) } - sv.FailureMessage = ptr.String(jtv) + sv.Status = types.PromptRouterStatus(jtv) } - case "foundationModelArn": + case "type": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FoundationModelArn to be of type string, got %T instead", value) + return fmt.Errorf("expected PromptRouterType to be of type string, got %T instead", value) } - sv.FoundationModelArn = ptr.String(jtv) + sv.Type = types.PromptRouterType(jtv) } - case "lastModifiedTime": + case "updatedAt": if value != nil { jtv, ok := value.(string) if !ok { @@ -5498,19 +6033,266 @@ func awsRestjson1_deserializeOpDocumentGetProvisionedModelThroughputOutput(v **G if err != nil { return err } - sv.LastModifiedTime = ptr.Time(t) + sv.UpdatedAt = ptr.Time(t) } - case "modelArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) - } - sv.ModelArn = ptr.String(jtv) - } + default: + _, _ = key, value - case "modelUnits": + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetProvisionedModelThroughput struct { +} + +func (*awsRestjson1_deserializeOpGetProvisionedModelThroughput) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetProvisionedModelThroughput) HandleDeserialize(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_deserializeOpErrorGetProvisionedModelThroughput(response, &metadata) + } + output := &GetProvisionedModelThroughputOutput{} + 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_deserializeOpDocumentGetProvisionedModelThroughputOutput(&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_deserializeOpErrorGetProvisionedModelThroughput(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetProvisionedModelThroughputOutput(v **GetProvisionedModelThroughputOutput, 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 *GetProvisionedModelThroughputOutput + if *v == nil { + sv = &GetProvisionedModelThroughputOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "commitmentDuration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CommitmentDuration to be of type string, got %T instead", value) + } + sv.CommitmentDuration = types.CommitmentDuration(jtv) + } + + case "commitmentExpirationTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CommitmentExpirationTime = ptr.Time(t) + } + + case "creationTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreationTime = ptr.Time(t) + } + + case "desiredModelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + } + sv.DesiredModelArn = ptr.String(jtv) + } + + case "desiredModelUnits": + 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.DesiredModelUnits = ptr.Int32(int32(i64)) + } + + case "failureMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.FailureMessage = ptr.String(jtv) + } + + case "foundationModelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FoundationModelArn to be of type string, got %T instead", value) + } + sv.FoundationModelArn = ptr.String(jtv) + } + + case "lastModifiedTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(t) + } + + case "modelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + } + sv.ModelArn = ptr.String(jtv) + } + + case "modelUnits": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -6573,10 +7355,183 @@ func awsRestjson1_deserializeOpDocumentListInferenceProfilesOutput(v **ListInfer return nil } -type awsRestjson1_deserializeOpListModelCopyJobs struct { +type awsRestjson1_deserializeOpListMarketplaceModelEndpoints struct { } -func (*awsRestjson1_deserializeOpListModelCopyJobs) ID() string { +func (*awsRestjson1_deserializeOpListMarketplaceModelEndpoints) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListMarketplaceModelEndpoints) HandleDeserialize(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_deserializeOpErrorListMarketplaceModelEndpoints(response, &metadata) + } + output := &ListMarketplaceModelEndpointsOutput{} + 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_deserializeOpDocumentListMarketplaceModelEndpointsOutput(&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_deserializeOpErrorListMarketplaceModelEndpoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentListMarketplaceModelEndpointsOutput(v **ListMarketplaceModelEndpointsOutput, 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 *ListMarketplaceModelEndpointsOutput + if *v == nil { + sv = &ListMarketplaceModelEndpointsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "marketplaceModelEndpoints": + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpointSummaries(&sv.MarketplaceModelEndpoints, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListModelCopyJobs struct { +} + +func (*awsRestjson1_deserializeOpListModelCopyJobs) ID() string { return "OperationDeserializer" } @@ -7256,14 +8211,14 @@ func awsRestjson1_deserializeOpDocumentListModelInvocationJobsOutput(v **ListMod return nil } -type awsRestjson1_deserializeOpListProvisionedModelThroughputs struct { +type awsRestjson1_deserializeOpListPromptRouters struct { } -func (*awsRestjson1_deserializeOpListProvisionedModelThroughputs) ID() string { +func (*awsRestjson1_deserializeOpListPromptRouters) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListProvisionedModelThroughputs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListPromptRouters) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7281,9 +8236,9 @@ func (m *awsRestjson1_deserializeOpListProvisionedModelThroughputs) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListProvisionedModelThroughputs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListPromptRouters(response, &metadata) } - output := &ListProvisionedModelThroughputsOutput{} + output := &ListPromptRoutersOutput{} out.Result = output var buff [1024]byte @@ -7304,7 +8259,7 @@ func (m *awsRestjson1_deserializeOpListProvisionedModelThroughputs) HandleDeseri return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListPromptRoutersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7318,7 +8273,7 @@ func (m *awsRestjson1_deserializeOpListProvisionedModelThroughputs) HandleDeseri return out, metadata, err } -func awsRestjson1_deserializeOpErrorListProvisionedModelThroughputs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListPromptRouters(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7381,7 +8336,7 @@ func awsRestjson1_deserializeOpErrorListProvisionedModelThroughputs(response *sm } } -func awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(v **ListProvisionedModelThroughputsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListPromptRoutersOutput(v **ListPromptRoutersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7394,9 +8349,9 @@ func awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListProvisionedModelThroughputsOutput + var sv *ListPromptRoutersOutput if *v == nil { - sv = &ListProvisionedModelThroughputsOutput{} + sv = &ListPromptRoutersOutput{} } else { sv = *v } @@ -7412,8 +8367,8 @@ func awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(v * sv.NextToken = ptr.String(jtv) } - case "provisionedModelSummaries": - if err := awsRestjson1_deserializeDocumentProvisionedModelSummaries(&sv.ProvisionedModelSummaries, value); err != nil { + case "promptRouterSummaries": + if err := awsRestjson1_deserializeDocumentPromptRouterSummaries(&sv.PromptRouterSummaries, value); err != nil { return err } @@ -7426,14 +8381,14 @@ func awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(v * return nil } -type awsRestjson1_deserializeOpListTagsForResource struct { +type awsRestjson1_deserializeOpListProvisionedModelThroughputs struct { } -func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { +func (*awsRestjson1_deserializeOpListProvisionedModelThroughputs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListProvisionedModelThroughputs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7451,9 +8406,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_deserializeOpErrorListProvisionedModelThroughputs(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListProvisionedModelThroughputsOutput{} out.Result = output var buff [1024]byte @@ -7474,7 +8429,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7488,7 +8443,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListProvisionedModelThroughputs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7535,9 +8490,6 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res 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) @@ -7554,7 +8506,7 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListProvisionedModelThroughputsOutput(v **ListProvisionedModelThroughputsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7567,17 +8519,26 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTagsForResourceOutput + var sv *ListProvisionedModelThroughputsOutput if *v == nil { - sv = &ListTagsForResourceOutput{} + sv = &ListProvisionedModelThroughputsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "tags": - if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "provisionedModelSummaries": + if err := awsRestjson1_deserializeDocumentProvisionedModelSummaries(&sv.ProvisionedModelSummaries, value); err != nil { return err } @@ -7590,14 +8551,14 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return nil } -type awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration struct { +type awsRestjson1_deserializeOpListTagsForResource struct { } -func (*awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration) ID() string { +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration) 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) @@ -7615,16 +8576,44 @@ func (m *awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorPutModelInvocationLoggingConfiguration(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &PutModelInvocationLoggingConfigurationOutput{} + 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_deserializeOpErrorPutModelInvocationLoggingConfiguration(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)} @@ -7671,6 +8660,9 @@ func awsRestjson1_deserializeOpErrorPutModelInvocationLoggingConfiguration(respo 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) @@ -7687,8 +8679,308 @@ func awsRestjson1_deserializeOpErrorPutModelInvocationLoggingConfiguration(respo } } -type awsRestjson1_deserializeOpStopEvaluationJob struct { -} +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_deserializeDocumentTagList(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration struct { +} + +func (*awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpPutModelInvocationLoggingConfiguration) HandleDeserialize(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_deserializeOpErrorPutModelInvocationLoggingConfiguration(response, &metadata) + } + output := &PutModelInvocationLoggingConfigurationOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorPutModelInvocationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 + + } +} + +type awsRestjson1_deserializeOpRegisterMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_deserializeOpRegisterMarketplaceModelEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpRegisterMarketplaceModelEndpoint) HandleDeserialize(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_deserializeOpErrorRegisterMarketplaceModelEndpoint(response, &metadata) + } + output := &RegisterMarketplaceModelEndpointOutput{} + 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_deserializeOpDocumentRegisterMarketplaceModelEndpointOutput(&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_deserializeOpErrorRegisterMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(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_deserializeOpDocumentRegisterMarketplaceModelEndpointOutput(v **RegisterMarketplaceModelEndpointOutput, 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 *RegisterMarketplaceModelEndpointOutput + if *v == nil { + sv = &RegisterMarketplaceModelEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "marketplaceModelEndpoint": + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpoint(&sv.MarketplaceModelEndpoint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpStopEvaluationJob struct { +} func (*awsRestjson1_deserializeOpStopEvaluationJob) ID() string { return "OperationDeserializer" @@ -8404,6 +9696,176 @@ func awsRestjson1_deserializeOpDocumentUpdateGuardrailOutput(v **UpdateGuardrail return nil } +type awsRestjson1_deserializeOpUpdateMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_deserializeOpUpdateMarketplaceModelEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateMarketplaceModelEndpoint) HandleDeserialize(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_deserializeOpErrorUpdateMarketplaceModelEndpoint(response, &metadata) + } + output := &UpdateMarketplaceModelEndpointOutput{} + 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_deserializeOpDocumentUpdateMarketplaceModelEndpointOutput(&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_deserializeOpErrorUpdateMarketplaceModelEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentUpdateMarketplaceModelEndpointOutput(v **UpdateMarketplaceModelEndpointOutput, 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 *UpdateMarketplaceModelEndpointOutput + if *v == nil { + sv = &UpdateMarketplaceModelEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "marketplaceModelEndpoint": + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpoint(&sv.MarketplaceModelEndpoint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpUpdateProvisionedModelThroughput struct { } @@ -8684,6 +10146,42 @@ func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithy return output } +func awsRestjson1_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ServiceUnavailableException{} + 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_deserializeDocumentServiceUnavailableException(&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 @@ -9514,17 +11012,57 @@ func awsRestjson1_deserializeDocumentDistillationConfig(v **types.DistillationCo for key, value := range shape { switch key { - case "teacherModelConfig": - if err := awsRestjson1_deserializeDocumentTeacherModelConfig(&sv.TeacherModelConfig, value); err != nil { + case "teacherModelConfig": + if err := awsRestjson1_deserializeDocumentTeacherModelConfig(&sv.TeacherModelConfig, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentEndpointConfig(v *types.EndpointConfig, 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.EndpointConfig +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "sageMaker": + var mv types.SageMakerEndpoint + destAddr := &mv + if err := awsRestjson1_deserializeDocumentSageMakerEndpoint(&destAddr, value); err != nil { return err } + mv = *destAddr + uv = &types.EndpointConfigMemberSageMaker{Value: mv} + break loop default: - _, _ = key, value + uv = &types.UnknownUnionMember{Tag: key} + break loop } } - *v = sv + *v = uv return nil } @@ -10953,6 +12491,11 @@ func awsRestjson1_deserializeDocumentGuardrailContentFilter(v **types.GuardrailC for key, value := range shape { switch key { + case "inputModalities": + if err := awsRestjson1_deserializeDocumentGuardrailModalities(&sv.InputModalities, value); err != nil { + return err + } + case "inputStrength": if value != nil { jtv, ok := value.(string) @@ -10962,6 +12505,11 @@ func awsRestjson1_deserializeDocumentGuardrailContentFilter(v **types.GuardrailC sv.InputStrength = types.GuardrailFilterStrength(jtv) } + case "outputModalities": + if err := awsRestjson1_deserializeDocumentGuardrailModalities(&sv.OutputModalities, value); err != nil { + return err + } + case "outputStrength": if value != nil { jtv, ok := value.(string) @@ -11313,6 +12861,42 @@ func awsRestjson1_deserializeDocumentGuardrailManagedWords(v **types.GuardrailMa return nil } +func awsRestjson1_deserializeDocumentGuardrailModalities(v *[]types.GuardrailModality, 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.GuardrailModality + if *v == nil { + cv = []types.GuardrailModality{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.GuardrailModality + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GuardrailModality to be of type string, got %T instead", value) + } + col = types.GuardrailModality(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentGuardrailPiiEntities(v *[]types.GuardrailPiiEntity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -13005,7 +14589,250 @@ func awsRestjson1_deserializeDocumentLoggingConfig(v **types.LoggingConfig, valu if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.VideoDataDeliveryEnabled = ptr.Bool(jtv) + sv.VideoDataDeliveryEnabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentMarketplaceModelEndpoint(v **types.MarketplaceModelEndpoint, 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.MarketplaceModelEndpoint + if *v == nil { + sv = &types.MarketplaceModelEndpoint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "createdAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) + } + + case "endpointArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.EndpointArn = ptr.String(jtv) + } + + case "endpointConfig": + if err := awsRestjson1_deserializeDocumentEndpointConfig(&sv.EndpointConfig, value); err != nil { + return err + } + + case "endpointStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.EndpointStatus = ptr.String(jtv) + } + + case "endpointStatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.EndpointStatusMessage = ptr.String(jtv) + } + + case "modelSourceIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelSourceIdentifier to be of type string, got %T instead", value) + } + sv.ModelSourceIdentifier = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(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 "updatedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.UpdatedAt = ptr.Time(t) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentMarketplaceModelEndpointSummaries(v *[]types.MarketplaceModelEndpointSummary, 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.MarketplaceModelEndpointSummary + if *v == nil { + cv = []types.MarketplaceModelEndpointSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.MarketplaceModelEndpointSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentMarketplaceModelEndpointSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentMarketplaceModelEndpointSummary(v **types.MarketplaceModelEndpointSummary, 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.MarketplaceModelEndpointSummary + if *v == nil { + sv = &types.MarketplaceModelEndpointSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "createdAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) + } + + case "endpointArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.EndpointArn = ptr.String(jtv) + } + + case "modelSourceIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelSourceIdentifier to be of type string, got %T instead", value) + } + sv.ModelSourceIdentifier = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(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 "updatedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.UpdatedAt = ptr.Time(t) } default: @@ -13977,31 +15804,294 @@ func awsRestjson1_deserializeDocumentModelInvocationJobSummary(v **types.ModelIn if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) - } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.SubmitTime = ptr.Time(t) + } + + case "timeoutDurationInHours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ModelInvocationJobTimeoutDurationInHours to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TimeoutDurationInHours = ptr.Int32(int32(i64)) + } + + case "vpcConfig": + if err := awsRestjson1_deserializeDocumentVpcConfig(&sv.VpcConfig, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentModelModalityList(v *[]types.ModelModality, 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.ModelModality + if *v == nil { + cv = []types.ModelModality{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ModelModality + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelModality to be of type string, got %T instead", value) + } + col = types.ModelModality(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentOrchestrationConfiguration(v **types.OrchestrationConfiguration, 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.OrchestrationConfiguration + if *v == nil { + sv = &types.OrchestrationConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "queryTransformationConfiguration": + if err := awsRestjson1_deserializeDocumentQueryTransformationConfiguration(&sv.QueryTransformationConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig, 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.OutputDataConfig + if *v == nil { + sv = &types.OutputDataConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Uri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3Uri to be of type string, got %T instead", value) + } + sv.S3Uri = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPromptRouterSummaries(v *[]types.PromptRouterSummary, 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.PromptRouterSummary + if *v == nil { + cv = []types.PromptRouterSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PromptRouterSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentPromptRouterSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentPromptRouterSummary(v **types.PromptRouterSummary, 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.PromptRouterSummary + if *v == nil { + sv = &types.PromptRouterSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "createdAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "fallbackModel": + if err := awsRestjson1_deserializeDocumentPromptRouterTargetModel(&sv.FallbackModel, value); err != nil { + return err + } + + case "models": + if err := awsRestjson1_deserializeDocumentPromptRouterTargetModels(&sv.Models, value); err != nil { + return err + } + + case "promptRouterArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterArn to be of type string, got %T instead", value) + } + sv.PromptRouterArn = ptr.String(jtv) + } + + case "promptRouterName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterName to be of type string, got %T instead", value) + } + sv.PromptRouterName = ptr.String(jtv) + } + + case "routingCriteria": + if err := awsRestjson1_deserializeDocumentRoutingCriteria(&sv.RoutingCriteria, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterStatus to be of type string, got %T instead", value) + } + sv.Status = types.PromptRouterStatus(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterType to be of type string, got %T instead", value) } - sv.SubmitTime = ptr.Time(t) + sv.Type = types.PromptRouterType(jtv) } - case "timeoutDurationInHours": + case "updatedAt": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelInvocationJobTimeoutDurationInHours to be json.Number, got %T instead", value) + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) } - i64, err := jtv.Int64() + t, err := smithytime.ParseDateTime(jtv) if err != nil { return err } - sv.TimeoutDurationInHours = ptr.Int32(int32(i64)) - } - - case "vpcConfig": - if err := awsRestjson1_deserializeDocumentVpcConfig(&sv.VpcConfig, value); err != nil { - return err + sv.UpdatedAt = ptr.Time(t) } default: @@ -14013,43 +16103,7 @@ func awsRestjson1_deserializeDocumentModelInvocationJobSummary(v **types.ModelIn return nil } -func awsRestjson1_deserializeDocumentModelModalityList(v *[]types.ModelModality, 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.ModelModality - if *v == nil { - cv = []types.ModelModality{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.ModelModality - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ModelModality to be of type string, got %T instead", value) - } - col = types.ModelModality(jtv) - } - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentOrchestrationConfiguration(v **types.OrchestrationConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentPromptRouterTargetModel(v **types.PromptRouterTargetModel, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14062,18 +16116,22 @@ func awsRestjson1_deserializeDocumentOrchestrationConfiguration(v **types.Orches return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.OrchestrationConfiguration + var sv *types.PromptRouterTargetModel if *v == nil { - sv = &types.OrchestrationConfiguration{} + sv = &types.PromptRouterTargetModel{} } else { sv = *v } for key, value := range shape { switch key { - case "queryTransformationConfiguration": - if err := awsRestjson1_deserializeDocumentQueryTransformationConfiguration(&sv.QueryTransformationConfiguration, value); err != nil { - return err + case "modelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PromptRouterTargetModelArn to be of type string, got %T instead", value) + } + sv.ModelArn = ptr.String(jtv) } default: @@ -14085,7 +16143,7 @@ func awsRestjson1_deserializeDocumentOrchestrationConfiguration(v **types.Orches return nil } -func awsRestjson1_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentPromptRouterTargetModels(v *[]types.PromptRouterTargetModel, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14093,35 +16151,29 @@ func awsRestjson1_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig 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.OutputDataConfig + var cv []types.PromptRouterTargetModel if *v == nil { - sv = &types.OutputDataConfig{} + cv = []types.PromptRouterTargetModel{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "s3Uri": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected S3Uri to be of type string, got %T instead", value) - } - sv.S3Uri = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.PromptRouterTargetModel + destAddr := &col + if err := awsRestjson1_deserializeDocumentPromptRouterTargetModel(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } @@ -15036,6 +17088,71 @@ func awsRestjson1_deserializeDocumentRetrieveConfig(v **types.RetrieveConfig, va return nil } +func awsRestjson1_deserializeDocumentRoutingCriteria(v **types.RoutingCriteria, 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.RoutingCriteria + if *v == nil { + sv = &types.RoutingCriteria{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "responseQualityDifference": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.ResponseQualityDifference = 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.ResponseQualityDifference = ptr.Float64(f64) + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentS3Config(v **types.S3Config, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15165,6 +17282,82 @@ func awsRestjson1_deserializeDocumentS3ObjectDoc(v **types.S3ObjectDoc, value in return nil } +func awsRestjson1_deserializeDocumentSageMakerEndpoint(v **types.SageMakerEndpoint, 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.SageMakerEndpoint + if *v == nil { + sv = &types.SageMakerEndpoint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "executionRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.ExecutionRole = ptr.String(jtv) + } + + case "initialInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected InstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InitialInstanceCount = ptr.Int32(int32(i64)) + } + + case "instanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceType to be of type string, got %T instead", value) + } + sv.InstanceType = ptr.String(jtv) + } + + case "kmsEncryptionKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsEncryptionKey = ptr.String(jtv) + } + + case "vpc": + if err := awsRestjson1_deserializeDocumentVpcConfig(&sv.Vpc, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSecurityGroupIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15241,6 +17434,46 @@ func awsRestjson1_deserializeDocumentServiceQuotaExceededException(v **types.Ser return nil } +func awsRestjson1_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, 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.ServiceUnavailableException + if *v == nil { + sv = &types.ServiceUnavailableException{} + } 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSubnetIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/bedrock/generated.json b/service/bedrock/generated.json index 83d49fc535a..98351a3273d 100644 --- a/service/bedrock/generated.json +++ b/service/bedrock/generated.json @@ -13,6 +13,7 @@ "api_op_CreateGuardrail.go", "api_op_CreateGuardrailVersion.go", "api_op_CreateInferenceProfile.go", + "api_op_CreateMarketplaceModelEndpoint.go", "api_op_CreateModelCopyJob.go", "api_op_CreateModelCustomizationJob.go", "api_op_CreateModelImportJob.go", @@ -22,19 +23,23 @@ "api_op_DeleteGuardrail.go", "api_op_DeleteImportedModel.go", "api_op_DeleteInferenceProfile.go", + "api_op_DeleteMarketplaceModelEndpoint.go", "api_op_DeleteModelInvocationLoggingConfiguration.go", "api_op_DeleteProvisionedModelThroughput.go", + "api_op_DeregisterMarketplaceModelEndpoint.go", "api_op_GetCustomModel.go", "api_op_GetEvaluationJob.go", "api_op_GetFoundationModel.go", "api_op_GetGuardrail.go", "api_op_GetImportedModel.go", "api_op_GetInferenceProfile.go", + "api_op_GetMarketplaceModelEndpoint.go", "api_op_GetModelCopyJob.go", "api_op_GetModelCustomizationJob.go", "api_op_GetModelImportJob.go", "api_op_GetModelInvocationJob.go", "api_op_GetModelInvocationLoggingConfiguration.go", + "api_op_GetPromptRouter.go", "api_op_GetProvisionedModelThroughput.go", "api_op_ListCustomModels.go", "api_op_ListEvaluationJobs.go", @@ -42,19 +47,23 @@ "api_op_ListGuardrails.go", "api_op_ListImportedModels.go", "api_op_ListInferenceProfiles.go", + "api_op_ListMarketplaceModelEndpoints.go", "api_op_ListModelCopyJobs.go", "api_op_ListModelCustomizationJobs.go", "api_op_ListModelImportJobs.go", "api_op_ListModelInvocationJobs.go", + "api_op_ListPromptRouters.go", "api_op_ListProvisionedModelThroughputs.go", "api_op_ListTagsForResource.go", "api_op_PutModelInvocationLoggingConfiguration.go", + "api_op_RegisterMarketplaceModelEndpoint.go", "api_op_StopEvaluationJob.go", "api_op_StopModelCustomizationJob.go", "api_op_StopModelInvocationJob.go", "api_op_TagResource.go", "api_op_UntagResource.go", "api_op_UpdateGuardrail.go", + "api_op_UpdateMarketplaceModelEndpoint.go", "api_op_UpdateProvisionedModelThroughput.go", "auth.go", "deserializers.go", diff --git a/service/bedrock/serializers.go b/service/bedrock/serializers.go index 934f821d970..f3e5160abc7 100644 --- a/service/bedrock/serializers.go +++ b/service/bedrock/serializers.go @@ -588,6 +588,116 @@ func awsRestjson1_serializeOpDocumentCreateInferenceProfileInput(v *CreateInfere return nil } +type awsRestjson1_serializeOpCreateMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpCreateMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateMarketplaceModelEndpoint) 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.(*CreateMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints") + 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_serializeOpDocumentCreateMarketplaceModelEndpointInput(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_serializeOpHttpBindingsCreateMarketplaceModelEndpointInput(v *CreateMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateMarketplaceModelEndpointInput(v *CreateMarketplaceModelEndpointInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AcceptEula { + ok := object.Key("acceptEula") + ok.Boolean(v.AcceptEula) + } + + if v.ClientRequestToken != nil { + ok := object.Key("clientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.EndpointConfig != nil { + ok := object.Key("endpointConfig") + if err := awsRestjson1_serializeDocumentEndpointConfig(v.EndpointConfig, ok); err != nil { + return err + } + } + + if v.EndpointName != nil { + ok := object.Key("endpointName") + ok.String(*v.EndpointName) + } + + if v.ModelSourceIdentifier != nil { + ok := object.Key("modelSourceIdentifier") + ok.String(*v.ModelSourceIdentifier) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpCreateModelCopyJob struct { } @@ -1512,6 +1622,77 @@ func awsRestjson1_serializeOpHttpBindingsDeleteInferenceProfileInput(v *DeleteIn return nil } +type awsRestjson1_serializeOpDeleteMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpDeleteMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteMarketplaceModelEndpoint) 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.(*DeleteMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints/{endpointArn}") + 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_serializeOpHttpBindingsDeleteMarketplaceModelEndpointInput(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_serializeOpHttpBindingsDeleteMarketplaceModelEndpointInput(v *DeleteMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointArn == nil || len(*v.EndpointArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member endpointArn must not be empty")} + } + if v.EndpointArn != nil { + if err := encoder.SetURI("endpointArn").String(*v.EndpointArn); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteModelInvocationLoggingConfiguration struct { } @@ -1641,6 +1822,77 @@ func awsRestjson1_serializeOpHttpBindingsDeleteProvisionedModelThroughputInput(v return nil } +type awsRestjson1_serializeOpDeregisterMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpDeregisterMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeregisterMarketplaceModelEndpoint) 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.(*DeregisterMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints/{endpointArn}/registration") + 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_serializeOpHttpBindingsDeregisterMarketplaceModelEndpointInput(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_serializeOpHttpBindingsDeregisterMarketplaceModelEndpointInput(v *DeregisterMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointArn == nil || len(*v.EndpointArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member endpointArn must not be empty")} + } + if v.EndpointArn != nil { + if err := encoder.SetURI("endpointArn").String(*v.EndpointArn); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetCustomModel struct { } @@ -2071,6 +2323,77 @@ func awsRestjson1_serializeOpHttpBindingsGetInferenceProfileInput(v *GetInferenc return nil } +type awsRestjson1_serializeOpGetMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpGetMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetMarketplaceModelEndpoint) 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.(*GetMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints/{endpointArn}") + 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_serializeOpHttpBindingsGetMarketplaceModelEndpointInput(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_serializeOpHttpBindingsGetMarketplaceModelEndpointInput(v *GetMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointArn == nil || len(*v.EndpointArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member endpointArn must not be empty")} + } + if v.EndpointArn != nil { + if err := encoder.SetURI("endpointArn").String(*v.EndpointArn); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetModelCopyJob struct { } @@ -2413,6 +2736,77 @@ func awsRestjson1_serializeOpHttpBindingsGetModelInvocationLoggingConfigurationI return nil } +type awsRestjson1_serializeOpGetPromptRouter struct { +} + +func (*awsRestjson1_serializeOpGetPromptRouter) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetPromptRouter) 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.(*GetPromptRouterInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/prompt-routers/{promptRouterArn}") + 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_serializeOpHttpBindingsGetPromptRouterInput(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_serializeOpHttpBindingsGetPromptRouterInput(v *GetPromptRouterInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.PromptRouterArn == nil || len(*v.PromptRouterArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member promptRouterArn must not be empty")} + } + if v.PromptRouterArn != nil { + if err := encoder.SetURI("promptRouterArn").String(*v.PromptRouterArn); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetProvisionedModelThroughput struct { } @@ -3000,6 +3394,80 @@ func awsRestjson1_serializeOpHttpBindingsListInferenceProfilesInput(v *ListInfer return nil } +type awsRestjson1_serializeOpListMarketplaceModelEndpoints struct { +} + +func (*awsRestjson1_serializeOpListMarketplaceModelEndpoints) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListMarketplaceModelEndpoints) 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.(*ListMarketplaceModelEndpointsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints") + 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_serializeOpHttpBindingsListMarketplaceModelEndpointsInput(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_serializeOpHttpBindingsListMarketplaceModelEndpointsInput(v *ListMarketplaceModelEndpointsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.ModelSourceEquals != nil { + encoder.SetQuery("modelSourceIdentifier").String(*v.ModelSourceEquals) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListModelCopyJobs struct { } @@ -3290,14 +3758,108 @@ func awsRestjson1_serializeOpHttpBindingsListModelImportJobsInput(v *ListModelIm return nil } -type awsRestjson1_serializeOpListModelInvocationJobs struct { +type awsRestjson1_serializeOpListModelInvocationJobs struct { +} + +func (*awsRestjson1_serializeOpListModelInvocationJobs) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListModelInvocationJobs) 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.(*ListModelInvocationJobsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/model-invocation-jobs") + 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_serializeOpHttpBindingsListModelInvocationJobsInput(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_serializeOpHttpBindingsListModelInvocationJobsInput(v *ListModelInvocationJobsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NameContains != nil { + encoder.SetQuery("nameContains").String(*v.NameContains) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + if len(v.SortBy) > 0 { + encoder.SetQuery("sortBy").String(string(v.SortBy)) + } + + if len(v.SortOrder) > 0 { + encoder.SetQuery("sortOrder").String(string(v.SortOrder)) + } + + if len(v.StatusEquals) > 0 { + encoder.SetQuery("statusEquals").String(string(v.StatusEquals)) + } + + if v.SubmitTimeAfter != nil { + encoder.SetQuery("submitTimeAfter").String(smithytime.FormatDateTime(*v.SubmitTimeAfter)) + } + + if v.SubmitTimeBefore != nil { + encoder.SetQuery("submitTimeBefore").String(smithytime.FormatDateTime(*v.SubmitTimeBefore)) + } + + return nil +} + +type awsRestjson1_serializeOpListPromptRouters struct { } -func (*awsRestjson1_serializeOpListModelInvocationJobs) ID() string { +func (*awsRestjson1_serializeOpListPromptRouters) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListModelInvocationJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListPromptRouters) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -3309,13 +3871,13 @@ func (m *awsRestjson1_serializeOpListModelInvocationJobs) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListModelInvocationJobsInput) + input, ok := in.Parameters.(*ListPromptRoutersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/model-invocation-jobs") + opPath, opQuery := httpbinding.SplitURI("/prompt-routers") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -3331,7 +3893,7 @@ func (m *awsRestjson1_serializeOpListModelInvocationJobs) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListModelInvocationJobsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListPromptRoutersInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3344,7 +3906,7 @@ func (m *awsRestjson1_serializeOpListModelInvocationJobs) HandleSerialize(ctx co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListModelInvocationJobsInput(v *ListModelInvocationJobsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListPromptRoutersInput(v *ListPromptRoutersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -3353,34 +3915,10 @@ func awsRestjson1_serializeOpHttpBindingsListModelInvocationJobsInput(v *ListMod encoder.SetQuery("maxResults").Integer(*v.MaxResults) } - if v.NameContains != nil { - encoder.SetQuery("nameContains").String(*v.NameContains) - } - if v.NextToken != nil { encoder.SetQuery("nextToken").String(*v.NextToken) } - if len(v.SortBy) > 0 { - encoder.SetQuery("sortBy").String(string(v.SortBy)) - } - - if len(v.SortOrder) > 0 { - encoder.SetQuery("sortOrder").String(string(v.SortOrder)) - } - - if len(v.StatusEquals) > 0 { - encoder.SetQuery("statusEquals").String(string(v.StatusEquals)) - } - - if v.SubmitTimeAfter != nil { - encoder.SetQuery("submitTimeAfter").String(smithytime.FormatDateTime(*v.SubmitTimeAfter)) - } - - if v.SubmitTimeBefore != nil { - encoder.SetQuery("submitTimeBefore").String(smithytime.FormatDateTime(*v.SubmitTimeBefore)) - } - return nil } @@ -3646,6 +4184,100 @@ func awsRestjson1_serializeOpDocumentPutModelInvocationLoggingConfigurationInput return nil } +type awsRestjson1_serializeOpRegisterMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpRegisterMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpRegisterMarketplaceModelEndpoint) 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.(*RegisterMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints/{endpointIdentifier}/registration") + 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_serializeOpHttpBindingsRegisterMarketplaceModelEndpointInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentRegisterMarketplaceModelEndpointInput(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_serializeOpHttpBindingsRegisterMarketplaceModelEndpointInput(v *RegisterMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointIdentifier == nil || len(*v.EndpointIdentifier) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member endpointIdentifier must not be empty")} + } + if v.EndpointIdentifier != nil { + if err := encoder.SetURI("endpointIdentifier").String(*v.EndpointIdentifier); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentRegisterMarketplaceModelEndpointInput(v *RegisterMarketplaceModelEndpointInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ModelSourceIdentifier != nil { + ok := object.Key("modelSourceIdentifier") + ok.String(*v.ModelSourceIdentifier) + } + + return nil +} + type awsRestjson1_serializeOpStopEvaluationJob struct { } @@ -4184,6 +4816,107 @@ func awsRestjson1_serializeOpDocumentUpdateGuardrailInput(v *UpdateGuardrailInpu return nil } +type awsRestjson1_serializeOpUpdateMarketplaceModelEndpoint struct { +} + +func (*awsRestjson1_serializeOpUpdateMarketplaceModelEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateMarketplaceModelEndpoint) 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.(*UpdateMarketplaceModelEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/marketplace-model/endpoints/{endpointArn}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PATCH" + 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_serializeOpHttpBindingsUpdateMarketplaceModelEndpointInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateMarketplaceModelEndpointInput(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_serializeOpHttpBindingsUpdateMarketplaceModelEndpointInput(v *UpdateMarketplaceModelEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointArn == nil || len(*v.EndpointArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member endpointArn must not be empty")} + } + if v.EndpointArn != nil { + if err := encoder.SetURI("endpointArn").String(*v.EndpointArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateMarketplaceModelEndpointInput(v *UpdateMarketplaceModelEndpointInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("clientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.EndpointConfig != nil { + ok := object.Key("endpointConfig") + if err := awsRestjson1_serializeDocumentEndpointConfig(v.EndpointConfig, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpUpdateProvisionedModelThroughput struct { } @@ -4438,6 +5171,24 @@ func awsRestjson1_serializeDocumentDistillationConfig(v *types.DistillationConfi return nil } +func awsRestjson1_serializeDocumentEndpointConfig(v types.EndpointConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.EndpointConfigMemberSageMaker: + av := object.Key("sageMaker") + if err := awsRestjson1_serializeDocumentSageMakerEndpoint(&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_serializeDocumentEvaluationBedrockModel(v *types.EvaluationBedrockModel, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4853,11 +5604,25 @@ func awsRestjson1_serializeDocumentGuardrailContentFilterConfig(v *types.Guardra object := value.Object() defer object.Close() + if v.InputModalities != nil { + ok := object.Key("inputModalities") + if err := awsRestjson1_serializeDocumentGuardrailModalities(v.InputModalities, ok); err != nil { + return err + } + } + if len(v.InputStrength) > 0 { ok := object.Key("inputStrength") ok.String(string(v.InputStrength)) } + if v.OutputModalities != nil { + ok := object.Key("outputModalities") + if err := awsRestjson1_serializeDocumentGuardrailModalities(v.OutputModalities, ok); err != nil { + return err + } + } + if len(v.OutputStrength) > 0 { ok := object.Key("outputStrength") ok.String(string(v.OutputStrength)) @@ -4980,6 +5745,17 @@ func awsRestjson1_serializeDocumentGuardrailManagedWordsConfig(v *types.Guardrai return nil } +func awsRestjson1_serializeDocumentGuardrailModalities(v []types.GuardrailModality, 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_serializeDocumentGuardrailPiiEntitiesConfig(v []types.GuardrailPiiEntityConfig, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -5954,6 +6730,40 @@ func awsRestjson1_serializeDocumentS3ObjectDoc(v *types.S3ObjectDoc, value smith return nil } +func awsRestjson1_serializeDocumentSageMakerEndpoint(v *types.SageMakerEndpoint, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ExecutionRole != nil { + ok := object.Key("executionRole") + ok.String(*v.ExecutionRole) + } + + if v.InitialInstanceCount != nil { + ok := object.Key("initialInstanceCount") + ok.Integer(*v.InitialInstanceCount) + } + + if v.InstanceType != nil { + ok := object.Key("instanceType") + ok.String(*v.InstanceType) + } + + if v.KmsEncryptionKey != nil { + ok := object.Key("kmsEncryptionKey") + ok.String(*v.KmsEncryptionKey) + } + + if v.Vpc != nil { + ok := object.Key("vpc") + if err := awsRestjson1_serializeDocumentVpcConfig(v.Vpc, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentSecurityGroupIds(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/bedrock/snapshot/api_op_CreateMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_CreateMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..d082892b490 --- /dev/null +++ b/service/bedrock/snapshot/api_op_CreateMarketplaceModelEndpoint.go.snap @@ -0,0 +1,42 @@ +CreateMarketplaceModelEndpoint + 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/bedrock/snapshot/api_op_DeleteMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_DeleteMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..176a583304c --- /dev/null +++ b/service/bedrock/snapshot/api_op_DeleteMarketplaceModelEndpoint.go.snap @@ -0,0 +1,41 @@ +DeleteMarketplaceModelEndpoint + 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/bedrock/snapshot/api_op_DeregisterMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_DeregisterMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..3f85c8bc395 --- /dev/null +++ b/service/bedrock/snapshot/api_op_DeregisterMarketplaceModelEndpoint.go.snap @@ -0,0 +1,41 @@ +DeregisterMarketplaceModelEndpoint + 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/bedrock/snapshot/api_op_GetMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_GetMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..e6c5419f37e --- /dev/null +++ b/service/bedrock/snapshot/api_op_GetMarketplaceModelEndpoint.go.snap @@ -0,0 +1,41 @@ +GetMarketplaceModelEndpoint + 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/bedrock/snapshot/api_op_GetPromptRouter.go.snap b/service/bedrock/snapshot/api_op_GetPromptRouter.go.snap new file mode 100644 index 00000000000..1ae233b3e3d --- /dev/null +++ b/service/bedrock/snapshot/api_op_GetPromptRouter.go.snap @@ -0,0 +1,41 @@ +GetPromptRouter + 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/bedrock/snapshot/api_op_ListMarketplaceModelEndpoints.go.snap b/service/bedrock/snapshot/api_op_ListMarketplaceModelEndpoints.go.snap new file mode 100644 index 00000000000..9248c95c1f7 --- /dev/null +++ b/service/bedrock/snapshot/api_op_ListMarketplaceModelEndpoints.go.snap @@ -0,0 +1,40 @@ +ListMarketplaceModelEndpoints + 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/bedrock/snapshot/api_op_ListPromptRouters.go.snap b/service/bedrock/snapshot/api_op_ListPromptRouters.go.snap new file mode 100644 index 00000000000..d98d04a313f --- /dev/null +++ b/service/bedrock/snapshot/api_op_ListPromptRouters.go.snap @@ -0,0 +1,40 @@ +ListPromptRouters + 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/bedrock/snapshot/api_op_RegisterMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_RegisterMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..b31b4a2c12e --- /dev/null +++ b/service/bedrock/snapshot/api_op_RegisterMarketplaceModelEndpoint.go.snap @@ -0,0 +1,41 @@ +RegisterMarketplaceModelEndpoint + 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/bedrock/snapshot/api_op_UpdateMarketplaceModelEndpoint.go.snap b/service/bedrock/snapshot/api_op_UpdateMarketplaceModelEndpoint.go.snap new file mode 100644 index 00000000000..82ee8354afd --- /dev/null +++ b/service/bedrock/snapshot/api_op_UpdateMarketplaceModelEndpoint.go.snap @@ -0,0 +1,42 @@ +UpdateMarketplaceModelEndpoint + 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/bedrock/snapshot_test.go b/service/bedrock/snapshot_test.go index 0df32470f73..7fbf7991edc 100644 --- a/service/bedrock/snapshot_test.go +++ b/service/bedrock/snapshot_test.go @@ -122,6 +122,18 @@ func TestCheckSnapshot_CreateInferenceProfile(t *testing.T) { } } +func TestCheckSnapshot_CreateMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateModelCopyJob(t *testing.T) { svc := New(Options{}) _, err := svc.CreateModelCopyJob(context.Background(), nil, func(o *Options) { @@ -230,6 +242,18 @@ func TestCheckSnapshot_DeleteInferenceProfile(t *testing.T) { } } +func TestCheckSnapshot_DeleteMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteModelInvocationLoggingConfiguration(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteModelInvocationLoggingConfiguration(context.Background(), nil, func(o *Options) { @@ -254,6 +278,18 @@ func TestCheckSnapshot_DeleteProvisionedModelThroughput(t *testing.T) { } } +func TestCheckSnapshot_DeregisterMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeregisterMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeregisterMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetCustomModel(t *testing.T) { svc := New(Options{}) _, err := svc.GetCustomModel(context.Background(), nil, func(o *Options) { @@ -326,6 +362,18 @@ func TestCheckSnapshot_GetInferenceProfile(t *testing.T) { } } +func TestCheckSnapshot_GetMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetModelCopyJob(t *testing.T) { svc := New(Options{}) _, err := svc.GetModelCopyJob(context.Background(), nil, func(o *Options) { @@ -386,6 +434,18 @@ func TestCheckSnapshot_GetModelInvocationLoggingConfiguration(t *testing.T) { } } +func TestCheckSnapshot_GetPromptRouter(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetPromptRouter(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetPromptRouter") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetProvisionedModelThroughput(t *testing.T) { svc := New(Options{}) _, err := svc.GetProvisionedModelThroughput(context.Background(), nil, func(o *Options) { @@ -470,6 +530,18 @@ func TestCheckSnapshot_ListInferenceProfiles(t *testing.T) { } } +func TestCheckSnapshot_ListMarketplaceModelEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMarketplaceModelEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListMarketplaceModelEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListModelCopyJobs(t *testing.T) { svc := New(Options{}) _, err := svc.ListModelCopyJobs(context.Background(), nil, func(o *Options) { @@ -518,6 +590,18 @@ func TestCheckSnapshot_ListModelInvocationJobs(t *testing.T) { } } +func TestCheckSnapshot_ListPromptRouters(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListPromptRouters(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListPromptRouters") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListProvisionedModelThroughputs(t *testing.T) { svc := New(Options{}) _, err := svc.ListProvisionedModelThroughputs(context.Background(), nil, func(o *Options) { @@ -554,6 +638,18 @@ func TestCheckSnapshot_PutModelInvocationLoggingConfiguration(t *testing.T) { } } +func TestCheckSnapshot_RegisterMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.RegisterMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "RegisterMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_StopEvaluationJob(t *testing.T) { svc := New(Options{}) _, err := svc.StopEvaluationJob(context.Background(), nil, func(o *Options) { @@ -626,6 +722,18 @@ func TestCheckSnapshot_UpdateGuardrail(t *testing.T) { } } +func TestCheckSnapshot_UpdateMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateProvisionedModelThroughput(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateProvisionedModelThroughput(context.Background(), nil, func(o *Options) { @@ -697,6 +805,18 @@ func TestUpdateSnapshot_CreateInferenceProfile(t *testing.T) { } } +func TestUpdateSnapshot_CreateMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateModelCopyJob(t *testing.T) { svc := New(Options{}) _, err := svc.CreateModelCopyJob(context.Background(), nil, func(o *Options) { @@ -805,6 +925,18 @@ func TestUpdateSnapshot_DeleteInferenceProfile(t *testing.T) { } } +func TestUpdateSnapshot_DeleteMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteModelInvocationLoggingConfiguration(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteModelInvocationLoggingConfiguration(context.Background(), nil, func(o *Options) { @@ -829,6 +961,18 @@ func TestUpdateSnapshot_DeleteProvisionedModelThroughput(t *testing.T) { } } +func TestUpdateSnapshot_DeregisterMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeregisterMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeregisterMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetCustomModel(t *testing.T) { svc := New(Options{}) _, err := svc.GetCustomModel(context.Background(), nil, func(o *Options) { @@ -901,6 +1045,18 @@ func TestUpdateSnapshot_GetInferenceProfile(t *testing.T) { } } +func TestUpdateSnapshot_GetMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetModelCopyJob(t *testing.T) { svc := New(Options{}) _, err := svc.GetModelCopyJob(context.Background(), nil, func(o *Options) { @@ -961,6 +1117,18 @@ func TestUpdateSnapshot_GetModelInvocationLoggingConfiguration(t *testing.T) { } } +func TestUpdateSnapshot_GetPromptRouter(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetPromptRouter(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetPromptRouter") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetProvisionedModelThroughput(t *testing.T) { svc := New(Options{}) _, err := svc.GetProvisionedModelThroughput(context.Background(), nil, func(o *Options) { @@ -1045,6 +1213,18 @@ func TestUpdateSnapshot_ListInferenceProfiles(t *testing.T) { } } +func TestUpdateSnapshot_ListMarketplaceModelEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMarketplaceModelEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListMarketplaceModelEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListModelCopyJobs(t *testing.T) { svc := New(Options{}) _, err := svc.ListModelCopyJobs(context.Background(), nil, func(o *Options) { @@ -1093,6 +1273,18 @@ func TestUpdateSnapshot_ListModelInvocationJobs(t *testing.T) { } } +func TestUpdateSnapshot_ListPromptRouters(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListPromptRouters(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListPromptRouters") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListProvisionedModelThroughputs(t *testing.T) { svc := New(Options{}) _, err := svc.ListProvisionedModelThroughputs(context.Background(), nil, func(o *Options) { @@ -1129,6 +1321,18 @@ func TestUpdateSnapshot_PutModelInvocationLoggingConfiguration(t *testing.T) { } } +func TestUpdateSnapshot_RegisterMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.RegisterMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "RegisterMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_StopEvaluationJob(t *testing.T) { svc := New(Options{}) _, err := svc.StopEvaluationJob(context.Background(), nil, func(o *Options) { @@ -1201,6 +1405,18 @@ func TestUpdateSnapshot_UpdateGuardrail(t *testing.T) { } } +func TestUpdateSnapshot_UpdateMarketplaceModelEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateMarketplaceModelEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateMarketplaceModelEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateProvisionedModelThroughput(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateProvisionedModelThroughput(context.Background(), nil, func(o *Options) { diff --git a/service/bedrock/types/enums.go b/service/bedrock/types/enums.go index 470a61fb266..5a1e5c00d21 100644 --- a/service/bedrock/types/enums.go +++ b/service/bedrock/types/enums.go @@ -283,6 +283,25 @@ func (GuardrailManagedWordsType) Values() []GuardrailManagedWordsType { } } +type GuardrailModality string + +// Enum values for GuardrailModality +const ( + GuardrailModalityText GuardrailModality = "TEXT" + GuardrailModalityImage GuardrailModality = "IMAGE" +) + +// Values returns all known values for GuardrailModality. 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 (GuardrailModality) Values() []GuardrailModality { + return []GuardrailModality{ + "TEXT", + "IMAGE", + } +} + type GuardrailPiiEntityType string // Enum values for GuardrailPiiEntityType @@ -623,6 +642,42 @@ func (ModelModality) Values() []ModelModality { } } +type PromptRouterStatus string + +// Enum values for PromptRouterStatus +const ( + PromptRouterStatusAvailable PromptRouterStatus = "AVAILABLE" +) + +// Values returns all known values for PromptRouterStatus. 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 (PromptRouterStatus) Values() []PromptRouterStatus { + return []PromptRouterStatus{ + "AVAILABLE", + } +} + +type PromptRouterType string + +// Enum values for PromptRouterType +const ( + PromptRouterTypeCustom PromptRouterType = "custom" + PromptRouterTypeDefault PromptRouterType = "default" +) + +// Values returns all known values for PromptRouterType. 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 (PromptRouterType) Values() []PromptRouterType { + return []PromptRouterType{ + "custom", + "default", + } +} + type ProvisionedModelStatus string // Enum values for ProvisionedModelStatus @@ -787,3 +842,22 @@ func (SortOrder) Values() []SortOrder { "Descending", } } + +type Status string + +// Enum values for Status +const ( + StatusRegistered Status = "REGISTERED" + StatusIncompatibleEndpoint Status = "INCOMPATIBLE_ENDPOINT" +) + +// Values returns all known values for Status. 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 (Status) Values() []Status { + return []Status{ + "REGISTERED", + "INCOMPATIBLE_ENDPOINT", + } +} diff --git a/service/bedrock/types/errors.go b/service/bedrock/types/errors.go index 2a7a8a0666f..1981e354b71 100644 --- a/service/bedrock/types/errors.go +++ b/service/bedrock/types/errors.go @@ -138,6 +138,32 @@ func (e *ServiceQuotaExceededException) ErrorCode() string { } func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// Returned if the service cannot complete the request. +type ServiceUnavailableException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ServiceUnavailableException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceUnavailableException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceUnavailableException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ServiceUnavailableException" + } + return *e.ErrorCodeOverride +} +func (e *ServiceUnavailableException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + // The number of requests exceeds the limit. Resubmit your request later. type ThrottlingException struct { Message *string diff --git a/service/bedrock/types/types.go b/service/bedrock/types/types.go index c51fc56d3c0..2e968e68bbb 100644 --- a/service/bedrock/types/types.go +++ b/service/bedrock/types/types.go @@ -188,6 +188,24 @@ type DistillationConfig struct { noSmithyDocumentSerde } +// Specifies the configuration for the endpoint. +// +// The following types satisfy this interface: +// +// EndpointConfigMemberSageMaker +type EndpointConfig interface { + isEndpointConfig() +} + +// The configuration specific to Amazon SageMaker for the endpoint. +type EndpointConfigMemberSageMaker struct { + Value SageMakerEndpoint + + noSmithyDocumentSerde +} + +func (*EndpointConfigMemberSageMaker) isEndpointConfig() {} + // Contains the ARN of the Amazon Bedrock model or [inference profile] specified in your evaluation // job. Each Amazon Bedrock model supports different inferenceParams . To learn // more about supported inference parameters for Amazon Bedrock models, see [Inference parameters for foundation models]. @@ -733,6 +751,12 @@ type GuardrailContentFilter struct { // This member is required. Type GuardrailContentFilterType + // The input modalities selected for the guardrail content filter. + InputModalities []GuardrailModality + + // The output modalities selected for the guardrail content filter. + OutputModalities []GuardrailModality + noSmithyDocumentSerde } @@ -791,6 +815,12 @@ type GuardrailContentFilterConfig struct { // This member is required. Type GuardrailContentFilterType + // The input modalities selected for the guardrail content filter configuration. + InputModalities []GuardrailModality + + // The output modalities selected for the guardrail content filter configuration. + OutputModalities []GuardrailModality + noSmithyDocumentSerde } @@ -908,7 +938,7 @@ type GuardrailPiiEntity struct { // This member is required. Action GuardrailSensitiveInformationAction - // The type of PII entity. For exampvle, Social Security Number. + // The type of PII entity. For example, Social Security Number. // // This member is required. Type GuardrailPiiEntityType @@ -939,7 +969,7 @@ type GuardrailPiiEntityConfig struct { // - AGE // // An individual's age, including the quantity and unit of time. For example, in - // the phrase "I am 40 years old," Guarrails recognizes "40 years" as an age. + // the phrase "I am 40 years old," Guardrails recognizes "40 years" as an age. // // - NAME // @@ -988,7 +1018,7 @@ type GuardrailPiiEntityConfig struct { // // - Finance // - // - REDIT_DEBIT_CARD_CVV + // - CREDIT_DEBIT_CARD_CVV // // A three-digit card verification code (CVV) that is present on VISA, MasterCard, // and Discover credit and debit cards. For American Express credit or debit cards, @@ -1730,6 +1760,88 @@ type LoggingConfig struct { noSmithyDocumentSerde } +// Contains details about an endpoint for a model from Amazon Bedrock Marketplace. +type MarketplaceModelEndpoint struct { + + // The timestamp when the endpoint was registered. + // + // This member is required. + CreatedAt *time.Time + + // The Amazon Resource Name (ARN) of the endpoint. + // + // This member is required. + EndpointArn *string + + // The configuration of the endpoint, including the number and type of instances + // used. + // + // This member is required. + EndpointConfig EndpointConfig + + // The current status of the endpoint (e.g., Creating, InService, Updating, + // Failed). + // + // This member is required. + EndpointStatus *string + + // The ARN of the model from Amazon Bedrock Marketplace that is deployed on this + // endpoint. + // + // This member is required. + ModelSourceIdentifier *string + + // The timestamp when the endpoint was last updated. + // + // This member is required. + UpdatedAt *time.Time + + // Additional information about the endpoint status, if available. + EndpointStatusMessage *string + + // The overall status of the endpoint in Amazon Bedrock Marketplace (e.g., ACTIVE, + // INACTIVE). + Status Status + + // Additional information about the overall status, if available. + StatusMessage *string + + noSmithyDocumentSerde +} + +// Provides a summary of an endpoint for a model from Amazon Bedrock Marketplace. +type MarketplaceModelEndpointSummary struct { + + // The timestamp when the endpoint was created. + // + // This member is required. + CreatedAt *time.Time + + // The Amazon Resource Name (ARN) of the endpoint. + // + // This member is required. + EndpointArn *string + + // The ARN of the model from Amazon Bedrock Marketplace that is deployed on this + // endpoint. + // + // This member is required. + ModelSourceIdentifier *string + + // The timestamp when the endpoint was last updated. + // + // This member is required. + UpdatedAt *time.Time + + // The overall status of the endpoint in Amazon Bedrock Marketplace. + Status Status + + // Additional information about the overall status, if available. + StatusMessage *string + + noSmithyDocumentSerde +} + // Contains details about each model copy job. // // This data type is used in the following API operations: @@ -2113,6 +2225,65 @@ type OutputDataConfig struct { noSmithyDocumentSerde } +// Details about a prompt router. +type PromptRouterSummary struct { + + // The router's fallback model. + // + // This member is required. + FallbackModel *PromptRouterTargetModel + + // The router's models. + // + // This member is required. + Models []PromptRouterTargetModel + + // The router's ARN. + // + // This member is required. + PromptRouterArn *string + + // The router's name. + // + // This member is required. + PromptRouterName *string + + // The router's routing criteria. + // + // This member is required. + RoutingCriteria *RoutingCriteria + + // The router's status. + // + // This member is required. + Status PromptRouterStatus + + // The summary's type. + // + // This member is required. + Type PromptRouterType + + // When the router was created. + CreatedAt *time.Time + + // The router's description. + Description *string + + // When the router was updated. + UpdatedAt *time.Time + + noSmithyDocumentSerde +} + +// The target model for a prompt router. +type PromptRouterTargetModel struct { + + // The target model's ARN. + ModelArn *string + + noSmithyDocumentSerde +} + // The template for the prompt that's sent to the model for response generation. type PromptTemplate struct { @@ -2544,6 +2715,17 @@ type RetrieveConfig struct { noSmithyDocumentSerde } +// Routing criteria for a prompt router. +type RoutingCriteria struct { + + // The criteria's response quality difference. + // + // This member is required. + ResponseQualityDifference *float64 + + noSmithyDocumentSerde +} + // S3 configuration for storing log data. type S3Config struct { @@ -2580,6 +2762,38 @@ type S3ObjectDoc struct { noSmithyDocumentSerde } +// Specifies the configuration for a Amazon SageMaker endpoint. +type SageMakerEndpoint struct { + + // The ARN of the IAM role that Amazon SageMaker can assume to access model + // artifacts and docker image for deployment on Amazon EC2 compute instances or for + // batch transform jobs. + // + // This member is required. + ExecutionRole *string + + // The number of Amazon EC2 compute instances to deploy for initial endpoint + // creation. + // + // This member is required. + InitialInstanceCount *int32 + + // The Amazon EC2 compute instance type to deploy for hosting the model. + // + // This member is required. + InstanceType *string + + // The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on + // the storage volume attached to the Amazon EC2 compute instance that hosts the + // endpoint. + KmsEncryptionKey *string + + // The VPC configuration for the endpoint. + Vpc *VpcConfig + + noSmithyDocumentSerde +} + // Definition of the key/value pair for a tag. type Tag struct { @@ -2724,6 +2938,7 @@ type UnknownUnionMember struct { } func (*UnknownUnionMember) isCustomizationConfig() {} +func (*UnknownUnionMember) isEndpointConfig() {} func (*UnknownUnionMember) isEvaluationConfig() {} func (*UnknownUnionMember) isEvaluationDatasetLocation() {} func (*UnknownUnionMember) isEvaluationInferenceConfig() {} diff --git a/service/bedrock/types/types_exported_test.go b/service/bedrock/types/types_exported_test.go index afbbb79804b..ace41540945 100644 --- a/service/bedrock/types/types_exported_test.go +++ b/service/bedrock/types/types_exported_test.go @@ -25,6 +25,24 @@ func ExampleCustomizationConfig_outputUsage() { var _ *types.DistillationConfig +func ExampleEndpointConfig_outputUsage() { + var union types.EndpointConfig + // type switches can be used to check the union value + switch v := union.(type) { + case *types.EndpointConfigMemberSageMaker: + _ = v.Value // Value is types.SageMakerEndpoint + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.SageMakerEndpoint + func ExampleEvaluationConfig_outputUsage() { var union types.EvaluationConfig // type switches can be used to check the union value diff --git a/service/bedrock/validators.go b/service/bedrock/validators.go index 627da59cf8c..6c7aa0cf2d2 100644 --- a/service/bedrock/validators.go +++ b/service/bedrock/validators.go @@ -110,6 +110,26 @@ func (m *validateOpCreateInferenceProfile) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpCreateMarketplaceModelEndpoint struct { +} + +func (*validateOpCreateMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateModelCopyJob struct { } @@ -290,6 +310,26 @@ func (m *validateOpDeleteInferenceProfile) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpDeleteMarketplaceModelEndpoint struct { +} + +func (*validateOpDeleteMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteProvisionedModelThroughput struct { } @@ -310,6 +350,26 @@ func (m *validateOpDeleteProvisionedModelThroughput) HandleInitialize(ctx contex return next.HandleInitialize(ctx, in) } +type validateOpDeregisterMarketplaceModelEndpoint struct { +} + +func (*validateOpDeregisterMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeregisterMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeregisterMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeregisterMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetCustomModel struct { } @@ -430,6 +490,26 @@ func (m *validateOpGetInferenceProfile) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpGetMarketplaceModelEndpoint struct { +} + +func (*validateOpGetMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetModelCopyJob struct { } @@ -510,6 +590,26 @@ func (m *validateOpGetModelInvocationJob) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpGetPromptRouter struct { +} + +func (*validateOpGetPromptRouter) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetPromptRouter) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetPromptRouterInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetPromptRouterInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetProvisionedModelThroughput struct { } @@ -570,6 +670,26 @@ func (m *validateOpPutModelInvocationLoggingConfiguration) HandleInitialize(ctx return next.HandleInitialize(ctx, in) } +type validateOpRegisterMarketplaceModelEndpoint struct { +} + +func (*validateOpRegisterMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpRegisterMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*RegisterMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpRegisterMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStopEvaluationJob struct { } @@ -690,6 +810,26 @@ func (m *validateOpUpdateGuardrail) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpUpdateMarketplaceModelEndpoint struct { +} + +func (*validateOpUpdateMarketplaceModelEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateMarketplaceModelEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateMarketplaceModelEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateMarketplaceModelEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateProvisionedModelThroughput struct { } @@ -730,6 +870,10 @@ func addOpCreateInferenceProfileValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpCreateInferenceProfile{}, middleware.After) } +func addOpCreateMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateMarketplaceModelEndpoint{}, middleware.After) +} + func addOpCreateModelCopyJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateModelCopyJob{}, middleware.After) } @@ -766,10 +910,18 @@ func addOpDeleteInferenceProfileValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpDeleteInferenceProfile{}, middleware.After) } +func addOpDeleteMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteMarketplaceModelEndpoint{}, middleware.After) +} + func addOpDeleteProvisionedModelThroughputValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteProvisionedModelThroughput{}, middleware.After) } +func addOpDeregisterMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeregisterMarketplaceModelEndpoint{}, middleware.After) +} + func addOpGetCustomModelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetCustomModel{}, middleware.After) } @@ -794,6 +946,10 @@ func addOpGetInferenceProfileValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetInferenceProfile{}, middleware.After) } +func addOpGetMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetMarketplaceModelEndpoint{}, middleware.After) +} + func addOpGetModelCopyJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetModelCopyJob{}, middleware.After) } @@ -810,6 +966,10 @@ func addOpGetModelInvocationJobValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpGetModelInvocationJob{}, middleware.After) } +func addOpGetPromptRouterValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetPromptRouter{}, middleware.After) +} + func addOpGetProvisionedModelThroughputValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetProvisionedModelThroughput{}, middleware.After) } @@ -822,6 +982,10 @@ func addOpPutModelInvocationLoggingConfigurationValidationMiddleware(stack *midd return stack.Initialize.Add(&validateOpPutModelInvocationLoggingConfiguration{}, middleware.After) } +func addOpRegisterMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpRegisterMarketplaceModelEndpoint{}, middleware.After) +} + func addOpStopEvaluationJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStopEvaluationJob{}, middleware.After) } @@ -846,6 +1010,10 @@ func addOpUpdateGuardrailValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateGuardrail{}, middleware.After) } +func addOpUpdateMarketplaceModelEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateMarketplaceModelEndpoint{}, middleware.After) +} + func addOpUpdateProvisionedModelThroughputValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateProvisionedModelThroughput{}, middleware.After) } @@ -988,6 +1156,25 @@ func validateDistillationConfig(v *types.DistillationConfig) error { } } +func validateEndpointConfig(v types.EndpointConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EndpointConfig"} + switch uv := v.(type) { + case *types.EndpointConfigMemberSageMaker: + if err := validateSageMakerEndpoint(&uv.Value); err != nil { + invalidParams.AddNested("[sageMaker]", err.(smithy.InvalidParamsError)) + } + + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateEvaluationBedrockModel(v *types.EvaluationBedrockModel) error { if v == nil { return nil @@ -2235,6 +2422,32 @@ func validateS3ObjectDoc(v *types.S3ObjectDoc) error { } } +func validateSageMakerEndpoint(v *types.SageMakerEndpoint) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SageMakerEndpoint"} + if v.InitialInstanceCount == nil { + invalidParams.Add(smithy.NewErrParamRequired("InitialInstanceCount")) + } + if v.InstanceType == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceType")) + } + if v.ExecutionRole == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExecutionRole")) + } + if v.Vpc != nil { + if err := validateVpcConfig(v.Vpc); err != nil { + invalidParams.AddNested("Vpc", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTag(v *types.Tag) error { if v == nil { return nil @@ -2519,6 +2732,36 @@ func validateOpCreateInferenceProfileInput(v *CreateInferenceProfileInput) error } } +func validateOpCreateMarketplaceModelEndpointInput(v *CreateMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateMarketplaceModelEndpointInput"} + if v.ModelSourceIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ModelSourceIdentifier")) + } + if v.EndpointConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointConfig")) + } else if v.EndpointConfig != nil { + if err := validateEndpointConfig(v.EndpointConfig); err != nil { + invalidParams.AddNested("EndpointConfig", err.(smithy.InvalidParamsError)) + } + } + if v.EndpointName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointName")) + } + 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 validateOpCreateModelCopyJobInput(v *CreateModelCopyJobInput) error { if v == nil { return nil @@ -2779,6 +3022,21 @@ func validateOpDeleteInferenceProfileInput(v *DeleteInferenceProfileInput) error } } +func validateOpDeleteMarketplaceModelEndpointInput(v *DeleteMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteMarketplaceModelEndpointInput"} + if v.EndpointArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteProvisionedModelThroughputInput(v *DeleteProvisionedModelThroughputInput) error { if v == nil { return nil @@ -2794,6 +3052,21 @@ func validateOpDeleteProvisionedModelThroughputInput(v *DeleteProvisionedModelTh } } +func validateOpDeregisterMarketplaceModelEndpointInput(v *DeregisterMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeregisterMarketplaceModelEndpointInput"} + if v.EndpointArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetCustomModelInput(v *GetCustomModelInput) error { if v == nil { return nil @@ -2884,6 +3157,21 @@ func validateOpGetInferenceProfileInput(v *GetInferenceProfileInput) error { } } +func validateOpGetMarketplaceModelEndpointInput(v *GetMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetMarketplaceModelEndpointInput"} + if v.EndpointArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetModelCopyJobInput(v *GetModelCopyJobInput) error { if v == nil { return nil @@ -2944,6 +3232,21 @@ func validateOpGetModelInvocationJobInput(v *GetModelInvocationJobInput) error { } } +func validateOpGetPromptRouterInput(v *GetPromptRouterInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetPromptRouterInput"} + if v.PromptRouterArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("PromptRouterArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetProvisionedModelThroughputInput(v *GetProvisionedModelThroughputInput) error { if v == nil { return nil @@ -2993,6 +3296,24 @@ func validateOpPutModelInvocationLoggingConfigurationInput(v *PutModelInvocation } } +func validateOpRegisterMarketplaceModelEndpointInput(v *RegisterMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RegisterMarketplaceModelEndpointInput"} + if v.EndpointIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointIdentifier")) + } + if v.ModelSourceIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ModelSourceIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStopEvaluationJobInput(v *StopEvaluationJobInput) error { if v == nil { return nil @@ -3127,6 +3448,28 @@ func validateOpUpdateGuardrailInput(v *UpdateGuardrailInput) error { } } +func validateOpUpdateMarketplaceModelEndpointInput(v *UpdateMarketplaceModelEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateMarketplaceModelEndpointInput"} + if v.EndpointArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointArn")) + } + if v.EndpointConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointConfig")) + } else if v.EndpointConfig != nil { + if err := validateEndpointConfig(v.EndpointConfig); err != nil { + invalidParams.AddNested("EndpointConfig", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateProvisionedModelThroughputInput(v *UpdateProvisionedModelThroughputInput) error { if v == nil { return nil diff --git a/service/bedrockagent/api_op_CreateKnowledgeBase.go b/service/bedrockagent/api_op_CreateKnowledgeBase.go index df5454fbf52..08c57fc8f98 100644 --- a/service/bedrockagent/api_op_CreateKnowledgeBase.go +++ b/service/bedrockagent/api_op_CreateKnowledgeBase.go @@ -81,12 +81,6 @@ type CreateKnowledgeBaseInput struct { // This member is required. RoleArn *string - // Contains details about the configuration of the vector database used for the - // knowledge base. - // - // This member is required. - StorageConfiguration *types.StorageConfiguration - // A unique, case-sensitive identifier to ensure that the API request completes no // more than one time. If this token matches a previous request, Amazon Bedrock // ignores the request, but does not return an error. For more information, see [Ensuring idempotency]. @@ -97,6 +91,10 @@ type CreateKnowledgeBaseInput struct { // A description of the knowledge base. Description *string + // Contains details about the configuration of the vector database used for the + // knowledge base. + StorageConfiguration *types.StorageConfiguration + // Specify the key-value pairs for the tags that you want to attach to your // knowledge base in this object. Tags map[string]string diff --git a/service/bedrockagent/api_op_UpdateKnowledgeBase.go b/service/bedrockagent/api_op_UpdateKnowledgeBase.go index 517b1ad0ef8..8ea7697ec6f 100644 --- a/service/bedrockagent/api_op_UpdateKnowledgeBase.go +++ b/service/bedrockagent/api_op_UpdateKnowledgeBase.go @@ -68,15 +68,13 @@ type UpdateKnowledgeBaseInput struct { // This member is required. RoleArn *string + // Specifies a new description for the knowledge base. + Description *string + // Specifies the configuration for the vector store used for the knowledge base. // You must use the same configuration as when the knowledge base was created. - // - // This member is required. StorageConfiguration *types.StorageConfiguration - // Specifies a new description for the knowledge base. - Description *string - noSmithyDocumentSerde } diff --git a/service/bedrockagent/deserializers.go b/service/bedrockagent/deserializers.go index 06487218720..3eb5e8577a9 100644 --- a/service/bedrockagent/deserializers.go +++ b/service/bedrockagent/deserializers.go @@ -15445,6 +15445,82 @@ func awsRestjson1_deserializeDocumentAutoToolChoice(v **types.AutoToolChoice, va return nil } +func awsRestjson1_deserializeDocumentAwsDataCatalogTableNames(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 AwsDataCatalogTableName to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentBedrockDataAutomationConfiguration(v **types.BedrockDataAutomationConfiguration, 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.BedrockDataAutomationConfiguration + if *v == nil { + sv = &types.BedrockDataAutomationConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "parsingModality": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ParsingModality to be of type string, got %T instead", value) + } + sv.ParsingModality = types.ParsingModality(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBedrockEmbeddingModelConfiguration(v **types.BedrockEmbeddingModelConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15529,6 +15605,15 @@ func awsRestjson1_deserializeDocumentBedrockFoundationModelConfiguration(v **typ sv.ModelArn = ptr.String(jtv) } + case "parsingModality": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ParsingModality to be of type string, got %T instead", value) + } + sv.ParsingModality = types.ParsingModality(jtv) + } + case "parsingPrompt": if err := awsRestjson1_deserializeDocumentParsingPrompt(&sv.ParsingPrompt, value); err != nil { return err @@ -16019,6 +16104,89 @@ func awsRestjson1_deserializeDocumentCrawlFilterConfiguration(v **types.CrawlFil return nil } +func awsRestjson1_deserializeDocumentCuratedQueries(v *[]types.CuratedQuery, 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.CuratedQuery + if *v == nil { + cv = []types.CuratedQuery{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.CuratedQuery + destAddr := &col + if err := awsRestjson1_deserializeDocumentCuratedQuery(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentCuratedQuery(v **types.CuratedQuery, 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.CuratedQuery + if *v == nil { + sv = &types.CuratedQuery{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "naturalLanguage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NaturalLanguageString to be of type string, got %T instead", value) + } + sv.NaturalLanguage = ptr.String(jtv) + } + + case "sql": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SqlString to be of type string, got %T instead", value) + } + sv.Sql = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentCustomDocumentIdentifier(v **types.CustomDocumentIdentifier, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -19481,6 +19649,46 @@ func awsRestjson1_deserializeDocumentIteratorFlowNodeConfiguration(v **types.Ite return nil } +func awsRestjson1_deserializeDocumentKendraKnowledgeBaseConfiguration(v **types.KendraKnowledgeBaseConfiguration, 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.KendraKnowledgeBaseConfiguration + if *v == nil { + sv = &types.KendraKnowledgeBaseConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "kendraIndexArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KendraIndexArn to be of type string, got %T instead", value) + } + sv.KendraIndexArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentKnowledgeBase(v **types.KnowledgeBase, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -19629,6 +19837,16 @@ func awsRestjson1_deserializeDocumentKnowledgeBaseConfiguration(v **types.Knowle for key, value := range shape { switch key { + case "kendraKnowledgeBaseConfiguration": + if err := awsRestjson1_deserializeDocumentKendraKnowledgeBaseConfiguration(&sv.KendraKnowledgeBaseConfiguration, value); err != nil { + return err + } + + case "sqlKnowledgeBaseConfiguration": + if err := awsRestjson1_deserializeDocumentSqlKnowledgeBaseConfiguration(&sv.SqlKnowledgeBaseConfiguration, value); err != nil { + return err + } + case "type": if value != nil { jtv, ok := value.(string) @@ -21165,6 +21383,11 @@ func awsRestjson1_deserializeDocumentParsingConfiguration(v **types.ParsingConfi for key, value := range shape { switch key { + case "bedrockDataAutomationConfiguration": + if err := awsRestjson1_deserializeDocumentBedrockDataAutomationConfiguration(&sv.BedrockDataAutomationConfiguration, value); err != nil { + return err + } + case "bedrockFoundationModelConfiguration": if err := awsRestjson1_deserializeDocumentBedrockFoundationModelConfiguration(&sv.BedrockFoundationModelConfiguration, value); err != nil { return err @@ -22521,7 +22744,7 @@ func awsRestjson1_deserializeDocumentPromptVariantList(v *[]types.PromptVariant, return nil } -func awsRestjson1_deserializeDocumentRdsConfiguration(v **types.RdsConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentQueryGenerationColumn(v **types.QueryGenerationColumn, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22534,54 +22757,40 @@ func awsRestjson1_deserializeDocumentRdsConfiguration(v **types.RdsConfiguration return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RdsConfiguration + var sv *types.QueryGenerationColumn if *v == nil { - sv = &types.RdsConfiguration{} + sv = &types.QueryGenerationColumn{} } else { sv = *v } for key, value := range shape { switch key { - case "credentialsSecretArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) - } - sv.CredentialsSecretArn = ptr.String(jtv) - } - - case "databaseName": + case "description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RdsDatabaseName to be of type string, got %T instead", value) + return fmt.Errorf("expected DescriptionString to be of type string, got %T instead", value) } - sv.DatabaseName = ptr.String(jtv) - } - - case "fieldMapping": - if err := awsRestjson1_deserializeDocumentRdsFieldMapping(&sv.FieldMapping, value); err != nil { - return err + sv.Description = ptr.String(jtv) } - case "resourceArn": + case "inclusion": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RdsArn to be of type string, got %T instead", value) + return fmt.Errorf("expected IncludeExclude to be of type string, got %T instead", value) } - sv.ResourceArn = ptr.String(jtv) + sv.Inclusion = types.IncludeExclude(jtv) } - case "tableName": + case "name": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RdsTableName to be of type string, got %T instead", value) + return fmt.Errorf("expected QueryGenerationColumnName to be of type string, got %T instead", value) } - sv.TableName = ptr.String(jtv) + sv.Name = ptr.String(jtv) } default: @@ -22593,7 +22802,41 @@ func awsRestjson1_deserializeDocumentRdsConfiguration(v **types.RdsConfiguration return nil } -func awsRestjson1_deserializeDocumentRdsFieldMapping(v **types.RdsFieldMapping, value interface{}) error { +func awsRestjson1_deserializeDocumentQueryGenerationColumns(v *[]types.QueryGenerationColumn, 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.QueryGenerationColumn + if *v == nil { + cv = []types.QueryGenerationColumn{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.QueryGenerationColumn + destAddr := &col + if err := awsRestjson1_deserializeDocumentQueryGenerationColumn(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentQueryGenerationConfiguration(v **types.QueryGenerationConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22606,49 +22849,790 @@ func awsRestjson1_deserializeDocumentRdsFieldMapping(v **types.RdsFieldMapping, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RdsFieldMapping + var sv *types.QueryGenerationConfiguration if *v == nil { - sv = &types.RdsFieldMapping{} + sv = &types.QueryGenerationConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "metadataField": + case "executionTimeoutSeconds": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + return fmt.Errorf("expected QueryExecutionTimeoutSeconds to be json.Number, got %T instead", value) } - sv.MetadataField = ptr.String(jtv) - } - - case "primaryKeyField": + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ExecutionTimeoutSeconds = ptr.Int32(int32(i64)) + } + + case "generationContext": + if err := awsRestjson1_deserializeDocumentQueryGenerationContext(&sv.GenerationContext, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentQueryGenerationContext(v **types.QueryGenerationContext, 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.QueryGenerationContext + if *v == nil { + sv = &types.QueryGenerationContext{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "curatedQueries": + if err := awsRestjson1_deserializeDocumentCuratedQueries(&sv.CuratedQueries, value); err != nil { + return err + } + + case "tables": + if err := awsRestjson1_deserializeDocumentQueryGenerationTables(&sv.Tables, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentQueryGenerationTable(v **types.QueryGenerationTable, 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.QueryGenerationTable + if *v == nil { + sv = &types.QueryGenerationTable{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "columns": + if err := awsRestjson1_deserializeDocumentQueryGenerationColumns(&sv.Columns, value); err != nil { + return err + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DescriptionString to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "inclusion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IncludeExclude to be of type string, got %T instead", value) + } + sv.Inclusion = types.IncludeExclude(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryGenerationTableName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentQueryGenerationTables(v *[]types.QueryGenerationTable, 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.QueryGenerationTable + if *v == nil { + cv = []types.QueryGenerationTable{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.QueryGenerationTable + destAddr := &col + if err := awsRestjson1_deserializeDocumentQueryGenerationTable(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRdsConfiguration(v **types.RdsConfiguration, 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.RdsConfiguration + if *v == nil { + sv = &types.RdsConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "credentialsSecretArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) + } + sv.CredentialsSecretArn = ptr.String(jtv) + } + + case "databaseName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RdsDatabaseName to be of type string, got %T instead", value) + } + sv.DatabaseName = ptr.String(jtv) + } + + case "fieldMapping": + if err := awsRestjson1_deserializeDocumentRdsFieldMapping(&sv.FieldMapping, value); err != nil { + return err + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RdsArn to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + case "tableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RdsTableName to be of type string, got %T instead", value) + } + sv.TableName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRdsFieldMapping(v **types.RdsFieldMapping, 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.RdsFieldMapping + if *v == nil { + sv = &types.RdsFieldMapping{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "metadataField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + } + sv.MetadataField = ptr.String(jtv) + } + + case "primaryKeyField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + } + sv.PrimaryKeyField = ptr.String(jtv) + } + + case "textField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + } + sv.TextField = ptr.String(jtv) + } + + case "vectorField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + } + sv.VectorField = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRecommendedActions(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 RecommendedAction to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRedisEnterpriseCloudConfiguration(v **types.RedisEnterpriseCloudConfiguration, 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.RedisEnterpriseCloudConfiguration + if *v == nil { + sv = &types.RedisEnterpriseCloudConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "credentialsSecretArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) + } + sv.CredentialsSecretArn = ptr.String(jtv) + } + + case "endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RedisEnterpriseCloudEndpoint to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + case "fieldMapping": + if err := awsRestjson1_deserializeDocumentRedisEnterpriseCloudFieldMapping(&sv.FieldMapping, value); err != nil { + return err + } + + case "vectorIndexName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RedisEnterpriseCloudIndexName to be of type string, got %T instead", value) + } + sv.VectorIndexName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedisEnterpriseCloudFieldMapping(v **types.RedisEnterpriseCloudFieldMapping, 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.RedisEnterpriseCloudFieldMapping + if *v == nil { + sv = &types.RedisEnterpriseCloudFieldMapping{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "metadataField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) + } + sv.MetadataField = ptr.String(jtv) + } + + case "textField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) + } + sv.TextField = ptr.String(jtv) + } + + case "vectorField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) + } + sv.VectorField = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftConfiguration(v **types.RedshiftConfiguration, 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.RedshiftConfiguration + if *v == nil { + sv = &types.RedshiftConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "queryEngineConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftQueryEngineConfiguration(&sv.QueryEngineConfiguration, value); err != nil { + return err + } + + case "queryGenerationConfiguration": + if err := awsRestjson1_deserializeDocumentQueryGenerationConfiguration(&sv.QueryGenerationConfiguration, value); err != nil { + return err + } + + case "storageConfigurations": + if err := awsRestjson1_deserializeDocumentRedshiftQueryEngineStorageConfigurations(&sv.StorageConfigurations, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftProvisionedAuthConfiguration(v **types.RedshiftProvisionedAuthConfiguration, 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.RedshiftProvisionedAuthConfiguration + if *v == nil { + sv = &types.RedshiftProvisionedAuthConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "databaseUser": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DatabaseUser = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RedshiftProvisionedAuthType to be of type string, got %T instead", value) + } + sv.Type = types.RedshiftProvisionedAuthType(jtv) + } + + case "usernamePasswordSecretArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) + } + sv.UsernamePasswordSecretArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftProvisionedConfiguration(v **types.RedshiftProvisionedConfiguration, 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.RedshiftProvisionedConfiguration + if *v == nil { + sv = &types.RedshiftProvisionedConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "authConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftProvisionedAuthConfiguration(&sv.AuthConfiguration, value); err != nil { + return err + } + + case "clusterIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RedshiftClusterIdentifier to be of type string, got %T instead", value) + } + sv.ClusterIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftQueryEngineAwsDataCatalogStorageConfiguration(v **types.RedshiftQueryEngineAwsDataCatalogStorageConfiguration, 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.RedshiftQueryEngineAwsDataCatalogStorageConfiguration + if *v == nil { + sv = &types.RedshiftQueryEngineAwsDataCatalogStorageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "tableNames": + if err := awsRestjson1_deserializeDocumentAwsDataCatalogTableNames(&sv.TableNames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftQueryEngineConfiguration(v **types.RedshiftQueryEngineConfiguration, 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.RedshiftQueryEngineConfiguration + if *v == nil { + sv = &types.RedshiftQueryEngineConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "provisionedConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftProvisionedConfiguration(&sv.ProvisionedConfiguration, value); err != nil { + return err + } + + case "serverlessConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftServerlessConfiguration(&sv.ServerlessConfiguration, value); err != nil { + return err + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RedshiftQueryEngineType to be of type string, got %T instead", value) + } + sv.Type = types.RedshiftQueryEngineType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftQueryEngineRedshiftStorageConfiguration(v **types.RedshiftQueryEngineRedshiftStorageConfiguration, 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.RedshiftQueryEngineRedshiftStorageConfiguration + if *v == nil { + sv = &types.RedshiftQueryEngineRedshiftStorageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "databaseName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + return fmt.Errorf("expected RedshiftDatabase to be of type string, got %T instead", value) } - sv.PrimaryKeyField = ptr.String(jtv) + sv.DatabaseName = ptr.String(jtv) } - case "textField": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) - } - sv.TextField = ptr.String(jtv) + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRedshiftQueryEngineStorageConfiguration(v **types.RedshiftQueryEngineStorageConfiguration, 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.RedshiftQueryEngineStorageConfiguration + if *v == nil { + sv = &types.RedshiftQueryEngineStorageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "awsDataCatalogConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftQueryEngineAwsDataCatalogStorageConfiguration(&sv.AwsDataCatalogConfiguration, value); err != nil { + return err } - case "vectorField": + case "redshiftConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftQueryEngineRedshiftStorageConfiguration(&sv.RedshiftConfiguration, value); err != nil { + return err + } + + case "type": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + return fmt.Errorf("expected RedshiftQueryEngineStorageType to be of type string, got %T instead", value) } - sv.VectorField = ptr.String(jtv) + sv.Type = types.RedshiftQueryEngineStorageType(jtv) } default: @@ -22660,7 +23644,7 @@ func awsRestjson1_deserializeDocumentRdsFieldMapping(v **types.RdsFieldMapping, return nil } -func awsRestjson1_deserializeDocumentRecommendedActions(v *[]string, value interface{}) error { +func awsRestjson1_deserializeDocumentRedshiftQueryEngineStorageConfigurations(v *[]types.RedshiftQueryEngineStorageConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22673,22 +23657,20 @@ func awsRestjson1_deserializeDocumentRecommendedActions(v *[]string, value inter return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.RedshiftQueryEngineStorageConfiguration if *v == nil { - cv = []string{} + cv = []types.RedshiftQueryEngineStorageConfiguration{} } else { cv = *v } for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected RecommendedAction to be of type string, got %T instead", value) - } - col = jtv + var col types.RedshiftQueryEngineStorageConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentRedshiftQueryEngineStorageConfiguration(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -22696,7 +23678,7 @@ func awsRestjson1_deserializeDocumentRecommendedActions(v *[]string, value inter return nil } -func awsRestjson1_deserializeDocumentRedisEnterpriseCloudConfiguration(v **types.RedisEnterpriseCloudConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentRedshiftServerlessAuthConfiguration(v **types.RedshiftServerlessAuthConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22709,45 +23691,31 @@ func awsRestjson1_deserializeDocumentRedisEnterpriseCloudConfiguration(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RedisEnterpriseCloudConfiguration + var sv *types.RedshiftServerlessAuthConfiguration if *v == nil { - sv = &types.RedisEnterpriseCloudConfiguration{} + sv = &types.RedshiftServerlessAuthConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "credentialsSecretArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) - } - sv.CredentialsSecretArn = ptr.String(jtv) - } - - case "endpoint": + case "type": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RedisEnterpriseCloudEndpoint to be of type string, got %T instead", value) + return fmt.Errorf("expected RedshiftServerlessAuthType to be of type string, got %T instead", value) } - sv.Endpoint = ptr.String(jtv) - } - - case "fieldMapping": - if err := awsRestjson1_deserializeDocumentRedisEnterpriseCloudFieldMapping(&sv.FieldMapping, value); err != nil { - return err + sv.Type = types.RedshiftServerlessAuthType(jtv) } - case "vectorIndexName": + case "usernamePasswordSecretArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RedisEnterpriseCloudIndexName to be of type string, got %T instead", value) + return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value) } - sv.VectorIndexName = ptr.String(jtv) + sv.UsernamePasswordSecretArn = ptr.String(jtv) } default: @@ -22759,7 +23727,7 @@ func awsRestjson1_deserializeDocumentRedisEnterpriseCloudConfiguration(v **types return nil } -func awsRestjson1_deserializeDocumentRedisEnterpriseCloudFieldMapping(v **types.RedisEnterpriseCloudFieldMapping, value interface{}) error { +func awsRestjson1_deserializeDocumentRedshiftServerlessConfiguration(v **types.RedshiftServerlessConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22772,40 +23740,27 @@ func awsRestjson1_deserializeDocumentRedisEnterpriseCloudFieldMapping(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RedisEnterpriseCloudFieldMapping + var sv *types.RedshiftServerlessConfiguration if *v == nil { - sv = &types.RedisEnterpriseCloudFieldMapping{} + sv = &types.RedshiftServerlessConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "metadataField": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) - } - sv.MetadataField = ptr.String(jtv) - } - - case "textField": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) - } - sv.TextField = ptr.String(jtv) + case "authConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftServerlessAuthConfiguration(&sv.AuthConfiguration, value); err != nil { + return err } - case "vectorField": + case "workgroupArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkgroupArn to be of type string, got %T instead", value) } - sv.VectorField = ptr.String(jtv) + sv.WorkgroupArn = ptr.String(jtv) } default: @@ -23745,6 +24700,51 @@ func awsRestjson1_deserializeDocumentSpecificToolChoice(v **types.SpecificToolCh return nil } +func awsRestjson1_deserializeDocumentSqlKnowledgeBaseConfiguration(v **types.SqlKnowledgeBaseConfiguration, 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.SqlKnowledgeBaseConfiguration + if *v == nil { + sv = &types.SqlKnowledgeBaseConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "redshiftConfiguration": + if err := awsRestjson1_deserializeDocumentRedshiftConfiguration(&sv.RedshiftConfiguration, value); err != nil { + return err + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryEngineType to be of type string, got %T instead", value) + } + sv.Type = types.QueryEngineType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStopSequences(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -23962,6 +24962,121 @@ loop: return nil } +func awsRestjson1_deserializeDocumentSupplementalDataStorageConfiguration(v **types.SupplementalDataStorageConfiguration, 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.SupplementalDataStorageConfiguration + if *v == nil { + sv = &types.SupplementalDataStorageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "storageLocations": + if err := awsRestjson1_deserializeDocumentSupplementalDataStorageLocations(&sv.StorageLocations, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSupplementalDataStorageLocation(v **types.SupplementalDataStorageLocation, 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.SupplementalDataStorageLocation + if *v == nil { + sv = &types.SupplementalDataStorageLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Location": + if err := awsRestjson1_deserializeDocumentS3Location(&sv.S3Location, value); err != nil { + return err + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SupplementalDataStorageLocationType to be of type string, got %T instead", value) + } + sv.Type = types.SupplementalDataStorageLocationType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSupplementalDataStorageLocations(v *[]types.SupplementalDataStorageLocation, 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.SupplementalDataStorageLocation + if *v == nil { + cv = []types.SupplementalDataStorageLocation{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SupplementalDataStorageLocation + destAddr := &col + if err := awsRestjson1_deserializeDocumentSupplementalDataStorageLocation(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentSystemContentBlock(v *types.SystemContentBlock, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -25183,6 +26298,11 @@ func awsRestjson1_deserializeDocumentVectorKnowledgeBaseConfiguration(v **types. return err } + case "supplementalDataStorageConfiguration": + if err := awsRestjson1_deserializeDocumentSupplementalDataStorageConfiguration(&sv.SupplementalDataStorageConfiguration, value); err != nil { + return err + } + default: _, _ = key, value diff --git a/service/bedrockagent/serializers.go b/service/bedrockagent/serializers.go index 84599e2e0cd..7693d56fb2d 100644 --- a/service/bedrockagent/serializers.go +++ b/service/bedrockagent/serializers.go @@ -7194,6 +7194,29 @@ func awsRestjson1_serializeDocumentAutoToolChoice(v *types.AutoToolChoice, value return nil } +func awsRestjson1_serializeDocumentAwsDataCatalogTableNames(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_serializeDocumentBedrockDataAutomationConfiguration(v *types.BedrockDataAutomationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ParsingModality) > 0 { + ok := object.Key("parsingModality") + ok.String(string(v.ParsingModality)) + } + + return nil +} + func awsRestjson1_serializeDocumentBedrockEmbeddingModelConfiguration(v *types.BedrockEmbeddingModelConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7220,6 +7243,11 @@ func awsRestjson1_serializeDocumentBedrockFoundationModelConfiguration(v *types. ok.String(*v.ModelArn) } + if len(v.ParsingModality) > 0 { + ok := object.Key("parsingModality") + ok.String(string(v.ParsingModality)) + } + if v.ParsingPrompt != nil { ok := object.Key("parsingPrompt") if err := awsRestjson1_serializeDocumentParsingPrompt(v.ParsingPrompt, ok); err != nil { @@ -7449,6 +7477,36 @@ func awsRestjson1_serializeDocumentCrawlFilterConfiguration(v *types.CrawlFilter return nil } +func awsRestjson1_serializeDocumentCuratedQueries(v []types.CuratedQuery, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentCuratedQuery(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentCuratedQuery(v *types.CuratedQuery, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NaturalLanguage != nil { + ok := object.Key("naturalLanguage") + ok.String(*v.NaturalLanguage) + } + + if v.Sql != nil { + ok := object.Key("sql") + ok.String(*v.Sql) + } + + return nil +} + func awsRestjson1_serializeDocumentCustomContent(v *types.CustomContent, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -8413,10 +8471,36 @@ func awsRestjson1_serializeDocumentIteratorFlowNodeConfiguration(v *types.Iterat return nil } +func awsRestjson1_serializeDocumentKendraKnowledgeBaseConfiguration(v *types.KendraKnowledgeBaseConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KendraIndexArn != nil { + ok := object.Key("kendraIndexArn") + ok.String(*v.KendraIndexArn) + } + + return nil +} + func awsRestjson1_serializeDocumentKnowledgeBaseConfiguration(v *types.KnowledgeBaseConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() + if v.KendraKnowledgeBaseConfiguration != nil { + ok := object.Key("kendraKnowledgeBaseConfiguration") + if err := awsRestjson1_serializeDocumentKendraKnowledgeBaseConfiguration(v.KendraKnowledgeBaseConfiguration, ok); err != nil { + return err + } + } + + if v.SqlKnowledgeBaseConfiguration != nil { + ok := object.Key("sqlKnowledgeBaseConfiguration") + if err := awsRestjson1_serializeDocumentSqlKnowledgeBaseConfiguration(v.SqlKnowledgeBaseConfiguration, ok); err != nil { + return err + } + } + if len(v.Type) > 0 { ok := object.Key("type") ok.String(string(v.Type)) @@ -8824,6 +8908,13 @@ func awsRestjson1_serializeDocumentParsingConfiguration(v *types.ParsingConfigur object := value.Object() defer object.Close() + if v.BedrockDataAutomationConfiguration != nil { + ok := object.Key("bedrockDataAutomationConfiguration") + if err := awsRestjson1_serializeDocumentBedrockDataAutomationConfiguration(v.BedrockDataAutomationConfiguration, ok); err != nil { + return err + } + } + if v.BedrockFoundationModelConfiguration != nil { ok := object.Key("bedrockFoundationModelConfiguration") if err := awsRestjson1_serializeDocumentBedrockFoundationModelConfiguration(v.BedrockFoundationModelConfiguration, ok); err != nil { @@ -9373,6 +9464,123 @@ func awsRestjson1_serializeDocumentPromptVariantList(v []types.PromptVariant, va return nil } +func awsRestjson1_serializeDocumentQueryGenerationColumn(v *types.QueryGenerationColumn, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if len(v.Inclusion) > 0 { + ok := object.Key("inclusion") + ok.String(string(v.Inclusion)) + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsRestjson1_serializeDocumentQueryGenerationColumns(v []types.QueryGenerationColumn, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentQueryGenerationColumn(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentQueryGenerationConfiguration(v *types.QueryGenerationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ExecutionTimeoutSeconds != nil { + ok := object.Key("executionTimeoutSeconds") + ok.Integer(*v.ExecutionTimeoutSeconds) + } + + if v.GenerationContext != nil { + ok := object.Key("generationContext") + if err := awsRestjson1_serializeDocumentQueryGenerationContext(v.GenerationContext, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentQueryGenerationContext(v *types.QueryGenerationContext, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CuratedQueries != nil { + ok := object.Key("curatedQueries") + if err := awsRestjson1_serializeDocumentCuratedQueries(v.CuratedQueries, ok); err != nil { + return err + } + } + + if v.Tables != nil { + ok := object.Key("tables") + if err := awsRestjson1_serializeDocumentQueryGenerationTables(v.Tables, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentQueryGenerationTable(v *types.QueryGenerationTable, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Columns != nil { + ok := object.Key("columns") + if err := awsRestjson1_serializeDocumentQueryGenerationColumns(v.Columns, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if len(v.Inclusion) > 0 { + ok := object.Key("inclusion") + ok.String(string(v.Inclusion)) + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsRestjson1_serializeDocumentQueryGenerationTables(v []types.QueryGenerationTable, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentQueryGenerationTable(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentRdsConfiguration(v *types.RdsConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9485,6 +9693,202 @@ func awsRestjson1_serializeDocumentRedisEnterpriseCloudFieldMapping(v *types.Red return nil } +func awsRestjson1_serializeDocumentRedshiftConfiguration(v *types.RedshiftConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.QueryEngineConfiguration != nil { + ok := object.Key("queryEngineConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftQueryEngineConfiguration(v.QueryEngineConfiguration, ok); err != nil { + return err + } + } + + if v.QueryGenerationConfiguration != nil { + ok := object.Key("queryGenerationConfiguration") + if err := awsRestjson1_serializeDocumentQueryGenerationConfiguration(v.QueryGenerationConfiguration, ok); err != nil { + return err + } + } + + if v.StorageConfigurations != nil { + ok := object.Key("storageConfigurations") + if err := awsRestjson1_serializeDocumentRedshiftQueryEngineStorageConfigurations(v.StorageConfigurations, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftProvisionedAuthConfiguration(v *types.RedshiftProvisionedAuthConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DatabaseUser != nil { + ok := object.Key("databaseUser") + ok.String(*v.DatabaseUser) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + if v.UsernamePasswordSecretArn != nil { + ok := object.Key("usernamePasswordSecretArn") + ok.String(*v.UsernamePasswordSecretArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftProvisionedConfiguration(v *types.RedshiftProvisionedConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuthConfiguration != nil { + ok := object.Key("authConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftProvisionedAuthConfiguration(v.AuthConfiguration, ok); err != nil { + return err + } + } + + if v.ClusterIdentifier != nil { + ok := object.Key("clusterIdentifier") + ok.String(*v.ClusterIdentifier) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftQueryEngineAwsDataCatalogStorageConfiguration(v *types.RedshiftQueryEngineAwsDataCatalogStorageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.TableNames != nil { + ok := object.Key("tableNames") + if err := awsRestjson1_serializeDocumentAwsDataCatalogTableNames(v.TableNames, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftQueryEngineConfiguration(v *types.RedshiftQueryEngineConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ProvisionedConfiguration != nil { + ok := object.Key("provisionedConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftProvisionedConfiguration(v.ProvisionedConfiguration, ok); err != nil { + return err + } + } + + if v.ServerlessConfiguration != nil { + ok := object.Key("serverlessConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftServerlessConfiguration(v.ServerlessConfiguration, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftQueryEngineRedshiftStorageConfiguration(v *types.RedshiftQueryEngineRedshiftStorageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DatabaseName != nil { + ok := object.Key("databaseName") + ok.String(*v.DatabaseName) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftQueryEngineStorageConfiguration(v *types.RedshiftQueryEngineStorageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AwsDataCatalogConfiguration != nil { + ok := object.Key("awsDataCatalogConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftQueryEngineAwsDataCatalogStorageConfiguration(v.AwsDataCatalogConfiguration, ok); err != nil { + return err + } + } + + if v.RedshiftConfiguration != nil { + ok := object.Key("redshiftConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftQueryEngineRedshiftStorageConfiguration(v.RedshiftConfiguration, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftQueryEngineStorageConfigurations(v []types.RedshiftQueryEngineStorageConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRedshiftQueryEngineStorageConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRedshiftServerlessAuthConfiguration(v *types.RedshiftServerlessAuthConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + if v.UsernamePasswordSecretArn != nil { + ok := object.Key("usernamePasswordSecretArn") + ok.String(*v.UsernamePasswordSecretArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentRedshiftServerlessConfiguration(v *types.RedshiftServerlessConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuthConfiguration != nil { + ok := object.Key("authConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftServerlessAuthConfiguration(v.AuthConfiguration, ok); err != nil { + return err + } + } + + if v.WorkgroupArn != nil { + ok := object.Key("workgroupArn") + ok.String(*v.WorkgroupArn) + } + + return nil +} + func awsRestjson1_serializeDocumentRetrievalFlowNodeConfiguration(v *types.RetrievalFlowNodeConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9820,6 +10224,25 @@ func awsRestjson1_serializeDocumentSpecificToolChoice(v *types.SpecificToolChoic return nil } +func awsRestjson1_serializeDocumentSqlKnowledgeBaseConfiguration(v *types.SqlKnowledgeBaseConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.RedshiftConfiguration != nil { + ok := object.Key("redshiftConfiguration") + if err := awsRestjson1_serializeDocumentRedshiftConfiguration(v.RedshiftConfiguration, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + func awsRestjson1_serializeDocumentStopSequences(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -9933,6 +10356,52 @@ func awsRestjson1_serializeDocumentStringListValue(v []string, value smithyjson. return nil } +func awsRestjson1_serializeDocumentSupplementalDataStorageConfiguration(v *types.SupplementalDataStorageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.StorageLocations != nil { + ok := object.Key("storageLocations") + if err := awsRestjson1_serializeDocumentSupplementalDataStorageLocations(v.StorageLocations, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSupplementalDataStorageLocation(v *types.SupplementalDataStorageLocation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3Location != nil { + ok := object.Key("s3Location") + if err := awsRestjson1_serializeDocumentS3Location(v.S3Location, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentSupplementalDataStorageLocations(v []types.SupplementalDataStorageLocation, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentSupplementalDataStorageLocation(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentSystemContentBlock(v types.SystemContentBlock, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10250,6 +10719,13 @@ func awsRestjson1_serializeDocumentVectorKnowledgeBaseConfiguration(v *types.Vec } } + if v.SupplementalDataStorageConfiguration != nil { + ok := object.Key("supplementalDataStorageConfiguration") + if err := awsRestjson1_serializeDocumentSupplementalDataStorageConfiguration(v.SupplementalDataStorageConfiguration, ok); err != nil { + return err + } + } + return nil } diff --git a/service/bedrockagent/types/enums.go b/service/bedrockagent/types/enums.go index 38b9882681a..524efb53657 100644 --- a/service/bedrockagent/types/enums.go +++ b/service/bedrockagent/types/enums.go @@ -331,12 +331,13 @@ type DataSourceType string // Enum values for DataSourceType const ( - DataSourceTypeS3 DataSourceType = "S3" - DataSourceTypeWeb DataSourceType = "WEB" - DataSourceTypeConfluence DataSourceType = "CONFLUENCE" - DataSourceTypeSalesforce DataSourceType = "SALESFORCE" - DataSourceTypeSharepoint DataSourceType = "SHAREPOINT" - DataSourceTypeCustom DataSourceType = "CUSTOM" + DataSourceTypeS3 DataSourceType = "S3" + DataSourceTypeWeb DataSourceType = "WEB" + DataSourceTypeConfluence DataSourceType = "CONFLUENCE" + DataSourceTypeSalesforce DataSourceType = "SALESFORCE" + DataSourceTypeSharepoint DataSourceType = "SHAREPOINT" + DataSourceTypeCustom DataSourceType = "CUSTOM" + DataSourceTypeRedshiftMetadata DataSourceType = "REDSHIFT_METADATA" ) // Values returns all known values for DataSourceType. Note that this can be @@ -351,6 +352,7 @@ func (DataSourceType) Values() []DataSourceType { "SALESFORCE", "SHAREPOINT", "CUSTOM", + "REDSHIFT_METADATA", } } @@ -602,6 +604,25 @@ func (FlowValidationType) Values() []FlowValidationType { } } +type IncludeExclude string + +// Enum values for IncludeExclude +const ( + IncludeExcludeInclude IncludeExclude = "INCLUDE" + IncludeExcludeExclude IncludeExclude = "EXCLUDE" +) + +// Values returns all known values for IncludeExclude. 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 (IncludeExclude) Values() []IncludeExclude { + return []IncludeExclude{ + "INCLUDE", + "EXCLUDE", + } +} + type IngestionJobFilterAttribute string // Enum values for IngestionJobFilterAttribute @@ -777,6 +798,8 @@ type KnowledgeBaseType string // Enum values for KnowledgeBaseType const ( KnowledgeBaseTypeVector KnowledgeBaseType = "VECTOR" + KnowledgeBaseTypeKendra KnowledgeBaseType = "KENDRA" + KnowledgeBaseTypeSql KnowledgeBaseType = "SQL" ) // Values returns all known values for KnowledgeBaseType. Note that this can be @@ -786,6 +809,8 @@ const ( func (KnowledgeBaseType) Values() []KnowledgeBaseType { return []KnowledgeBaseType{ "VECTOR", + "KENDRA", + "SQL", } } @@ -867,11 +892,29 @@ func (OrchestrationType) Values() []OrchestrationType { } } +type ParsingModality string + +// Enum values for ParsingModality +const ( + ParsingModalityMultimodal ParsingModality = "MULTIMODAL" +) + +// Values returns all known values for ParsingModality. 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 (ParsingModality) Values() []ParsingModality { + return []ParsingModality{ + "MULTIMODAL", + } +} + type ParsingStrategy string // Enum values for ParsingStrategy const ( ParsingStrategyBedrockFoundationModel ParsingStrategy = "BEDROCK_FOUNDATION_MODEL" + ParsingStrategyBedrockDataAutomation ParsingStrategy = "BEDROCK_DATA_AUTOMATION" ) // Values returns all known values for ParsingStrategy. Note that this can be @@ -881,6 +924,7 @@ const ( func (ParsingStrategy) Values() []ParsingStrategy { return []ParsingStrategy{ "BEDROCK_FOUNDATION_MODEL", + "BEDROCK_DATA_AUTOMATION", } } @@ -945,6 +989,102 @@ func (PromptType) Values() []PromptType { } } +type QueryEngineType string + +// Enum values for QueryEngineType +const ( + QueryEngineTypeRedshift QueryEngineType = "REDSHIFT" +) + +// Values returns all known values for QueryEngineType. 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 (QueryEngineType) Values() []QueryEngineType { + return []QueryEngineType{ + "REDSHIFT", + } +} + +type RedshiftProvisionedAuthType string + +// Enum values for RedshiftProvisionedAuthType +const ( + RedshiftProvisionedAuthTypeIam RedshiftProvisionedAuthType = "IAM" + RedshiftProvisionedAuthTypeUsernamePassword RedshiftProvisionedAuthType = "USERNAME_PASSWORD" + RedshiftProvisionedAuthTypeUsername RedshiftProvisionedAuthType = "USERNAME" +) + +// Values returns all known values for RedshiftProvisionedAuthType. 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 (RedshiftProvisionedAuthType) Values() []RedshiftProvisionedAuthType { + return []RedshiftProvisionedAuthType{ + "IAM", + "USERNAME_PASSWORD", + "USERNAME", + } +} + +type RedshiftQueryEngineStorageType string + +// Enum values for RedshiftQueryEngineStorageType +const ( + RedshiftQueryEngineStorageTypeRedshift RedshiftQueryEngineStorageType = "REDSHIFT" + RedshiftQueryEngineStorageTypeAwsDataCatalog RedshiftQueryEngineStorageType = "AWS_DATA_CATALOG" +) + +// Values returns all known values for RedshiftQueryEngineStorageType. 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 (RedshiftQueryEngineStorageType) Values() []RedshiftQueryEngineStorageType { + return []RedshiftQueryEngineStorageType{ + "REDSHIFT", + "AWS_DATA_CATALOG", + } +} + +type RedshiftQueryEngineType string + +// Enum values for RedshiftQueryEngineType +const ( + RedshiftQueryEngineTypeServerless RedshiftQueryEngineType = "SERVERLESS" + RedshiftQueryEngineTypeProvisioned RedshiftQueryEngineType = "PROVISIONED" +) + +// Values returns all known values for RedshiftQueryEngineType. 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 (RedshiftQueryEngineType) Values() []RedshiftQueryEngineType { + return []RedshiftQueryEngineType{ + "SERVERLESS", + "PROVISIONED", + } +} + +type RedshiftServerlessAuthType string + +// Enum values for RedshiftServerlessAuthType +const ( + RedshiftServerlessAuthTypeIam RedshiftServerlessAuthType = "IAM" + RedshiftServerlessAuthTypeUsernamePassword RedshiftServerlessAuthType = "USERNAME_PASSWORD" +) + +// Values returns all known values for RedshiftServerlessAuthType. 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 (RedshiftServerlessAuthType) Values() []RedshiftServerlessAuthType { + return []RedshiftServerlessAuthType{ + "IAM", + "USERNAME_PASSWORD", + } +} + type RelayConversationHistory string // Enum values for RelayConversationHistory @@ -1070,6 +1210,24 @@ func (StepType) Values() []StepType { } } +type SupplementalDataStorageLocationType string + +// Enum values for SupplementalDataStorageLocationType +const ( + SupplementalDataStorageLocationTypeS3 SupplementalDataStorageLocationType = "S3" +) + +// Values returns all known values for SupplementalDataStorageLocationType. 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 (SupplementalDataStorageLocationType) Values() []SupplementalDataStorageLocationType { + return []SupplementalDataStorageLocationType{ + "S3", + } +} + type Type string // Enum values for Type diff --git a/service/bedrockagent/types/types.go b/service/bedrockagent/types/types.go index 6971e196cac..0c991d25a06 100644 --- a/service/bedrockagent/types/types.go +++ b/service/bedrockagent/types/types.go @@ -837,6 +837,17 @@ type AutoToolChoice struct { noSmithyDocumentSerde } +// Contains configurations for using Amazon Bedrock Data Automation as the parser +// for ingesting your data sources. +type BedrockDataAutomationConfiguration struct { + + // Specifies whether to enable parsing of multimodal data, including both text + // and/or images. + ParsingModality ParsingModality + + noSmithyDocumentSerde +} + // The vector configuration details for the Bedrock embeddings model. type BedrockEmbeddingModelConfiguration struct { @@ -861,13 +872,17 @@ type BedrockEmbeddingModelConfiguration struct { // [inference profile]: https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html type BedrockFoundationModelConfiguration struct { - // The ARN of the foundation model or [inference profile]. + // The ARN of the foundation model or [inference profile] to use for parsing. // // [inference profile]: https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html // // This member is required. ModelArn *string + // Specifies whether to enable parsing of multimodal data, including both text + // and/or images. + ParsingModality ParsingModality + // Instructions for interpreting the contents of a document. ParsingPrompt *ParsingPrompt @@ -1126,6 +1141,23 @@ type CrawlFilterConfiguration struct { noSmithyDocumentSerde } +// Contains configurations for a query, each of which defines information about +// example queries to help the query engine generate appropriate SQL queries. +type CuratedQuery struct { + + // An example natural language query. + // + // This member is required. + NaturalLanguage *string + + // The SQL equivalent of the natural language query. + // + // This member is required. + Sql *string + + noSmithyDocumentSerde +} + // Contains information about the content to ingest into a knowledge base // connected to a custom data source. Choose a sourceType and include the field // that corresponds to it. @@ -2655,6 +2687,17 @@ type IteratorFlowNodeConfiguration struct { noSmithyDocumentSerde } +// Settings for an Amazon Kendra knowledge base. +type KendraKnowledgeBaseConfiguration struct { + + // The ARN of the Amazon Kendra index. + // + // This member is required. + KendraIndexArn *string + + noSmithyDocumentSerde +} + // Contains information about a knowledge base. type KnowledgeBase struct { @@ -2704,11 +2747,6 @@ type KnowledgeBase struct { // This member is required. Status KnowledgeBaseStatus - // Contains details about the storage configuration of the knowledge base. - // - // This member is required. - StorageConfiguration *StorageConfiguration - // The time the knowledge base was last updated. // // This member is required. @@ -2720,6 +2758,9 @@ type KnowledgeBase struct { // A list of reasons that the API operation on the knowledge base failed. FailureReasons []string + // Contains details about the storage configuration of the knowledge base. + StorageConfiguration *StorageConfiguration + noSmithyDocumentSerde } @@ -2732,6 +2773,12 @@ type KnowledgeBaseConfiguration struct { // This member is required. Type KnowledgeBaseType + // Settings for an Amazon Kendra knowledge base. + KendraKnowledgeBaseConfiguration *KendraKnowledgeBaseConfiguration + + // Specifies configurations for a knowledge base connected to an SQL database. + SqlKnowledgeBaseConfiguration *SqlKnowledgeBaseConfiguration + // Contains details about the model that's used to convert the data source into // vector embeddings. VectorKnowledgeBaseConfiguration *VectorKnowledgeBaseConfiguration @@ -3338,26 +3385,16 @@ type ParameterDetail struct { noSmithyDocumentSerde } -// Settings for parsing document contents. By default, the service converts the -// contents of each document into text before splitting it into chunks. To improve -// processing of PDF files with tables and images, you can configure the data -// source to convert the pages of text into images and use a model to describe the -// contents of each page. -// -// To use a model to parse PDF documents, set the parsing strategy to -// BEDROCK_FOUNDATION_MODEL and specify the model or [inference profile] to use by ARN. You can also -// override the default parsing prompt with instructions for how to interpret -// images and tables in your documents. The following models are supported. -// -// - Anthropic Claude 3 Sonnet - anthropic.claude-3-sonnet-20240229-v1:0 +// Settings for parsing document contents. If you exclude this field, the default +// parser converts the contents of each document into text before splitting it into +// chunks. Specify the parsing strategy to use in the parsingStrategy field and +// include the relevant configuration, or omit it to use the Amazon Bedrock default +// parser. For more information, see [Parsing options for your data source]. // -// - Anthropic Claude 3 Haiku - anthropic.claude-3-haiku-20240307-v1:0 +// If you specify BEDROCK_DATA_AUTOMATION or BEDROCK_FOUNDATION_MODEL and it fails +// to parse a file, the Amazon Bedrock default parser will be used instead. // -// You can get the ARN of a model with the [ListFoundationModels] action. Standard model usage charges -// apply for the foundation model parsing strategy. -// -// [inference profile]: https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html -// [ListFoundationModels]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html +// [Parsing options for your data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/kb-advanced-parsing.html type ParsingConfiguration struct { // The parsing strategy for the data source. @@ -3365,7 +3402,14 @@ type ParsingConfiguration struct { // This member is required. ParsingStrategy ParsingStrategy - // Settings for a foundation model used to parse documents for a data source. + // If you specify BEDROCK_DATA_AUTOMATION as the parsing strategy for ingesting + // your data source, use this object to modify configurations for using the Amazon + // Bedrock Data Automation parser. + BedrockDataAutomationConfiguration *BedrockDataAutomationConfiguration + + // If you specify BEDROCK_FOUNDATION_MODEL as the parsing strategy for ingesting + // your data source, use this object to modify configurations for using a + // foundation model to parse documents. BedrockFoundationModelConfiguration *BedrockFoundationModelConfiguration noSmithyDocumentSerde @@ -3865,6 +3909,78 @@ type PromptVariant struct { noSmithyDocumentSerde } +// Contains information about a column in the current table for the query engine +// to consider. +type QueryGenerationColumn struct { + + // A description of the column that helps the query engine understand the contents + // of the column. + Description *string + + // Specifies whether to include or exclude the column during query generation. If + // you specify EXCLUDE , the column will be ignored. If you specify INCLUDE , all + // other columns in the table will be ignored. + Inclusion IncludeExclude + + // The name of the column for which the other fields in this object apply. + Name *string + + noSmithyDocumentSerde +} + +// Contains configurations for query generation. For more information, see [Build a knowledge base by connecting to a structured data source] in the +// Amazon Bedrock User Guide.. +// +// [Build a knowledge base by connecting to a structured data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html +type QueryGenerationConfiguration struct { + + // The time after which query generation will time out. + ExecutionTimeoutSeconds *int32 + + // Specifies configurations for context to use during query generation. + GenerationContext *QueryGenerationContext + + noSmithyDocumentSerde +} + +// >Contains configurations for context to use during query generation. +type QueryGenerationContext struct { + + // An array of objects, each of which defines information about example queries to + // help the query engine generate appropriate SQL queries. + CuratedQueries []CuratedQuery + + // An array of objects, each of which defines information about a table in the + // database. + Tables []QueryGenerationTable + + noSmithyDocumentSerde +} + +// Contains information about a table for the query engine to consider. +type QueryGenerationTable struct { + + // The name of the table for which the other fields in this object apply. + // + // This member is required. + Name *string + + // An array of objects, each of which defines information about a column in the + // table. + Columns []QueryGenerationColumn + + // A description of the table that helps the query engine understand the contents + // of the table. + Description *string + + // Specifies whether to include or exclude the table during query generation. If + // you specify EXCLUDE , the table will be ignored. If you specify INCLUDE , all + // other tables will be ignored. + Inclusion IncludeExclude + + noSmithyDocumentSerde +} + // Contains details about the storage configuration of the knowledge base in // Amazon RDS. For more information, see [Create a vector index in Amazon RDS]. // @@ -3987,6 +4103,163 @@ type RedisEnterpriseCloudFieldMapping struct { noSmithyDocumentSerde } +// Contains configurations for an Amazon Redshift database. For more information, +// see [Build a knowledge base by connecting to a structured data source]in the Amazon Bedrock User Guide. +// +// [Build a knowledge base by connecting to a structured data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html +type RedshiftConfiguration struct { + + // Specifies configurations for an Amazon Redshift query engine. + // + // This member is required. + QueryEngineConfiguration *RedshiftQueryEngineConfiguration + + // Specifies configurations for Amazon Redshift database storage. + // + // This member is required. + StorageConfigurations []RedshiftQueryEngineStorageConfiguration + + // Specifies configurations for generating queries. + QueryGenerationConfiguration *QueryGenerationConfiguration + + noSmithyDocumentSerde +} + +// Contains configurations for authentication to an Amazon Redshift provisioned +// data warehouse. Specify the type of authentication to use in the type field and +// include the corresponding field. If you specify IAM authentication, you don't +// need to include another field. +type RedshiftProvisionedAuthConfiguration struct { + + // The type of authentication to use. + // + // This member is required. + Type RedshiftProvisionedAuthType + + // The database username for authentication to an Amazon Redshift provisioned data + // warehouse. + DatabaseUser *string + + // The ARN of an Secrets Manager secret for authentication. + UsernamePasswordSecretArn *string + + noSmithyDocumentSerde +} + +// Contains configurations for a provisioned Amazon Redshift query engine. +type RedshiftProvisionedConfiguration struct { + + // Specifies configurations for authentication to Amazon Redshift. + // + // This member is required. + AuthConfiguration *RedshiftProvisionedAuthConfiguration + + // The ID of the Amazon Redshift cluster. + // + // This member is required. + ClusterIdentifier *string + + noSmithyDocumentSerde +} + +// Contains configurations for storage in Glue Data Catalog. +type RedshiftQueryEngineAwsDataCatalogStorageConfiguration struct { + + // A list of names of the tables to use. + // + // This member is required. + TableNames []string + + noSmithyDocumentSerde +} + +// Contains configurations for an Amazon Redshift query engine. Specify the type +// of query engine in type and include the corresponding field. For more +// information, see [Build a knowledge base by connecting to a structured data source]in the Amazon Bedrock User Guide. +// +// [Build a knowledge base by connecting to a structured data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html +type RedshiftQueryEngineConfiguration struct { + + // The type of query engine. + // + // This member is required. + Type RedshiftQueryEngineType + + // Specifies configurations for a provisioned Amazon Redshift query engine. + ProvisionedConfiguration *RedshiftProvisionedConfiguration + + // Specifies configurations for a serverless Amazon Redshift query engine. + ServerlessConfiguration *RedshiftServerlessConfiguration + + noSmithyDocumentSerde +} + +// Contains configurations for storage in Amazon Redshift. +type RedshiftQueryEngineRedshiftStorageConfiguration struct { + + // The name of the Amazon Redshift database. + // + // This member is required. + DatabaseName *string + + noSmithyDocumentSerde +} + +// Contains configurations for Amazon Redshift data storage. Specify the data +// storage service to use in the type field and include the corresponding field. +// For more information, see [Build a knowledge base by connecting to a structured data source]in the Amazon Bedrock User Guide. +// +// [Build a knowledge base by connecting to a structured data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html +type RedshiftQueryEngineStorageConfiguration struct { + + // The data storage service to use. + // + // This member is required. + Type RedshiftQueryEngineStorageType + + // Specifies configurations for storage in Glue Data Catalog. + AwsDataCatalogConfiguration *RedshiftQueryEngineAwsDataCatalogStorageConfiguration + + // Specifies configurations for storage in Amazon Redshift. + RedshiftConfiguration *RedshiftQueryEngineRedshiftStorageConfiguration + + noSmithyDocumentSerde +} + +// Specifies configurations for authentication to a Redshift Serverless. Specify +// the type of authentication to use in the type field and include the +// corresponding field. If you specify IAM authentication, you don't need to +// include another field. +type RedshiftServerlessAuthConfiguration struct { + + // The type of authentication to use. + // + // This member is required. + Type RedshiftServerlessAuthType + + // The ARN of an Secrets Manager secret for authentication. + UsernamePasswordSecretArn *string + + noSmithyDocumentSerde +} + +// Contains configurations for authentication to Amazon Redshift Serverless. +type RedshiftServerlessConfiguration struct { + + // Specifies configurations for authentication to an Amazon Redshift provisioned + // data warehouse. + // + // This member is required. + AuthConfiguration *RedshiftServerlessAuthConfiguration + + // The ARN of the Amazon Redshift workgroup. + // + // This member is required. + WorkgroupArn *string + + noSmithyDocumentSerde +} + // Contains configurations for a Retrieval node in a flow. This node retrieves // data from the Amazon S3 location that you specify and returns it as the output. type RetrievalFlowNodeConfiguration struct { @@ -4276,6 +4549,25 @@ type SpecificToolChoice struct { noSmithyDocumentSerde } +// Contains configurations for a knowledge base connected to an SQL database. +// Specify the SQL database type in the type field and include the corresponding +// field. For more information, see [Build a knowledge base by connecting to a structured data source]in the Amazon Bedrock User Guide. +// +// [Build a knowledge base by connecting to a structured data source]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html +type SqlKnowledgeBaseConfiguration struct { + + // The type of SQL database to connect to the knowledge base. + // + // This member is required. + Type QueryEngineType + + // Specifies configurations for a knowledge base connected to an Amazon Redshift + // database. + RedshiftConfiguration *RedshiftConfiguration + + noSmithyDocumentSerde +} + // Contains the storage configuration of the knowledge base. type StorageConfiguration struct { @@ -4352,6 +4644,35 @@ type StorageFlowNodeServiceConfigurationMemberS3 struct { func (*StorageFlowNodeServiceConfigurationMemberS3) isStorageFlowNodeServiceConfiguration() {} +// Specifies configurations for the storage location of the images extracted from +// multimodal documents in your data source. These images can be retrieved and +// returned to the end user. +type SupplementalDataStorageConfiguration struct { + + // A list of objects specifying storage locations for images extracted from + // multimodal documents in your data source. + // + // This member is required. + StorageLocations []SupplementalDataStorageLocation + + noSmithyDocumentSerde +} + +// Contains information about a storage location for images extracted from +// multimodal documents in your data source. +type SupplementalDataStorageLocation struct { + + // Specifies the storage service used for this location. + // + // This member is required. + Type SupplementalDataStorageLocationType + + // Contains information about the Amazon S3 location for the extracted images. + S3Location *S3Location + + noSmithyDocumentSerde +} + // Contains a system prompt to provide context to the model or to describe how it // should behave. For more information, see [Create a prompt using Prompt management]. // @@ -4703,7 +5024,8 @@ type VectorIngestionConfiguration struct { // A custom document transformer for parsed data source documents. CustomTransformationConfiguration *CustomTransformationConfiguration - // A custom parser for data source documents. + // Configurations for a parser to use for parsing documents in your data source. + // If you exclude this field, the default parser will be used. ParsingConfiguration *ParsingConfiguration noSmithyDocumentSerde @@ -4723,6 +5045,14 @@ type VectorKnowledgeBaseConfiguration struct { // Knowledge Base. EmbeddingModelConfiguration *EmbeddingModelConfiguration + // If you include multimodal data from your data source, use this object to + // specify configurations for the storage location of the images extracted from + // your documents. These images can be retrieved and returned to the end user. They + // can also be used in generation when using [RetrieveAndGenerate]. + // + // [RetrieveAndGenerate]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html + SupplementalDataStorageConfiguration *SupplementalDataStorageConfiguration + noSmithyDocumentSerde } diff --git a/service/bedrockagent/validators.go b/service/bedrockagent/validators.go index e612d9784d2..dad510872cb 100644 --- a/service/bedrockagent/validators.go +++ b/service/bedrockagent/validators.go @@ -1853,6 +1853,41 @@ func validateCrawlFilterConfiguration(v *types.CrawlFilterConfiguration) error { } } +func validateCuratedQueries(v []types.CuratedQuery) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CuratedQueries"} + for i := range v { + if err := validateCuratedQuery(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateCuratedQuery(v *types.CuratedQuery) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CuratedQuery"} + if v.NaturalLanguage == nil { + invalidParams.Add(smithy.NewErrParamRequired("NaturalLanguage")) + } + if v.Sql == nil { + invalidParams.Add(smithy.NewErrParamRequired("Sql")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCustomContent(v *types.CustomContent) error { if v == nil { return nil @@ -2635,6 +2670,21 @@ func validateIntermediateStorage(v *types.IntermediateStorage) error { } } +func validateKendraKnowledgeBaseConfiguration(v *types.KendraKnowledgeBaseConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "KendraKnowledgeBaseConfiguration"} + if v.KendraIndexArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("KendraIndexArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateKnowledgeBaseConfiguration(v *types.KnowledgeBaseConfiguration) error { if v == nil { return nil @@ -2648,6 +2698,16 @@ func validateKnowledgeBaseConfiguration(v *types.KnowledgeBaseConfiguration) err invalidParams.AddNested("VectorKnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) } } + if v.KendraKnowledgeBaseConfiguration != nil { + if err := validateKendraKnowledgeBaseConfiguration(v.KendraKnowledgeBaseConfiguration); err != nil { + invalidParams.AddNested("KendraKnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.SqlKnowledgeBaseConfiguration != nil { + if err := validateSqlKnowledgeBaseConfiguration(v.SqlKnowledgeBaseConfiguration); err != nil { + invalidParams.AddNested("SqlKnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -3354,6 +3414,77 @@ func validatePromptVariantList(v []types.PromptVariant) error { } } +func validateQueryGenerationConfiguration(v *types.QueryGenerationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "QueryGenerationConfiguration"} + if v.GenerationContext != nil { + if err := validateQueryGenerationContext(v.GenerationContext); err != nil { + invalidParams.AddNested("GenerationContext", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateQueryGenerationContext(v *types.QueryGenerationContext) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "QueryGenerationContext"} + if v.Tables != nil { + if err := validateQueryGenerationTables(v.Tables); err != nil { + invalidParams.AddNested("Tables", err.(smithy.InvalidParamsError)) + } + } + if v.CuratedQueries != nil { + if err := validateCuratedQueries(v.CuratedQueries); err != nil { + invalidParams.AddNested("CuratedQueries", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateQueryGenerationTable(v *types.QueryGenerationTable) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "QueryGenerationTable"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateQueryGenerationTables(v []types.QueryGenerationTable) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "QueryGenerationTables"} + for i := range v { + if err := validateQueryGenerationTable(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRdsConfiguration(v *types.RdsConfiguration) error { if v == nil { return nil @@ -3458,6 +3589,208 @@ func validateRedisEnterpriseCloudFieldMapping(v *types.RedisEnterpriseCloudField } } +func validateRedshiftConfiguration(v *types.RedshiftConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftConfiguration"} + if v.StorageConfigurations == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageConfigurations")) + } else if v.StorageConfigurations != nil { + if err := validateRedshiftQueryEngineStorageConfigurations(v.StorageConfigurations); err != nil { + invalidParams.AddNested("StorageConfigurations", err.(smithy.InvalidParamsError)) + } + } + if v.QueryEngineConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("QueryEngineConfiguration")) + } else if v.QueryEngineConfiguration != nil { + if err := validateRedshiftQueryEngineConfiguration(v.QueryEngineConfiguration); err != nil { + invalidParams.AddNested("QueryEngineConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.QueryGenerationConfiguration != nil { + if err := validateQueryGenerationConfiguration(v.QueryGenerationConfiguration); err != nil { + invalidParams.AddNested("QueryGenerationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftProvisionedAuthConfiguration(v *types.RedshiftProvisionedAuthConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftProvisionedAuthConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftProvisionedConfiguration(v *types.RedshiftProvisionedConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftProvisionedConfiguration"} + if v.ClusterIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterIdentifier")) + } + if v.AuthConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuthConfiguration")) + } else if v.AuthConfiguration != nil { + if err := validateRedshiftProvisionedAuthConfiguration(v.AuthConfiguration); err != nil { + invalidParams.AddNested("AuthConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftQueryEngineAwsDataCatalogStorageConfiguration(v *types.RedshiftQueryEngineAwsDataCatalogStorageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftQueryEngineAwsDataCatalogStorageConfiguration"} + if v.TableNames == nil { + invalidParams.Add(smithy.NewErrParamRequired("TableNames")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftQueryEngineConfiguration(v *types.RedshiftQueryEngineConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftQueryEngineConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.ServerlessConfiguration != nil { + if err := validateRedshiftServerlessConfiguration(v.ServerlessConfiguration); err != nil { + invalidParams.AddNested("ServerlessConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.ProvisionedConfiguration != nil { + if err := validateRedshiftProvisionedConfiguration(v.ProvisionedConfiguration); err != nil { + invalidParams.AddNested("ProvisionedConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftQueryEngineRedshiftStorageConfiguration(v *types.RedshiftQueryEngineRedshiftStorageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftQueryEngineRedshiftStorageConfiguration"} + if v.DatabaseName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DatabaseName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftQueryEngineStorageConfiguration(v *types.RedshiftQueryEngineStorageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftQueryEngineStorageConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.AwsDataCatalogConfiguration != nil { + if err := validateRedshiftQueryEngineAwsDataCatalogStorageConfiguration(v.AwsDataCatalogConfiguration); err != nil { + invalidParams.AddNested("AwsDataCatalogConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.RedshiftConfiguration != nil { + if err := validateRedshiftQueryEngineRedshiftStorageConfiguration(v.RedshiftConfiguration); err != nil { + invalidParams.AddNested("RedshiftConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftQueryEngineStorageConfigurations(v []types.RedshiftQueryEngineStorageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftQueryEngineStorageConfigurations"} + for i := range v { + if err := validateRedshiftQueryEngineStorageConfiguration(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftServerlessAuthConfiguration(v *types.RedshiftServerlessAuthConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftServerlessAuthConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRedshiftServerlessConfiguration(v *types.RedshiftServerlessConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RedshiftServerlessConfiguration"} + if v.WorkgroupArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkgroupArn")) + } + if v.AuthConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuthConfiguration")) + } else if v.AuthConfiguration != nil { + if err := validateRedshiftServerlessAuthConfiguration(v.AuthConfiguration); err != nil { + invalidParams.AddNested("AuthConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRetrievalFlowNodeConfiguration(v *types.RetrievalFlowNodeConfiguration) error { if v == nil { return nil @@ -3726,6 +4059,26 @@ func validateSpecificToolChoice(v *types.SpecificToolChoice) error { } } +func validateSqlKnowledgeBaseConfiguration(v *types.SqlKnowledgeBaseConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SqlKnowledgeBaseConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.RedshiftConfiguration != nil { + if err := validateRedshiftConfiguration(v.RedshiftConfiguration); err != nil { + invalidParams.AddNested("RedshiftConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateStorageConfiguration(v *types.StorageConfiguration) error { if v == nil { return nil @@ -3819,6 +4172,62 @@ func validateStorageFlowNodeServiceConfiguration(v types.StorageFlowNodeServiceC } } +func validateSupplementalDataStorageConfiguration(v *types.SupplementalDataStorageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SupplementalDataStorageConfiguration"} + if v.StorageLocations == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageLocations")) + } else if v.StorageLocations != nil { + if err := validateSupplementalDataStorageLocations(v.StorageLocations); err != nil { + invalidParams.AddNested("StorageLocations", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSupplementalDataStorageLocation(v *types.SupplementalDataStorageLocation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SupplementalDataStorageLocation"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.S3Location != nil { + if err := validateS3Location(v.S3Location); err != nil { + invalidParams.AddNested("S3Location", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSupplementalDataStorageLocations(v []types.SupplementalDataStorageLocation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SupplementalDataStorageLocations"} + for i := range v { + if err := validateSupplementalDataStorageLocation(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTextContentDoc(v *types.TextContentDoc) error { if v == nil { return nil @@ -4054,6 +4463,11 @@ func validateVectorKnowledgeBaseConfiguration(v *types.VectorKnowledgeBaseConfig if v.EmbeddingModelArn == nil { invalidParams.Add(smithy.NewErrParamRequired("EmbeddingModelArn")) } + if v.SupplementalDataStorageConfiguration != nil { + if err := validateSupplementalDataStorageConfiguration(v.SupplementalDataStorageConfiguration); err != nil { + invalidParams.AddNested("SupplementalDataStorageConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -4322,9 +4736,7 @@ func validateOpCreateKnowledgeBaseInput(v *CreateKnowledgeBaseInput) error { invalidParams.AddNested("KnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) } } - if v.StorageConfiguration == nil { - invalidParams.Add(smithy.NewErrParamRequired("StorageConfiguration")) - } else if v.StorageConfiguration != nil { + if v.StorageConfiguration != nil { if err := validateStorageConfiguration(v.StorageConfiguration); err != nil { invalidParams.AddNested("StorageConfiguration", err.(smithy.InvalidParamsError)) } @@ -5427,9 +5839,7 @@ func validateOpUpdateKnowledgeBaseInput(v *UpdateKnowledgeBaseInput) error { invalidParams.AddNested("KnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) } } - if v.StorageConfiguration == nil { - invalidParams.Add(smithy.NewErrParamRequired("StorageConfiguration")) - } else if v.StorageConfiguration != nil { + if v.StorageConfiguration != nil { if err := validateStorageConfiguration(v.StorageConfiguration); err != nil { invalidParams.AddNested("StorageConfiguration", err.(smithy.InvalidParamsError)) } diff --git a/service/bedrockagentruntime/api_op_GenerateQuery.go b/service/bedrockagentruntime/api_op_GenerateQuery.go new file mode 100644 index 00000000000..9c8161492b8 --- /dev/null +++ b/service/bedrockagentruntime/api_op_GenerateQuery.go @@ -0,0 +1,166 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockagentruntime + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockagentruntime/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Generates an SQL query from a natural language query. For more information, see [Generate a query for structured data] +// in the Amazon Bedrock User Guide. +// +// [Generate a query for structured data]: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-generate-query.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 { + + // Specifies information about a natural language query to transform into SQL. + // + // This member is required. + QueryGenerationInput *types.QueryGenerationInput + + // Specifies configurations for transforming the natural language query into SQL. + // + // This member is required. + TransformationConfiguration *types.TransformationConfiguration + + noSmithyDocumentSerde +} + +type GenerateQueryOutput struct { + + // A list of objects, each of which defines a generated query that can correspond + // to the natural language queries. + Queries []types.GeneratedQuery + + // 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(&awsRestjson1_serializeOpGenerateQuery{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_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/bedrockagentruntime/deserializers.go b/service/bedrockagentruntime/deserializers.go index c186f408917..4a756adeea2 100644 --- a/service/bedrockagentruntime/deserializers.go +++ b/service/bedrockagentruntime/deserializers.go @@ -147,6 +147,182 @@ func awsRestjson1_deserializeOpErrorDeleteAgentMemory(response *smithyhttp.Respo } } +type awsRestjson1_deserializeOpGenerateQuery struct { +} + +func (*awsRestjson1_deserializeOpGenerateQuery) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_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, awsRestjson1_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 = awsRestjson1_deserializeOpDocumentGenerateQueryOutput(&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_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") + 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("BadGatewayException", errorCode): + return awsRestjson1_deserializeErrorBadGatewayException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("DependencyFailedException", errorCode): + return awsRestjson1_deserializeErrorDependencyFailedException(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_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 "queries": + if err := awsRestjson1_deserializeDocumentGeneratedQueries(&sv.Queries, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpGetAgentMemory struct { } @@ -6475,6 +6651,20 @@ func awsRestjson1_deserializeDocumentRetrievalResultContent(v **types.RetrievalR for key, value := range shape { switch key { + case "byteContent": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ByteContent = ptr.String(jtv) + } + + case "row": + if err := awsRestjson1_deserializeDocumentRetrievalResultContentRow(&sv.Row, value); err != nil { + return err + } + case "text": if value != nil { jtv, ok := value.(string) @@ -6484,6 +6674,73 @@ func awsRestjson1_deserializeDocumentRetrievalResultContent(v **types.RetrievalR sv.Text = ptr.String(jtv) } + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RetrievalResultContentType to be of type string, got %T instead", value) + } + sv.Type = types.RetrievalResultContentType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRetrievalResultContentColumn(v **types.RetrievalResultContentColumn, 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.RetrievalResultContentColumn + if *v == nil { + sv = &types.RetrievalResultContentColumn{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "columnName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ColumnName = ptr.String(jtv) + } + + case "columnValue": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ColumnValue = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RetrievalResultContentColumnType to be of type string, got %T instead", value) + } + sv.Type = types.RetrievalResultContentColumnType(jtv) + } + default: _, _ = key, value @@ -6493,6 +6750,40 @@ func awsRestjson1_deserializeDocumentRetrievalResultContent(v **types.RetrievalR return nil } +func awsRestjson1_deserializeDocumentRetrievalResultContentRow(v *[]types.RetrievalResultContentColumn, 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.RetrievalResultContentColumn + if *v == nil { + cv = []types.RetrievalResultContentColumn{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RetrievalResultContentColumn + destAddr := &col + if err := awsRestjson1_deserializeDocumentRetrievalResultContentColumn(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentRetrievalResultCustomDocumentLocation(v **types.RetrievalResultCustomDocumentLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6533,6 +6824,46 @@ func awsRestjson1_deserializeDocumentRetrievalResultCustomDocumentLocation(v **t return nil } +func awsRestjson1_deserializeDocumentRetrievalResultKendraDocumentLocation(v **types.RetrievalResultKendraDocumentLocation, 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.RetrievalResultKendraDocumentLocation + if *v == nil { + sv = &types.RetrievalResultKendraDocumentLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "uri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Uri = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentRetrievalResultLocation(v **types.RetrievalResultLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6565,6 +6896,11 @@ func awsRestjson1_deserializeDocumentRetrievalResultLocation(v **types.Retrieval return err } + case "kendraDocumentLocation": + if err := awsRestjson1_deserializeDocumentRetrievalResultKendraDocumentLocation(&sv.KendraDocumentLocation, value); err != nil { + return err + } + case "s3Location": if err := awsRestjson1_deserializeDocumentRetrievalResultS3Location(&sv.S3Location, value); err != nil { return err @@ -6580,6 +6916,11 @@ func awsRestjson1_deserializeDocumentRetrievalResultLocation(v **types.Retrieval return err } + case "sqlLocation": + if err := awsRestjson1_deserializeDocumentRetrievalResultSqlLocation(&sv.SqlLocation, value); err != nil { + return err + } + case "type": if value != nil { jtv, ok := value.(string) @@ -6765,6 +7106,46 @@ func awsRestjson1_deserializeDocumentRetrievalResultSharePointLocation(v **types return nil } +func awsRestjson1_deserializeDocumentRetrievalResultSqlLocation(v **types.RetrievalResultSqlLocation, 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.RetrievalResultSqlLocation + if *v == nil { + sv = &types.RetrievalResultSqlLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "query": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Query = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentRetrievalResultWebLocation(v **types.RetrievalResultWebLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10000,6 +10381,89 @@ func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Respo return output } +func awsRestjson1_deserializeDocumentGeneratedQueries(v *[]types.GeneratedQuery, 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.GeneratedQuery + if *v == nil { + cv = []types.GeneratedQuery{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.GeneratedQuery + destAddr := &col + if err := awsRestjson1_deserializeDocumentGeneratedQuery(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentGeneratedQuery(v **types.GeneratedQuery, 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.GeneratedQuery + if *v == nil { + sv = &types.GeneratedQuery{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "sql": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Sql = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GeneratedQueryType to be of type string, got %T instead", value) + } + sv.Type = types.GeneratedQueryType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentKnowledgeBaseRetrievalResult(v **types.KnowledgeBaseRetrievalResult, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/bedrockagentruntime/generated.json b/service/bedrockagentruntime/generated.json index 564f3a89640..67f361b4211 100644 --- a/service/bedrockagentruntime/generated.json +++ b/service/bedrockagentruntime/generated.json @@ -10,6 +10,7 @@ "api_client.go", "api_client_test.go", "api_op_DeleteAgentMemory.go", + "api_op_GenerateQuery.go", "api_op_GetAgentMemory.go", "api_op_InvokeAgent.go", "api_op_InvokeFlow.go", diff --git a/service/bedrockagentruntime/serializers.go b/service/bedrockagentruntime/serializers.go index 53fc71c7944..c3374ffdf06 100644 --- a/service/bedrockagentruntime/serializers.go +++ b/service/bedrockagentruntime/serializers.go @@ -102,6 +102,96 @@ func awsRestjson1_serializeOpHttpBindingsDeleteAgentMemoryInput(v *DeleteAgentMe return nil } +type awsRestjson1_serializeOpGenerateQuery struct { +} + +func (*awsRestjson1_serializeOpGenerateQuery) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_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)} + } + + opPath, opQuery := httpbinding.SplitURI("/generateQuery") + 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_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 = 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_serializeOpHttpBindingsGenerateQueryInput(v *GenerateQueryInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentGenerateQueryInput(v *GenerateQueryInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.QueryGenerationInput != nil { + ok := object.Key("queryGenerationInput") + if err := awsRestjson1_serializeDocumentQueryGenerationInput(v.QueryGenerationInput, ok); err != nil { + return err + } + } + + if v.TransformationConfiguration != nil { + ok := object.Key("transformationConfiguration") + if err := awsRestjson1_serializeDocumentTransformationConfiguration(v.TransformationConfiguration, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetAgentMemory struct { } @@ -2477,6 +2567,23 @@ func awsRestjson1_serializeDocumentPromptTemplate(v *types.PromptTemplate, value return nil } +func awsRestjson1_serializeDocumentQueryGenerationInput(v *types.QueryGenerationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Text != nil { + ok := object.Key("text") + ok.String(*v.Text) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + func awsRestjson1_serializeDocumentQueryTransformationConfiguration(v *types.QueryTransformationConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3032,6 +3139,56 @@ func awsRestjson1_serializeDocumentTextPrompt(v *types.TextPrompt, value smithyj return nil } +func awsRestjson1_serializeDocumentTextToSqlConfiguration(v *types.TextToSqlConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KnowledgeBaseConfiguration != nil { + ok := object.Key("knowledgeBaseConfiguration") + if err := awsRestjson1_serializeDocumentTextToSqlKnowledgeBaseConfiguration(v.KnowledgeBaseConfiguration, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentTextToSqlKnowledgeBaseConfiguration(v *types.TextToSqlKnowledgeBaseConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KnowledgeBaseArn != nil { + ok := object.Key("knowledgeBaseArn") + ok.String(*v.KnowledgeBaseArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentTransformationConfiguration(v *types.TransformationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Mode) > 0 { + ok := object.Key("mode") + ok.String(string(v.Mode)) + } + + if v.TextToSqlConfiguration != nil { + ok := object.Key("textToSqlConfiguration") + if err := awsRestjson1_serializeDocumentTextToSqlConfiguration(v.TextToSqlConfiguration, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentVectorSearchBedrockRerankingConfiguration(v *types.VectorSearchBedrockRerankingConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/bedrockagentruntime/snapshot/api_op_GenerateQuery.go.snap b/service/bedrockagentruntime/snapshot/api_op_GenerateQuery.go.snap new file mode 100644 index 00000000000..377624f1a5f --- /dev/null +++ b/service/bedrockagentruntime/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/bedrockagentruntime/snapshot_test.go b/service/bedrockagentruntime/snapshot_test.go index d246468be17..ecec9662427 100644 --- a/service/bedrockagentruntime/snapshot_test.go +++ b/service/bedrockagentruntime/snapshot_test.go @@ -74,6 +74,18 @@ func TestCheckSnapshot_DeleteAgentMemory(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_GetAgentMemory(t *testing.T) { svc := New(Options{}) _, err := svc.GetAgentMemory(context.Background(), nil, func(o *Options) { @@ -193,6 +205,18 @@ func TestUpdateSnapshot_DeleteAgentMemory(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_GetAgentMemory(t *testing.T) { svc := New(Options{}) _, err := svc.GetAgentMemory(context.Background(), nil, func(o *Options) { diff --git a/service/bedrockagentruntime/types/enums.go b/service/bedrockagentruntime/types/enums.go index 7dde123937b..2509bfeedc4 100644 --- a/service/bedrockagentruntime/types/enums.go +++ b/service/bedrockagentruntime/types/enums.go @@ -232,6 +232,23 @@ func (FlowCompletionReason) Values() []FlowCompletionReason { } } +type GeneratedQueryType string + +// Enum values for GeneratedQueryType +const ( + GeneratedQueryTypeRedshiftSql GeneratedQueryType = "REDSHIFT_SQL" +) + +// Values returns all known values for GeneratedQueryType. 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 (GeneratedQueryType) Values() []GeneratedQueryType { + return []GeneratedQueryType{ + "REDSHIFT_SQL", + } +} + type GuadrailAction string // Enum values for GuadrailAction @@ -504,6 +521,23 @@ func (GuardrailWordPolicyAction) Values() []GuardrailWordPolicyAction { } } +type InputQueryType string + +// Enum values for InputQueryType +const ( + InputQueryTypeText InputQueryType = "TEXT" +) + +// Values returns all known values for InputQueryType. 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 (InputQueryType) Values() []InputQueryType { + return []InputQueryType{ + "TEXT", + } +} + type InvocationType string // Enum values for InvocationType @@ -663,6 +697,23 @@ func (PromptType) Values() []PromptType { } } +type QueryTransformationMode string + +// Enum values for QueryTransformationMode +const ( + QueryTransformationModeTextToSql QueryTransformationMode = "TEXT_TO_SQL" +) + +// Values returns all known values for QueryTransformationMode. 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 (QueryTransformationMode) Values() []QueryTransformationMode { + return []QueryTransformationMode{ + "TEXT_TO_SQL", + } +} + type QueryTransformationType string // Enum values for QueryTransformationType @@ -808,6 +859,55 @@ func (ResponseState) Values() []ResponseState { } } +type RetrievalResultContentColumnType string + +// Enum values for RetrievalResultContentColumnType +const ( + RetrievalResultContentColumnTypeBlob RetrievalResultContentColumnType = "BLOB" + RetrievalResultContentColumnTypeBoolean RetrievalResultContentColumnType = "BOOLEAN" + RetrievalResultContentColumnTypeDouble RetrievalResultContentColumnType = "DOUBLE" + RetrievalResultContentColumnTypeNull RetrievalResultContentColumnType = "NULL" + RetrievalResultContentColumnTypeLong RetrievalResultContentColumnType = "LONG" + RetrievalResultContentColumnTypeString RetrievalResultContentColumnType = "STRING" +) + +// Values returns all known values for RetrievalResultContentColumnType. 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 (RetrievalResultContentColumnType) Values() []RetrievalResultContentColumnType { + return []RetrievalResultContentColumnType{ + "BLOB", + "BOOLEAN", + "DOUBLE", + "NULL", + "LONG", + "STRING", + } +} + +type RetrievalResultContentType string + +// Enum values for RetrievalResultContentType +const ( + RetrievalResultContentTypeText RetrievalResultContentType = "TEXT" + RetrievalResultContentTypeImage RetrievalResultContentType = "IMAGE" + RetrievalResultContentTypeRow RetrievalResultContentType = "ROW" +) + +// Values returns all known values for RetrievalResultContentType. 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 (RetrievalResultContentType) Values() []RetrievalResultContentType { + return []RetrievalResultContentType{ + "TEXT", + "IMAGE", + "ROW", + } +} + type RetrievalResultLocationType string // Enum values for RetrievalResultLocationType @@ -818,6 +918,8 @@ const ( RetrievalResultLocationTypeSalesforce RetrievalResultLocationType = "SALESFORCE" RetrievalResultLocationTypeSharepoint RetrievalResultLocationType = "SHAREPOINT" RetrievalResultLocationTypeCustom RetrievalResultLocationType = "CUSTOM" + RetrievalResultLocationTypeKendra RetrievalResultLocationType = "KENDRA" + RetrievalResultLocationTypeSql RetrievalResultLocationType = "SQL" ) // Values returns all known values for RetrievalResultLocationType. Note that this @@ -832,6 +934,8 @@ func (RetrievalResultLocationType) Values() []RetrievalResultLocationType { "SALESFORCE", "SHAREPOINT", "CUSTOM", + "KENDRA", + "SQL", } } @@ -894,6 +998,23 @@ func (Source) Values() []Source { } } +type TextToSqlConfigurationType string + +// Enum values for TextToSqlConfigurationType +const ( + TextToSqlConfigurationTypeKnowledgeBase TextToSqlConfigurationType = "KNOWLEDGE_BASE" +) + +// Values returns all known values for TextToSqlConfigurationType. 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 (TextToSqlConfigurationType) Values() []TextToSqlConfigurationType { + return []TextToSqlConfigurationType{ + "KNOWLEDGE_BASE", + } +} + type Type string // Enum values for Type diff --git a/service/bedrockagentruntime/types/types.go b/service/bedrockagentruntime/types/types.go index adb70cad245..d49d382de6e 100644 --- a/service/bedrockagentruntime/types/types.go +++ b/service/bedrockagentruntime/types/types.go @@ -1222,6 +1222,18 @@ type FunctionSchemaMemberFunctions struct { func (*FunctionSchemaMemberFunctions) isFunctionSchema() {} +// Contains information about a query generated for a natural language query. +type GeneratedQuery struct { + + // An SQL query that corresponds to the natural language query. + Sql *string + + // The type of transformed query. + Type GeneratedQueryType + + noSmithyDocumentSerde +} + // Contains metadata about a part of the generated response that is accompanied by // a citation. // @@ -1977,7 +1989,7 @@ type KnowledgeBaseRetrievalConfiguration struct { // [Retrieve response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html#API_agent-runtime_Retrieve_ResponseSyntax type KnowledgeBaseRetrievalResult struct { - // Contains a chunk of text from a data source in the knowledge base. + // Contains information about the content of the chunk. // // This member is required. Content *RetrievalResultContent @@ -2773,6 +2785,22 @@ type PropertyParameters struct { noSmithyDocumentSerde } +// Contains information about a natural language query to transform into SQL. +type QueryGenerationInput struct { + + // The text of the query. + // + // This member is required. + Text *string + + // The type of the query. + // + // This member is required. + Type InputQueryType + + noSmithyDocumentSerde +} + // To split up the prompt and retrieve multiple sources, set the transformation // type to QUERY_DECOMPOSITION . type QueryTransformationConfiguration struct { @@ -3263,7 +3291,9 @@ type RetrievalResultConfluenceLocation struct { noSmithyDocumentSerde } -// Contains the cited text from the data source. +// Contains information about a chunk of text from a data source in the knowledge +// base. If the result is from a structured data source, the cell in the database +// and the type of the value is also identified. // // This data type is used in the following API operations: // @@ -3281,11 +3311,35 @@ type RetrievalResultConfluenceLocation struct { // [InvokeAgent response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html#API_agent-runtime_InvokeAgent_ResponseSyntax type RetrievalResultContent struct { + // A data URI with base64-encoded content from the data source. The URI is in the + // following format: returned in the following format: + // data:image/jpeg;base64,${base64-encoded string} . + ByteContent *string + + // Specifies information about the rows with the cells to return in retrieval. + Row []RetrievalResultContentColumn + // The cited text from the data source. - // - // This member is required. Text *string + // The type of content in the retrieval result. + Type RetrievalResultContentType + + noSmithyDocumentSerde +} + +// Contains information about a column with a cell to return in retrieval. +type RetrievalResultContentColumn struct { + + // The name of the column. + ColumnName *string + + // The value in the column. + ColumnValue *string + + // The data type of the value. + Type RetrievalResultContentColumnType + noSmithyDocumentSerde } @@ -3298,6 +3352,15 @@ type RetrievalResultCustomDocumentLocation struct { noSmithyDocumentSerde } +// The location of a result in Amazon Kendra. +type RetrievalResultKendraDocumentLocation struct { + + // The document's uri. + Uri *string + + noSmithyDocumentSerde +} + // Contains information about the data source location. // // This data type is used in the following API operations: @@ -3309,7 +3372,7 @@ type RetrievalResultCustomDocumentLocation struct { // - – in the location field // // [InvokeAgent response] -// - – in the locatino field +// - – in the location field // // [RetrieveAndGenerate response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html#API_agent-runtime_RetrieveAndGenerate_ResponseSyntax // [Retrieve response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html#API_agent-runtime_Retrieve_ResponseSyntax @@ -3327,6 +3390,9 @@ type RetrievalResultLocation struct { // Specifies the location of a document in a custom data source. CustomDocumentLocation *RetrievalResultCustomDocumentLocation + // The location of a document in Amazon Kendra. + KendraDocumentLocation *RetrievalResultKendraDocumentLocation + // The S3 data source location. S3Location *RetrievalResultS3Location @@ -3336,6 +3402,9 @@ type RetrievalResultLocation struct { // The SharePoint data source location. SharePointLocation *RetrievalResultSharePointLocation + // Specifies information about the SQL query used to retrieve the result. + SqlLocation *RetrievalResultSqlLocation + // The web URL/URLs data source location. WebLocation *RetrievalResultWebLocation @@ -3384,6 +3453,15 @@ type RetrievalResultSharePointLocation struct { noSmithyDocumentSerde } +// Contains information about the SQL query used to retrieve the result. +type RetrievalResultSqlLocation struct { + + // The SQL query used to retrieve the result. + Query *string + + noSmithyDocumentSerde +} + // The web URL/URLs data source location. type RetrievalResultWebLocation struct { @@ -3853,6 +3931,31 @@ type TextResponsePart struct { noSmithyDocumentSerde } +// Contains configurations for transforming text to SQL. +type TextToSqlConfiguration struct { + + // The type of resource to use in transformation. + // + // This member is required. + Type TextToSqlConfigurationType + + // Specifies configurations for a knowledge base to use in transformation. + KnowledgeBaseConfiguration *TextToSqlKnowledgeBaseConfiguration + + noSmithyDocumentSerde +} + +// Contains configurations for a knowledge base to use in transformation. +type TextToSqlKnowledgeBaseConfiguration struct { + + // The ARN of the knowledge base + // + // This member is required. + KnowledgeBaseArn *string + + noSmithyDocumentSerde +} + // Contains one part of the agent's reasoning process and results from calling API // actions and querying knowledge bases. You can use the trace to understand how // the agent arrived at the response it provided the customer. For more @@ -3978,6 +4081,20 @@ type TracePart struct { noSmithyDocumentSerde } +// Contains configurations for transforming the natural language query into SQL. +type TransformationConfiguration struct { + + // The mode of the transformation. + // + // This member is required. + Mode QueryTransformationMode + + // Specifies configurations for transforming text to SQL. + TextToSqlConfiguration *TextToSqlConfiguration + + noSmithyDocumentSerde +} + // Contains information of the usage of the foundation model. type Usage struct { diff --git a/service/bedrockagentruntime/validators.go b/service/bedrockagentruntime/validators.go index adeae040cbf..8a037cc120c 100644 --- a/service/bedrockagentruntime/validators.go +++ b/service/bedrockagentruntime/validators.go @@ -30,6 +30,26 @@ func (m *validateOpDeleteAgentMemory) HandleInitialize(ctx context.Context, in m 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 validateOpGetAgentMemory struct { } @@ -214,6 +234,10 @@ func addOpDeleteAgentMemoryValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAgentMemory{}, middleware.After) } +func addOpGenerateQueryValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGenerateQuery{}, middleware.After) +} + func addOpGetAgentMemoryValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetAgentMemory{}, middleware.After) } @@ -1175,6 +1199,24 @@ func validatePromptOverrideConfiguration(v *types.PromptOverrideConfiguration) e } } +func validateQueryGenerationInput(v *types.QueryGenerationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "QueryGenerationInput"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.Text == nil { + invalidParams.Add(smithy.NewErrParamRequired("Text")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateQueryTransformationConfiguration(v *types.QueryTransformationConfiguration) error { if v == nil { return nil @@ -1570,6 +1612,61 @@ func validateTextPrompt(v *types.TextPrompt) error { } } +func validateTextToSqlConfiguration(v *types.TextToSqlConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TextToSqlConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.KnowledgeBaseConfiguration != nil { + if err := validateTextToSqlKnowledgeBaseConfiguration(v.KnowledgeBaseConfiguration); err != nil { + invalidParams.AddNested("KnowledgeBaseConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTextToSqlKnowledgeBaseConfiguration(v *types.TextToSqlKnowledgeBaseConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TextToSqlKnowledgeBaseConfiguration"} + if v.KnowledgeBaseArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("KnowledgeBaseArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTransformationConfiguration(v *types.TransformationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TransformationConfiguration"} + if len(v.Mode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Mode")) + } + if v.TextToSqlConfiguration != nil { + if err := validateTextToSqlConfiguration(v.TextToSqlConfiguration); err != nil { + invalidParams.AddNested("TextToSqlConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateVectorSearchBedrockRerankingConfiguration(v *types.VectorSearchBedrockRerankingConfiguration) error { if v == nil { return nil @@ -1647,6 +1744,32 @@ func validateOpDeleteAgentMemoryInput(v *DeleteAgentMemoryInput) error { } } +func validateOpGenerateQueryInput(v *GenerateQueryInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GenerateQueryInput"} + if v.QueryGenerationInput == nil { + invalidParams.Add(smithy.NewErrParamRequired("QueryGenerationInput")) + } else if v.QueryGenerationInput != nil { + if err := validateQueryGenerationInput(v.QueryGenerationInput); err != nil { + invalidParams.AddNested("QueryGenerationInput", err.(smithy.InvalidParamsError)) + } + } + if v.TransformationConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("TransformationConfiguration")) + } else if v.TransformationConfiguration != nil { + if err := validateTransformationConfiguration(v.TransformationConfiguration); err != nil { + invalidParams.AddNested("TransformationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetAgentMemoryInput(v *GetAgentMemoryInput) error { if v == nil { return nil diff --git a/service/bedrockdataautomation/LICENSE.txt b/service/bedrockdataautomation/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/bedrockdataautomation/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/bedrockdataautomation/api_client.go b/service/bedrockdataautomation/api_client.go new file mode 100644 index 00000000000..d6fc2ec6f0c --- /dev/null +++ b/service/bedrockdataautomation/api_client.go @@ -0,0 +1,929 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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 = "Bedrock Data Automation" +const ServiceAPIVersion = "2023-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/bedrockdataautomation") + 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/bedrockdataautomation") +} + +// Client provides the API client to make operations call for Data Automation for +// Amazon Bedrock. +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/bedrockdataautomation") + }) + 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, "bedrockdataautomation", 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/bedrockdataautomation") + }) + 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/bedrockdataautomation/api_client_test.go b/service/bedrockdataautomation/api_client_test.go new file mode 100644 index 00000000000..159a445be93 --- /dev/null +++ b/service/bedrockdataautomation/api_client_test.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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/bedrockdataautomation/api_op_CreateBlueprint.go b/service/bedrockdataautomation/api_op_CreateBlueprint.go new file mode 100644 index 00000000000..553cbf33023 --- /dev/null +++ b/service/bedrockdataautomation/api_op_CreateBlueprint.go @@ -0,0 +1,216 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an Amazon Bedrock Keystone Blueprint +func (c *Client) CreateBlueprint(ctx context.Context, params *CreateBlueprintInput, optFns ...func(*Options)) (*CreateBlueprintOutput, error) { + if params == nil { + params = &CreateBlueprintInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateBlueprint", params, optFns, c.addOperationCreateBlueprintMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateBlueprintOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Create Blueprint Request +type CreateBlueprintInput struct { + + // Name of the Blueprint + // + // This member is required. + BlueprintName *string + + // Schema of the blueprint + // + // This member is required. + Schema *string + + // Type + // + // This member is required. + Type types.Type + + // Stage of the Blueprint + BlueprintStage types.BlueprintStage + + // Client specified token used for idempotency checks + ClientToken *string + + // KMS Encryption Configuration + EncryptionConfiguration *types.EncryptionConfiguration + + noSmithyDocumentSerde +} + +// Create Blueprint Response +type CreateBlueprintOutput struct { + + // Contains the information of a Blueprint. + // + // This member is required. + Blueprint *types.Blueprint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateBlueprintMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateBlueprint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateBlueprint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateBlueprint"); 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_opCreateBlueprintMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateBlueprintValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateBlueprint(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_initializeOpCreateBlueprint struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateBlueprint) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateBlueprint) 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.(*CreateBlueprintInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateBlueprintInput ") + } + + 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_opCreateBlueprintMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateBlueprint{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateBlueprint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateBlueprint", + } +} diff --git a/service/bedrockdataautomation/api_op_CreateBlueprintVersion.go b/service/bedrockdataautomation/api_op_CreateBlueprintVersion.go new file mode 100644 index 00000000000..a2176ca1648 --- /dev/null +++ b/service/bedrockdataautomation/api_op_CreateBlueprintVersion.go @@ -0,0 +1,200 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a new version of an existing Amazon Bedrock Keystone Blueprint +func (c *Client) CreateBlueprintVersion(ctx context.Context, params *CreateBlueprintVersionInput, optFns ...func(*Options)) (*CreateBlueprintVersionOutput, error) { + if params == nil { + params = &CreateBlueprintVersionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateBlueprintVersion", params, optFns, c.addOperationCreateBlueprintVersionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateBlueprintVersionOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Create Blueprint Version Request +type CreateBlueprintVersionInput struct { + + // ARN generated at the server side when a Blueprint is created + // + // This member is required. + BlueprintArn *string + + // Client specified token used for idempotency checks + ClientToken *string + + noSmithyDocumentSerde +} + +// Create Blueprint Version Response +type CreateBlueprintVersionOutput struct { + + // Contains the information of a Blueprint. + // + // This member is required. + Blueprint *types.Blueprint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateBlueprintVersionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateBlueprintVersion{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateBlueprintVersion{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateBlueprintVersion"); 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_opCreateBlueprintVersionMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateBlueprintVersionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateBlueprintVersion(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_initializeOpCreateBlueprintVersion struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateBlueprintVersion) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateBlueprintVersion) 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.(*CreateBlueprintVersionInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateBlueprintVersionInput ") + } + + 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_opCreateBlueprintVersionMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateBlueprintVersion{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateBlueprintVersion(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateBlueprintVersion", + } +} diff --git a/service/bedrockdataautomation/api_op_CreateDataAutomationProject.go b/service/bedrockdataautomation/api_op_CreateDataAutomationProject.go new file mode 100644 index 00000000000..60e15125007 --- /dev/null +++ b/service/bedrockdataautomation/api_op_CreateDataAutomationProject.go @@ -0,0 +1,226 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an Amazon Bedrock Keystone DataAutomationProject +func (c *Client) CreateDataAutomationProject(ctx context.Context, params *CreateDataAutomationProjectInput, optFns ...func(*Options)) (*CreateDataAutomationProjectOutput, error) { + if params == nil { + params = &CreateDataAutomationProjectInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateDataAutomationProject", params, optFns, c.addOperationCreateDataAutomationProjectMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateDataAutomationProjectOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Create DataAutomationProject Request +type CreateDataAutomationProjectInput struct { + + // Name of the DataAutomationProject + // + // This member is required. + ProjectName *string + + // Standard output configuration + // + // This member is required. + StandardOutputConfiguration *types.StandardOutputConfiguration + + // Client specified token used for idempotency checks + ClientToken *string + + // Custom output configuration + CustomOutputConfiguration *types.CustomOutputConfiguration + + // KMS Encryption Configuration + EncryptionConfiguration *types.EncryptionConfiguration + + // Override configuration + OverrideConfiguration *types.OverrideConfiguration + + // Description of the DataAutomationProject + ProjectDescription *string + + // Stage of the Project + ProjectStage types.DataAutomationProjectStage + + noSmithyDocumentSerde +} + +// Create DataAutomationProject Response +type CreateDataAutomationProjectOutput struct { + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Stage of the Project + ProjectStage types.DataAutomationProjectStage + + // Status of Data Automation Project + Status types.DataAutomationProjectStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateDataAutomationProjectMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateDataAutomationProject"); 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_opCreateDataAutomationProjectMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateDataAutomationProjectValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateDataAutomationProject(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_initializeOpCreateDataAutomationProject struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateDataAutomationProject) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateDataAutomationProject) 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.(*CreateDataAutomationProjectInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateDataAutomationProjectInput ") + } + + 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_opCreateDataAutomationProjectMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateDataAutomationProject{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateDataAutomationProject(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateDataAutomationProject", + } +} diff --git a/service/bedrockdataautomation/api_op_DeleteBlueprint.go b/service/bedrockdataautomation/api_op_DeleteBlueprint.go new file mode 100644 index 00000000000..db96eb82706 --- /dev/null +++ b/service/bedrockdataautomation/api_op_DeleteBlueprint.go @@ -0,0 +1,157 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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 existing Amazon Bedrock Keystone Blueprint +func (c *Client) DeleteBlueprint(ctx context.Context, params *DeleteBlueprintInput, optFns ...func(*Options)) (*DeleteBlueprintOutput, error) { + if params == nil { + params = &DeleteBlueprintInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteBlueprint", params, optFns, c.addOperationDeleteBlueprintMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteBlueprintOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Delete Blueprint Request +type DeleteBlueprintInput struct { + + // ARN generated at the server side when a Blueprint is created + // + // This member is required. + BlueprintArn *string + + // Optional field to delete a specific Blueprint version + BlueprintVersion *string + + noSmithyDocumentSerde +} + +// Delete Blueprint Response +type DeleteBlueprintOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteBlueprintMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteBlueprint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteBlueprint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteBlueprint"); 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 = addOpDeleteBlueprintValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteBlueprint(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_opDeleteBlueprint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteBlueprint", + } +} diff --git a/service/bedrockdataautomation/api_op_DeleteDataAutomationProject.go b/service/bedrockdataautomation/api_op_DeleteDataAutomationProject.go new file mode 100644 index 00000000000..b696f9a1343 --- /dev/null +++ b/service/bedrockdataautomation/api_op_DeleteDataAutomationProject.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an existing Amazon Bedrock Keystone DataAutomationProject +func (c *Client) DeleteDataAutomationProject(ctx context.Context, params *DeleteDataAutomationProjectInput, optFns ...func(*Options)) (*DeleteDataAutomationProjectOutput, error) { + if params == nil { + params = &DeleteDataAutomationProjectInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteDataAutomationProject", params, optFns, c.addOperationDeleteDataAutomationProjectMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteDataAutomationProjectOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Delete DataAutomationProject Request +type DeleteDataAutomationProjectInput struct { + + // ARN generated at the server side when a DataAutomationProject is created + // + // This member is required. + ProjectArn *string + + noSmithyDocumentSerde +} + +// Delete DataAutomationProject Response +type DeleteDataAutomationProjectOutput struct { + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Status of Data Automation Project + Status types.DataAutomationProjectStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteDataAutomationProjectMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteDataAutomationProject"); 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 = addOpDeleteDataAutomationProjectValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteDataAutomationProject(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_opDeleteDataAutomationProject(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteDataAutomationProject", + } +} diff --git a/service/bedrockdataautomation/api_op_GetBlueprint.go b/service/bedrockdataautomation/api_op_GetBlueprint.go new file mode 100644 index 00000000000..e6ed7a4583a --- /dev/null +++ b/service/bedrockdataautomation/api_op_GetBlueprint.go @@ -0,0 +1,167 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets an existing Amazon Bedrock Keystone Blueprint +func (c *Client) GetBlueprint(ctx context.Context, params *GetBlueprintInput, optFns ...func(*Options)) (*GetBlueprintOutput, error) { + if params == nil { + params = &GetBlueprintInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetBlueprint", params, optFns, c.addOperationGetBlueprintMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetBlueprintOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Get Blueprint Request +type GetBlueprintInput struct { + + // ARN generated at the server side when a Blueprint is created + // + // This member is required. + BlueprintArn *string + + // Optional field to get a specific Blueprint stage + BlueprintStage types.BlueprintStage + + // Optional field to get a specific Blueprint version + BlueprintVersion *string + + noSmithyDocumentSerde +} + +// Get Blueprint Response +type GetBlueprintOutput struct { + + // Contains the information of a Blueprint. + // + // This member is required. + Blueprint *types.Blueprint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetBlueprintMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetBlueprint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetBlueprint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetBlueprint"); 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 = addOpGetBlueprintValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetBlueprint(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_opGetBlueprint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetBlueprint", + } +} diff --git a/service/bedrockdataautomation/api_op_GetDataAutomationProject.go b/service/bedrockdataautomation/api_op_GetDataAutomationProject.go new file mode 100644 index 00000000000..3eb5d1b47e1 --- /dev/null +++ b/service/bedrockdataautomation/api_op_GetDataAutomationProject.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets an existing Amazon Bedrock Keystone DataAutomationProject +func (c *Client) GetDataAutomationProject(ctx context.Context, params *GetDataAutomationProjectInput, optFns ...func(*Options)) (*GetDataAutomationProjectOutput, error) { + if params == nil { + params = &GetDataAutomationProjectInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetDataAutomationProject", params, optFns, c.addOperationGetDataAutomationProjectMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetDataAutomationProjectOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Get DataAutomationProject Request +type GetDataAutomationProjectInput struct { + + // ARN generated at the server side when a DataAutomationProject is created + // + // This member is required. + ProjectArn *string + + // Optional field to delete a specific DataAutomationProject stage + ProjectStage types.DataAutomationProjectStage + + noSmithyDocumentSerde +} + +// Get DataAutomationProject Response +type GetDataAutomationProjectOutput struct { + + // Contains the information of a DataAutomationProject. + // + // This member is required. + Project *types.DataAutomationProject + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetDataAutomationProjectMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetDataAutomationProject"); 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 = addOpGetDataAutomationProjectValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetDataAutomationProject(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_opGetDataAutomationProject(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetDataAutomationProject", + } +} diff --git a/service/bedrockdataautomation/api_op_ListBlueprints.go b/service/bedrockdataautomation/api_op_ListBlueprints.go new file mode 100644 index 00000000000..589fd36c352 --- /dev/null +++ b/service/bedrockdataautomation/api_op_ListBlueprints.go @@ -0,0 +1,270 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all existing Amazon Bedrock Keystone Blueprints +func (c *Client) ListBlueprints(ctx context.Context, params *ListBlueprintsInput, optFns ...func(*Options)) (*ListBlueprintsOutput, error) { + if params == nil { + params = &ListBlueprintsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListBlueprints", params, optFns, c.addOperationListBlueprintsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListBlueprintsOutput) + out.ResultMetadata = metadata + return out, nil +} + +// List Blueprint Request +type ListBlueprintsInput struct { + + // ARN of a Blueprint + BlueprintArn *string + + // Blueprint Stage filter + BlueprintStageFilter types.BlueprintStageFilter + + // Max Results + MaxResults *int32 + + // Pagination token + NextToken *string + + // Data Automation Project Filter + ProjectFilter *types.DataAutomationProjectFilter + + // Resource Owner + ResourceOwner types.ResourceOwner + + noSmithyDocumentSerde +} + +// List Blueprint Response +type ListBlueprintsOutput struct { + + // List of Blueprints + // + // This member is required. + Blueprints []types.BlueprintSummary + + // Pagination token + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListBlueprintsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListBlueprints{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListBlueprints{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListBlueprints"); 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 = addOpListBlueprintsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListBlueprints(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 +} + +// ListBlueprintsPaginatorOptions is the paginator options for ListBlueprints +type ListBlueprintsPaginatorOptions struct { + // Max Results + 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 +} + +// ListBlueprintsPaginator is a paginator for ListBlueprints +type ListBlueprintsPaginator struct { + options ListBlueprintsPaginatorOptions + client ListBlueprintsAPIClient + params *ListBlueprintsInput + nextToken *string + firstPage bool +} + +// NewListBlueprintsPaginator returns a new ListBlueprintsPaginator +func NewListBlueprintsPaginator(client ListBlueprintsAPIClient, params *ListBlueprintsInput, optFns ...func(*ListBlueprintsPaginatorOptions)) *ListBlueprintsPaginator { + if params == nil { + params = &ListBlueprintsInput{} + } + + options := ListBlueprintsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListBlueprintsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListBlueprintsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListBlueprints page. +func (p *ListBlueprintsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListBlueprintsOutput, 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.ListBlueprints(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 +} + +// ListBlueprintsAPIClient is a client that implements the ListBlueprints +// operation. +type ListBlueprintsAPIClient interface { + ListBlueprints(context.Context, *ListBlueprintsInput, ...func(*Options)) (*ListBlueprintsOutput, error) +} + +var _ ListBlueprintsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListBlueprints(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListBlueprints", + } +} diff --git a/service/bedrockdataautomation/api_op_ListDataAutomationProjects.go b/service/bedrockdataautomation/api_op_ListDataAutomationProjects.go new file mode 100644 index 00000000000..89926bdc3ac --- /dev/null +++ b/service/bedrockdataautomation/api_op_ListDataAutomationProjects.go @@ -0,0 +1,270 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all existing Amazon Bedrock Keystone DataAutomationProjects +func (c *Client) ListDataAutomationProjects(ctx context.Context, params *ListDataAutomationProjectsInput, optFns ...func(*Options)) (*ListDataAutomationProjectsOutput, error) { + if params == nil { + params = &ListDataAutomationProjectsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListDataAutomationProjects", params, optFns, c.addOperationListDataAutomationProjectsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListDataAutomationProjectsOutput) + out.ResultMetadata = metadata + return out, nil +} + +// List DataAutomationProject Request +type ListDataAutomationProjectsInput struct { + + // Blueprint Filter + BlueprintFilter *types.BlueprintFilter + + // Max Results + MaxResults *int32 + + // Pagination token + NextToken *string + + // Project Stage filter + ProjectStageFilter types.DataAutomationProjectStageFilter + + // Resource Owner + ResourceOwner types.ResourceOwner + + noSmithyDocumentSerde +} + +// List DataAutomationProject Response +type ListDataAutomationProjectsOutput struct { + + // List of DataAutomationProjectSummary + // + // This member is required. + Projects []types.DataAutomationProjectSummary + + // Pagination token + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListDataAutomationProjectsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListDataAutomationProjects{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListDataAutomationProjects{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListDataAutomationProjects"); 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 = addOpListDataAutomationProjectsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListDataAutomationProjects(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 +} + +// ListDataAutomationProjectsPaginatorOptions is the paginator options for +// ListDataAutomationProjects +type ListDataAutomationProjectsPaginatorOptions struct { + // Max Results + 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 +} + +// ListDataAutomationProjectsPaginator is a paginator for +// ListDataAutomationProjects +type ListDataAutomationProjectsPaginator struct { + options ListDataAutomationProjectsPaginatorOptions + client ListDataAutomationProjectsAPIClient + params *ListDataAutomationProjectsInput + nextToken *string + firstPage bool +} + +// NewListDataAutomationProjectsPaginator returns a new +// ListDataAutomationProjectsPaginator +func NewListDataAutomationProjectsPaginator(client ListDataAutomationProjectsAPIClient, params *ListDataAutomationProjectsInput, optFns ...func(*ListDataAutomationProjectsPaginatorOptions)) *ListDataAutomationProjectsPaginator { + if params == nil { + params = &ListDataAutomationProjectsInput{} + } + + options := ListDataAutomationProjectsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListDataAutomationProjectsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListDataAutomationProjectsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListDataAutomationProjects page. +func (p *ListDataAutomationProjectsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListDataAutomationProjectsOutput, 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.ListDataAutomationProjects(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 +} + +// ListDataAutomationProjectsAPIClient is a client that implements the +// ListDataAutomationProjects operation. +type ListDataAutomationProjectsAPIClient interface { + ListDataAutomationProjects(context.Context, *ListDataAutomationProjectsInput, ...func(*Options)) (*ListDataAutomationProjectsOutput, error) +} + +var _ ListDataAutomationProjectsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListDataAutomationProjects(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListDataAutomationProjects", + } +} diff --git a/service/bedrockdataautomation/api_op_UpdateBlueprint.go b/service/bedrockdataautomation/api_op_UpdateBlueprint.go new file mode 100644 index 00000000000..8a28ccac306 --- /dev/null +++ b/service/bedrockdataautomation/api_op_UpdateBlueprint.go @@ -0,0 +1,169 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates an existing Amazon Bedrock Blueprint +func (c *Client) UpdateBlueprint(ctx context.Context, params *UpdateBlueprintInput, optFns ...func(*Options)) (*UpdateBlueprintOutput, error) { + if params == nil { + params = &UpdateBlueprintInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateBlueprint", params, optFns, c.addOperationUpdateBlueprintMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateBlueprintOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Update Blueprint Request +type UpdateBlueprintInput struct { + + // ARN generated at the server side when a Blueprint is created + // + // This member is required. + BlueprintArn *string + + // Schema of the blueprint + // + // This member is required. + Schema *string + + // Stage of the Blueprint + BlueprintStage types.BlueprintStage + + noSmithyDocumentSerde +} + +// Update Blueprint Response +type UpdateBlueprintOutput struct { + + // Contains the information of a Blueprint. + // + // This member is required. + Blueprint *types.Blueprint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateBlueprintMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateBlueprint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateBlueprint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateBlueprint"); 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 = addOpUpdateBlueprintValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateBlueprint(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_opUpdateBlueprint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateBlueprint", + } +} diff --git a/service/bedrockdataautomation/api_op_UpdateDataAutomationProject.go b/service/bedrockdataautomation/api_op_UpdateDataAutomationProject.go new file mode 100644 index 00000000000..aa2a01359cb --- /dev/null +++ b/service/bedrockdataautomation/api_op_UpdateDataAutomationProject.go @@ -0,0 +1,184 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates an existing Amazon Bedrock DataAutomationProject +func (c *Client) UpdateDataAutomationProject(ctx context.Context, params *UpdateDataAutomationProjectInput, optFns ...func(*Options)) (*UpdateDataAutomationProjectOutput, error) { + if params == nil { + params = &UpdateDataAutomationProjectInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateDataAutomationProject", params, optFns, c.addOperationUpdateDataAutomationProjectMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateDataAutomationProjectOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Update DataAutomationProject Request +type UpdateDataAutomationProjectInput struct { + + // ARN generated at the server side when a DataAutomationProject is created + // + // This member is required. + ProjectArn *string + + // Standard output configuration + // + // This member is required. + StandardOutputConfiguration *types.StandardOutputConfiguration + + // Custom output configuration + CustomOutputConfiguration *types.CustomOutputConfiguration + + // Override configuration + OverrideConfiguration *types.OverrideConfiguration + + // Description of the DataAutomationProject + ProjectDescription *string + + // Stage of the Project + ProjectStage types.DataAutomationProjectStage + + noSmithyDocumentSerde +} + +// Update DataAutomationProject Response +type UpdateDataAutomationProjectOutput struct { + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Stage of the Project + ProjectStage types.DataAutomationProjectStage + + // Status of Data Automation Project + Status types.DataAutomationProjectStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateDataAutomationProjectMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateDataAutomationProject{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateDataAutomationProject"); 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 = addOpUpdateDataAutomationProjectValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateDataAutomationProject(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_opUpdateDataAutomationProject(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateDataAutomationProject", + } +} diff --git a/service/bedrockdataautomation/auth.go b/service/bedrockdataautomation/auth.go new file mode 100644 index 00000000000..6c0113e90a4 --- /dev/null +++ b/service/bedrockdataautomation/auth.go @@ -0,0 +1,313 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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, "bedrock") + 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/bedrockdataautomation/deserializers.go b/service/bedrockdataautomation/deserializers.go new file mode 100644 index 00000000000..52a917564a5 --- /dev/null +++ b/service/bedrockdataautomation/deserializers.go @@ -0,0 +1,4494 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/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 awsRestjson1_deserializeOpCreateBlueprint struct { +} + +func (*awsRestjson1_deserializeOpCreateBlueprint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateBlueprint) HandleDeserialize(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_deserializeOpErrorCreateBlueprint(response, &metadata) + } + output := &CreateBlueprintOutput{} + 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_deserializeOpDocumentCreateBlueprintOutput(&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_deserializeOpErrorCreateBlueprint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentCreateBlueprintOutput(v **CreateBlueprintOutput, 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 *CreateBlueprintOutput + if *v == nil { + sv = &CreateBlueprintOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprint": + if err := awsRestjson1_deserializeDocumentBlueprint(&sv.Blueprint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpCreateBlueprintVersion struct { +} + +func (*awsRestjson1_deserializeOpCreateBlueprintVersion) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateBlueprintVersion) HandleDeserialize(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_deserializeOpErrorCreateBlueprintVersion(response, &metadata) + } + output := &CreateBlueprintVersionOutput{} + 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_deserializeOpDocumentCreateBlueprintVersionOutput(&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_deserializeOpErrorCreateBlueprintVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentCreateBlueprintVersionOutput(v **CreateBlueprintVersionOutput, 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 *CreateBlueprintVersionOutput + if *v == nil { + sv = &CreateBlueprintVersionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprint": + if err := awsRestjson1_deserializeDocumentBlueprint(&sv.Blueprint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpCreateDataAutomationProject struct { +} + +func (*awsRestjson1_deserializeOpCreateDataAutomationProject) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateDataAutomationProject) HandleDeserialize(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_deserializeOpErrorCreateDataAutomationProject(response, &metadata) + } + output := &CreateDataAutomationProjectOutput{} + 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_deserializeOpDocumentCreateDataAutomationProjectOutput(&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_deserializeOpErrorCreateDataAutomationProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentCreateDataAutomationProjectOutput(v **CreateDataAutomationProjectOutput, 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 *CreateDataAutomationProjectOutput + if *v == nil { + sv = &CreateDataAutomationProjectOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "projectArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectArn to be of type string, got %T instead", value) + } + sv.ProjectArn = ptr.String(jtv) + } + + case "projectStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStage to be of type string, got %T instead", value) + } + sv.ProjectStage = types.DataAutomationProjectStage(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataAutomationProjectStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDeleteBlueprint struct { +} + +func (*awsRestjson1_deserializeOpDeleteBlueprint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteBlueprint) HandleDeserialize(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_deserializeOpErrorDeleteBlueprint(response, &metadata) + } + output := &DeleteBlueprintOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteBlueprint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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 + + } +} + +type awsRestjson1_deserializeOpDeleteDataAutomationProject struct { +} + +func (*awsRestjson1_deserializeOpDeleteDataAutomationProject) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteDataAutomationProject) HandleDeserialize(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_deserializeOpErrorDeleteDataAutomationProject(response, &metadata) + } + output := &DeleteDataAutomationProjectOutput{} + 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_deserializeOpDocumentDeleteDataAutomationProjectOutput(&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_deserializeOpErrorDeleteDataAutomationProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentDeleteDataAutomationProjectOutput(v **DeleteDataAutomationProjectOutput, 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 *DeleteDataAutomationProjectOutput + if *v == nil { + sv = &DeleteDataAutomationProjectOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "projectArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectArn to be of type string, got %T instead", value) + } + sv.ProjectArn = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataAutomationProjectStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetBlueprint struct { +} + +func (*awsRestjson1_deserializeOpGetBlueprint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetBlueprint) HandleDeserialize(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_deserializeOpErrorGetBlueprint(response, &metadata) + } + output := &GetBlueprintOutput{} + 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_deserializeOpDocumentGetBlueprintOutput(&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_deserializeOpErrorGetBlueprint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetBlueprintOutput(v **GetBlueprintOutput, 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 *GetBlueprintOutput + if *v == nil { + sv = &GetBlueprintOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprint": + if err := awsRestjson1_deserializeDocumentBlueprint(&sv.Blueprint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetDataAutomationProject struct { +} + +func (*awsRestjson1_deserializeOpGetDataAutomationProject) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetDataAutomationProject) HandleDeserialize(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_deserializeOpErrorGetDataAutomationProject(response, &metadata) + } + output := &GetDataAutomationProjectOutput{} + 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_deserializeOpDocumentGetDataAutomationProjectOutput(&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_deserializeOpErrorGetDataAutomationProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetDataAutomationProjectOutput(v **GetDataAutomationProjectOutput, 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 *GetDataAutomationProjectOutput + if *v == nil { + sv = &GetDataAutomationProjectOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "project": + if err := awsRestjson1_deserializeDocumentDataAutomationProject(&sv.Project, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListBlueprints struct { +} + +func (*awsRestjson1_deserializeOpListBlueprints) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListBlueprints) HandleDeserialize(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_deserializeOpErrorListBlueprints(response, &metadata) + } + output := &ListBlueprintsOutput{} + 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_deserializeOpDocumentListBlueprintsOutput(&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_deserializeOpErrorListBlueprints(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentListBlueprintsOutput(v **ListBlueprintsOutput, 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 *ListBlueprintsOutput + if *v == nil { + sv = &ListBlueprintsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprints": + if err := awsRestjson1_deserializeDocumentBlueprints(&sv.Blueprints, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListDataAutomationProjects struct { +} + +func (*awsRestjson1_deserializeOpListDataAutomationProjects) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListDataAutomationProjects) HandleDeserialize(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_deserializeOpErrorListDataAutomationProjects(response, &metadata) + } + output := &ListDataAutomationProjectsOutput{} + 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_deserializeOpDocumentListDataAutomationProjectsOutput(&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_deserializeOpErrorListDataAutomationProjects(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentListDataAutomationProjectsOutput(v **ListDataAutomationProjectsOutput, 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 *ListDataAutomationProjectsOutput + if *v == nil { + sv = &ListDataAutomationProjectsOutput{} + } 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 NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "projects": + if err := awsRestjson1_deserializeDocumentDataAutomationProjectSummaries(&sv.Projects, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateBlueprint struct { +} + +func (*awsRestjson1_deserializeOpUpdateBlueprint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateBlueprint) HandleDeserialize(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_deserializeOpErrorUpdateBlueprint(response, &metadata) + } + output := &UpdateBlueprintOutput{} + 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_deserializeOpDocumentUpdateBlueprintOutput(&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_deserializeOpErrorUpdateBlueprint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentUpdateBlueprintOutput(v **UpdateBlueprintOutput, 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 *UpdateBlueprintOutput + if *v == nil { + sv = &UpdateBlueprintOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprint": + if err := awsRestjson1_deserializeDocumentBlueprint(&sv.Blueprint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateDataAutomationProject struct { +} + +func (*awsRestjson1_deserializeOpUpdateDataAutomationProject) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateDataAutomationProject) HandleDeserialize(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_deserializeOpErrorUpdateDataAutomationProject(response, &metadata) + } + output := &UpdateDataAutomationProjectOutput{} + 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_deserializeOpDocumentUpdateDataAutomationProjectOutput(&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_deserializeOpErrorUpdateDataAutomationProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentUpdateDataAutomationProjectOutput(v **UpdateDataAutomationProjectOutput, 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 *UpdateDataAutomationProjectOutput + if *v == nil { + sv = &UpdateDataAutomationProjectOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "projectArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectArn to be of type string, got %T instead", value) + } + sv.ProjectArn = ptr.String(jtv) + } + + case "projectStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStage to be of type string, got %T instead", value) + } + sv.ProjectStage = types.DataAutomationProjectStage(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataAutomationProjectStatus(jtv) + } + + 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAudioExtractionCategory(v **types.AudioExtractionCategory, 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.AudioExtractionCategory + if *v == nil { + sv = &types.AudioExtractionCategory{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentAudioExtractionCategoryTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAudioExtractionCategoryTypes(v *[]types.AudioExtractionCategoryType, 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.AudioExtractionCategoryType + if *v == nil { + cv = []types.AudioExtractionCategoryType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AudioExtractionCategoryType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AudioExtractionCategoryType to be of type string, got %T instead", value) + } + col = types.AudioExtractionCategoryType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAudioStandardExtraction(v **types.AudioStandardExtraction, 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.AudioStandardExtraction + if *v == nil { + sv = &types.AudioStandardExtraction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "category": + if err := awsRestjson1_deserializeDocumentAudioExtractionCategory(&sv.Category, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAudioStandardGenerativeField(v **types.AudioStandardGenerativeField, 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.AudioStandardGenerativeField + if *v == nil { + sv = &types.AudioStandardGenerativeField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentAudioStandardGenerativeFieldTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAudioStandardGenerativeFieldTypes(v *[]types.AudioStandardGenerativeFieldType, 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.AudioStandardGenerativeFieldType + if *v == nil { + cv = []types.AudioStandardGenerativeFieldType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AudioStandardGenerativeFieldType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AudioStandardGenerativeFieldType to be of type string, got %T instead", value) + } + col = types.AudioStandardGenerativeFieldType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAudioStandardOutputConfiguration(v **types.AudioStandardOutputConfiguration, 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.AudioStandardOutputConfiguration + if *v == nil { + sv = &types.AudioStandardOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "extraction": + if err := awsRestjson1_deserializeDocumentAudioStandardExtraction(&sv.Extraction, value); err != nil { + return err + } + + case "generativeField": + if err := awsRestjson1_deserializeDocumentAudioStandardGenerativeField(&sv.GenerativeField, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBlueprint(v **types.Blueprint, 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.Blueprint + if *v == nil { + sv = &types.Blueprint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprintArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintArn to be of type string, got %T instead", value) + } + sv.BlueprintArn = ptr.String(jtv) + } + + case "blueprintName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintName to be of type string, got %T instead", value) + } + sv.BlueprintName = ptr.String(jtv) + } + + case "blueprintStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintStage to be of type string, got %T instead", value) + } + sv.BlueprintStage = types.BlueprintStage(jtv) + } + + case "blueprintVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintVersion to be of type string, got %T instead", value) + } + sv.BlueprintVersion = ptr.String(jtv) + } + + case "creationTime": + 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.CreationTime = ptr.Time(t) + } + + case "kmsEncryptionContext": + if err := awsRestjson1_deserializeDocumentKmsEncryptionContext(&sv.KmsEncryptionContext, value); err != nil { + return err + } + + case "kmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "lastModifiedTime": + 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.LastModifiedTime = ptr.Time(t) + } + + case "schema": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintSchema to be of type string, got %T instead", value) + } + sv.Schema = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Type to be of type string, got %T instead", value) + } + sv.Type = types.Type(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBlueprintItem(v **types.BlueprintItem, 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.BlueprintItem + if *v == nil { + sv = &types.BlueprintItem{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprintArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintArn to be of type string, got %T instead", value) + } + sv.BlueprintArn = ptr.String(jtv) + } + + case "blueprintStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintStage to be of type string, got %T instead", value) + } + sv.BlueprintStage = types.BlueprintStage(jtv) + } + + case "blueprintVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintVersion to be of type string, got %T instead", value) + } + sv.BlueprintVersion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBlueprintItems(v *[]types.BlueprintItem, 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.BlueprintItem + if *v == nil { + cv = []types.BlueprintItem{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BlueprintItem + destAddr := &col + if err := awsRestjson1_deserializeDocumentBlueprintItem(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentBlueprints(v *[]types.BlueprintSummary, 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.BlueprintSummary + if *v == nil { + cv = []types.BlueprintSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BlueprintSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentBlueprintSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentBlueprintSummary(v **types.BlueprintSummary, 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.BlueprintSummary + if *v == nil { + sv = &types.BlueprintSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprintArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintArn to be of type string, got %T instead", value) + } + sv.BlueprintArn = ptr.String(jtv) + } + + case "blueprintName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintName to be of type string, got %T instead", value) + } + sv.BlueprintName = ptr.String(jtv) + } + + case "blueprintStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintStage to be of type string, got %T instead", value) + } + sv.BlueprintStage = types.BlueprintStage(jtv) + } + + case "blueprintVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BlueprintVersion to be of type string, got %T instead", value) + } + sv.BlueprintVersion = ptr.String(jtv) + } + + case "creationTime": + 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.CreationTime = ptr.Time(t) + } + + case "lastModifiedTime": + 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.LastModifiedTime = ptr.Time(t) + } + + 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentCustomOutputConfiguration(v **types.CustomOutputConfiguration, 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.CustomOutputConfiguration + if *v == nil { + sv = &types.CustomOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blueprints": + if err := awsRestjson1_deserializeDocumentBlueprintItems(&sv.Blueprints, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDataAutomationProject(v **types.DataAutomationProject, 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.DataAutomationProject + if *v == nil { + sv = &types.DataAutomationProject{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "creationTime": + 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.CreationTime = ptr.Time(t) + } + + case "customOutputConfiguration": + if err := awsRestjson1_deserializeDocumentCustomOutputConfiguration(&sv.CustomOutputConfiguration, value); err != nil { + return err + } + + case "kmsEncryptionContext": + if err := awsRestjson1_deserializeDocumentKmsEncryptionContext(&sv.KmsEncryptionContext, value); err != nil { + return err + } + + case "kmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "lastModifiedTime": + 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.LastModifiedTime = ptr.Time(t) + } + + case "overrideConfiguration": + if err := awsRestjson1_deserializeDocumentOverrideConfiguration(&sv.OverrideConfiguration, value); err != nil { + return err + } + + case "projectArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectArn to be of type string, got %T instead", value) + } + sv.ProjectArn = ptr.String(jtv) + } + + case "projectDescription": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectDescription to be of type string, got %T instead", value) + } + sv.ProjectDescription = ptr.String(jtv) + } + + case "projectName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectName to be of type string, got %T instead", value) + } + sv.ProjectName = ptr.String(jtv) + } + + case "projectStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStage to be of type string, got %T instead", value) + } + sv.ProjectStage = types.DataAutomationProjectStage(jtv) + } + + case "standardOutputConfiguration": + if err := awsRestjson1_deserializeDocumentStandardOutputConfiguration(&sv.StandardOutputConfiguration, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataAutomationProjectStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDataAutomationProjectSummaries(v *[]types.DataAutomationProjectSummary, 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.DataAutomationProjectSummary + if *v == nil { + cv = []types.DataAutomationProjectSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DataAutomationProjectSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentDataAutomationProjectSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentDataAutomationProjectSummary(v **types.DataAutomationProjectSummary, 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.DataAutomationProjectSummary + if *v == nil { + sv = &types.DataAutomationProjectSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "creationTime": + 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.CreationTime = ptr.Time(t) + } + + case "projectArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectArn to be of type string, got %T instead", value) + } + sv.ProjectArn = ptr.String(jtv) + } + + case "projectName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectName to be of type string, got %T instead", value) + } + sv.ProjectName = ptr.String(jtv) + } + + case "projectStage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataAutomationProjectStage to be of type string, got %T instead", value) + } + sv.ProjectStage = types.DataAutomationProjectStage(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentBoundingBox(v **types.DocumentBoundingBox, 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.DocumentBoundingBox + if *v == nil { + sv = &types.DocumentBoundingBox{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentExtractionGranularity(v **types.DocumentExtractionGranularity, 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.DocumentExtractionGranularity + if *v == nil { + sv = &types.DocumentExtractionGranularity{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "types": + if err := awsRestjson1_deserializeDocumentDocumentExtractionGranularityTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentExtractionGranularityTypes(v *[]types.DocumentExtractionGranularityType, 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.DocumentExtractionGranularityType + if *v == nil { + cv = []types.DocumentExtractionGranularityType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DocumentExtractionGranularityType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DocumentExtractionGranularityType to be of type string, got %T instead", value) + } + col = types.DocumentExtractionGranularityType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentOutputAdditionalFileFormat(v **types.DocumentOutputAdditionalFileFormat, 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.DocumentOutputAdditionalFileFormat + if *v == nil { + sv = &types.DocumentOutputAdditionalFileFormat{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentOutputFormat(v **types.DocumentOutputFormat, 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.DocumentOutputFormat + if *v == nil { + sv = &types.DocumentOutputFormat{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "additionalFileFormat": + if err := awsRestjson1_deserializeDocumentDocumentOutputAdditionalFileFormat(&sv.AdditionalFileFormat, value); err != nil { + return err + } + + case "textFormat": + if err := awsRestjson1_deserializeDocumentDocumentOutputTextFormat(&sv.TextFormat, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentOutputTextFormat(v **types.DocumentOutputTextFormat, 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.DocumentOutputTextFormat + if *v == nil { + sv = &types.DocumentOutputTextFormat{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "types": + if err := awsRestjson1_deserializeDocumentDocumentOutputTextFormatTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentOutputTextFormatTypes(v *[]types.DocumentOutputTextFormatType, 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.DocumentOutputTextFormatType + if *v == nil { + cv = []types.DocumentOutputTextFormatType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DocumentOutputTextFormatType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DocumentOutputTextFormatType to be of type string, got %T instead", value) + } + col = types.DocumentOutputTextFormatType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentOverrideConfiguration(v **types.DocumentOverrideConfiguration, 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.DocumentOverrideConfiguration + if *v == nil { + sv = &types.DocumentOverrideConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "splitter": + if err := awsRestjson1_deserializeDocumentSplitterConfiguration(&sv.Splitter, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentStandardExtraction(v **types.DocumentStandardExtraction, 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.DocumentStandardExtraction + if *v == nil { + sv = &types.DocumentStandardExtraction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "boundingBox": + if err := awsRestjson1_deserializeDocumentDocumentBoundingBox(&sv.BoundingBox, value); err != nil { + return err + } + + case "granularity": + if err := awsRestjson1_deserializeDocumentDocumentExtractionGranularity(&sv.Granularity, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentStandardGenerativeField(v **types.DocumentStandardGenerativeField, 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.DocumentStandardGenerativeField + if *v == nil { + sv = &types.DocumentStandardGenerativeField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDocumentStandardOutputConfiguration(v **types.DocumentStandardOutputConfiguration, 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.DocumentStandardOutputConfiguration + if *v == nil { + sv = &types.DocumentStandardOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "extraction": + if err := awsRestjson1_deserializeDocumentDocumentStandardExtraction(&sv.Extraction, value); err != nil { + return err + } + + case "generativeField": + if err := awsRestjson1_deserializeDocumentDocumentStandardGenerativeField(&sv.GenerativeField, value); err != nil { + return err + } + + case "outputFormat": + if err := awsRestjson1_deserializeDocumentDocumentOutputFormat(&sv.OutputFormat, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageBoundingBox(v **types.ImageBoundingBox, 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.ImageBoundingBox + if *v == nil { + sv = &types.ImageBoundingBox{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageExtractionCategory(v **types.ImageExtractionCategory, 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.ImageExtractionCategory + if *v == nil { + sv = &types.ImageExtractionCategory{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentImageExtractionCategoryTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageExtractionCategoryTypes(v *[]types.ImageExtractionCategoryType, 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.ImageExtractionCategoryType + if *v == nil { + cv = []types.ImageExtractionCategoryType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ImageExtractionCategoryType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImageExtractionCategoryType to be of type string, got %T instead", value) + } + col = types.ImageExtractionCategoryType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentImageStandardExtraction(v **types.ImageStandardExtraction, 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.ImageStandardExtraction + if *v == nil { + sv = &types.ImageStandardExtraction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "boundingBox": + if err := awsRestjson1_deserializeDocumentImageBoundingBox(&sv.BoundingBox, value); err != nil { + return err + } + + case "category": + if err := awsRestjson1_deserializeDocumentImageExtractionCategory(&sv.Category, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageStandardGenerativeField(v **types.ImageStandardGenerativeField, 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.ImageStandardGenerativeField + if *v == nil { + sv = &types.ImageStandardGenerativeField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentImageStandardGenerativeFieldTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageStandardGenerativeFieldTypes(v *[]types.ImageStandardGenerativeFieldType, 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.ImageStandardGenerativeFieldType + if *v == nil { + cv = []types.ImageStandardGenerativeFieldType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ImageStandardGenerativeFieldType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImageStandardGenerativeFieldType to be of type string, got %T instead", value) + } + col = types.ImageStandardGenerativeFieldType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentImageStandardOutputConfiguration(v **types.ImageStandardOutputConfiguration, 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.ImageStandardOutputConfiguration + if *v == nil { + sv = &types.ImageStandardOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "extraction": + if err := awsRestjson1_deserializeDocumentImageStandardExtraction(&sv.Extraction, value); err != nil { + return err + } + + case "generativeField": + if err := awsRestjson1_deserializeDocumentImageStandardGenerativeField(&sv.GenerativeField, 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) + } + 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKmsEncryptionContext(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_deserializeDocumentOverrideConfiguration(v **types.OverrideConfiguration, 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.OverrideConfiguration + if *v == nil { + sv = &types.OverrideConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "document": + if err := awsRestjson1_deserializeDocumentDocumentOverrideConfiguration(&sv.Document, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = 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) + } + 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSplitterConfiguration(v **types.SplitterConfiguration, 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.SplitterConfiguration + if *v == nil { + sv = &types.SplitterConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStandardOutputConfiguration(v **types.StandardOutputConfiguration, 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.StandardOutputConfiguration + if *v == nil { + sv = &types.StandardOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "audio": + if err := awsRestjson1_deserializeDocumentAudioStandardOutputConfiguration(&sv.Audio, value); err != nil { + return err + } + + case "document": + if err := awsRestjson1_deserializeDocumentDocumentStandardOutputConfiguration(&sv.Document, value); err != nil { + return err + } + + case "image": + if err := awsRestjson1_deserializeDocumentImageStandardOutputConfiguration(&sv.Image, value); err != nil { + return err + } + + case "video": + if err := awsRestjson1_deserializeDocumentVideoStandardOutputConfiguration(&sv.Video, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_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 := awsRestjson1_deserializeDocumentValidationExceptionFieldList(&sv.FieldList, value); err != nil { + return err + } + + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_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 NonBlankString 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 NonBlankString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_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 := awsRestjson1_deserializeDocumentValidationExceptionField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentVideoBoundingBox(v **types.VideoBoundingBox, 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.VideoBoundingBox + if *v == nil { + sv = &types.VideoBoundingBox{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVideoExtractionCategory(v **types.VideoExtractionCategory, 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.VideoExtractionCategory + if *v == nil { + sv = &types.VideoExtractionCategory{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentVideoExtractionCategoryTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVideoExtractionCategoryTypes(v *[]types.VideoExtractionCategoryType, 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.VideoExtractionCategoryType + if *v == nil { + cv = []types.VideoExtractionCategoryType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VideoExtractionCategoryType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VideoExtractionCategoryType to be of type string, got %T instead", value) + } + col = types.VideoExtractionCategoryType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentVideoStandardExtraction(v **types.VideoStandardExtraction, 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.VideoStandardExtraction + if *v == nil { + sv = &types.VideoStandardExtraction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "boundingBox": + if err := awsRestjson1_deserializeDocumentVideoBoundingBox(&sv.BoundingBox, value); err != nil { + return err + } + + case "category": + if err := awsRestjson1_deserializeDocumentVideoExtractionCategory(&sv.Category, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVideoStandardGenerativeField(v **types.VideoStandardGenerativeField, 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.VideoStandardGenerativeField + if *v == nil { + sv = &types.VideoStandardGenerativeField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "types": + if err := awsRestjson1_deserializeDocumentVideoStandardGenerativeFieldTypes(&sv.Types, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVideoStandardGenerativeFieldTypes(v *[]types.VideoStandardGenerativeFieldType, 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.VideoStandardGenerativeFieldType + if *v == nil { + cv = []types.VideoStandardGenerativeFieldType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VideoStandardGenerativeFieldType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VideoStandardGenerativeFieldType to be of type string, got %T instead", value) + } + col = types.VideoStandardGenerativeFieldType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentVideoStandardOutputConfiguration(v **types.VideoStandardOutputConfiguration, 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.VideoStandardOutputConfiguration + if *v == nil { + sv = &types.VideoStandardOutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "extraction": + if err := awsRestjson1_deserializeDocumentVideoStandardExtraction(&sv.Extraction, value); err != nil { + return err + } + + case "generativeField": + if err := awsRestjson1_deserializeDocumentVideoStandardGenerativeField(&sv.GenerativeField, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/bedrockdataautomation/doc.go b/service/bedrockdataautomation/doc.go new file mode 100644 index 00000000000..5f2a5439bad --- /dev/null +++ b/service/bedrockdataautomation/doc.go @@ -0,0 +1,7 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package bedrockdataautomation provides the API client, operations, and +// parameter types for Data Automation for Amazon Bedrock. +// +// Amazon Bedrock Keystone Build +package bedrockdataautomation diff --git a/service/bedrockdataautomation/endpoints.go b/service/bedrockdataautomation/endpoints.go new file mode 100644 index 00000000000..3f5715adc4f --- /dev/null +++ b/service/bedrockdataautomation/endpoints.go @@ -0,0 +1,537 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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/bedrockdataautomation/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 = "bedrock" + } + 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_BEDROCK_DATA_AUTOMATION") + + if g && !s { + return + } + + value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "Bedrock Data Automation", 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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.") + 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://bedrock-data-automation.") + 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/bedrockdataautomation/endpoints_config_test.go b/service/bedrockdataautomation/endpoints_config_test.go new file mode 100644 index 00000000000..1d09798cf12 --- /dev/null +++ b/service/bedrockdataautomation/endpoints_config_test.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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-bedrock-data-automation.dev", + envIgnore: true, + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation.dev", + expectURL: nil, + }, + "env global": { + envGlobal: "https://env-global.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation.dev", + expectURL: aws.String("https://env-global.dev"), + }, + "env service": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation.dev", + expectURL: aws.String("https://env-bedrock-data-automation.dev"), + }, + "config ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation.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-bedrock-data-automation.dev", + expectURL: aws.String("http://config-bedrock-data-automation.dev"), + }, + "client": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation.dev", + clientEndpoint: aws.String("https://client-bedrock-data-automation.dev"), + expectURL: aws.String("https://client-bedrock-data-automation.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_BEDROCK_DATA_AUTOMATION", 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/bedrockdataautomation/endpoints_test.go b/service/bedrockdataautomation/endpoints_test.go new file mode 100644 index 00000000000..2f005085f69 --- /dev/null +++ b/service/bedrockdataautomation/endpoints_test.go @@ -0,0 +1,820 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation.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://bedrock-data-automation-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://bedrock-data-automation.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/bedrockdataautomation/generated.json b/service/bedrockdataautomation/generated.json new file mode 100644 index 00000000000..eb94d9aa527 --- /dev/null +++ b/service/bedrockdataautomation/generated.json @@ -0,0 +1,43 @@ +{ + "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_CreateBlueprint.go", + "api_op_CreateBlueprintVersion.go", + "api_op_CreateDataAutomationProject.go", + "api_op_DeleteBlueprint.go", + "api_op_DeleteDataAutomationProject.go", + "api_op_GetBlueprint.go", + "api_op_GetDataAutomationProject.go", + "api_op_ListBlueprints.go", + "api_op_ListDataAutomationProjects.go", + "api_op_UpdateBlueprint.go", + "api_op_UpdateDataAutomationProject.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/bedrockdataautomation", + "unstable": false +} diff --git a/service/bedrockdataautomation/go.mod b/service/bedrockdataautomation/go.mod new file mode 100644 index 00000000000..daeec9556e2 --- /dev/null +++ b/service/bedrockdataautomation/go.mod @@ -0,0 +1,16 @@ +module github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation + +go 1.21 + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.6 + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 + github.com/aws/smithy-go v1.22.1 +) + +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/bedrockdataautomation/go.sum b/service/bedrockdataautomation/go.sum new file mode 100644 index 00000000000..bd2678891af --- /dev/null +++ b/service/bedrockdataautomation/go.sum @@ -0,0 +1,2 @@ +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/bedrockdataautomation/go_module_metadata.go b/service/bedrockdataautomation/go_module_metadata.go new file mode 100644 index 00000000000..d191d958661 --- /dev/null +++ b/service/bedrockdataautomation/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package bedrockdataautomation + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/bedrockdataautomation/internal/endpoints/endpoints.go b/service/bedrockdataautomation/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..858e18d8134 --- /dev/null +++ b/service/bedrockdataautomation/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 Bedrock Data Automation 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: "bedrock-data-automation.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation-fips.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation-fips.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation-fips.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation-fips.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{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: "bedrock-data-automation.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/bedrockdataautomation/internal/endpoints/endpoints_test.go b/service/bedrockdataautomation/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/bedrockdataautomation/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/bedrockdataautomation/options.go b/service/bedrockdataautomation/options.go new file mode 100644 index 00000000000..9ff9ebfe3fa --- /dev/null +++ b/service/bedrockdataautomation/options.go @@ -0,0 +1,236 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +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/bedrockdataautomation/protocol_test.go b/service/bedrockdataautomation/protocol_test.go new file mode 100644 index 00000000000..b48711b3266 --- /dev/null +++ b/service/bedrockdataautomation/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation diff --git a/service/bedrockdataautomation/serializers.go b/service/bedrockdataautomation/serializers.go new file mode 100644 index 00000000000..b550663c637 --- /dev/null +++ b/service/bedrockdataautomation/serializers.go @@ -0,0 +1,1783 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/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" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +type awsRestjson1_serializeOpCreateBlueprint struct { +} + +func (*awsRestjson1_serializeOpCreateBlueprint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateBlueprint) 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.(*CreateBlueprintInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/") + 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} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateBlueprintInput(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_serializeOpHttpBindingsCreateBlueprintInput(v *CreateBlueprintInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateBlueprintInput(v *CreateBlueprintInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintName != nil { + ok := object.Key("blueprintName") + ok.String(*v.BlueprintName) + } + + if len(v.BlueprintStage) > 0 { + ok := object.Key("blueprintStage") + ok.String(string(v.BlueprintStage)) + } + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.EncryptionConfiguration != nil { + ok := object.Key("encryptionConfiguration") + if err := awsRestjson1_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { + return err + } + } + + if v.Schema != nil { + ok := object.Key("schema") + ok.String(*v.Schema) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +type awsRestjson1_serializeOpCreateBlueprintVersion struct { +} + +func (*awsRestjson1_serializeOpCreateBlueprintVersion) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateBlueprintVersion) 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.(*CreateBlueprintVersionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/{blueprintArn}/versions/") + 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_serializeOpHttpBindingsCreateBlueprintVersionInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateBlueprintVersionInput(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_serializeOpHttpBindingsCreateBlueprintVersionInput(v *CreateBlueprintVersionInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BlueprintArn == nil || len(*v.BlueprintArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member blueprintArn must not be empty")} + } + if v.BlueprintArn != nil { + if err := encoder.SetURI("blueprintArn").String(*v.BlueprintArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateBlueprintVersionInput(v *CreateBlueprintVersionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + return nil +} + +type awsRestjson1_serializeOpCreateDataAutomationProject struct { +} + +func (*awsRestjson1_serializeOpCreateDataAutomationProject) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateDataAutomationProject) 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.(*CreateDataAutomationProjectInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/data-automation-projects/") + 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} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateDataAutomationProjectInput(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_serializeOpHttpBindingsCreateDataAutomationProjectInput(v *CreateDataAutomationProjectInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateDataAutomationProjectInput(v *CreateDataAutomationProjectInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.CustomOutputConfiguration != nil { + ok := object.Key("customOutputConfiguration") + if err := awsRestjson1_serializeDocumentCustomOutputConfiguration(v.CustomOutputConfiguration, ok); err != nil { + return err + } + } + + if v.EncryptionConfiguration != nil { + ok := object.Key("encryptionConfiguration") + if err := awsRestjson1_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { + return err + } + } + + if v.OverrideConfiguration != nil { + ok := object.Key("overrideConfiguration") + if err := awsRestjson1_serializeDocumentOverrideConfiguration(v.OverrideConfiguration, ok); err != nil { + return err + } + } + + if v.ProjectDescription != nil { + ok := object.Key("projectDescription") + ok.String(*v.ProjectDescription) + } + + if v.ProjectName != nil { + ok := object.Key("projectName") + ok.String(*v.ProjectName) + } + + if len(v.ProjectStage) > 0 { + ok := object.Key("projectStage") + ok.String(string(v.ProjectStage)) + } + + if v.StandardOutputConfiguration != nil { + ok := object.Key("standardOutputConfiguration") + if err := awsRestjson1_serializeDocumentStandardOutputConfiguration(v.StandardOutputConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDeleteBlueprint struct { +} + +func (*awsRestjson1_serializeOpDeleteBlueprint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteBlueprint) 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.(*DeleteBlueprintInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/{blueprintArn}/") + 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_serializeOpHttpBindingsDeleteBlueprintInput(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_serializeOpHttpBindingsDeleteBlueprintInput(v *DeleteBlueprintInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BlueprintArn == nil || len(*v.BlueprintArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member blueprintArn must not be empty")} + } + if v.BlueprintArn != nil { + if err := encoder.SetURI("blueprintArn").String(*v.BlueprintArn); err != nil { + return err + } + } + + if v.BlueprintVersion != nil { + encoder.SetQuery("blueprintVersion").String(*v.BlueprintVersion) + } + + return nil +} + +type awsRestjson1_serializeOpDeleteDataAutomationProject struct { +} + +func (*awsRestjson1_serializeOpDeleteDataAutomationProject) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteDataAutomationProject) 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.(*DeleteDataAutomationProjectInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/data-automation-projects/{projectArn}/") + 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_serializeOpHttpBindingsDeleteDataAutomationProjectInput(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_serializeOpHttpBindingsDeleteDataAutomationProjectInput(v *DeleteDataAutomationProjectInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ProjectArn == nil || len(*v.ProjectArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member projectArn must not be empty")} + } + if v.ProjectArn != nil { + if err := encoder.SetURI("projectArn").String(*v.ProjectArn); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpGetBlueprint struct { +} + +func (*awsRestjson1_serializeOpGetBlueprint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetBlueprint) 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.(*GetBlueprintInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/{blueprintArn}/") + 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_serializeOpHttpBindingsGetBlueprintInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGetBlueprintInput(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_serializeOpHttpBindingsGetBlueprintInput(v *GetBlueprintInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BlueprintArn == nil || len(*v.BlueprintArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member blueprintArn must not be empty")} + } + if v.BlueprintArn != nil { + if err := encoder.SetURI("blueprintArn").String(*v.BlueprintArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentGetBlueprintInput(v *GetBlueprintInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.BlueprintStage) > 0 { + ok := object.Key("blueprintStage") + ok.String(string(v.BlueprintStage)) + } + + if v.BlueprintVersion != nil { + ok := object.Key("blueprintVersion") + ok.String(*v.BlueprintVersion) + } + + return nil +} + +type awsRestjson1_serializeOpGetDataAutomationProject struct { +} + +func (*awsRestjson1_serializeOpGetDataAutomationProject) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetDataAutomationProject) 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.(*GetDataAutomationProjectInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/data-automation-projects/{projectArn}/") + 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_serializeOpHttpBindingsGetDataAutomationProjectInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGetDataAutomationProjectInput(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_serializeOpHttpBindingsGetDataAutomationProjectInput(v *GetDataAutomationProjectInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ProjectArn == nil || len(*v.ProjectArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member projectArn must not be empty")} + } + if v.ProjectArn != nil { + if err := encoder.SetURI("projectArn").String(*v.ProjectArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentGetDataAutomationProjectInput(v *GetDataAutomationProjectInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ProjectStage) > 0 { + ok := object.Key("projectStage") + ok.String(string(v.ProjectStage)) + } + + return nil +} + +type awsRestjson1_serializeOpListBlueprints struct { +} + +func (*awsRestjson1_serializeOpListBlueprints) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListBlueprints) 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.(*ListBlueprintsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/") + 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_serializeOpDocumentListBlueprintsInput(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_serializeOpHttpBindingsListBlueprintsInput(v *ListBlueprintsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentListBlueprintsInput(v *ListBlueprintsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintArn != nil { + ok := object.Key("blueprintArn") + ok.String(*v.BlueprintArn) + } + + if len(v.BlueprintStageFilter) > 0 { + ok := object.Key("blueprintStageFilter") + ok.String(string(v.BlueprintStageFilter)) + } + + 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.ProjectFilter != nil { + ok := object.Key("projectFilter") + if err := awsRestjson1_serializeDocumentDataAutomationProjectFilter(v.ProjectFilter, ok); err != nil { + return err + } + } + + if len(v.ResourceOwner) > 0 { + ok := object.Key("resourceOwner") + ok.String(string(v.ResourceOwner)) + } + + return nil +} + +type awsRestjson1_serializeOpListDataAutomationProjects struct { +} + +func (*awsRestjson1_serializeOpListDataAutomationProjects) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListDataAutomationProjects) 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.(*ListDataAutomationProjectsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/data-automation-projects/") + 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_serializeOpDocumentListDataAutomationProjectsInput(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_serializeOpHttpBindingsListDataAutomationProjectsInput(v *ListDataAutomationProjectsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentListDataAutomationProjectsInput(v *ListDataAutomationProjectsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintFilter != nil { + ok := object.Key("blueprintFilter") + if err := awsRestjson1_serializeDocumentBlueprintFilter(v.BlueprintFilter, 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 len(v.ProjectStageFilter) > 0 { + ok := object.Key("projectStageFilter") + ok.String(string(v.ProjectStageFilter)) + } + + if len(v.ResourceOwner) > 0 { + ok := object.Key("resourceOwner") + ok.String(string(v.ResourceOwner)) + } + + return nil +} + +type awsRestjson1_serializeOpUpdateBlueprint struct { +} + +func (*awsRestjson1_serializeOpUpdateBlueprint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateBlueprint) 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.(*UpdateBlueprintInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/blueprints/{blueprintArn}/") + 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_serializeOpHttpBindingsUpdateBlueprintInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateBlueprintInput(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_serializeOpHttpBindingsUpdateBlueprintInput(v *UpdateBlueprintInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BlueprintArn == nil || len(*v.BlueprintArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member blueprintArn must not be empty")} + } + if v.BlueprintArn != nil { + if err := encoder.SetURI("blueprintArn").String(*v.BlueprintArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateBlueprintInput(v *UpdateBlueprintInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.BlueprintStage) > 0 { + ok := object.Key("blueprintStage") + ok.String(string(v.BlueprintStage)) + } + + if v.Schema != nil { + ok := object.Key("schema") + ok.String(*v.Schema) + } + + return nil +} + +type awsRestjson1_serializeOpUpdateDataAutomationProject struct { +} + +func (*awsRestjson1_serializeOpUpdateDataAutomationProject) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateDataAutomationProject) 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.(*UpdateDataAutomationProjectInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/data-automation-projects/{projectArn}/") + 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_serializeOpHttpBindingsUpdateDataAutomationProjectInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateDataAutomationProjectInput(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_serializeOpHttpBindingsUpdateDataAutomationProjectInput(v *UpdateDataAutomationProjectInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ProjectArn == nil || len(*v.ProjectArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member projectArn must not be empty")} + } + if v.ProjectArn != nil { + if err := encoder.SetURI("projectArn").String(*v.ProjectArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateDataAutomationProjectInput(v *UpdateDataAutomationProjectInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CustomOutputConfiguration != nil { + ok := object.Key("customOutputConfiguration") + if err := awsRestjson1_serializeDocumentCustomOutputConfiguration(v.CustomOutputConfiguration, ok); err != nil { + return err + } + } + + if v.OverrideConfiguration != nil { + ok := object.Key("overrideConfiguration") + if err := awsRestjson1_serializeDocumentOverrideConfiguration(v.OverrideConfiguration, ok); err != nil { + return err + } + } + + if v.ProjectDescription != nil { + ok := object.Key("projectDescription") + ok.String(*v.ProjectDescription) + } + + if len(v.ProjectStage) > 0 { + ok := object.Key("projectStage") + ok.String(string(v.ProjectStage)) + } + + if v.StandardOutputConfiguration != nil { + ok := object.Key("standardOutputConfiguration") + if err := awsRestjson1_serializeDocumentStandardOutputConfiguration(v.StandardOutputConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAudioExtractionCategory(v *types.AudioExtractionCategory, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentAudioExtractionCategoryTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAudioExtractionCategoryTypes(v []types.AudioExtractionCategoryType, 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_serializeDocumentAudioStandardExtraction(v *types.AudioStandardExtraction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Category != nil { + ok := object.Key("category") + if err := awsRestjson1_serializeDocumentAudioExtractionCategory(v.Category, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAudioStandardGenerativeField(v *types.AudioStandardGenerativeField, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentAudioStandardGenerativeFieldTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAudioStandardGenerativeFieldTypes(v []types.AudioStandardGenerativeFieldType, 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_serializeDocumentAudioStandardOutputConfiguration(v *types.AudioStandardOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Extraction != nil { + ok := object.Key("extraction") + if err := awsRestjson1_serializeDocumentAudioStandardExtraction(v.Extraction, ok); err != nil { + return err + } + } + + if v.GenerativeField != nil { + ok := object.Key("generativeField") + if err := awsRestjson1_serializeDocumentAudioStandardGenerativeField(v.GenerativeField, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentBlueprintFilter(v *types.BlueprintFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintArn != nil { + ok := object.Key("blueprintArn") + ok.String(*v.BlueprintArn) + } + + if len(v.BlueprintStage) > 0 { + ok := object.Key("blueprintStage") + ok.String(string(v.BlueprintStage)) + } + + if v.BlueprintVersion != nil { + ok := object.Key("blueprintVersion") + ok.String(*v.BlueprintVersion) + } + + return nil +} + +func awsRestjson1_serializeDocumentBlueprintItem(v *types.BlueprintItem, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintArn != nil { + ok := object.Key("blueprintArn") + ok.String(*v.BlueprintArn) + } + + if len(v.BlueprintStage) > 0 { + ok := object.Key("blueprintStage") + ok.String(string(v.BlueprintStage)) + } + + if v.BlueprintVersion != nil { + ok := object.Key("blueprintVersion") + ok.String(*v.BlueprintVersion) + } + + return nil +} + +func awsRestjson1_serializeDocumentBlueprintItems(v []types.BlueprintItem, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentBlueprintItem(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentCustomOutputConfiguration(v *types.CustomOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Blueprints != nil { + ok := object.Key("blueprints") + if err := awsRestjson1_serializeDocumentBlueprintItems(v.Blueprints, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDataAutomationProjectFilter(v *types.DataAutomationProjectFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ProjectArn != nil { + ok := object.Key("projectArn") + ok.String(*v.ProjectArn) + } + + if len(v.ProjectStage) > 0 { + ok := object.Key("projectStage") + ok.String(string(v.ProjectStage)) + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentBoundingBox(v *types.DocumentBoundingBox, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentExtractionGranularity(v *types.DocumentExtractionGranularity, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentDocumentExtractionGranularityTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentExtractionGranularityTypes(v []types.DocumentExtractionGranularityType, 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_serializeDocumentDocumentOutputAdditionalFileFormat(v *types.DocumentOutputAdditionalFileFormat, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentOutputFormat(v *types.DocumentOutputFormat, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalFileFormat != nil { + ok := object.Key("additionalFileFormat") + if err := awsRestjson1_serializeDocumentDocumentOutputAdditionalFileFormat(v.AdditionalFileFormat, ok); err != nil { + return err + } + } + + if v.TextFormat != nil { + ok := object.Key("textFormat") + if err := awsRestjson1_serializeDocumentDocumentOutputTextFormat(v.TextFormat, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentOutputTextFormat(v *types.DocumentOutputTextFormat, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentDocumentOutputTextFormatTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentOutputTextFormatTypes(v []types.DocumentOutputTextFormatType, 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_serializeDocumentDocumentOverrideConfiguration(v *types.DocumentOverrideConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Splitter != nil { + ok := object.Key("splitter") + if err := awsRestjson1_serializeDocumentSplitterConfiguration(v.Splitter, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentStandardExtraction(v *types.DocumentStandardExtraction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BoundingBox != nil { + ok := object.Key("boundingBox") + if err := awsRestjson1_serializeDocumentDocumentBoundingBox(v.BoundingBox, ok); err != nil { + return err + } + } + + if v.Granularity != nil { + ok := object.Key("granularity") + if err := awsRestjson1_serializeDocumentDocumentExtractionGranularity(v.Granularity, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentStandardGenerativeField(v *types.DocumentStandardGenerativeField, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentDocumentStandardOutputConfiguration(v *types.DocumentStandardOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Extraction != nil { + ok := object.Key("extraction") + if err := awsRestjson1_serializeDocumentDocumentStandardExtraction(v.Extraction, ok); err != nil { + return err + } + } + + if v.GenerativeField != nil { + ok := object.Key("generativeField") + if err := awsRestjson1_serializeDocumentDocumentStandardGenerativeField(v.GenerativeField, ok); err != nil { + return err + } + } + + if v.OutputFormat != nil { + ok := object.Key("outputFormat") + if err := awsRestjson1_serializeDocumentDocumentOutputFormat(v.OutputFormat, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentEncryptionConfiguration(v *types.EncryptionConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KmsEncryptionContext != nil { + ok := object.Key("kmsEncryptionContext") + if err := awsRestjson1_serializeDocumentKmsEncryptionContext(v.KmsEncryptionContext, ok); err != nil { + return err + } + } + + if v.KmsKeyId != nil { + ok := object.Key("kmsKeyId") + ok.String(*v.KmsKeyId) + } + + return nil +} + +func awsRestjson1_serializeDocumentImageBoundingBox(v *types.ImageBoundingBox, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentImageExtractionCategory(v *types.ImageExtractionCategory, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentImageExtractionCategoryTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentImageExtractionCategoryTypes(v []types.ImageExtractionCategoryType, 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_serializeDocumentImageStandardExtraction(v *types.ImageStandardExtraction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BoundingBox != nil { + ok := object.Key("boundingBox") + if err := awsRestjson1_serializeDocumentImageBoundingBox(v.BoundingBox, ok); err != nil { + return err + } + } + + if v.Category != nil { + ok := object.Key("category") + if err := awsRestjson1_serializeDocumentImageExtractionCategory(v.Category, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentImageStandardGenerativeField(v *types.ImageStandardGenerativeField, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentImageStandardGenerativeFieldTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentImageStandardGenerativeFieldTypes(v []types.ImageStandardGenerativeFieldType, 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_serializeDocumentImageStandardOutputConfiguration(v *types.ImageStandardOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Extraction != nil { + ok := object.Key("extraction") + if err := awsRestjson1_serializeDocumentImageStandardExtraction(v.Extraction, ok); err != nil { + return err + } + } + + if v.GenerativeField != nil { + ok := object.Key("generativeField") + if err := awsRestjson1_serializeDocumentImageStandardGenerativeField(v.GenerativeField, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentKmsEncryptionContext(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_serializeDocumentOverrideConfiguration(v *types.OverrideConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Document != nil { + ok := object.Key("document") + if err := awsRestjson1_serializeDocumentDocumentOverrideConfiguration(v.Document, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSplitterConfiguration(v *types.SplitterConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentStandardOutputConfiguration(v *types.StandardOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Audio != nil { + ok := object.Key("audio") + if err := awsRestjson1_serializeDocumentAudioStandardOutputConfiguration(v.Audio, ok); err != nil { + return err + } + } + + if v.Document != nil { + ok := object.Key("document") + if err := awsRestjson1_serializeDocumentDocumentStandardOutputConfiguration(v.Document, ok); err != nil { + return err + } + } + + if v.Image != nil { + ok := object.Key("image") + if err := awsRestjson1_serializeDocumentImageStandardOutputConfiguration(v.Image, ok); err != nil { + return err + } + } + + if v.Video != nil { + ok := object.Key("video") + if err := awsRestjson1_serializeDocumentVideoStandardOutputConfiguration(v.Video, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentVideoBoundingBox(v *types.VideoBoundingBox, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + return nil +} + +func awsRestjson1_serializeDocumentVideoExtractionCategory(v *types.VideoExtractionCategory, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentVideoExtractionCategoryTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentVideoExtractionCategoryTypes(v []types.VideoExtractionCategoryType, 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_serializeDocumentVideoStandardExtraction(v *types.VideoStandardExtraction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BoundingBox != nil { + ok := object.Key("boundingBox") + if err := awsRestjson1_serializeDocumentVideoBoundingBox(v.BoundingBox, ok); err != nil { + return err + } + } + + if v.Category != nil { + ok := object.Key("category") + if err := awsRestjson1_serializeDocumentVideoExtractionCategory(v.Category, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentVideoStandardGenerativeField(v *types.VideoStandardGenerativeField, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.Types != nil { + ok := object.Key("types") + if err := awsRestjson1_serializeDocumentVideoStandardGenerativeFieldTypes(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentVideoStandardGenerativeFieldTypes(v []types.VideoStandardGenerativeFieldType, 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_serializeDocumentVideoStandardOutputConfiguration(v *types.VideoStandardOutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Extraction != nil { + ok := object.Key("extraction") + if err := awsRestjson1_serializeDocumentVideoStandardExtraction(v.Extraction, ok); err != nil { + return err + } + } + + if v.GenerativeField != nil { + ok := object.Key("generativeField") + if err := awsRestjson1_serializeDocumentVideoStandardGenerativeField(v.GenerativeField, ok); err != nil { + return err + } + } + + return nil +} diff --git a/service/bedrockdataautomation/snapshot/api_op_CreateBlueprint.go.snap b/service/bedrockdataautomation/snapshot/api_op_CreateBlueprint.go.snap new file mode 100644 index 00000000000..d7c883b7dbb --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_CreateBlueprint.go.snap @@ -0,0 +1,42 @@ +CreateBlueprint + 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/bedrockdataautomation/snapshot/api_op_CreateBlueprintVersion.go.snap b/service/bedrockdataautomation/snapshot/api_op_CreateBlueprintVersion.go.snap new file mode 100644 index 00000000000..fe9ebf96aaf --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_CreateBlueprintVersion.go.snap @@ -0,0 +1,42 @@ +CreateBlueprintVersion + 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/bedrockdataautomation/snapshot/api_op_CreateDataAutomationProject.go.snap b/service/bedrockdataautomation/snapshot/api_op_CreateDataAutomationProject.go.snap new file mode 100644 index 00000000000..1a59533098e --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_CreateDataAutomationProject.go.snap @@ -0,0 +1,42 @@ +CreateDataAutomationProject + 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/bedrockdataautomation/snapshot/api_op_DeleteBlueprint.go.snap b/service/bedrockdataautomation/snapshot/api_op_DeleteBlueprint.go.snap new file mode 100644 index 00000000000..20ca15553d4 --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_DeleteBlueprint.go.snap @@ -0,0 +1,41 @@ +DeleteBlueprint + 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/bedrockdataautomation/snapshot/api_op_DeleteDataAutomationProject.go.snap b/service/bedrockdataautomation/snapshot/api_op_DeleteDataAutomationProject.go.snap new file mode 100644 index 00000000000..2c0f6dc3fc0 --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_DeleteDataAutomationProject.go.snap @@ -0,0 +1,41 @@ +DeleteDataAutomationProject + 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/bedrockdataautomation/snapshot/api_op_GetBlueprint.go.snap b/service/bedrockdataautomation/snapshot/api_op_GetBlueprint.go.snap new file mode 100644 index 00000000000..805208872af --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_GetBlueprint.go.snap @@ -0,0 +1,41 @@ +GetBlueprint + 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/bedrockdataautomation/snapshot/api_op_GetDataAutomationProject.go.snap b/service/bedrockdataautomation/snapshot/api_op_GetDataAutomationProject.go.snap new file mode 100644 index 00000000000..e25b847e46f --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_GetDataAutomationProject.go.snap @@ -0,0 +1,41 @@ +GetDataAutomationProject + 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/bedrockdataautomation/snapshot/api_op_ListBlueprints.go.snap b/service/bedrockdataautomation/snapshot/api_op_ListBlueprints.go.snap new file mode 100644 index 00000000000..ec315a069cd --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_ListBlueprints.go.snap @@ -0,0 +1,41 @@ +ListBlueprints + 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/bedrockdataautomation/snapshot/api_op_ListDataAutomationProjects.go.snap b/service/bedrockdataautomation/snapshot/api_op_ListDataAutomationProjects.go.snap new file mode 100644 index 00000000000..ab934a9ca48 --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_ListDataAutomationProjects.go.snap @@ -0,0 +1,41 @@ +ListDataAutomationProjects + 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/bedrockdataautomation/snapshot/api_op_UpdateBlueprint.go.snap b/service/bedrockdataautomation/snapshot/api_op_UpdateBlueprint.go.snap new file mode 100644 index 00000000000..be6f1847a9d --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_UpdateBlueprint.go.snap @@ -0,0 +1,41 @@ +UpdateBlueprint + 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/bedrockdataautomation/snapshot/api_op_UpdateDataAutomationProject.go.snap b/service/bedrockdataautomation/snapshot/api_op_UpdateDataAutomationProject.go.snap new file mode 100644 index 00000000000..3dd38d7f5c0 --- /dev/null +++ b/service/bedrockdataautomation/snapshot/api_op_UpdateDataAutomationProject.go.snap @@ -0,0 +1,41 @@ +UpdateDataAutomationProject + 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/bedrockdataautomation/snapshot_test.go b/service/bedrockdataautomation/snapshot_test.go new file mode 100644 index 00000000000..09cf8703837 --- /dev/null +++ b/service/bedrockdataautomation/snapshot_test.go @@ -0,0 +1,326 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +//go:build snapshot + +package bedrockdataautomation + +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_CreateBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateBlueprintVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBlueprintVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateBlueprintVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListBlueprints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBlueprints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListBlueprints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListDataAutomationProjects(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListDataAutomationProjects(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListDataAutomationProjects") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} +func TestUpdateSnapshot_CreateBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateBlueprintVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBlueprintVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateBlueprintVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListBlueprints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBlueprints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListBlueprints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListDataAutomationProjects(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListDataAutomationProjects(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListDataAutomationProjects") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateBlueprint(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBlueprint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateBlueprint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateDataAutomationProject(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateDataAutomationProject(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateDataAutomationProject") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} diff --git a/service/bedrockdataautomation/types/enums.go b/service/bedrockdataautomation/types/enums.go new file mode 100644 index 00000000000..a42668ba31e --- /dev/null +++ b/service/bedrockdataautomation/types/enums.go @@ -0,0 +1,337 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type AudioExtractionCategoryType string + +// Enum values for AudioExtractionCategoryType +const ( + AudioExtractionCategoryTypeAudioContentModeration AudioExtractionCategoryType = "AUDIO_CONTENT_MODERATION" + AudioExtractionCategoryTypeChapterContentModeration AudioExtractionCategoryType = "CHAPTER_CONTENT_MODERATION" + AudioExtractionCategoryTypeTranscript AudioExtractionCategoryType = "TRANSCRIPT" +) + +// Values returns all known values for AudioExtractionCategoryType. 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 (AudioExtractionCategoryType) Values() []AudioExtractionCategoryType { + return []AudioExtractionCategoryType{ + "AUDIO_CONTENT_MODERATION", + "CHAPTER_CONTENT_MODERATION", + "TRANSCRIPT", + } +} + +type AudioStandardGenerativeFieldType string + +// Enum values for AudioStandardGenerativeFieldType +const ( + AudioStandardGenerativeFieldTypeAudioSummary AudioStandardGenerativeFieldType = "AUDIO_SUMMARY" + AudioStandardGenerativeFieldTypeChapterSummary AudioStandardGenerativeFieldType = "CHAPTER_SUMMARY" + AudioStandardGenerativeFieldTypeIab AudioStandardGenerativeFieldType = "IAB" +) + +// Values returns all known values for AudioStandardGenerativeFieldType. 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 (AudioStandardGenerativeFieldType) Values() []AudioStandardGenerativeFieldType { + return []AudioStandardGenerativeFieldType{ + "AUDIO_SUMMARY", + "CHAPTER_SUMMARY", + "IAB", + } +} + +type BlueprintStage string + +// Enum values for BlueprintStage +const ( + BlueprintStageDevelopment BlueprintStage = "DEVELOPMENT" + BlueprintStageLive BlueprintStage = "LIVE" +) + +// Values returns all known values for BlueprintStage. 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 (BlueprintStage) Values() []BlueprintStage { + return []BlueprintStage{ + "DEVELOPMENT", + "LIVE", + } +} + +type BlueprintStageFilter string + +// Enum values for BlueprintStageFilter +const ( + BlueprintStageFilterDevelopment BlueprintStageFilter = "DEVELOPMENT" + BlueprintStageFilterLive BlueprintStageFilter = "LIVE" + BlueprintStageFilterAll BlueprintStageFilter = "ALL" +) + +// Values returns all known values for BlueprintStageFilter. 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 (BlueprintStageFilter) Values() []BlueprintStageFilter { + return []BlueprintStageFilter{ + "DEVELOPMENT", + "LIVE", + "ALL", + } +} + +type DataAutomationProjectStage string + +// Enum values for DataAutomationProjectStage +const ( + DataAutomationProjectStageDevelopment DataAutomationProjectStage = "DEVELOPMENT" + DataAutomationProjectStageLive DataAutomationProjectStage = "LIVE" +) + +// Values returns all known values for DataAutomationProjectStage. 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 (DataAutomationProjectStage) Values() []DataAutomationProjectStage { + return []DataAutomationProjectStage{ + "DEVELOPMENT", + "LIVE", + } +} + +type DataAutomationProjectStageFilter string + +// Enum values for DataAutomationProjectStageFilter +const ( + DataAutomationProjectStageFilterDevelopment DataAutomationProjectStageFilter = "DEVELOPMENT" + DataAutomationProjectStageFilterLive DataAutomationProjectStageFilter = "LIVE" + DataAutomationProjectStageFilterAll DataAutomationProjectStageFilter = "ALL" +) + +// Values returns all known values for DataAutomationProjectStageFilter. 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 (DataAutomationProjectStageFilter) Values() []DataAutomationProjectStageFilter { + return []DataAutomationProjectStageFilter{ + "DEVELOPMENT", + "LIVE", + "ALL", + } +} + +type DataAutomationProjectStatus string + +// Enum values for DataAutomationProjectStatus +const ( + DataAutomationProjectStatusCompleted DataAutomationProjectStatus = "COMPLETED" + DataAutomationProjectStatusInProgress DataAutomationProjectStatus = "IN_PROGRESS" + DataAutomationProjectStatusFailed DataAutomationProjectStatus = "FAILED" +) + +// Values returns all known values for DataAutomationProjectStatus. 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 (DataAutomationProjectStatus) Values() []DataAutomationProjectStatus { + return []DataAutomationProjectStatus{ + "COMPLETED", + "IN_PROGRESS", + "FAILED", + } +} + +type DocumentExtractionGranularityType string + +// Enum values for DocumentExtractionGranularityType +const ( + DocumentExtractionGranularityTypeDocument DocumentExtractionGranularityType = "DOCUMENT" + DocumentExtractionGranularityTypePage DocumentExtractionGranularityType = "PAGE" + DocumentExtractionGranularityTypeElement DocumentExtractionGranularityType = "ELEMENT" + DocumentExtractionGranularityTypeWord DocumentExtractionGranularityType = "WORD" + DocumentExtractionGranularityTypeLine DocumentExtractionGranularityType = "LINE" +) + +// Values returns all known values for DocumentExtractionGranularityType. 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 (DocumentExtractionGranularityType) Values() []DocumentExtractionGranularityType { + return []DocumentExtractionGranularityType{ + "DOCUMENT", + "PAGE", + "ELEMENT", + "WORD", + "LINE", + } +} + +type DocumentOutputTextFormatType string + +// Enum values for DocumentOutputTextFormatType +const ( + DocumentOutputTextFormatTypePlainText DocumentOutputTextFormatType = "PLAIN_TEXT" + DocumentOutputTextFormatTypeMarkdown DocumentOutputTextFormatType = "MARKDOWN" + DocumentOutputTextFormatTypeHtml DocumentOutputTextFormatType = "HTML" + DocumentOutputTextFormatTypeCsv DocumentOutputTextFormatType = "CSV" +) + +// Values returns all known values for DocumentOutputTextFormatType. 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 (DocumentOutputTextFormatType) Values() []DocumentOutputTextFormatType { + return []DocumentOutputTextFormatType{ + "PLAIN_TEXT", + "MARKDOWN", + "HTML", + "CSV", + } +} + +type ImageExtractionCategoryType string + +// Enum values for ImageExtractionCategoryType +const ( + ImageExtractionCategoryTypeContentModeration ImageExtractionCategoryType = "CONTENT_MODERATION" + ImageExtractionCategoryTypeTextDetection ImageExtractionCategoryType = "TEXT_DETECTION" +) + +// Values returns all known values for ImageExtractionCategoryType. 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 (ImageExtractionCategoryType) Values() []ImageExtractionCategoryType { + return []ImageExtractionCategoryType{ + "CONTENT_MODERATION", + "TEXT_DETECTION", + } +} + +type ImageStandardGenerativeFieldType string + +// Enum values for ImageStandardGenerativeFieldType +const ( + ImageStandardGenerativeFieldTypeImageSummary ImageStandardGenerativeFieldType = "IMAGE_SUMMARY" + ImageStandardGenerativeFieldTypeIab ImageStandardGenerativeFieldType = "IAB" +) + +// Values returns all known values for ImageStandardGenerativeFieldType. 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 (ImageStandardGenerativeFieldType) Values() []ImageStandardGenerativeFieldType { + return []ImageStandardGenerativeFieldType{ + "IMAGE_SUMMARY", + "IAB", + } +} + +type ResourceOwner string + +// Enum values for ResourceOwner +const ( + ResourceOwnerService ResourceOwner = "SERVICE" + ResourceOwnerAccount ResourceOwner = "ACCOUNT" +) + +// Values returns all known values for ResourceOwner. 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 (ResourceOwner) Values() []ResourceOwner { + return []ResourceOwner{ + "SERVICE", + "ACCOUNT", + } +} + +type State string + +// Enum values for State +const ( + StateEnabled State = "ENABLED" + StateDisabled State = "DISABLED" +) + +// Values returns all known values for State. 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 (State) Values() []State { + return []State{ + "ENABLED", + "DISABLED", + } +} + +type Type string + +// Enum values for Type +const ( + TypeDocument Type = "DOCUMENT" + TypeImage Type = "IMAGE" +) + +// Values returns all known values for Type. 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 (Type) Values() []Type { + return []Type{ + "DOCUMENT", + "IMAGE", + } +} + +type VideoExtractionCategoryType string + +// Enum values for VideoExtractionCategoryType +const ( + VideoExtractionCategoryTypeContentModeration VideoExtractionCategoryType = "CONTENT_MODERATION" + VideoExtractionCategoryTypeTextDetection VideoExtractionCategoryType = "TEXT_DETECTION" + VideoExtractionCategoryTypeTranscript VideoExtractionCategoryType = "TRANSCRIPT" +) + +// Values returns all known values for VideoExtractionCategoryType. 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 (VideoExtractionCategoryType) Values() []VideoExtractionCategoryType { + return []VideoExtractionCategoryType{ + "CONTENT_MODERATION", + "TEXT_DETECTION", + "TRANSCRIPT", + } +} + +type VideoStandardGenerativeFieldType string + +// Enum values for VideoStandardGenerativeFieldType +const ( + VideoStandardGenerativeFieldTypeVideoSummary VideoStandardGenerativeFieldType = "VIDEO_SUMMARY" + VideoStandardGenerativeFieldTypeSceneSummary VideoStandardGenerativeFieldType = "SCENE_SUMMARY" + VideoStandardGenerativeFieldTypeIab VideoStandardGenerativeFieldType = "IAB" +) + +// Values returns all known values for VideoStandardGenerativeFieldType. 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 (VideoStandardGenerativeFieldType) Values() []VideoStandardGenerativeFieldType { + return []VideoStandardGenerativeFieldType{ + "VIDEO_SUMMARY", + "SCENE_SUMMARY", + "IAB", + } +} diff --git a/service/bedrockdataautomation/types/errors.go b/service/bedrockdataautomation/types/errors.go new file mode 100644 index 00000000000..e50be30bd16 --- /dev/null +++ b/service/bedrockdataautomation/types/errors.go @@ -0,0 +1,194 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// This exception is thrown when a request is denied per access permissions +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 exception is thrown when there is a conflict performing an operation +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 exception is thrown if there was an unexpected error during processing of +// request +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 exception is thrown when a resource referenced by the operation does not +// exist +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 exception is thrown when a request is made beyond the service quota +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 exception is thrown when the number of requests exceeds the limit +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 } + +// This exception is thrown when the request's input validation fails +type ValidationException struct { + Message *string + + ErrorCodeOverride *string + + 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/bedrockdataautomation/types/types.go b/service/bedrockdataautomation/types/types.go new file mode 100644 index 00000000000..1a462617f28 --- /dev/null +++ b/service/bedrockdataautomation/types/types.go @@ -0,0 +1,576 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" + "time" +) + +// Category of Audio Extraction +type AudioExtractionCategory struct { + + // State + // + // This member is required. + State State + + // List of Audio Extraction Category Type + Types []AudioExtractionCategoryType + + noSmithyDocumentSerde +} + +// Standard Extraction Configuration of Audio +type AudioStandardExtraction struct { + + // Category of Audio Extraction + // + // This member is required. + Category *AudioExtractionCategory + + noSmithyDocumentSerde +} + +// Standard Generative Field Configuration of Audio +type AudioStandardGenerativeField struct { + + // State + // + // This member is required. + State State + + // List of Audio Standard Generative Field Type + Types []AudioStandardGenerativeFieldType + + noSmithyDocumentSerde +} + +// Standard Output Configuration of Audio +type AudioStandardOutputConfiguration struct { + + // Standard Extraction Configuration of Audio + Extraction *AudioStandardExtraction + + // Standard Generative Field Configuration of Audio + GenerativeField *AudioStandardGenerativeField + + noSmithyDocumentSerde +} + +// Contains the information of a Blueprint. +type Blueprint struct { + + // ARN of a Blueprint + // + // This member is required. + BlueprintArn *string + + // Name of the Blueprint + // + // This member is required. + BlueprintName *string + + // Time Stamp + // + // This member is required. + CreationTime *time.Time + + // Time Stamp + // + // This member is required. + LastModifiedTime *time.Time + + // Schema of the blueprint + // + // This member is required. + Schema *string + + // Type + // + // This member is required. + Type Type + + // Stage of the Blueprint + BlueprintStage BlueprintStage + + // Blueprint Version + BlueprintVersion *string + + // KMS Encryption Context + KmsEncryptionContext map[string]string + + // KMS Key Identifier + KmsKeyId *string + + noSmithyDocumentSerde +} + +// Blueprint Filter +type BlueprintFilter struct { + + // ARN of a Blueprint + // + // This member is required. + BlueprintArn *string + + // Stage of the Blueprint + BlueprintStage BlueprintStage + + // Blueprint Version + BlueprintVersion *string + + noSmithyDocumentSerde +} + +// Blueprint Item +type BlueprintItem struct { + + // ARN of a Blueprint + // + // This member is required. + BlueprintArn *string + + // Stage of the Blueprint + BlueprintStage BlueprintStage + + // Blueprint Version + BlueprintVersion *string + + noSmithyDocumentSerde +} + +// Summary of a Blueprint +type BlueprintSummary struct { + + // ARN of a Blueprint + // + // This member is required. + BlueprintArn *string + + // Time Stamp + // + // This member is required. + CreationTime *time.Time + + // Name of the Blueprint + BlueprintName *string + + // Stage of the Blueprint + BlueprintStage BlueprintStage + + // Blueprint Version + BlueprintVersion *string + + // Time Stamp + LastModifiedTime *time.Time + + noSmithyDocumentSerde +} + +// Custom output configuration +type CustomOutputConfiguration struct { + + // List of Blueprint Item + Blueprints []BlueprintItem + + noSmithyDocumentSerde +} + +// Contains the information of a DataAutomationProject. +type DataAutomationProject struct { + + // Time Stamp + // + // This member is required. + CreationTime *time.Time + + // Time Stamp + // + // This member is required. + LastModifiedTime *time.Time + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Name of the DataAutomationProject + // + // This member is required. + ProjectName *string + + // Status of Data Automation Project + // + // This member is required. + Status DataAutomationProjectStatus + + // Custom output configuration + CustomOutputConfiguration *CustomOutputConfiguration + + // KMS Encryption Context + KmsEncryptionContext map[string]string + + // KMS Key Identifier + KmsKeyId *string + + // Override configuration + OverrideConfiguration *OverrideConfiguration + + // Description of the DataAutomationProject + ProjectDescription *string + + // Stage of the Project + ProjectStage DataAutomationProjectStage + + // Standard output configuration + StandardOutputConfiguration *StandardOutputConfiguration + + noSmithyDocumentSerde +} + +// Data Automation Project Filter +type DataAutomationProjectFilter struct { + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Stage of the Project + ProjectStage DataAutomationProjectStage + + noSmithyDocumentSerde +} + +// Summary of a DataAutomationProject +type DataAutomationProjectSummary struct { + + // Time Stamp + // + // This member is required. + CreationTime *time.Time + + // ARN of a DataAutomationProject + // + // This member is required. + ProjectArn *string + + // Name of the DataAutomationProject + ProjectName *string + + // Stage of the Project + ProjectStage DataAutomationProjectStage + + noSmithyDocumentSerde +} + +// Bounding Box Configuration of Document Extraction +type DocumentBoundingBox struct { + + // State + // + // This member is required. + State State + + noSmithyDocumentSerde +} + +// Granularity of Document Extraction +type DocumentExtractionGranularity struct { + + // List of Document Extraction Granularity Type + Types []DocumentExtractionGranularityType + + noSmithyDocumentSerde +} + +// Additional File Format of Document Output +type DocumentOutputAdditionalFileFormat struct { + + // State + // + // This member is required. + State State + + noSmithyDocumentSerde +} + +// Output Format of Document +type DocumentOutputFormat struct { + + // Additional File Format of Document Output + // + // This member is required. + AdditionalFileFormat *DocumentOutputAdditionalFileFormat + + // Text Format of Document Output + // + // This member is required. + TextFormat *DocumentOutputTextFormat + + noSmithyDocumentSerde +} + +// Text Format of Document Output +type DocumentOutputTextFormat struct { + + // List of Document Output Text Format Type + Types []DocumentOutputTextFormatType + + noSmithyDocumentSerde +} + +// Override Configuration of Document +type DocumentOverrideConfiguration struct { + + // Configuration of Splitter + Splitter *SplitterConfiguration + + noSmithyDocumentSerde +} + +// Standard Extraction Configuration of Document +type DocumentStandardExtraction struct { + + // Bounding Box Configuration of Document Extraction + // + // This member is required. + BoundingBox *DocumentBoundingBox + + // Granularity of Document Extraction + // + // This member is required. + Granularity *DocumentExtractionGranularity + + noSmithyDocumentSerde +} + +// Standard Generative Field Configuration of Document +type DocumentStandardGenerativeField struct { + + // State + // + // This member is required. + State State + + noSmithyDocumentSerde +} + +// Standard Output Configuration of Document +type DocumentStandardOutputConfiguration struct { + + // Standard Extraction Configuration of Document + Extraction *DocumentStandardExtraction + + // Standard Generative Field Configuration of Document + GenerativeField *DocumentStandardGenerativeField + + // Output Format of Document + OutputFormat *DocumentOutputFormat + + noSmithyDocumentSerde +} + +// KMS Encryption Configuration +type EncryptionConfiguration struct { + + // KMS Key Identifier + // + // This member is required. + KmsKeyId *string + + // KMS Encryption Context + KmsEncryptionContext map[string]string + + noSmithyDocumentSerde +} + +// Bounding Box Configuration of Image Extraction +type ImageBoundingBox struct { + + // State + // + // This member is required. + State State + + noSmithyDocumentSerde +} + +// Category of Image Extraction +type ImageExtractionCategory struct { + + // State + // + // This member is required. + State State + + // List of Image Extraction Category + Types []ImageExtractionCategoryType + + noSmithyDocumentSerde +} + +// Standard Extraction Configuration of Image +type ImageStandardExtraction struct { + + // Bounding Box Configuration of Image Extraction + // + // This member is required. + BoundingBox *ImageBoundingBox + + // Category of Image Extraction + // + // This member is required. + Category *ImageExtractionCategory + + noSmithyDocumentSerde +} + +// Standard Generative Field Configuration of Image +type ImageStandardGenerativeField struct { + + // State + // + // This member is required. + State State + + // List of Image Standard Generative Field Type + Types []ImageStandardGenerativeFieldType + + noSmithyDocumentSerde +} + +// Standard Output Configuration of Image +type ImageStandardOutputConfiguration struct { + + // Standard Extraction Configuration of Image + Extraction *ImageStandardExtraction + + // Standard Generative Field Configuration of Image + GenerativeField *ImageStandardGenerativeField + + noSmithyDocumentSerde +} + +// Override configuration +type OverrideConfiguration struct { + + // Override Configuration of Document + Document *DocumentOverrideConfiguration + + noSmithyDocumentSerde +} + +// Configuration of Splitter +type SplitterConfiguration struct { + + // State + State State + + noSmithyDocumentSerde +} + +// Standard output configuration +type StandardOutputConfiguration struct { + + // Standard Output Configuration of Audio + Audio *AudioStandardOutputConfiguration + + // Standard Output Configuration of Document + Document *DocumentStandardOutputConfiguration + + // Standard Output Configuration of Image + Image *ImageStandardOutputConfiguration + + // Standard Output Configuration of Video + Video *VideoStandardOutputConfiguration + + noSmithyDocumentSerde +} + +// Stores information about a field passed inside a request that resulted in an +// exception +type ValidationExceptionField struct { + + // Non Blank String + // + // This member is required. + Message *string + + // Non Blank String + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +// Bounding Box Configuration of Video Extraction +type VideoBoundingBox struct { + + // State + // + // This member is required. + State State + + noSmithyDocumentSerde +} + +// Category of Video Extraction +type VideoExtractionCategory struct { + + // State + // + // This member is required. + State State + + // List of Video Extraction Category Type + Types []VideoExtractionCategoryType + + noSmithyDocumentSerde +} + +// Standard Extraction Configuration of Video +type VideoStandardExtraction struct { + + // Bounding Box Configuration of Video Extraction + // + // This member is required. + BoundingBox *VideoBoundingBox + + // Category of Video Extraction + // + // This member is required. + Category *VideoExtractionCategory + + noSmithyDocumentSerde +} + +// Standard Generative Field Configuration of Video +type VideoStandardGenerativeField struct { + + // State + // + // This member is required. + State State + + // List of Video Standard Generative Field Type + Types []VideoStandardGenerativeFieldType + + noSmithyDocumentSerde +} + +// Standard Output Configuration of Video +type VideoStandardOutputConfiguration struct { + + // Standard Extraction Configuration of Video + Extraction *VideoStandardExtraction + + // Standard Generative Field Configuration of Video + GenerativeField *VideoStandardGenerativeField + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/bedrockdataautomation/validators.go b/service/bedrockdataautomation/validators.go new file mode 100644 index 00000000000..898bd834cd9 --- /dev/null +++ b/service/bedrockdataautomation/validators.go @@ -0,0 +1,986 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomation + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpCreateBlueprint struct { +} + +func (*validateOpCreateBlueprint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateBlueprint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateBlueprintInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateBlueprintInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateBlueprintVersion struct { +} + +func (*validateOpCreateBlueprintVersion) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateBlueprintVersion) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateBlueprintVersionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateBlueprintVersionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateDataAutomationProject struct { +} + +func (*validateOpCreateDataAutomationProject) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateDataAutomationProject) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateDataAutomationProjectInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateDataAutomationProjectInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteBlueprint struct { +} + +func (*validateOpDeleteBlueprint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteBlueprint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteBlueprintInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteBlueprintInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteDataAutomationProject struct { +} + +func (*validateOpDeleteDataAutomationProject) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteDataAutomationProject) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteDataAutomationProjectInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteDataAutomationProjectInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetBlueprint struct { +} + +func (*validateOpGetBlueprint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetBlueprint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetBlueprintInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetBlueprintInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetDataAutomationProject struct { +} + +func (*validateOpGetDataAutomationProject) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetDataAutomationProject) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetDataAutomationProjectInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetDataAutomationProjectInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListBlueprints struct { +} + +func (*validateOpListBlueprints) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListBlueprints) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListBlueprintsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListBlueprintsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListDataAutomationProjects struct { +} + +func (*validateOpListDataAutomationProjects) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListDataAutomationProjects) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListDataAutomationProjectsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListDataAutomationProjectsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateBlueprint struct { +} + +func (*validateOpUpdateBlueprint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateBlueprint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateBlueprintInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateBlueprintInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateDataAutomationProject struct { +} + +func (*validateOpUpdateDataAutomationProject) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateDataAutomationProject) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateDataAutomationProjectInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateDataAutomationProjectInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpCreateBlueprintValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateBlueprint{}, middleware.After) +} + +func addOpCreateBlueprintVersionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateBlueprintVersion{}, middleware.After) +} + +func addOpCreateDataAutomationProjectValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateDataAutomationProject{}, middleware.After) +} + +func addOpDeleteBlueprintValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteBlueprint{}, middleware.After) +} + +func addOpDeleteDataAutomationProjectValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteDataAutomationProject{}, middleware.After) +} + +func addOpGetBlueprintValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetBlueprint{}, middleware.After) +} + +func addOpGetDataAutomationProjectValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetDataAutomationProject{}, middleware.After) +} + +func addOpListBlueprintsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListBlueprints{}, middleware.After) +} + +func addOpListDataAutomationProjectsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListDataAutomationProjects{}, middleware.After) +} + +func addOpUpdateBlueprintValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateBlueprint{}, middleware.After) +} + +func addOpUpdateDataAutomationProjectValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateDataAutomationProject{}, middleware.After) +} + +func validateAudioExtractionCategory(v *types.AudioExtractionCategory) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioExtractionCategory"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAudioStandardExtraction(v *types.AudioStandardExtraction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioStandardExtraction"} + if v.Category == nil { + invalidParams.Add(smithy.NewErrParamRequired("Category")) + } else if v.Category != nil { + if err := validateAudioExtractionCategory(v.Category); err != nil { + invalidParams.AddNested("Category", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAudioStandardGenerativeField(v *types.AudioStandardGenerativeField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioStandardGenerativeField"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAudioStandardOutputConfiguration(v *types.AudioStandardOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioStandardOutputConfiguration"} + if v.Extraction != nil { + if err := validateAudioStandardExtraction(v.Extraction); err != nil { + invalidParams.AddNested("Extraction", err.(smithy.InvalidParamsError)) + } + } + if v.GenerativeField != nil { + if err := validateAudioStandardGenerativeField(v.GenerativeField); err != nil { + invalidParams.AddNested("GenerativeField", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateBlueprintFilter(v *types.BlueprintFilter) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BlueprintFilter"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateBlueprintItem(v *types.BlueprintItem) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BlueprintItem"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateBlueprintItems(v []types.BlueprintItem) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BlueprintItems"} + for i := range v { + if err := validateBlueprintItem(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateCustomOutputConfiguration(v *types.CustomOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CustomOutputConfiguration"} + if v.Blueprints != nil { + if err := validateBlueprintItems(v.Blueprints); err != nil { + invalidParams.AddNested("Blueprints", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDataAutomationProjectFilter(v *types.DataAutomationProjectFilter) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DataAutomationProjectFilter"} + if v.ProjectArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentBoundingBox(v *types.DocumentBoundingBox) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentBoundingBox"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentOutputAdditionalFileFormat(v *types.DocumentOutputAdditionalFileFormat) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentOutputAdditionalFileFormat"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentOutputFormat(v *types.DocumentOutputFormat) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentOutputFormat"} + if v.TextFormat == nil { + invalidParams.Add(smithy.NewErrParamRequired("TextFormat")) + } + if v.AdditionalFileFormat == nil { + invalidParams.Add(smithy.NewErrParamRequired("AdditionalFileFormat")) + } else if v.AdditionalFileFormat != nil { + if err := validateDocumentOutputAdditionalFileFormat(v.AdditionalFileFormat); err != nil { + invalidParams.AddNested("AdditionalFileFormat", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentStandardExtraction(v *types.DocumentStandardExtraction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentStandardExtraction"} + if v.Granularity == nil { + invalidParams.Add(smithy.NewErrParamRequired("Granularity")) + } + if v.BoundingBox == nil { + invalidParams.Add(smithy.NewErrParamRequired("BoundingBox")) + } else if v.BoundingBox != nil { + if err := validateDocumentBoundingBox(v.BoundingBox); err != nil { + invalidParams.AddNested("BoundingBox", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentStandardGenerativeField(v *types.DocumentStandardGenerativeField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentStandardGenerativeField"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDocumentStandardOutputConfiguration(v *types.DocumentStandardOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DocumentStandardOutputConfiguration"} + if v.Extraction != nil { + if err := validateDocumentStandardExtraction(v.Extraction); err != nil { + invalidParams.AddNested("Extraction", err.(smithy.InvalidParamsError)) + } + } + if v.GenerativeField != nil { + if err := validateDocumentStandardGenerativeField(v.GenerativeField); err != nil { + invalidParams.AddNested("GenerativeField", err.(smithy.InvalidParamsError)) + } + } + if v.OutputFormat != nil { + if err := validateDocumentOutputFormat(v.OutputFormat); err != nil { + invalidParams.AddNested("OutputFormat", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEncryptionConfiguration(v *types.EncryptionConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EncryptionConfiguration"} + if v.KmsKeyId == nil { + invalidParams.Add(smithy.NewErrParamRequired("KmsKeyId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateImageBoundingBox(v *types.ImageBoundingBox) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageBoundingBox"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateImageExtractionCategory(v *types.ImageExtractionCategory) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageExtractionCategory"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateImageStandardExtraction(v *types.ImageStandardExtraction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageStandardExtraction"} + if v.Category == nil { + invalidParams.Add(smithy.NewErrParamRequired("Category")) + } else if v.Category != nil { + if err := validateImageExtractionCategory(v.Category); err != nil { + invalidParams.AddNested("Category", err.(smithy.InvalidParamsError)) + } + } + if v.BoundingBox == nil { + invalidParams.Add(smithy.NewErrParamRequired("BoundingBox")) + } else if v.BoundingBox != nil { + if err := validateImageBoundingBox(v.BoundingBox); err != nil { + invalidParams.AddNested("BoundingBox", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateImageStandardGenerativeField(v *types.ImageStandardGenerativeField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageStandardGenerativeField"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateImageStandardOutputConfiguration(v *types.ImageStandardOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageStandardOutputConfiguration"} + if v.Extraction != nil { + if err := validateImageStandardExtraction(v.Extraction); err != nil { + invalidParams.AddNested("Extraction", err.(smithy.InvalidParamsError)) + } + } + if v.GenerativeField != nil { + if err := validateImageStandardGenerativeField(v.GenerativeField); err != nil { + invalidParams.AddNested("GenerativeField", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateStandardOutputConfiguration(v *types.StandardOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StandardOutputConfiguration"} + if v.Document != nil { + if err := validateDocumentStandardOutputConfiguration(v.Document); err != nil { + invalidParams.AddNested("Document", err.(smithy.InvalidParamsError)) + } + } + if v.Image != nil { + if err := validateImageStandardOutputConfiguration(v.Image); err != nil { + invalidParams.AddNested("Image", err.(smithy.InvalidParamsError)) + } + } + if v.Video != nil { + if err := validateVideoStandardOutputConfiguration(v.Video); err != nil { + invalidParams.AddNested("Video", err.(smithy.InvalidParamsError)) + } + } + if v.Audio != nil { + if err := validateAudioStandardOutputConfiguration(v.Audio); err != nil { + invalidParams.AddNested("Audio", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateVideoBoundingBox(v *types.VideoBoundingBox) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoBoundingBox"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateVideoExtractionCategory(v *types.VideoExtractionCategory) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoExtractionCategory"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateVideoStandardExtraction(v *types.VideoStandardExtraction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoStandardExtraction"} + if v.Category == nil { + invalidParams.Add(smithy.NewErrParamRequired("Category")) + } else if v.Category != nil { + if err := validateVideoExtractionCategory(v.Category); err != nil { + invalidParams.AddNested("Category", err.(smithy.InvalidParamsError)) + } + } + if v.BoundingBox == nil { + invalidParams.Add(smithy.NewErrParamRequired("BoundingBox")) + } else if v.BoundingBox != nil { + if err := validateVideoBoundingBox(v.BoundingBox); err != nil { + invalidParams.AddNested("BoundingBox", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateVideoStandardGenerativeField(v *types.VideoStandardGenerativeField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoStandardGenerativeField"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateVideoStandardOutputConfiguration(v *types.VideoStandardOutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoStandardOutputConfiguration"} + if v.Extraction != nil { + if err := validateVideoStandardExtraction(v.Extraction); err != nil { + invalidParams.AddNested("Extraction", err.(smithy.InvalidParamsError)) + } + } + if v.GenerativeField != nil { + if err := validateVideoStandardGenerativeField(v.GenerativeField); err != nil { + invalidParams.AddNested("GenerativeField", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateBlueprintInput(v *CreateBlueprintInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateBlueprintInput"} + if v.BlueprintName == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintName")) + } + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.Schema == nil { + invalidParams.Add(smithy.NewErrParamRequired("Schema")) + } + if v.EncryptionConfiguration != nil { + if err := validateEncryptionConfiguration(v.EncryptionConfiguration); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateBlueprintVersionInput(v *CreateBlueprintVersionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateBlueprintVersionInput"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateDataAutomationProjectInput(v *CreateDataAutomationProjectInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateDataAutomationProjectInput"} + if v.ProjectName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectName")) + } + if v.StandardOutputConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("StandardOutputConfiguration")) + } else if v.StandardOutputConfiguration != nil { + if err := validateStandardOutputConfiguration(v.StandardOutputConfiguration); err != nil { + invalidParams.AddNested("StandardOutputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.CustomOutputConfiguration != nil { + if err := validateCustomOutputConfiguration(v.CustomOutputConfiguration); err != nil { + invalidParams.AddNested("CustomOutputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.EncryptionConfiguration != nil { + if err := validateEncryptionConfiguration(v.EncryptionConfiguration); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteBlueprintInput(v *DeleteBlueprintInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteBlueprintInput"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteDataAutomationProjectInput(v *DeleteDataAutomationProjectInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteDataAutomationProjectInput"} + if v.ProjectArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetBlueprintInput(v *GetBlueprintInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetBlueprintInput"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetDataAutomationProjectInput(v *GetDataAutomationProjectInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetDataAutomationProjectInput"} + if v.ProjectArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListBlueprintsInput(v *ListBlueprintsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListBlueprintsInput"} + if v.ProjectFilter != nil { + if err := validateDataAutomationProjectFilter(v.ProjectFilter); err != nil { + invalidParams.AddNested("ProjectFilter", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListDataAutomationProjectsInput(v *ListDataAutomationProjectsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListDataAutomationProjectsInput"} + if v.BlueprintFilter != nil { + if err := validateBlueprintFilter(v.BlueprintFilter); err != nil { + invalidParams.AddNested("BlueprintFilter", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateBlueprintInput(v *UpdateBlueprintInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateBlueprintInput"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if v.Schema == nil { + invalidParams.Add(smithy.NewErrParamRequired("Schema")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateDataAutomationProjectInput(v *UpdateDataAutomationProjectInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateDataAutomationProjectInput"} + if v.ProjectArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectArn")) + } + if v.StandardOutputConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("StandardOutputConfiguration")) + } else if v.StandardOutputConfiguration != nil { + if err := validateStandardOutputConfiguration(v.StandardOutputConfiguration); err != nil { + invalidParams.AddNested("StandardOutputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.CustomOutputConfiguration != nil { + if err := validateCustomOutputConfiguration(v.CustomOutputConfiguration); err != nil { + invalidParams.AddNested("CustomOutputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/bedrockdataautomationruntime/LICENSE.txt b/service/bedrockdataautomationruntime/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/bedrockdataautomationruntime/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/bedrockdataautomationruntime/api_client.go b/service/bedrockdataautomationruntime/api_client.go new file mode 100644 index 00000000000..fb9706dfeb9 --- /dev/null +++ b/service/bedrockdataautomationruntime/api_client.go @@ -0,0 +1,929 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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 = "Bedrock Data Automation Runtime" +const ServiceAPIVersion = "2024-06-13" + +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/bedrockdataautomationruntime") + 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/bedrockdataautomationruntime") +} + +// Client provides the API client to make operations call for Runtime for Amazon +// Bedrock Data Automation. +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/bedrockdataautomationruntime") + }) + 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, "bedrockdataautomationruntime", 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/bedrockdataautomationruntime") + }) + 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/bedrockdataautomationruntime/api_client_test.go b/service/bedrockdataautomationruntime/api_client_test.go new file mode 100644 index 00000000000..2308113e7d9 --- /dev/null +++ b/service/bedrockdataautomationruntime/api_client_test.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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/bedrockdataautomationruntime/api_op_GetDataAutomationStatus.go b/service/bedrockdataautomationruntime/api_op_GetDataAutomationStatus.go new file mode 100644 index 00000000000..92678018ef0 --- /dev/null +++ b/service/bedrockdataautomationruntime/api_op_GetDataAutomationStatus.go @@ -0,0 +1,168 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// API used to get data automation status. +func (c *Client) GetDataAutomationStatus(ctx context.Context, params *GetDataAutomationStatusInput, optFns ...func(*Options)) (*GetDataAutomationStatusOutput, error) { + if params == nil { + params = &GetDataAutomationStatusInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetDataAutomationStatus", params, optFns, c.addOperationGetDataAutomationStatusMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetDataAutomationStatusOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Structure for request of GetDataAutomationStatus API. +type GetDataAutomationStatusInput struct { + + // Invocation arn. + // + // This member is required. + InvocationArn *string + + noSmithyDocumentSerde +} + +// Response of GetDataAutomationStatus API. +type GetDataAutomationStatusOutput struct { + + // Error Message. + ErrorMessage *string + + // Error Type. + ErrorType *string + + // Output configuration. + OutputConfiguration *types.OutputConfiguration + + // Job Status. + Status types.AutomationJobStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetDataAutomationStatusMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetDataAutomationStatus{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetDataAutomationStatus{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetDataAutomationStatus"); 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 = addOpGetDataAutomationStatusValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetDataAutomationStatus(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_opGetDataAutomationStatus(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetDataAutomationStatus", + } +} diff --git a/service/bedrockdataautomationruntime/api_op_InvokeDataAutomationAsync.go b/service/bedrockdataautomationruntime/api_op_InvokeDataAutomationAsync.go new file mode 100644 index 00000000000..f4d972c3fc7 --- /dev/null +++ b/service/bedrockdataautomationruntime/api_op_InvokeDataAutomationAsync.go @@ -0,0 +1,217 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Async API: Invoke data automation. +func (c *Client) InvokeDataAutomationAsync(ctx context.Context, params *InvokeDataAutomationAsyncInput, optFns ...func(*Options)) (*InvokeDataAutomationAsyncOutput, error) { + if params == nil { + params = &InvokeDataAutomationAsyncInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "InvokeDataAutomationAsync", params, optFns, c.addOperationInvokeDataAutomationAsyncMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*InvokeDataAutomationAsyncOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Invoke Data Automation Async Request +type InvokeDataAutomationAsyncInput struct { + + // Input configuration. + // + // This member is required. + InputConfiguration *types.InputConfiguration + + // Output configuration. + // + // This member is required. + OutputConfiguration *types.OutputConfiguration + + // Blueprint list. + Blueprints []types.Blueprint + + // Idempotency token. + ClientToken *string + + // Data automation configuration. + DataAutomationConfiguration *types.DataAutomationConfiguration + + // Encryption configuration. + EncryptionConfiguration *types.EncryptionConfiguration + + // Notification configuration. + NotificationConfiguration *types.NotificationConfiguration + + noSmithyDocumentSerde +} + +// Invoke Data Automation Async Response +type InvokeDataAutomationAsyncOutput struct { + + // ARN of the automation job + // + // This member is required. + InvocationArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationInvokeDataAutomationAsyncMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpInvokeDataAutomationAsync{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpInvokeDataAutomationAsync{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "InvokeDataAutomationAsync"); 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_opInvokeDataAutomationAsyncMiddleware(stack, options); err != nil { + return err + } + if err = addOpInvokeDataAutomationAsyncValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opInvokeDataAutomationAsync(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_initializeOpInvokeDataAutomationAsync struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpInvokeDataAutomationAsync) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpInvokeDataAutomationAsync) 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.(*InvokeDataAutomationAsyncInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *InvokeDataAutomationAsyncInput ") + } + + 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_opInvokeDataAutomationAsyncMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpInvokeDataAutomationAsync{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opInvokeDataAutomationAsync(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "InvokeDataAutomationAsync", + } +} diff --git a/service/bedrockdataautomationruntime/auth.go b/service/bedrockdataautomationruntime/auth.go new file mode 100644 index 00000000000..8106eaf321e --- /dev/null +++ b/service/bedrockdataautomationruntime/auth.go @@ -0,0 +1,313 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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, "bedrock") + 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/bedrockdataautomationruntime/deserializers.go b/service/bedrockdataautomationruntime/deserializers.go new file mode 100644 index 00000000000..3e188304c1e --- /dev/null +++ b/service/bedrockdataautomationruntime/deserializers.go @@ -0,0 +1,898 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime/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 awsAwsjson11_deserializeOpGetDataAutomationStatus struct { +} + +func (*awsAwsjson11_deserializeOpGetDataAutomationStatus) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGetDataAutomationStatus) HandleDeserialize(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_deserializeOpErrorGetDataAutomationStatus(response, &metadata) + } + output := &GetDataAutomationStatusOutput{} + 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_deserializeOpDocumentGetDataAutomationStatusOutput(&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_deserializeOpErrorGetDataAutomationStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpInvokeDataAutomationAsync struct { +} + +func (*awsAwsjson11_deserializeOpInvokeDataAutomationAsync) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpInvokeDataAutomationAsync) HandleDeserialize(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_deserializeOpErrorInvokeDataAutomationAsync(response, &metadata) + } + output := &InvokeDataAutomationAsyncOutput{} + 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_deserializeOpDocumentInvokeDataAutomationAsyncOutput(&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_deserializeOpErrorInvokeDataAutomationAsync(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson11_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 := awsAwsjson11_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 awsAwsjson11_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentOutputConfiguration(v **types.OutputConfiguration, 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.OutputConfiguration + if *v == nil { + sv = &types.OutputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Uri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3Uri to be of type string, got %T instead", value) + } + sv.S3Uri = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_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 NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_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 "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonBlankString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentGetDataAutomationStatusOutput(v **GetDataAutomationStatusOutput, 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 *GetDataAutomationStatusOutput + if *v == nil { + sv = &GetDataAutomationStatusOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "errorMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ErrorMessage = ptr.String(jtv) + } + + case "errorType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ErrorType = ptr.String(jtv) + } + + case "outputConfiguration": + if err := awsAwsjson11_deserializeDocumentOutputConfiguration(&sv.OutputConfiguration, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AutomationJobStatus to be of type string, got %T instead", value) + } + sv.Status = types.AutomationJobStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentInvokeDataAutomationAsyncOutput(v **InvokeDataAutomationAsyncOutput, 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 *InvokeDataAutomationAsyncOutput + if *v == nil { + sv = &InvokeDataAutomationAsyncOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "invocationArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InvocationArn to be of type string, got %T instead", value) + } + sv.InvocationArn = 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/bedrockdataautomationruntime/doc.go b/service/bedrockdataautomationruntime/doc.go new file mode 100644 index 00000000000..814c4f5cb9f --- /dev/null +++ b/service/bedrockdataautomationruntime/doc.go @@ -0,0 +1,7 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package bedrockdataautomationruntime provides the API client, operations, and +// parameter types for Runtime for Amazon Bedrock Data Automation. +// +// Amazon Bedrock Keystone Runtime +package bedrockdataautomationruntime diff --git a/service/bedrockdataautomationruntime/endpoints.go b/service/bedrockdataautomationruntime/endpoints.go new file mode 100644 index 00000000000..f635c2d1b2c --- /dev/null +++ b/service/bedrockdataautomationruntime/endpoints.go @@ -0,0 +1,537 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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/bedrockdataautomationruntime/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 = "bedrock" + } + 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_BEDROCK_DATA_AUTOMATION_RUNTIME") + + if g && !s { + return + } + + value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "Bedrock Data Automation Runtime", 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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.") + 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://bedrock-data-automation-runtime.") + 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/bedrockdataautomationruntime/endpoints_config_test.go b/service/bedrockdataautomationruntime/endpoints_config_test.go new file mode 100644 index 00000000000..f08262cda2d --- /dev/null +++ b/service/bedrockdataautomationruntime/endpoints_config_test.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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-bedrock-data-automation-runtime.dev", + envIgnore: true, + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation-runtime.dev", + expectURL: nil, + }, + "env global": { + envGlobal: "https://env-global.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation-runtime.dev", + expectURL: aws.String("https://env-global.dev"), + }, + "env service": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation-runtime.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation-runtime.dev", + expectURL: aws.String("https://env-bedrock-data-automation-runtime.dev"), + }, + "config ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation-runtime.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation-runtime.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-bedrock-data-automation-runtime.dev", + expectURL: aws.String("http://config-bedrock-data-automation-runtime.dev"), + }, + "client": { + envGlobal: "https://env-global.dev", + envService: "https://env-bedrock-data-automation-runtime.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-bedrock-data-automation-runtime.dev", + clientEndpoint: aws.String("https://client-bedrock-data-automation-runtime.dev"), + expectURL: aws.String("https://client-bedrock-data-automation-runtime.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_BEDROCK_DATA_AUTOMATION_RUNTIME", 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/bedrockdataautomationruntime/endpoints_test.go b/service/bedrockdataautomationruntime/endpoints_test.go new file mode 100644 index 00000000000..8d0acc0690b --- /dev/null +++ b/service/bedrockdataautomationruntime/endpoints_test.go @@ -0,0 +1,820 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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://bedrock-data-automation-runtime-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://bedrock-data-automation-runtime.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/bedrockdataautomationruntime/generated.json b/service/bedrockdataautomationruntime/generated.json new file mode 100644 index 00000000000..7350da5c8fc --- /dev/null +++ b/service/bedrockdataautomationruntime/generated.json @@ -0,0 +1,34 @@ +{ + "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_GetDataAutomationStatus.go", + "api_op_InvokeDataAutomationAsync.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/bedrockdataautomationruntime", + "unstable": false +} diff --git a/service/bedrockdataautomationruntime/go.mod b/service/bedrockdataautomationruntime/go.mod new file mode 100644 index 00000000000..696ec28626c --- /dev/null +++ b/service/bedrockdataautomationruntime/go.mod @@ -0,0 +1,16 @@ +module github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime + +go 1.21 + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.6 + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 + github.com/aws/smithy-go v1.22.1 +) + +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/bedrockdataautomationruntime/go.sum b/service/bedrockdataautomationruntime/go.sum new file mode 100644 index 00000000000..bd2678891af --- /dev/null +++ b/service/bedrockdataautomationruntime/go.sum @@ -0,0 +1,2 @@ +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/bedrockdataautomationruntime/go_module_metadata.go b/service/bedrockdataautomationruntime/go_module_metadata.go new file mode 100644 index 00000000000..2f8d122546e --- /dev/null +++ b/service/bedrockdataautomationruntime/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package bedrockdataautomationruntime + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/bedrockdataautomationruntime/internal/endpoints/endpoints.go b/service/bedrockdataautomationruntime/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..308f16c089f --- /dev/null +++ b/service/bedrockdataautomationruntime/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 Bedrock Data Automation Runtime 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: "bedrock-data-automation-runtime.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime-fips.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime-fips.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime-fips.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime-fips.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{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: "bedrock-data-automation-runtime.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "bedrock-data-automation-runtime-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "bedrock-data-automation-runtime.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/bedrockdataautomationruntime/internal/endpoints/endpoints_test.go b/service/bedrockdataautomationruntime/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/bedrockdataautomationruntime/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/bedrockdataautomationruntime/options.go b/service/bedrockdataautomationruntime/options.go new file mode 100644 index 00000000000..4dea56636bd --- /dev/null +++ b/service/bedrockdataautomationruntime/options.go @@ -0,0 +1,236 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +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/bedrockdataautomationruntime/protocol_test.go b/service/bedrockdataautomationruntime/protocol_test.go new file mode 100644 index 00000000000..d312792478e --- /dev/null +++ b/service/bedrockdataautomationruntime/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime diff --git a/service/bedrockdataautomationruntime/serializers.go b/service/bedrockdataautomationruntime/serializers.go new file mode 100644 index 00000000000..ce0c71a741c --- /dev/null +++ b/service/bedrockdataautomationruntime/serializers.go @@ -0,0 +1,336 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime/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" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "path" +) + +type awsAwsjson11_serializeOpGetDataAutomationStatus struct { +} + +func (*awsAwsjson11_serializeOpGetDataAutomationStatus) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetDataAutomationStatus) 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.(*GetDataAutomationStatusInput) + _ = 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("AmazonBedrockKeystoneRuntimeService.GetDataAutomationStatus") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetDataAutomationStatusInput(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_serializeOpInvokeDataAutomationAsync struct { +} + +func (*awsAwsjson11_serializeOpInvokeDataAutomationAsync) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpInvokeDataAutomationAsync) 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.(*InvokeDataAutomationAsyncInput) + _ = 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("AmazonBedrockKeystoneRuntimeService.InvokeDataAutomationAsync") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentInvokeDataAutomationAsyncInput(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 awsAwsjson11_serializeDocumentBlueprint(v *types.Blueprint, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlueprintArn != nil { + ok := object.Key("blueprintArn") + ok.String(*v.BlueprintArn) + } + + if len(v.Stage) > 0 { + ok := object.Key("stage") + ok.String(string(v.Stage)) + } + + if v.Version != nil { + ok := object.Key("version") + ok.String(*v.Version) + } + + return nil +} + +func awsAwsjson11_serializeDocumentBlueprintList(v []types.Blueprint, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentBlueprint(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson11_serializeDocumentDataAutomationConfiguration(v *types.DataAutomationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DataAutomationArn != nil { + ok := object.Key("dataAutomationArn") + ok.String(*v.DataAutomationArn) + } + + if len(v.Stage) > 0 { + ok := object.Key("stage") + ok.String(string(v.Stage)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentEncryptionConfiguration(v *types.EncryptionConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KmsEncryptionContext != nil { + ok := object.Key("kmsEncryptionContext") + if err := awsAwsjson11_serializeDocumentEncryptionContextMap(v.KmsEncryptionContext, ok); err != nil { + return err + } + } + + if v.KmsKeyId != nil { + ok := object.Key("kmsKeyId") + ok.String(*v.KmsKeyId) + } + + return nil +} + +func awsAwsjson11_serializeDocumentEncryptionContextMap(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 awsAwsjson11_serializeDocumentEventBridgeConfiguration(v *types.EventBridgeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventBridgeEnabled != nil { + ok := object.Key("eventBridgeEnabled") + ok.Boolean(*v.EventBridgeEnabled) + } + + return nil +} + +func awsAwsjson11_serializeDocumentInputConfiguration(v *types.InputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3Uri != nil { + ok := object.Key("s3Uri") + ok.String(*v.S3Uri) + } + + return nil +} + +func awsAwsjson11_serializeDocumentNotificationConfiguration(v *types.NotificationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventBridgeConfiguration != nil { + ok := object.Key("eventBridgeConfiguration") + if err := awsAwsjson11_serializeDocumentEventBridgeConfiguration(v.EventBridgeConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentOutputConfiguration(v *types.OutputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3Uri != nil { + ok := object.Key("s3Uri") + ok.String(*v.S3Uri) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentGetDataAutomationStatusInput(v *GetDataAutomationStatusInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InvocationArn != nil { + ok := object.Key("invocationArn") + ok.String(*v.InvocationArn) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentInvokeDataAutomationAsyncInput(v *InvokeDataAutomationAsyncInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Blueprints != nil { + ok := object.Key("blueprints") + if err := awsAwsjson11_serializeDocumentBlueprintList(v.Blueprints, ok); err != nil { + return err + } + } + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.DataAutomationConfiguration != nil { + ok := object.Key("dataAutomationConfiguration") + if err := awsAwsjson11_serializeDocumentDataAutomationConfiguration(v.DataAutomationConfiguration, ok); err != nil { + return err + } + } + + if v.EncryptionConfiguration != nil { + ok := object.Key("encryptionConfiguration") + if err := awsAwsjson11_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { + return err + } + } + + if v.InputConfiguration != nil { + ok := object.Key("inputConfiguration") + if err := awsAwsjson11_serializeDocumentInputConfiguration(v.InputConfiguration, ok); err != nil { + return err + } + } + + if v.NotificationConfiguration != nil { + ok := object.Key("notificationConfiguration") + if err := awsAwsjson11_serializeDocumentNotificationConfiguration(v.NotificationConfiguration, ok); err != nil { + return err + } + } + + if v.OutputConfiguration != nil { + ok := object.Key("outputConfiguration") + if err := awsAwsjson11_serializeDocumentOutputConfiguration(v.OutputConfiguration, ok); err != nil { + return err + } + } + + return nil +} diff --git a/service/bedrockdataautomationruntime/snapshot/api_op_GetDataAutomationStatus.go.snap b/service/bedrockdataautomationruntime/snapshot/api_op_GetDataAutomationStatus.go.snap new file mode 100644 index 00000000000..ce5d2d6d20f --- /dev/null +++ b/service/bedrockdataautomationruntime/snapshot/api_op_GetDataAutomationStatus.go.snap @@ -0,0 +1,41 @@ +GetDataAutomationStatus + 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/bedrockdataautomationruntime/snapshot/api_op_InvokeDataAutomationAsync.go.snap b/service/bedrockdataautomationruntime/snapshot/api_op_InvokeDataAutomationAsync.go.snap new file mode 100644 index 00000000000..a64710d0e85 --- /dev/null +++ b/service/bedrockdataautomationruntime/snapshot/api_op_InvokeDataAutomationAsync.go.snap @@ -0,0 +1,42 @@ +InvokeDataAutomationAsync + 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/bedrockdataautomationruntime/snapshot_test.go b/service/bedrockdataautomationruntime/snapshot_test.go new file mode 100644 index 00000000000..db7fb492c27 --- /dev/null +++ b/service/bedrockdataautomationruntime/snapshot_test.go @@ -0,0 +1,110 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +//go:build snapshot + +package bedrockdataautomationruntime + +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_GetDataAutomationStatus(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetDataAutomationStatus(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetDataAutomationStatus") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_InvokeDataAutomationAsync(t *testing.T) { + svc := New(Options{}) + _, err := svc.InvokeDataAutomationAsync(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "InvokeDataAutomationAsync") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} +func TestUpdateSnapshot_GetDataAutomationStatus(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetDataAutomationStatus(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetDataAutomationStatus") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_InvokeDataAutomationAsync(t *testing.T) { + svc := New(Options{}) + _, err := svc.InvokeDataAutomationAsync(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "InvokeDataAutomationAsync") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} diff --git a/service/bedrockdataautomationruntime/types/enums.go b/service/bedrockdataautomationruntime/types/enums.go new file mode 100644 index 00000000000..f6fa7c2f0d7 --- /dev/null +++ b/service/bedrockdataautomationruntime/types/enums.go @@ -0,0 +1,66 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type AutomationJobStatus string + +// Enum values for AutomationJobStatus +const ( + AutomationJobStatusCreated AutomationJobStatus = "Created" + AutomationJobStatusInProgress AutomationJobStatus = "InProgress" + AutomationJobStatusSuccess AutomationJobStatus = "Success" + AutomationJobStatusServiceError AutomationJobStatus = "ServiceError" + AutomationJobStatusClientError AutomationJobStatus = "ClientError" +) + +// Values returns all known values for AutomationJobStatus. 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 (AutomationJobStatus) Values() []AutomationJobStatus { + return []AutomationJobStatus{ + "Created", + "InProgress", + "Success", + "ServiceError", + "ClientError", + } +} + +type BlueprintStage string + +// Enum values for BlueprintStage +const ( + BlueprintStageDevelopment BlueprintStage = "DEVELOPMENT" + BlueprintStageLive BlueprintStage = "LIVE" +) + +// Values returns all known values for BlueprintStage. 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 (BlueprintStage) Values() []BlueprintStage { + return []BlueprintStage{ + "DEVELOPMENT", + "LIVE", + } +} + +type DataAutomationStage string + +// Enum values for DataAutomationStage +const ( + DataAutomationStageLive DataAutomationStage = "LIVE" + DataAutomationStageDevelopment DataAutomationStage = "DEVELOPMENT" +) + +// Values returns all known values for DataAutomationStage. 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 (DataAutomationStage) Values() []DataAutomationStage { + return []DataAutomationStage{ + "LIVE", + "DEVELOPMENT", + } +} diff --git a/service/bedrockdataautomationruntime/types/errors.go b/service/bedrockdataautomationruntime/types/errors.go new file mode 100644 index 00000000000..e351e09d664 --- /dev/null +++ b/service/bedrockdataautomationruntime/types/errors.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// This exception will be thrown when customer does not have access to API. +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 exception is for any internal un-expected service errors. +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 exception will be thrown when resource provided from customer not found. +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 exception will be thrown when service quota is exceeded. +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 exception will be thrown when customer reached API TPS limit. +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 } + +// This exception will be thrown when customer provided invalid parameters. +type ValidationException struct { + Message *string + + ErrorCodeOverride *string + + 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/bedrockdataautomationruntime/types/types.go b/service/bedrockdataautomationruntime/types/types.go new file mode 100644 index 00000000000..2ba78415dc9 --- /dev/null +++ b/service/bedrockdataautomationruntime/types/types.go @@ -0,0 +1,98 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" +) + +// Structure for single blueprint entity. +type Blueprint struct { + + // Arn of blueprint. + // + // This member is required. + BlueprintArn *string + + // Stage of blueprint. + Stage BlueprintStage + + // Version of blueprint. + Version *string + + noSmithyDocumentSerde +} + +// Data automation configuration. +type DataAutomationConfiguration struct { + + // Data automation arn. + // + // This member is required. + DataAutomationArn *string + + // Data automation stage. + Stage DataAutomationStage + + noSmithyDocumentSerde +} + +// Encryption configuration. +type EncryptionConfiguration struct { + + // KMS key id. + // + // This member is required. + KmsKeyId *string + + // KMS encryption context. + KmsEncryptionContext map[string]string + + noSmithyDocumentSerde +} + +// Event bridge configuration. +type EventBridgeConfiguration struct { + + // Event bridge flag. + // + // This member is required. + EventBridgeEnabled *bool + + noSmithyDocumentSerde +} + +// Input configuration. +type InputConfiguration struct { + + // S3 uri. + // + // This member is required. + S3Uri *string + + noSmithyDocumentSerde +} + +// Notification configuration. +type NotificationConfiguration struct { + + // Event bridge configuration. + // + // This member is required. + EventBridgeConfiguration *EventBridgeConfiguration + + noSmithyDocumentSerde +} + +// Output configuration. +type OutputConfiguration struct { + + // S3 uri. + // + // This member is required. + S3Uri *string + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/bedrockdataautomationruntime/validators.go b/service/bedrockdataautomationruntime/validators.go new file mode 100644 index 00000000000..35fbef57a0e --- /dev/null +++ b/service/bedrockdataautomationruntime/validators.go @@ -0,0 +1,246 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package bedrockdataautomationruntime + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpGetDataAutomationStatus struct { +} + +func (*validateOpGetDataAutomationStatus) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetDataAutomationStatus) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetDataAutomationStatusInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetDataAutomationStatusInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpInvokeDataAutomationAsync struct { +} + +func (*validateOpInvokeDataAutomationAsync) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpInvokeDataAutomationAsync) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*InvokeDataAutomationAsyncInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpInvokeDataAutomationAsyncInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpGetDataAutomationStatusValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetDataAutomationStatus{}, middleware.After) +} + +func addOpInvokeDataAutomationAsyncValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpInvokeDataAutomationAsync{}, middleware.After) +} + +func validateBlueprint(v *types.Blueprint) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Blueprint"} + if v.BlueprintArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BlueprintArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateBlueprintList(v []types.Blueprint) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BlueprintList"} + for i := range v { + if err := validateBlueprint(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDataAutomationConfiguration(v *types.DataAutomationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DataAutomationConfiguration"} + if v.DataAutomationArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("DataAutomationArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEncryptionConfiguration(v *types.EncryptionConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EncryptionConfiguration"} + if v.KmsKeyId == nil { + invalidParams.Add(smithy.NewErrParamRequired("KmsKeyId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEventBridgeConfiguration(v *types.EventBridgeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EventBridgeConfiguration"} + if v.EventBridgeEnabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventBridgeEnabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateInputConfiguration(v *types.InputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "InputConfiguration"} + if v.S3Uri == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3Uri")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNotificationConfiguration(v *types.NotificationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NotificationConfiguration"} + if v.EventBridgeConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventBridgeConfiguration")) + } else if v.EventBridgeConfiguration != nil { + if err := validateEventBridgeConfiguration(v.EventBridgeConfiguration); err != nil { + invalidParams.AddNested("EventBridgeConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOutputConfiguration(v *types.OutputConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OutputConfiguration"} + if v.S3Uri == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3Uri")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetDataAutomationStatusInput(v *GetDataAutomationStatusInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetDataAutomationStatusInput"} + if v.InvocationArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("InvocationArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpInvokeDataAutomationAsyncInput(v *InvokeDataAutomationAsyncInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "InvokeDataAutomationAsyncInput"} + if v.InputConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("InputConfiguration")) + } else if v.InputConfiguration != nil { + if err := validateInputConfiguration(v.InputConfiguration); err != nil { + invalidParams.AddNested("InputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.OutputConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutputConfiguration")) + } else if v.OutputConfiguration != nil { + if err := validateOutputConfiguration(v.OutputConfiguration); err != nil { + invalidParams.AddNested("OutputConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.DataAutomationConfiguration != nil { + if err := validateDataAutomationConfiguration(v.DataAutomationConfiguration); err != nil { + invalidParams.AddNested("DataAutomationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.EncryptionConfiguration != nil { + if err := validateEncryptionConfiguration(v.EncryptionConfiguration); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.NotificationConfiguration != nil { + if err := validateNotificationConfiguration(v.NotificationConfiguration); err != nil { + invalidParams.AddNested("NotificationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.Blueprints != nil { + if err := validateBlueprintList(v.Blueprints); err != nil { + invalidParams.AddNested("Blueprints", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/bedrockruntime/deserializers.go b/service/bedrockruntime/deserializers.go index 6ec3207963b..1c1438ac9de 100644 --- a/service/bedrockruntime/deserializers.go +++ b/service/bedrockruntime/deserializers.go @@ -2792,6 +2792,11 @@ func awsRestjson1_deserializeDocumentConverseStreamTrace(v **types.ConverseStrea return err } + case "promptRouter": + if err := awsRestjson1_deserializeDocumentPromptRouterTrace(&sv.PromptRouter, value); err != nil { + return err + } + default: _, _ = key, value @@ -3311,6 +3316,11 @@ func awsRestjson1_deserializeDocumentGuardrailCoverage(v **types.GuardrailCovera for key, value := range shape { switch key { + case "images": + if err := awsRestjson1_deserializeDocumentGuardrailImageCoverage(&sv.Images, value); err != nil { + return err + } + case "textCharacters": if err := awsRestjson1_deserializeDocumentGuardrailTextCharactersCoverage(&sv.TextCharacters, value); err != nil { return err @@ -3408,6 +3418,63 @@ func awsRestjson1_deserializeDocumentGuardrailCustomWordList(v *[]types.Guardrai return nil } +func awsRestjson1_deserializeDocumentGuardrailImageCoverage(v **types.GuardrailImageCoverage, 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.GuardrailImageCoverage + if *v == nil { + sv = &types.GuardrailImageCoverage{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "guarded": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ImagesGuarded to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Guarded = ptr.Int32(int32(i64)) + } + + case "total": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ImagesTotal to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Total = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentGuardrailInvocationMetrics(v **types.GuardrailInvocationMetrics, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4330,6 +4397,46 @@ func awsRestjson1_deserializeDocumentPerformanceConfiguration(v **types.Performa return nil } +func awsRestjson1_deserializeDocumentPromptRouterTrace(v **types.PromptRouterTrace, 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.PromptRouterTrace + if *v == nil { + sv = &types.PromptRouterTrace{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "invokedModelId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InvokedModelId to be of type string, got %T instead", value) + } + sv.InvokedModelId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentTokenUsage(v **types.TokenUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5504,6 +5611,11 @@ func awsRestjson1_deserializeDocumentConverseTrace(v **types.ConverseTrace, valu return err } + case "promptRouter": + if err := awsRestjson1_deserializeDocumentPromptRouterTrace(&sv.PromptRouter, value); err != nil { + return err + } + default: _, _ = key, value @@ -5633,6 +5745,16 @@ loop: continue } switch key { + case "image": + var mv types.GuardrailConverseImageBlock + destAddr := &mv + if err := awsRestjson1_deserializeDocumentGuardrailConverseImageBlock(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.GuardrailConverseContentBlockMemberImage{Value: mv} + break loop + case "text": var mv types.GuardrailConverseTextBlock destAddr := &mv @@ -5689,6 +5811,97 @@ func awsRestjson1_deserializeDocumentGuardrailConverseContentQualifierList(v *[] return nil } +func awsRestjson1_deserializeDocumentGuardrailConverseImageBlock(v **types.GuardrailConverseImageBlock, 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.GuardrailConverseImageBlock + if *v == nil { + sv = &types.GuardrailConverseImageBlock{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "format": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GuardrailConverseImageFormat to be of type string, got %T instead", value) + } + sv.Format = types.GuardrailConverseImageFormat(jtv) + } + + case "source": + if err := awsRestjson1_deserializeDocumentGuardrailConverseImageSource(&sv.Source, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentGuardrailConverseImageSource(v *types.GuardrailConverseImageSource, 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.GuardrailConverseImageSource +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "bytes": + var mv []byte + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Blob to be []byte, got %T instead", value) + } + dv, err := base64.StdEncoding.DecodeString(jtv) + if err != nil { + return fmt.Errorf("failed to base64 decode Blob, %w", err) + } + mv = dv + } + uv = &types.GuardrailConverseImageSourceMemberBytes{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + func awsRestjson1_deserializeDocumentGuardrailConverseTextBlock(v **types.GuardrailConverseTextBlock, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/bedrockruntime/serializers.go b/service/bedrockruntime/serializers.go index 08887067be2..2ac3a08b3fd 100644 --- a/service/bedrockruntime/serializers.go +++ b/service/bedrockruntime/serializers.go @@ -1141,6 +1141,12 @@ func awsRestjson1_serializeDocumentGuardrailContentBlock(v types.GuardrailConten defer object.Close() switch uv := v.(type) { + case *types.GuardrailContentBlockMemberImage: + av := object.Key("image") + if err := awsRestjson1_serializeDocumentGuardrailImageBlock(&uv.Value, av); err != nil { + return err + } + case *types.GuardrailContentBlockMemberText: av := object.Key("text") if err := awsRestjson1_serializeDocumentGuardrailTextBlock(&uv.Value, av); err != nil { @@ -1186,6 +1192,12 @@ func awsRestjson1_serializeDocumentGuardrailConverseContentBlock(v types.Guardra defer object.Close() switch uv := v.(type) { + case *types.GuardrailConverseContentBlockMemberImage: + av := object.Key("image") + if err := awsRestjson1_serializeDocumentGuardrailConverseImageBlock(&uv.Value, av); err != nil { + return err + } + case *types.GuardrailConverseContentBlockMemberText: av := object.Key("text") if err := awsRestjson1_serializeDocumentGuardrailConverseTextBlock(&uv.Value, av); err != nil { @@ -1210,6 +1222,41 @@ func awsRestjson1_serializeDocumentGuardrailConverseContentQualifierList(v []typ return nil } +func awsRestjson1_serializeDocumentGuardrailConverseImageBlock(v *types.GuardrailConverseImageBlock, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Format) > 0 { + ok := object.Key("format") + ok.String(string(v.Format)) + } + + if v.Source != nil { + ok := object.Key("source") + if err := awsRestjson1_serializeDocumentGuardrailConverseImageSource(v.Source, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentGuardrailConverseImageSource(v types.GuardrailConverseImageSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.GuardrailConverseImageSourceMemberBytes: + av := object.Key("bytes") + av.Base64EncodeBytes(uv.Value) + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + func awsRestjson1_serializeDocumentGuardrailConverseTextBlock(v *types.GuardrailConverseTextBlock, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1229,6 +1276,41 @@ func awsRestjson1_serializeDocumentGuardrailConverseTextBlock(v *types.Guardrail return nil } +func awsRestjson1_serializeDocumentGuardrailImageBlock(v *types.GuardrailImageBlock, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Format) > 0 { + ok := object.Key("format") + ok.String(string(v.Format)) + } + + if v.Source != nil { + ok := object.Key("source") + if err := awsRestjson1_serializeDocumentGuardrailImageSource(v.Source, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentGuardrailImageSource(v types.GuardrailImageSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.GuardrailImageSourceMemberBytes: + av := object.Key("bytes") + av.Base64EncodeBytes(uv.Value) + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + func awsRestjson1_serializeDocumentGuardrailStreamConfiguration(v *types.GuardrailStreamConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/bedrockruntime/types/enums.go b/service/bedrockruntime/types/enums.go index d00cd184346..39b4d910485 100644 --- a/service/bedrockruntime/types/enums.go +++ b/service/bedrockruntime/types/enums.go @@ -289,6 +289,45 @@ func (GuardrailConverseContentQualifier) Values() []GuardrailConverseContentQual } } +type GuardrailConverseImageFormat string + +// Enum values for GuardrailConverseImageFormat +const ( + GuardrailConverseImageFormatPng GuardrailConverseImageFormat = "png" + GuardrailConverseImageFormatJpeg GuardrailConverseImageFormat = "jpeg" +) + +// Values returns all known values for GuardrailConverseImageFormat. 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 (GuardrailConverseImageFormat) Values() []GuardrailConverseImageFormat { + return []GuardrailConverseImageFormat{ + "png", + "jpeg", + } +} + +type GuardrailImageFormat string + +// Enum values for GuardrailImageFormat +const ( + GuardrailImageFormatPng GuardrailImageFormat = "png" + GuardrailImageFormatJpeg GuardrailImageFormat = "jpeg" +) + +// Values returns all known values for GuardrailImageFormat. 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 (GuardrailImageFormat) Values() []GuardrailImageFormat { + return []GuardrailImageFormat{ + "png", + "jpeg", + } +} + type GuardrailManagedWordType string // Enum values for GuardrailManagedWordType diff --git a/service/bedrockruntime/types/types.go b/service/bedrockruntime/types/types.go index b86f1bab362..f277b6bba90 100644 --- a/service/bedrockruntime/types/types.go +++ b/service/bedrockruntime/types/types.go @@ -419,6 +419,9 @@ type ConverseStreamTrace struct { // The guardrail trace object. Guardrail *GuardrailTraceAssessment + // The request's prompt router. + PromptRouter *PromptRouterTrace + noSmithyDocumentSerde } @@ -430,6 +433,9 @@ type ConverseTrace struct { // The guardrail trace object. Guardrail *GuardrailTraceAssessment + // The request's prompt router. + PromptRouter *PromptRouterTrace + noSmithyDocumentSerde } @@ -537,11 +543,21 @@ type GuardrailConfiguration struct { // // The following types satisfy this interface: // +// GuardrailContentBlockMemberImage // GuardrailContentBlockMemberText type GuardrailContentBlock interface { isGuardrailContentBlock() } +// Image within guardrail content block to be evaluated by the guardrail. +type GuardrailContentBlockMemberImage struct { + Value GuardrailImageBlock + + noSmithyDocumentSerde +} + +func (*GuardrailContentBlockMemberImage) isGuardrailContentBlock() {} + // Text within content block to be evaluated by the guardrail. type GuardrailContentBlockMemberText struct { Value GuardrailTextBlock @@ -626,6 +642,7 @@ type GuardrailContextualGroundingPolicyAssessment struct { // // The following types satisfy this interface: // +// GuardrailConverseContentBlockMemberImage // GuardrailConverseContentBlockMemberText // // [Converse]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html @@ -634,6 +651,15 @@ type GuardrailConverseContentBlock interface { isGuardrailConverseContentBlock() } +// Image within converse content block to be evaluated by the guardrail. +type GuardrailConverseContentBlockMemberImage struct { + Value GuardrailConverseImageBlock + + noSmithyDocumentSerde +} + +func (*GuardrailConverseContentBlockMemberImage) isGuardrailConverseContentBlock() {} + // The text to guard. type GuardrailConverseContentBlockMemberText struct { Value GuardrailConverseTextBlock @@ -643,6 +669,40 @@ type GuardrailConverseContentBlockMemberText struct { func (*GuardrailConverseContentBlockMemberText) isGuardrailConverseContentBlock() {} +// An image block that contains images that you want to assess with a guardrail. +type GuardrailConverseImageBlock struct { + + // The format details for the image type of the guardrail converse image block. + // + // This member is required. + Format GuardrailConverseImageFormat + + // The image source (image bytes) of the guardrail converse image block. + // + // This member is required. + Source GuardrailConverseImageSource + + noSmithyDocumentSerde +} + +// The image source (image bytes) of the guardrail converse image source. +// +// The following types satisfy this interface: +// +// GuardrailConverseImageSourceMemberBytes +type GuardrailConverseImageSource interface { + isGuardrailConverseImageSource() +} + +// The raw image bytes for the image. +type GuardrailConverseImageSourceMemberBytes struct { + Value []byte + + noSmithyDocumentSerde +} + +func (*GuardrailConverseImageSourceMemberBytes) isGuardrailConverseImageSource() {} + // A text block that contains text that you want to assess with a guardrail. For // more information, see GuardrailConverseContentBlock. type GuardrailConverseTextBlock struct { @@ -661,6 +721,10 @@ type GuardrailConverseTextBlock struct { // The action of the guardrail coverage details. type GuardrailCoverage struct { + // The guardrail coverage for images (the number of images that guardrails + // guarded). + Images *GuardrailImageCoverage + // The text characters of the guardrail coverage details. TextCharacters *GuardrailTextCharactersCoverage @@ -683,6 +747,55 @@ type GuardrailCustomWord struct { noSmithyDocumentSerde } +// Contain an image which user wants guarded. This block is accepted by the +// guardrails independent API. +type GuardrailImageBlock struct { + + // The format details for the file type of the image blocked by the guardrail. + // + // This member is required. + Format GuardrailImageFormat + + // The image source (image bytes) details of the image blocked by the guardrail. + // + // This member is required. + Source GuardrailImageSource + + noSmithyDocumentSerde +} + +// The details of the guardrail image coverage. +type GuardrailImageCoverage struct { + + // The count (integer) of images guardrails guarded. + Guarded *int32 + + // Represents the total number of images (integer) that were in the request + // (guarded and unguarded). + Total *int32 + + noSmithyDocumentSerde +} + +// The image source (image bytes) of the guardrail image source. Object used in +// independent api. +// +// The following types satisfy this interface: +// +// GuardrailImageSourceMemberBytes +type GuardrailImageSource interface { + isGuardrailImageSource() +} + +// The bytes details of the guardrail image source. Object used in independent api. +type GuardrailImageSourceMemberBytes struct { + Value []byte + + noSmithyDocumentSerde +} + +func (*GuardrailImageSourceMemberBytes) isGuardrailImageSource() {} + // The invocation metrics for the guardrail. type GuardrailInvocationMetrics struct { @@ -1093,6 +1206,15 @@ type PerformanceConfiguration struct { noSmithyDocumentSerde } +// A prompt router trace. +type PromptRouterTrace struct { + + // The ID of the invoked model. + InvokedModelId *string + + noSmithyDocumentSerde +} + // Contains a map of variables in a prompt from Prompt management to an object // containing the values to fill in for them when running model invocation. For // more information, see [How Prompt management works]. @@ -1549,6 +1671,8 @@ func (*UnknownUnionMember) isConverseStreamOutput() {} func (*UnknownUnionMember) isDocumentSource() {} func (*UnknownUnionMember) isGuardrailContentBlock() {} func (*UnknownUnionMember) isGuardrailConverseContentBlock() {} +func (*UnknownUnionMember) isGuardrailConverseImageSource() {} +func (*UnknownUnionMember) isGuardrailImageSource() {} func (*UnknownUnionMember) isImageSource() {} func (*UnknownUnionMember) isPromptVariableValues() {} func (*UnknownUnionMember) isResponseStream() {} diff --git a/service/bedrockruntime/types/types_exported_test.go b/service/bedrockruntime/types/types_exported_test.go index 9181f86ce96..f17d534a9c8 100644 --- a/service/bedrockruntime/types/types_exported_test.go +++ b/service/bedrockruntime/types/types_exported_test.go @@ -186,6 +186,9 @@ func ExampleGuardrailContentBlock_outputUsage() { var union types.GuardrailContentBlock // type switches can be used to check the union value switch v := union.(type) { + case *types.GuardrailContentBlockMemberImage: + _ = v.Value // Value is types.GuardrailImageBlock + case *types.GuardrailContentBlockMemberText: _ = v.Value // Value is types.GuardrailTextBlock @@ -198,12 +201,16 @@ func ExampleGuardrailContentBlock_outputUsage() { } } +var _ *types.GuardrailImageBlock var _ *types.GuardrailTextBlock func ExampleGuardrailConverseContentBlock_outputUsage() { var union types.GuardrailConverseContentBlock // type switches can be used to check the union value switch v := union.(type) { + case *types.GuardrailConverseContentBlockMemberImage: + _ = v.Value // Value is types.GuardrailConverseImageBlock + case *types.GuardrailConverseContentBlockMemberText: _ = v.Value // Value is types.GuardrailConverseTextBlock @@ -217,6 +224,43 @@ func ExampleGuardrailConverseContentBlock_outputUsage() { } var _ *types.GuardrailConverseTextBlock +var _ *types.GuardrailConverseImageBlock + +func ExampleGuardrailConverseImageSource_outputUsage() { + var union types.GuardrailConverseImageSource + // type switches can be used to check the union value + switch v := union.(type) { + case *types.GuardrailConverseImageSourceMemberBytes: + _ = v.Value // Value is []byte + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ []byte + +func ExampleGuardrailImageSource_outputUsage() { + var union types.GuardrailImageSource + // type switches can be used to check the union value + switch v := union.(type) { + case *types.GuardrailImageSourceMemberBytes: + _ = v.Value // Value is []byte + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ []byte func ExampleImageSource_outputUsage() { var union types.ImageSource diff --git a/service/bedrockruntime/validators.go b/service/bedrockruntime/validators.go index cbf1c6295b2..4dadc666246 100644 --- a/service/bedrockruntime/validators.go +++ b/service/bedrockruntime/validators.go @@ -318,6 +318,11 @@ func validateGuardrailContentBlock(v types.GuardrailContentBlock) error { } invalidParams := smithy.InvalidParamsError{Context: "GuardrailContentBlock"} switch uv := v.(type) { + case *types.GuardrailContentBlockMemberImage: + if err := validateGuardrailImageBlock(&uv.Value); err != nil { + invalidParams.AddNested("[image]", err.(smithy.InvalidParamsError)) + } + case *types.GuardrailContentBlockMemberText: if err := validateGuardrailTextBlock(&uv.Value); err != nil { invalidParams.AddNested("[text]", err.(smithy.InvalidParamsError)) @@ -354,6 +359,11 @@ func validateGuardrailConverseContentBlock(v types.GuardrailConverseContentBlock } invalidParams := smithy.InvalidParamsError{Context: "GuardrailConverseContentBlock"} switch uv := v.(type) { + case *types.GuardrailConverseContentBlockMemberImage: + if err := validateGuardrailConverseImageBlock(&uv.Value); err != nil { + invalidParams.AddNested("[image]", err.(smithy.InvalidParamsError)) + } + case *types.GuardrailConverseContentBlockMemberText: if err := validateGuardrailConverseTextBlock(&uv.Value); err != nil { invalidParams.AddNested("[text]", err.(smithy.InvalidParamsError)) @@ -367,6 +377,24 @@ func validateGuardrailConverseContentBlock(v types.GuardrailConverseContentBlock } } +func validateGuardrailConverseImageBlock(v *types.GuardrailConverseImageBlock) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GuardrailConverseImageBlock"} + if len(v.Format) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Format")) + } + if v.Source == nil { + invalidParams.Add(smithy.NewErrParamRequired("Source")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGuardrailConverseTextBlock(v *types.GuardrailConverseTextBlock) error { if v == nil { return nil @@ -382,6 +410,24 @@ func validateGuardrailConverseTextBlock(v *types.GuardrailConverseTextBlock) err } } +func validateGuardrailImageBlock(v *types.GuardrailImageBlock) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GuardrailImageBlock"} + if len(v.Format) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Format")) + } + if v.Source == nil { + invalidParams.Add(smithy.NewErrParamRequired("Source")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGuardrailStreamConfiguration(v *types.GuardrailStreamConfiguration) error { if v == nil { return nil diff --git a/service/kendra/api_op_CreateAccessControlConfiguration.go b/service/kendra/api_op_CreateAccessControlConfiguration.go index 3f3d4c4e32b..2728e774157 100644 --- a/service/kendra/api_op_CreateAccessControlConfiguration.go +++ b/service/kendra/api_op_CreateAccessControlConfiguration.go @@ -35,6 +35,10 @@ import ( // currently only supports access control configuration for S3 data sources and // documents indexed using the BatchPutDocument API. // +// You can't configure access control using CreateAccessControlConfiguration for +// an Amazon Kendra Gen AI Enterprise Edition index. Amazon Kendra will return a +// ValidationException error for a Gen_AI_ENTERPRISE_EDITION index. +// // [BatchPutDocument]: https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html // [Document]: https://docs.aws.amazon.com/kendra/latest/dg/API_Document.html func (c *Client) CreateAccessControlConfiguration(ctx context.Context, params *CreateAccessControlConfigurationInput, optFns ...func(*Options)) (*CreateAccessControlConfigurationOutput, error) { diff --git a/service/kendra/api_op_CreateFaq.go b/service/kendra/api_op_CreateFaq.go index eb168ed6c3d..7c535367b71 100644 --- a/service/kendra/api_op_CreateFaq.go +++ b/service/kendra/api_op_CreateFaq.go @@ -47,7 +47,7 @@ type CreateFaqInput struct { Name *string // The Amazon Resource Name (ARN) of an IAM role with permission to access the S3 - // bucket that contains the FAQs. For more information, see [IAM access roles for Amazon Kendra]. + // bucket that contains the FAQ file. For more information, see [IAM access roles for Amazon Kendra]. // // [IAM access roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html // diff --git a/service/kendra/api_op_CreateIndex.go b/service/kendra/api_op_CreateIndex.go index f7ff0edc84a..959898524b1 100644 --- a/service/kendra/api_op_CreateIndex.go +++ b/service/kendra/api_op_CreateIndex.go @@ -65,14 +65,15 @@ type CreateIndexInput struct { // The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION for // indexes intended for development, testing, or proof of concept. Use - // ENTERPRISE_EDITION for production. Once you set the edition for an index, it - // can't be changed. + // ENTERPRISE_EDITION for production. Use GEN_AI_ENTERPRISE_EDITION for creating + // generative AI applications. Once you set the edition for an index, it can't be + // changed. // // The Edition parameter is optional. If you don't supply a value, the default is // ENTERPRISE_EDITION . // - // For more information on quota limits for Enterprise and Developer editions, see [Quotas] - // . + // For more information on quota limits for Gen AI Enterprise Edition, Enterprise + // Edition, and Developer Edition indices, see [Quotas]. // // [Quotas]: https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Edition types.IndexEdition @@ -89,6 +90,12 @@ type CreateIndexInput struct { // The user context policy. // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only + // use ATTRIBUTE_FILTER to filter search results by user context. If you're using + // an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN + // to configure user context policy, Amazon Kendra returns a ValidationException + // error. + // // ATTRIBUTE_FILTER All indexed content is searchable and displayable for all // users. If you want to filter search results on user context, you can use the // attribute filters of _user_id and _group_ids or you can provide user and group @@ -103,10 +110,17 @@ type CreateIndexInput struct { // this, see [UserGroupResolutionConfiguration]. This is useful for user context filtering, where search results are // filtered based on the user or their group access to documents. // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index, + // UserGroupResolutionConfiguration isn't supported. + // // [UserGroupResolutionConfiguration]: https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration *types.UserGroupResolutionConfiguration // The user token configuration. + // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to + // use UserTokenConfigurations to configure user context policy, Amazon Kendra + // returns a ValidationException error. UserTokenConfigurations []types.UserTokenConfiguration noSmithyDocumentSerde diff --git a/service/kendra/api_op_DeleteFaq.go b/service/kendra/api_op_DeleteFaq.go index eaeb3342a35..0349ec5760f 100644 --- a/service/kendra/api_op_DeleteFaq.go +++ b/service/kendra/api_op_DeleteFaq.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes an FAQ from an index. +// Removes a FAQ from an index. func (c *Client) DeleteFaq(ctx context.Context, params *DeleteFaqInput, optFns ...func(*Options)) (*DeleteFaqOutput, error) { if params == nil { params = &DeleteFaqInput{} diff --git a/service/kendra/api_op_DeletePrincipalMapping.go b/service/kendra/api_op_DeletePrincipalMapping.go index 45720655f89..91fff5f857f 100644 --- a/service/kendra/api_op_DeletePrincipalMapping.go +++ b/service/kendra/api_op_DeletePrincipalMapping.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a group so that all users and sub groups that belong to the group can -// no longer access documents only available to that group. +// Deletes a group so that all users that belong to the group can no longer access +// documents only available to that group. // // For example, after deleting the group "Summer Interns", all interns who // belonged to that group no longer see intern-only documents in their search diff --git a/service/kendra/api_op_DescribeDataSource.go b/service/kendra/api_op_DescribeDataSource.go index 0fb1f708001..5728dbc4a91 100644 --- a/service/kendra/api_op_DescribeDataSource.go +++ b/service/kendra/api_op_DescribeDataSource.go @@ -86,8 +86,8 @@ type DescribeDataSourceOutput struct { // The name for the data source connector. Name *string - // The Amazon Resource Name (ARN) of the role with permission to access the data - // source and required resources. + // The Amazon Resource Name (ARN) of the IAM role with permission to access the + // data source and required resources. RoleArn *string // The schedule for Amazon Kendra to update the index. diff --git a/service/kendra/api_op_DescribeExperience.go b/service/kendra/api_op_DescribeExperience.go index 701775ee539..c8c431b64ac 100644 --- a/service/kendra/api_op_DescribeExperience.go +++ b/service/kendra/api_op_DescribeExperience.go @@ -77,9 +77,9 @@ type DescribeExperienceOutput struct { // Shows the name of your Amazon Kendra experience. Name *string - // Shows the Amazon Resource Name (ARN) of a role with permission to access Query - // API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that - // stores your user and group information. + // The Amazon Resource Name (ARN) of the IAM role with permission to access the + // Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center + // that stores your users and groups information. RoleArn *string // The current processing status of your Amazon Kendra experience. When the status diff --git a/service/kendra/api_op_DescribeFaq.go b/service/kendra/api_op_DescribeFaq.go index 7ef9f92de11..e4ac3008bd3 100644 --- a/service/kendra/api_op_DescribeFaq.go +++ b/service/kendra/api_op_DescribeFaq.go @@ -12,7 +12,7 @@ import ( "time" ) -// Gets information about an FAQ list. +// Gets information about a FAQ. func (c *Client) DescribeFaq(ctx context.Context, params *DescribeFaqInput, optFns ...func(*Options)) (*DescribeFaqOutput, error) { if params == nil { params = &DescribeFaqInput{} @@ -55,7 +55,7 @@ type DescribeFaqOutput struct { // the FAQ failed. ErrorMessage *string - // The file format used by the input files for the FAQ. + // The file format used for the FAQ file. FileFormat types.FaqFileFormat // The identifier of the FAQ. @@ -74,8 +74,8 @@ type DescribeFaqOutput struct { // The name that you gave the FAQ when it was created. Name *string - // The Amazon Resource Name (ARN) of the role that provides access to the S3 - // bucket containing the input files for the FAQ. + // The Amazon Resource Name (ARN) of the IAM role that provides access to the S3 + // bucket containing the FAQ file. RoleArn *string // Information required to find a specific file in an Amazon S3 bucket. diff --git a/service/kendra/api_op_ListFaqs.go b/service/kendra/api_op_ListFaqs.go index ee18e7bf689..b3d8d7c51e8 100644 --- a/service/kendra/api_op_ListFaqs.go +++ b/service/kendra/api_op_ListFaqs.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a list of FAQ lists associated with an index. +// Gets a list of FAQs associated with an index. func (c *Client) ListFaqs(ctx context.Context, params *ListFaqsInput, optFns ...func(*Options)) (*ListFaqsOutput, error) { if params == nil { params = &ListFaqsInput{} @@ -29,7 +29,7 @@ func (c *Client) ListFaqs(ctx context.Context, params *ListFaqsInput, optFns ... type ListFaqsInput struct { - // The index that contains the FAQ lists. + // The index for the FAQs. // // This member is required. IndexId *string @@ -48,7 +48,7 @@ type ListFaqsInput struct { type ListFaqsOutput struct { - // information about the FAQs associated with the specified index. + // Summary information about the FAQs for a specified index. FaqSummaryItems []types.FaqSummary // If the response is truncated, Amazon Kendra returns this token that you can use diff --git a/service/kendra/api_op_ListTagsForResource.go b/service/kendra/api_op_ListTagsForResource.go index 56022287a81..449e9c33a79 100644 --- a/service/kendra/api_op_ListTagsForResource.go +++ b/service/kendra/api_op_ListTagsForResource.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a list of tags associated with a specified resource. Indexes, FAQs, and -// data sources can have tags associated with them. +// Gets a list of tags associated with a resource. Indexes, FAQs, data sources, +// and other resources can have tags associated with them. func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { if params == nil { params = &ListTagsForResourceInput{} @@ -30,8 +30,13 @@ func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForRes type ListTagsForResourceInput struct { - // The Amazon Resource Name (ARN) of the index, FAQ, or data source to get a list - // of tags for. + // The Amazon Resource Name (ARN) of the index, FAQ, data source, or other + // resource to get a list of tags for. For example, the ARN of an index is + // constructed as follows: + // arn:aws:kendra:your-region:your-account-id:index/index-id For information on how + // to construct an ARN for all types of Amazon Kendra resources, see [Resource types]. + // + // [Resource types]: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html#amazonkendra-resources-for-iam-policies // // This member is required. ResourceARN *string @@ -41,7 +46,7 @@ type ListTagsForResourceInput struct { type ListTagsForResourceOutput struct { - // A list of tags associated with the index, FAQ, or data source. + // A list of tags associated with the index, FAQ, data source, or other resource. Tags []types.Tag // Metadata pertaining to the operation's result. diff --git a/service/kendra/api_op_PutPrincipalMapping.go b/service/kendra/api_op_PutPrincipalMapping.go index 1e0afced111..29ee631cef1 100644 --- a/service/kendra/api_op_PutPrincipalMapping.go +++ b/service/kendra/api_op_PutPrincipalMapping.go @@ -51,9 +51,10 @@ type PutPrincipalMappingInput struct { // This member is required. GroupId *string - // The list that contains your users or sub groups that belong the same group. + // The list that contains your users that belong the same group. This can include + // sub groups that belong to a group. // - // For example, the group "Company" includes the user "CEO" and the sub groups + // For example, the group "Company A" includes the user "CEO" and the sub groups // "Research", "Engineering", and "Sales and Marketing". // // If you have more than 1000 users and/or sub groups for a single group, you need @@ -79,7 +80,7 @@ type PutPrincipalMappingInput struct { // documents stored in Salesforce. DataSourceId *string - // The timestamp identifier you specify to ensure Amazon Kendra does not override + // The timestamp identifier you specify to ensure Amazon Kendra doesn't override // the latest PUT action with previous actions. The highest number ID, which is // the ordering ID, is the latest action you want to process and apply on top of // other actions with lower number IDs. This prevents previous actions with lower @@ -95,8 +96,8 @@ type PutPrincipalMappingInput struct { // action was received by Amazon Kendra. OrderingId *int64 - // The Amazon Resource Name (ARN) of a role that has access to the S3 file that - // contains your list of users or sub groups 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. // // For more information, see [IAM roles for Amazon Kendra]. // diff --git a/service/kendra/api_op_Query.go b/service/kendra/api_op_Query.go index 40b3d086194..555c5af73e2 100644 --- a/service/kendra/api_op_Query.go +++ b/service/kendra/api_op_Query.go @@ -41,6 +41,12 @@ import ( // results are returned. If you filter result type to only answers, a maximum of // three results are returned. // +// If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only +// use ATTRIBUTE_FILTER to filter search results by user context. If you're using +// an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN +// to configure user context policy, Amazon Kendra returns a ValidationException +// error. +// // [Retrieve]: https://docs.aws.amazon.com/kendra/latest/APIReference/API_Retrieve.html func (c *Client) Query(ctx context.Context, params *QueryInput, optFns ...func(*Options)) (*QueryOutput, error) { if params == nil { @@ -70,6 +76,10 @@ type QueryInput struct { // // The AttributeFilter parameter means you can create a set of filtering rules // that a document must satisfy to be included in the query results. + // + // For Amazon Kendra Gen AI Enterprise Edition indices use AttributeFilter to + // enable document filtering for end users using _email_id or include public + // documents ( _email_id=null ). AttributeFilter *types.AttributeFilter // Provides configuration to determine how to group results by document attribute diff --git a/service/kendra/api_op_Retrieve.go b/service/kendra/api_op_Retrieve.go index 06fe49783cb..dc31e729997 100644 --- a/service/kendra/api_op_Retrieve.go +++ b/service/kendra/api_op_Retrieve.go @@ -43,6 +43,12 @@ import ( // information on what's included in a single capacity unit and the default base // capacity for an index, see [Adjusting capacity]. // +// If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only +// use ATTRIBUTE_FILTER to filter search results by user context. If you're using +// an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN +// to configure user context policy, Amazon Kendra returns a ValidationException +// error. +// // [Adjusting capacity]: https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html // [Query]: https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html // [query capacity units]: https://docs.aws.amazon.com/kendra/latest/APIReference/API_CapacityUnitsConfiguration.html @@ -86,6 +92,10 @@ type RetrieveInput struct { // // The AttributeFilter parameter means you can create a set of filtering rules // that a document must satisfy to be included in the query results. + // + // For Amazon Kendra Gen AI Enterprise Edition indices use AttributeFilter to + // enable document filtering for end users using _email_id or include public + // documents ( _email_id=null ). AttributeFilter *types.AttributeFilter // Overrides relevance tuning configurations of fields/attributes set at the index diff --git a/service/kendra/api_op_TagResource.go b/service/kendra/api_op_TagResource.go index f3f0f9f5fb9..92ab4761407 100644 --- a/service/kendra/api_op_TagResource.go +++ b/service/kendra/api_op_TagResource.go @@ -11,8 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds the specified tag to the specified index, FAQ, or data source resource. If -// the tag already exists, the existing value is replaced with the new value. +// Adds the specified tag to the specified index, FAQ, data source, or other +// resource. If the tag already exists, the existing value is replaced with the new +// value. func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} @@ -30,13 +31,19 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { - // The Amazon Resource Name (ARN) of the index, FAQ, or data source to tag. + // The Amazon Resource Name (ARN) of the index, FAQ, data source, or other + // resource to add a tag. For example, the ARN of an index is constructed as + // follows: arn:aws:kendra:your-region:your-account-id:index/index-id For + // information on how to construct an ARN for all types of Amazon Kendra resources, + // see [Resource types]. + // + // [Resource types]: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html#amazonkendra-resources-for-iam-policies // // This member is required. ResourceARN *string - // A list of tag keys to add to the index, FAQ, or data source. If a tag already - // exists, the existing value is replaced with the new value. + // A list of tag keys to add to the index, FAQ, data source, or other resource. If + // a tag already exists, the existing value is replaced with the new value. // // This member is required. Tags []types.Tag diff --git a/service/kendra/api_op_UntagResource.go b/service/kendra/api_op_UntagResource.go index 7982b214435..c9afd55d44f 100644 --- a/service/kendra/api_op_UntagResource.go +++ b/service/kendra/api_op_UntagResource.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes a tag from an index, FAQ, or a data source. +// Removes a tag from an index, FAQ, data source, or other resource. func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, optFns ...func(*Options)) (*UntagResourceOutput, error) { if params == nil { params = &UntagResourceInput{} @@ -28,14 +28,19 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { - // The Amazon Resource Name (ARN) of the index, FAQ, or data source to remove the - // tag from. + // The Amazon Resource Name (ARN) of the index, FAQ, data source, or other + // resource to remove a tag. For example, the ARN of an index is constructed as + // follows: arn:aws:kendra:your-region:your-account-id:index/index-id For + // information on how to construct an ARN for all types of Amazon Kendra resources, + // see [Resource types]. + // + // [Resource types]: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html#amazonkendra-resources-for-iam-policies // // This member is required. ResourceARN *string - // A list of tag keys to remove from the index, FAQ, or data source. If a tag key - // does not exist on the resource, it is ignored. + // A list of tag keys to remove from the index, FAQ, data source, or other + // resource. If a tag key doesn't exist for the resource, it is ignored. // // This member is required. TagKeys []string diff --git a/service/kendra/api_op_UpdateAccessControlConfiguration.go b/service/kendra/api_op_UpdateAccessControlConfiguration.go index edb58ad84a9..b84653e4da2 100644 --- a/service/kendra/api_op_UpdateAccessControlConfiguration.go +++ b/service/kendra/api_op_UpdateAccessControlConfiguration.go @@ -33,6 +33,10 @@ import ( // currently only supports access control configuration for S3 data sources and // documents indexed using the BatchPutDocument API. // +// You can't configure access control using CreateAccessControlConfiguration for +// an Amazon Kendra Gen AI Enterprise Edition index. Amazon Kendra will return a +// ValidationException error for a Gen_AI_ENTERPRISE_EDITION index. +// // [BatchPutDocument]: https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html // [Document]: https://docs.aws.amazon.com/kendra/latest/dg/API_Document.html func (c *Client) UpdateAccessControlConfiguration(ctx context.Context, params *UpdateAccessControlConfigurationInput, optFns ...func(*Options)) (*UpdateAccessControlConfigurationOutput, error) { diff --git a/service/kendra/api_op_UpdateDataSource.go b/service/kendra/api_op_UpdateDataSource.go index 479e9d86c83..94f5d4a40ba 100644 --- a/service/kendra/api_op_UpdateDataSource.go +++ b/service/kendra/api_op_UpdateDataSource.go @@ -66,8 +66,8 @@ type UpdateDataSourceInput struct { // A new name for the data source connector. Name *string - // The Amazon Resource Name (ARN) of a role with permission to access the data - // source and required resources. For more information, see [IAM roles for Amazon Kendra]. + // The Amazon Resource Name (ARN) of an IAM role with permission to access the + // data source and required resources. For more information, see [IAM roles for Amazon Kendra]. // // [IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html RoleArn *string diff --git a/service/kendra/api_op_UpdateExperience.go b/service/kendra/api_op_UpdateExperience.go index ba88b2b410d..c75916d63d0 100644 --- a/service/kendra/api_op_UpdateExperience.go +++ b/service/kendra/api_op_UpdateExperience.go @@ -51,9 +51,9 @@ type UpdateExperienceInput struct { // A new name for your Amazon Kendra experience. Name *string - // The Amazon Resource Name (ARN) of a role with permission to access Query API, - // QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that stores - // your user and group information. For more information, see [IAM roles for Amazon Kendra]. + // The Amazon Resource Name (ARN) of an IAM role with permission to access the + // Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center + // that stores your users and groups information. For more information, see [IAM roles for Amazon Kendra]. // // [IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html RoleArn *string diff --git a/service/kendra/api_op_UpdateIndex.go b/service/kendra/api_op_UpdateIndex.go index 5562e020e8c..a46dbe251a4 100644 --- a/service/kendra/api_op_UpdateIndex.go +++ b/service/kendra/api_op_UpdateIndex.go @@ -58,16 +58,29 @@ type UpdateIndexInput struct { RoleArn *string // The user context policy. + // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only + // use ATTRIBUTE_FILTER to filter search results by user context. If you're using + // an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN + // to configure user context policy, Amazon Kendra returns a ValidationException + // error. UserContextPolicy types.UserContextPolicy // Gets users and groups from IAM Identity Center identity source. To configure // this, see [UserGroupResolutionConfiguration]. This is useful for user context filtering, where search results are // filtered based on the user or their group access to documents. // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index, + // UserGroupResolutionConfiguration isn't supported. + // // [UserGroupResolutionConfiguration]: https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration *types.UserGroupResolutionConfiguration // The user token configuration. + // + // If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to + // use UserTokenConfigurations to configure user context policy, Amazon Kendra + // returns a ValidationException error. UserTokenConfigurations []types.UserTokenConfiguration noSmithyDocumentSerde diff --git a/service/kendra/deserializers.go b/service/kendra/deserializers.go index 9f8283493fb..93ac27ba7f5 100644 --- a/service/kendra/deserializers.go +++ b/service/kendra/deserializers.go @@ -9045,6 +9045,15 @@ func awsAwsjson11_deserializeDocumentBatchDeleteDocumentResponseFailedDocument(v for key, value := range shape { switch key { + case "DataSourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataSourceId to be of type string, got %T instead", value) + } + sv.DataSourceId = ptr.String(jtv) + } + case "ErrorCode": if value != nil { jtv, ok := value.(string) @@ -9229,6 +9238,15 @@ func awsAwsjson11_deserializeDocumentBatchGetDocumentStatusResponseError(v **typ for key, value := range shape { switch key { + case "DataSourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataSourceId to be of type string, got %T instead", value) + } + sv.DataSourceId = ptr.String(jtv) + } + case "DocumentId": if value != nil { jtv, ok := value.(string) @@ -9321,6 +9339,15 @@ func awsAwsjson11_deserializeDocumentBatchPutDocumentResponseFailedDocument(v ** for key, value := range shape { switch key { + case "DataSourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataSourceId to be of type string, got %T instead", value) + } + sv.DataSourceId = ptr.String(jtv) + } + case "ErrorCode": if value != nil { jtv, ok := value.(string) diff --git a/service/kendra/types/enums.go b/service/kendra/types/enums.go index 78a0e85e928..f0d6f379fd0 100644 --- a/service/kendra/types/enums.go +++ b/service/kendra/types/enums.go @@ -671,8 +671,9 @@ type IndexEdition string // Enum values for IndexEdition const ( - IndexEditionDeveloperEdition IndexEdition = "DEVELOPER_EDITION" - IndexEditionEnterpriseEdition IndexEdition = "ENTERPRISE_EDITION" + IndexEditionDeveloperEdition IndexEdition = "DEVELOPER_EDITION" + IndexEditionEnterpriseEdition IndexEdition = "ENTERPRISE_EDITION" + IndexEditionGenAiEnterpriseEdition IndexEdition = "GEN_AI_ENTERPRISE_EDITION" ) // Values returns all known values for IndexEdition. Note that this can be @@ -683,6 +684,7 @@ func (IndexEdition) Values() []IndexEdition { return []IndexEdition{ "DEVELOPER_EDITION", "ENTERPRISE_EDITION", + "GEN_AI_ENTERPRISE_EDITION", } } diff --git a/service/kendra/types/types.go b/service/kendra/types/types.go index 36348821346..9e97e02e215 100644 --- a/service/kendra/types/types.go +++ b/service/kendra/types/types.go @@ -186,19 +186,19 @@ type AlfrescoConfiguration struct { // department. You would use the EqualsTo operation to filter results or documents // with "Department" equals to "HR". // -// You can use AndAllFilters and AndOrFilters in combination with each other or +// You can use AndAllFilters and OrAllFilters in combination with each other or // with other operations such as EqualsTo . For example: // // AndAllFilters // // - EqualsTo : "Department", "HR" // -// - AndOrFilters +// - OrAllFilters // // - ContainsAny : "Project Name", ["new hires", "new hiring"] // -// This example filters results or documents that belong to the HR department and -// belong to projects that contain "new hires" or "new hiring" in the project name +// This example filters results or documents that belong to the HR department AND +// belong to projects that contain "new hires" OR "new hiring" in the project name // (must use ContainAny with StringListValue ). This example is filtering with a // depth of 2. // @@ -358,7 +358,8 @@ type AuthenticationConfiguration struct { // basic user authentication. type BasicAuthenticationConfiguration struct { - // Your secret ARN, which you can create in [Secrets Manager] + // The Amazon Resource Name (ARN) of an Secrets Manager secret. You create a + // secret to store your credentials in [Secrets Manager] // // You use a secret if basic authentication credentials are required to connect to // a website. The secret stores your credentials of user name and password. @@ -393,6 +394,9 @@ type BasicAuthenticationConfiguration struct { // the BatchDeleteDocument API. type BatchDeleteDocumentResponseFailedDocument struct { + // The identifier of the data source connector that the document belongs to. + DataSourceId *string + // The error code for why the document couldn't be removed from the index. ErrorCode ErrorCode @@ -435,6 +439,10 @@ type BatchDeleteFeaturedResultsSetError struct { // Provides a response when the status of a document could not be retrieved. type BatchGetDocumentStatusResponseError struct { + // The identifier of the data source connector that the failed document belongs + // to. + DataSourceId *string + // The identifier of the document whose status could not be retrieved. DocumentId *string @@ -451,6 +459,10 @@ type BatchGetDocumentStatusResponseError struct { // Provides information about a document that could not be indexed. type BatchPutDocumentResponseFailedDocument struct { + // The identifier of the data source connector that the failed document belongs + // to. + DataSourceId *string + // The type of error that caused the document to fail to be indexed. ErrorCode ErrorCode @@ -1019,9 +1031,10 @@ type ConnectionConfiguration struct { // This member is required. DatabasePort *int32 - // The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The - // credentials should be a user/password pair. For more information, see [Using a Database Data Source]. For - // more information about Secrets Manager, see [What Is Secrets Manager]in the Secrets Manager user guide. + // The Amazon Resource Name (ARN) of an Secrets Manager secret that stores the + // credentials. The credentials should be a user-password pair. For more + // information, see [Using a Database Data Source]. For more information about Secrets Manager, see [What Is Secrets Manager] in the + // Secrets Manager user guide. // // [Using a Database Data Source]: https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html // [What Is Secrets Manager]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html @@ -1105,12 +1118,12 @@ type CustomDocumentEnrichmentConfiguration struct { // [Advanced data manipulation]: https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation PreExtractionHookConfiguration *HookConfiguration - // The Amazon Resource Name (ARN) of a role with permission to run + // The Amazon Resource Name (ARN) of an IAM role with permission to run // PreExtractionHookConfiguration and PostExtractionHookConfiguration for altering // document metadata and content during the document ingestion process. For more - // information, see [IAM roles for Amazon Kendra]. + // information, see [an IAM roles for Amazon Kendra]. // - // [IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html + // [an IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html RoleArn *string noSmithyDocumentSerde @@ -2048,11 +2061,11 @@ type FailedEntity struct { noSmithyDocumentSerde } -// Provides statistical information about the FAQ questions and answers contained -// in an index. +// Provides statistical information about the FAQ questions and answers for an +// index. type FaqStatistics struct { - // The total number of FAQ questions and answers contained in the index. + // The total number of FAQ questions and answers for an index. // // This member is required. IndexedQuestionAnswersCount int32 @@ -2624,14 +2637,14 @@ type GoogleDriveConfiguration struct { noSmithyDocumentSerde } -// A list of users or sub groups that belong to a group. This is useful for user -// context filtering, where search results are filtered based on the user or their -// group access to documents. +// A list of users that belong to a group. This is useful for user context +// filtering, where search results are filtered based on the user or their group +// access to documents. type GroupMembers struct { - // A list of sub groups that belong to a group. For example, the sub groups - // "Research", "Engineering", and "Sales and Marketing" all belong to the group - // "Company". + // A list of users that belong to a group. This can also include sub groups. For + // example, the sub groups "Research", "Engineering", and "Sales and Marketing" all + // belong to the group "Company A". MemberGroups []MemberGroup // A list of users that belong to a group. For example, a list of interns all @@ -2748,10 +2761,10 @@ type Highlight struct { // [PostExtractionHookConfiguration]: https://docs.aws.amazon.com/kendra/latest/dg/API_CustomDocumentEnrichmentConfiguration.html type HookConfiguration struct { - // The Amazon Resource Name (ARN) of a role with permission to run a Lambda - // function during ingestion. For more information, see [IAM roles for Amazon Kendra]. + // The Amazon Resource Name (ARN) of an IAM role with permission to run a Lambda + // function during ingestion. For more information, see [an IAM roles for Amazon Kendra]. // - // [IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html + // [an IAM roles for Amazon Kendra]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html // // This member is required. LambdaArn *string @@ -3088,7 +3101,7 @@ type OneDriveUsers struct { // A list of users whose documents should be indexed. Specify the user names in // email format, for example, username@tenantdomain . If you need to index the - // documents of more than 100 users, use the OneDriveUserS3Path field to specify + // documents of more than 10 users, use the OneDriveUserS3Path field to specify // the location of a file containing a list of users. OneDriveUserList []string @@ -3207,7 +3220,8 @@ type ProxyConfiguration struct { // This member is required. Port *int32 - // Your secret ARN, which you can create in [Secrets Manager] + // The Amazon Resource Name (ARN) of an Secrets Manager secret. You create a + // secret to store your credentials in [Secrets Manager] // // The credentials are optional. You use a secret if web proxy credentials are // required to connect to a website host. Amazon Kendra currently support basic @@ -4580,13 +4594,13 @@ type TableRow struct { noSmithyDocumentSerde } -// A list of key/value pairs that identify an index, FAQ, or data source. Tag keys -// and values can consist of Unicode letters, digits, white space, and any of the -// following symbols: _ . : / = + - @. +// A key-value pair that identifies or categorizes an index, FAQ, data source, or +// other resource. TA tag key and value can consist of Unicode letters, digits, +// white space, and any of the following symbols: _ . : / = + - @. type Tag struct { // The key for the tag. Keys are not case sensitive and must be unique for the - // index, FAQ, or data source. + // index, FAQ, data source, or other resource. // // This member is required. Key *string @@ -4725,6 +4739,15 @@ type Urls struct { // can access. // // If you provide both, an exception is thrown. +// +// If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can use +// UserId , Groups , and DataSourceGroups to filter content. If you set the UserId +// to a particular user ID, it also includes all public documents. +// +// Amazon Kendra Gen AI Enterprise Edition indices don't support token based +// document filtering. If you're using an Amazon Kendra Gen AI Enterprise Edition +// index, Amazon Kendra returns a ValidationException error if the Token field has +// a non-null value. type UserContext struct { // The list of data source groups you want to filter search results based on @@ -4761,6 +4784,9 @@ type UserContext struct { // Center identify source. You must create your index in the management account for // the organization in order to use UserGroupResolutionConfiguration . // +// If you're using an Amazon Kendra Gen AI Enterprise Edition index, +// UserGroupResolutionConfiguration isn't supported. +// // [Getting started with an IAM Identity Center identity source]: https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html // [IAM roles for IAM Identity Center]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-aws-sso // [PutPrincipalMapping]: https://docs.aws.amazon.com/kendra/latest/dg/API_PutPrincipalMapping.html @@ -4793,6 +4819,10 @@ type UserIdentityConfiguration struct { } // Provides the configuration information for a token. +// +// If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to +// use UserTokenConfigurations to configure user context policy, Amazon Kendra +// returns a ValidationException error. type UserTokenConfiguration struct { // Information about the JSON token type configuration. diff --git a/service/sagemaker/api_op_CreateClusterSchedulerConfig.go b/service/sagemaker/api_op_CreateClusterSchedulerConfig.go new file mode 100644 index 00000000000..1fe561915db --- /dev/null +++ b/service/sagemaker/api_op_CreateClusterSchedulerConfig.go @@ -0,0 +1,182 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Create cluster policy configuration. This policy is used for task +// prioritization and fair-share allocation of idle compute. This helps prioritize +// critical workloads and distributes idle compute across entities. +func (c *Client) CreateClusterSchedulerConfig(ctx context.Context, params *CreateClusterSchedulerConfigInput, optFns ...func(*Options)) (*CreateClusterSchedulerConfigOutput, error) { + if params == nil { + params = &CreateClusterSchedulerConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateClusterSchedulerConfig", params, optFns, c.addOperationCreateClusterSchedulerConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateClusterSchedulerConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateClusterSchedulerConfigInput struct { + + // ARN of the cluster. + // + // This member is required. + ClusterArn *string + + // Name for the cluster policy. + // + // This member is required. + Name *string + + // Configuration about the monitoring schedule. + // + // This member is required. + SchedulerConfig *types.SchedulerConfig + + // Description of the cluster policy. + Description *string + + // Tags of the cluster policy. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateClusterSchedulerConfigOutput struct { + + // ARN of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigArn *string + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateClusterSchedulerConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateClusterSchedulerConfig"); 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 = addOpCreateClusterSchedulerConfigValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateClusterSchedulerConfig(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_opCreateClusterSchedulerConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateClusterSchedulerConfig", + } +} diff --git a/service/sagemaker/api_op_CreateComputeQuota.go b/service/sagemaker/api_op_CreateComputeQuota.go new file mode 100644 index 00000000000..8c26179becc --- /dev/null +++ b/service/sagemaker/api_op_CreateComputeQuota.go @@ -0,0 +1,194 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Create compute allocation definition. This defines how compute is allocated, +// shared, and borrowed for specified entities. Specifically, how to lend and +// borrow idle compute and assign a fair-share weight to the specified entities. +func (c *Client) CreateComputeQuota(ctx context.Context, params *CreateComputeQuotaInput, optFns ...func(*Options)) (*CreateComputeQuotaOutput, error) { + if params == nil { + params = &CreateComputeQuotaInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateComputeQuota", params, optFns, c.addOperationCreateComputeQuotaMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateComputeQuotaOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateComputeQuotaInput struct { + + // ARN of the cluster. + // + // This member is required. + ClusterArn *string + + // Configuration of the compute allocation definition. This includes the resource + // sharing option, and the setting to preempt low priority tasks. + // + // This member is required. + ComputeQuotaConfig *types.ComputeQuotaConfig + + // The target entity to allocate compute resources to. + // + // This member is required. + ComputeQuotaTarget *types.ComputeQuotaTarget + + // Name to the compute allocation definition. + // + // This member is required. + Name *string + + // The state of the compute allocation being described. Use to enable or disable + // compute allocation. + // + // Default is Enabled . + ActivationState types.ActivationState + + // Description of the compute allocation definition. + Description *string + + // Tags of the compute allocation definition. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateComputeQuotaOutput struct { + + // ARN of the compute allocation definition. + // + // This member is required. + ComputeQuotaArn *string + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateComputeQuotaMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateComputeQuota{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateComputeQuota{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateComputeQuota"); 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 = addOpCreateComputeQuotaValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateComputeQuota(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_opCreateComputeQuota(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateComputeQuota", + } +} diff --git a/service/sagemaker/api_op_CreatePartnerApp.go b/service/sagemaker/api_op_CreatePartnerApp.go new file mode 100644 index 00000000000..96f469579c5 --- /dev/null +++ b/service/sagemaker/api_op_CreatePartnerApp.go @@ -0,0 +1,233 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an Amazon SageMaker Partner AI App. +func (c *Client) CreatePartnerApp(ctx context.Context, params *CreatePartnerAppInput, optFns ...func(*Options)) (*CreatePartnerAppOutput, error) { + if params == nil { + params = &CreatePartnerAppInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreatePartnerApp", params, optFns, c.addOperationCreatePartnerAppMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreatePartnerAppOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreatePartnerAppInput struct { + + // The authorization type that users use to access the SageMaker Partner AI App. + // + // This member is required. + AuthType types.PartnerAppAuthType + + // The ARN of the IAM role that the partner application uses. + // + // This member is required. + ExecutionRoleArn *string + + // The name to give the SageMaker Partner AI App. + // + // This member is required. + Name *string + + // Indicates the instance type and size of the cluster attached to the SageMaker + // Partner AI App. + // + // This member is required. + Tier *string + + // The type of SageMaker Partner AI App to create. Must be one of the following: + // lakera-guard , comet , deepchecks-llm-evaluation , or fiddler . + // + // This member is required. + Type types.PartnerAppType + + // Configuration settings for the SageMaker Partner AI App. + ApplicationConfig *types.PartnerAppConfig + + // A unique token that guarantees that the call to this API is idempotent. + ClientToken *string + + // When set to TRUE , the SageMaker Partner AI App sets the Amazon Web Services IAM + // session name or the authenticated IAM user as the identity of the SageMaker + // Partner AI App user. + EnableIamSessionBasedIdentity *bool + + // Maintenance configuration settings for the SageMaker Partner AI App. + MaintenanceConfig *types.PartnerAppMaintenanceConfig + + // Each tag consists of a key and an optional value. Tag keys must be unique per + // resource. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreatePartnerAppOutput struct { + + // The ARN of the SageMaker Partner AI App. + Arn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreatePartnerAppMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreatePartnerApp{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreatePartnerApp{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreatePartnerApp"); 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_opCreatePartnerAppMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreatePartnerAppValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreatePartnerApp(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_initializeOpCreatePartnerApp struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreatePartnerApp) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreatePartnerApp) 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.(*CreatePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreatePartnerAppInput ") + } + + 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_opCreatePartnerAppMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreatePartnerApp{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreatePartnerApp(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreatePartnerApp", + } +} diff --git a/service/sagemaker/api_op_CreatePartnerAppPresignedUrl.go b/service/sagemaker/api_op_CreatePartnerAppPresignedUrl.go new file mode 100644 index 00000000000..690e5166779 --- /dev/null +++ b/service/sagemaker/api_op_CreatePartnerAppPresignedUrl.go @@ -0,0 +1,163 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +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" +) + +// Creates a presigned URL to access an Amazon SageMaker Partner AI App. +func (c *Client) CreatePartnerAppPresignedUrl(ctx context.Context, params *CreatePartnerAppPresignedUrlInput, optFns ...func(*Options)) (*CreatePartnerAppPresignedUrlOutput, error) { + if params == nil { + params = &CreatePartnerAppPresignedUrlInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreatePartnerAppPresignedUrl", params, optFns, c.addOperationCreatePartnerAppPresignedUrlMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreatePartnerAppPresignedUrlOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreatePartnerAppPresignedUrlInput struct { + + // The ARN of the SageMaker Partner AI App to create the presigned URL for. + // + // This member is required. + Arn *string + + // The time that will pass before the presigned URL expires. + ExpiresInSeconds *int32 + + // Indicates how long the Amazon SageMaker Partner AI App session can be accessed + // for after logging in. + SessionExpirationDurationInSeconds *int32 + + noSmithyDocumentSerde +} + +type CreatePartnerAppPresignedUrlOutput struct { + + // The presigned URL that you can use to access the SageMaker Partner AI App. + Url *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreatePartnerAppPresignedUrlMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreatePartnerAppPresignedUrl{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreatePartnerAppPresignedUrl{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreatePartnerAppPresignedUrl"); 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 = addOpCreatePartnerAppPresignedUrlValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreatePartnerAppPresignedUrl(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_opCreatePartnerAppPresignedUrl(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreatePartnerAppPresignedUrl", + } +} diff --git a/service/sagemaker/api_op_CreateTrainingPlan.go b/service/sagemaker/api_op_CreateTrainingPlan.go new file mode 100644 index 00000000000..c92bf870883 --- /dev/null +++ b/service/sagemaker/api_op_CreateTrainingPlan.go @@ -0,0 +1,212 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a new training plan in SageMaker to reserve compute capacity. +// +// Amazon SageMaker Training Plan is a capability within SageMaker that allows +// customers to reserve and manage GPU capacity for large-scale AI model training. +// It provides a way to secure predictable access to computational resources within +// specific timelines and budgets, without the need to manage underlying +// infrastructure. +// +// # How it works +// +// Plans can be created for specific resources such as SageMaker Training Jobs or +// SageMaker HyperPod clusters, automatically provisioning resources, setting up +// infrastructure, executing workloads, and handling infrastructure failures. +// +// Plan creation workflow +// +// - Users search for available plan offerings based on their requirements +// (e.g., instance type, count, start time, duration) using the [SearchTrainingPlanOfferings]API operation. +// +// - They create a plan that best matches their needs using the ID of the plan +// offering they want to use. +// +// - After successful upfront payment, the plan's status becomes Scheduled . +// +// - The plan can be used to: +// +// - Queue training jobs. +// +// - Allocate to an instance group of a SageMaker HyperPod cluster. +// +// - When the plan start date arrives, it becomes Active . Based on available +// reserved capacity: +// +// - Training jobs are launched. +// +// - Instance groups are provisioned. +// +// # Plan composition +// +// A plan can consist of one or more Reserved Capacities, each defined by a +// specific instance type, quantity, Availability Zone, duration, and start and end +// times. For more information about Reserved Capacity, see [ReservedCapacitySummary]. +// +// [SearchTrainingPlanOfferings]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html +// [ReservedCapacitySummary]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ReservedCapacitySummary.html +func (c *Client) CreateTrainingPlan(ctx context.Context, params *CreateTrainingPlanInput, optFns ...func(*Options)) (*CreateTrainingPlanOutput, error) { + if params == nil { + params = &CreateTrainingPlanInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateTrainingPlan", params, optFns, c.addOperationCreateTrainingPlanMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateTrainingPlanOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateTrainingPlanInput struct { + + // The name of the training plan to create. + // + // This member is required. + TrainingPlanName *string + + // The unique identifier of the training plan offering to use for creating this + // plan. + // + // This member is required. + TrainingPlanOfferingId *string + + // An array of key-value pairs to apply to this training plan. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateTrainingPlanOutput struct { + + // The Amazon Resource Name (ARN); of the created training plan. + // + // This member is required. + TrainingPlanArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateTrainingPlanMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateTrainingPlan{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateTrainingPlan{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateTrainingPlan"); 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 = addOpCreateTrainingPlanValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateTrainingPlan(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_opCreateTrainingPlan(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateTrainingPlan", + } +} diff --git a/service/sagemaker/api_op_DeleteClusterSchedulerConfig.go b/service/sagemaker/api_op_DeleteClusterSchedulerConfig.go new file mode 100644 index 00000000000..4cc46b466c7 --- /dev/null +++ b/service/sagemaker/api_op_DeleteClusterSchedulerConfig.go @@ -0,0 +1,152 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +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 the cluster policy of the cluster. +func (c *Client) DeleteClusterSchedulerConfig(ctx context.Context, params *DeleteClusterSchedulerConfigInput, optFns ...func(*Options)) (*DeleteClusterSchedulerConfigOutput, error) { + if params == nil { + params = &DeleteClusterSchedulerConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteClusterSchedulerConfig", params, optFns, c.addOperationDeleteClusterSchedulerConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteClusterSchedulerConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteClusterSchedulerConfigInput struct { + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + noSmithyDocumentSerde +} + +type DeleteClusterSchedulerConfigOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteClusterSchedulerConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteClusterSchedulerConfig"); 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 = addOpDeleteClusterSchedulerConfigValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteClusterSchedulerConfig(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_opDeleteClusterSchedulerConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteClusterSchedulerConfig", + } +} diff --git a/service/sagemaker/api_op_DeleteComputeQuota.go b/service/sagemaker/api_op_DeleteComputeQuota.go new file mode 100644 index 00000000000..7ae888e054f --- /dev/null +++ b/service/sagemaker/api_op_DeleteComputeQuota.go @@ -0,0 +1,152 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +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 the compute allocation from the cluster. +func (c *Client) DeleteComputeQuota(ctx context.Context, params *DeleteComputeQuotaInput, optFns ...func(*Options)) (*DeleteComputeQuotaOutput, error) { + if params == nil { + params = &DeleteComputeQuotaInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteComputeQuota", params, optFns, c.addOperationDeleteComputeQuotaMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteComputeQuotaOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteComputeQuotaInput struct { + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + noSmithyDocumentSerde +} + +type DeleteComputeQuotaOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteComputeQuotaMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteComputeQuota{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteComputeQuota{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteComputeQuota"); 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 = addOpDeleteComputeQuotaValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteComputeQuota(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_opDeleteComputeQuota(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteComputeQuota", + } +} diff --git a/service/sagemaker/api_op_DeletePartnerApp.go b/service/sagemaker/api_op_DeletePartnerApp.go new file mode 100644 index 00000000000..da981f103f8 --- /dev/null +++ b/service/sagemaker/api_op_DeletePartnerApp.go @@ -0,0 +1,195 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +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 SageMaker Partner AI App. +func (c *Client) DeletePartnerApp(ctx context.Context, params *DeletePartnerAppInput, optFns ...func(*Options)) (*DeletePartnerAppOutput, error) { + if params == nil { + params = &DeletePartnerAppInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeletePartnerApp", params, optFns, c.addOperationDeletePartnerAppMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeletePartnerAppOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeletePartnerAppInput struct { + + // The ARN of the SageMaker Partner AI App to delete. + // + // This member is required. + Arn *string + + // A unique token that guarantees that the call to this API is idempotent. + ClientToken *string + + noSmithyDocumentSerde +} + +type DeletePartnerAppOutput struct { + + // The ARN of the SageMaker Partner AI App that was deleted. + Arn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeletePartnerAppMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeletePartnerApp{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeletePartnerApp{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeletePartnerApp"); 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_opDeletePartnerAppMiddleware(stack, options); err != nil { + return err + } + if err = addOpDeletePartnerAppValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeletePartnerApp(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_initializeOpDeletePartnerApp struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDeletePartnerApp) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDeletePartnerApp) 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.(*DeletePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DeletePartnerAppInput ") + } + + 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_opDeletePartnerAppMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDeletePartnerApp{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDeletePartnerApp(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeletePartnerApp", + } +} diff --git a/service/sagemaker/api_op_DescribeClusterSchedulerConfig.go b/service/sagemaker/api_op_DescribeClusterSchedulerConfig.go new file mode 100644 index 00000000000..0bec327910b --- /dev/null +++ b/service/sagemaker/api_op_DescribeClusterSchedulerConfig.go @@ -0,0 +1,215 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Description of the cluster policy. This policy is used for task prioritization +// and fair-share allocation. This helps prioritize critical workloads and +// distributes idle compute across entities. +func (c *Client) DescribeClusterSchedulerConfig(ctx context.Context, params *DescribeClusterSchedulerConfigInput, optFns ...func(*Options)) (*DescribeClusterSchedulerConfigOutput, error) { + if params == nil { + params = &DescribeClusterSchedulerConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeClusterSchedulerConfig", params, optFns, c.addOperationDescribeClusterSchedulerConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeClusterSchedulerConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeClusterSchedulerConfigInput struct { + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + // Version of the cluster policy. + ClusterSchedulerConfigVersion *int32 + + noSmithyDocumentSerde +} + +type DescribeClusterSchedulerConfigOutput struct { + + // ARN of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigArn *string + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + // Version of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigVersion *int32 + + // Creation time of the cluster policy. + // + // This member is required. + CreationTime *time.Time + + // Name of the cluster policy. + // + // This member is required. + Name *string + + // Status of the cluster policy. + // + // This member is required. + Status types.SchedulerResourceStatus + + // ARN of the cluster where the cluster policy is applied. + ClusterArn *string + + // Information about the user who created or modified an experiment, trial, trial + // component, lineage group, project, or model card. + CreatedBy *types.UserContext + + // Description of the cluster policy. + Description *string + + // Failure reason of the cluster policy. + FailureReason *string + + // Information about the user who created or modified an experiment, trial, trial + // component, lineage group, project, or model card. + LastModifiedBy *types.UserContext + + // Last modified time of the cluster policy. + LastModifiedTime *time.Time + + // Cluster policy configuration. This policy is used for task prioritization and + // fair-share allocation. This helps prioritize critical workloads and distributes + // idle compute across entities. + SchedulerConfig *types.SchedulerConfig + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeClusterSchedulerConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeClusterSchedulerConfig"); 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 = addOpDescribeClusterSchedulerConfigValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeClusterSchedulerConfig(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_opDescribeClusterSchedulerConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeClusterSchedulerConfig", + } +} diff --git a/service/sagemaker/api_op_DescribeComputeQuota.go b/service/sagemaker/api_op_DescribeComputeQuota.go new file mode 100644 index 00000000000..adcde5a6b5c --- /dev/null +++ b/service/sagemaker/api_op_DescribeComputeQuota.go @@ -0,0 +1,223 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Description of the compute allocation definition. +func (c *Client) DescribeComputeQuota(ctx context.Context, params *DescribeComputeQuotaInput, optFns ...func(*Options)) (*DescribeComputeQuotaOutput, error) { + if params == nil { + params = &DescribeComputeQuotaInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeComputeQuota", params, optFns, c.addOperationDescribeComputeQuotaMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeComputeQuotaOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeComputeQuotaInput struct { + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + // Version of the compute allocation definition. + ComputeQuotaVersion *int32 + + noSmithyDocumentSerde +} + +type DescribeComputeQuotaOutput struct { + + // ARN of the compute allocation definition. + // + // This member is required. + ComputeQuotaArn *string + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + // The target entity to allocate compute resources to. + // + // This member is required. + ComputeQuotaTarget *types.ComputeQuotaTarget + + // Version of the compute allocation definition. + // + // This member is required. + ComputeQuotaVersion *int32 + + // Creation time of the compute allocation configuration. + // + // This member is required. + CreationTime *time.Time + + // Name of the compute allocation definition. + // + // This member is required. + Name *string + + // Status of the compute allocation definition. + // + // This member is required. + Status types.SchedulerResourceStatus + + // The state of the compute allocation being described. Use to enable or disable + // compute allocation. + // + // Default is Enabled . + ActivationState types.ActivationState + + // ARN of the cluster. + ClusterArn *string + + // Configuration of the compute allocation definition. This includes the resource + // sharing option, and the setting to preempt low priority tasks. + ComputeQuotaConfig *types.ComputeQuotaConfig + + // Information about the user who created or modified an experiment, trial, trial + // component, lineage group, project, or model card. + CreatedBy *types.UserContext + + // Description of the compute allocation definition. + Description *string + + // Failure reason of the compute allocation definition. + FailureReason *string + + // Information about the user who created or modified an experiment, trial, trial + // component, lineage group, project, or model card. + LastModifiedBy *types.UserContext + + // Last modified time of the compute allocation configuration. + LastModifiedTime *time.Time + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeComputeQuotaMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeComputeQuota{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeComputeQuota{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeComputeQuota"); 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 = addOpDescribeComputeQuotaValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeComputeQuota(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_opDescribeComputeQuota(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeComputeQuota", + } +} diff --git a/service/sagemaker/api_op_DescribePartnerApp.go b/service/sagemaker/api_op_DescribePartnerApp.go new file mode 100644 index 00000000000..216deb2fa36 --- /dev/null +++ b/service/sagemaker/api_op_DescribePartnerApp.go @@ -0,0 +1,203 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Gets information about a SageMaker Partner AI App. +func (c *Client) DescribePartnerApp(ctx context.Context, params *DescribePartnerAppInput, optFns ...func(*Options)) (*DescribePartnerAppOutput, error) { + if params == nil { + params = &DescribePartnerAppInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribePartnerApp", params, optFns, c.addOperationDescribePartnerAppMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribePartnerAppOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribePartnerAppInput struct { + + // The ARN of the SageMaker Partner AI App to describe. + // + // This member is required. + Arn *string + + noSmithyDocumentSerde +} + +type DescribePartnerAppOutput struct { + + // Configuration settings for the SageMaker Partner AI App. + ApplicationConfig *types.PartnerAppConfig + + // The ARN of the SageMaker Partner AI App that was described. + Arn *string + + // The authorization type that users use to access the SageMaker Partner AI App. + AuthType types.PartnerAppAuthType + + // The URL of the SageMaker Partner AI App that the Application SDK uses to + // support in-app calls for the user. + BaseUrl *string + + // The time that the SageMaker Partner AI App was created. + CreationTime *time.Time + + // When set to TRUE , the SageMaker Partner AI App sets the Amazon Web Services IAM + // session name or the authenticated IAM user as the identity of the SageMaker + // Partner AI App user. + EnableIamSessionBasedIdentity *bool + + // This is an error field object that contains the error code and the reason for + // an operation failure. + Error *types.ErrorInfo + + // The ARN of the IAM role associated with the SageMaker Partner AI App. + ExecutionRoleArn *string + + // Maintenance configuration settings for the SageMaker Partner AI App. + MaintenanceConfig *types.PartnerAppMaintenanceConfig + + // The name of the SageMaker Partner AI App. + Name *string + + // The status of the SageMaker Partner AI App. + Status types.PartnerAppStatus + + // The instance type and size of the cluster attached to the SageMaker Partner AI + // App. + Tier *string + + // The type of SageMaker Partner AI App. Must be one of the following: lakera-guard + // , comet , deepchecks-llm-evaluation , or fiddler . + Type types.PartnerAppType + + // The version of the SageMaker Partner AI App. + Version *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribePartnerAppMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribePartnerApp{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribePartnerApp{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribePartnerApp"); 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 = addOpDescribePartnerAppValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribePartnerApp(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_opDescribePartnerApp(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribePartnerApp", + } +} diff --git a/service/sagemaker/api_op_DescribeTrainingPlan.go b/service/sagemaker/api_op_DescribeTrainingPlan.go new file mode 100644 index 00000000000..68726ba05b3 --- /dev/null +++ b/service/sagemaker/api_op_DescribeTrainingPlan.go @@ -0,0 +1,222 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Retrieves detailed information about a specific training plan. +func (c *Client) DescribeTrainingPlan(ctx context.Context, params *DescribeTrainingPlanInput, optFns ...func(*Options)) (*DescribeTrainingPlanOutput, error) { + if params == nil { + params = &DescribeTrainingPlanInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeTrainingPlan", params, optFns, c.addOperationDescribeTrainingPlanMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeTrainingPlanOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeTrainingPlanInput struct { + + // The name of the training plan to describe. + // + // This member is required. + TrainingPlanName *string + + noSmithyDocumentSerde +} + +type DescribeTrainingPlanOutput struct { + + // The current status of the training plan (e.g., Pending, Active, Expired). To + // see the complete list of status values available for a training plan, refer to + // the Status attribute within the [TrainingPlanSummary] object. + // + // [TrainingPlanSummary]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanSummary.html + // + // This member is required. + Status types.TrainingPlanStatus + + // The Amazon Resource Name (ARN); of the training plan. + // + // This member is required. + TrainingPlanArn *string + + // The name of the training plan. + // + // This member is required. + TrainingPlanName *string + + // The number of instances currently available for use in this training plan. + AvailableInstanceCount *int32 + + // The currency code for the upfront fee (e.g., USD). + CurrencyCode *string + + // The number of whole hours in the total duration for this training plan. + DurationHours *int64 + + // The additional minutes beyond whole hours in the total duration for this + // training plan. + DurationMinutes *int64 + + // The end time of the training plan. + EndTime *time.Time + + // The number of instances currently in use from this training plan. + InUseInstanceCount *int32 + + // The list of Reserved Capacity providing the underlying compute resources of the + // plan. + ReservedCapacitySummaries []types.ReservedCapacitySummary + + // The start time of the training plan. + StartTime *time.Time + + // A message providing additional information about the current status of the + // training plan. + StatusMessage *string + + // The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) that + // can use this training plan. + // + // Training plans are specific to their target resource. + // + // - A training plan designed for SageMaker training jobs can only be used to + // schedule and run training jobs. + // + // - A training plan for HyperPod clusters can be used exclusively to provide + // compute resources to a cluster's instance group. + TargetResources []types.SageMakerResourceName + + // The total number of instances reserved in this training plan. + TotalInstanceCount *int32 + + // The upfront fee for the training plan. + UpfrontFee *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeTrainingPlanMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeTrainingPlan{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeTrainingPlan{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeTrainingPlan"); 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 = addOpDescribeTrainingPlanValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeTrainingPlan(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_opDescribeTrainingPlan(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeTrainingPlan", + } +} diff --git a/service/sagemaker/api_op_ListClusterSchedulerConfigs.go b/service/sagemaker/api_op_ListClusterSchedulerConfigs.go new file mode 100644 index 00000000000..308da2bae5a --- /dev/null +++ b/service/sagemaker/api_op_ListClusterSchedulerConfigs.go @@ -0,0 +1,286 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// List the cluster policy configurations. +func (c *Client) ListClusterSchedulerConfigs(ctx context.Context, params *ListClusterSchedulerConfigsInput, optFns ...func(*Options)) (*ListClusterSchedulerConfigsOutput, error) { + if params == nil { + params = &ListClusterSchedulerConfigsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListClusterSchedulerConfigs", params, optFns, c.addOperationListClusterSchedulerConfigsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListClusterSchedulerConfigsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListClusterSchedulerConfigsInput struct { + + // Filter for ARN of the cluster. + ClusterArn *string + + // Filter for after this creation time. The input for this parameter is a Unix + // timestamp. To convert a date and time into a Unix timestamp, see [EpochConverter]. + // + // [EpochConverter]: https://www.epochconverter.com/ + CreatedAfter *time.Time + + // Filter for before this creation time. The input for this parameter is a Unix + // timestamp. To convert a date and time into a Unix timestamp, see [EpochConverter]. + // + // [EpochConverter]: https://www.epochconverter.com/ + CreatedBefore *time.Time + + // The maximum number of cluster policies to list. + MaxResults *int32 + + // Filter for name containing this string. + NameContains *string + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + // Filter for sorting the list by a given value. For example, sort by name, + // creation time, or status. + SortBy types.SortClusterSchedulerConfigBy + + // The order of the list. By default, listed in Descending order according to by + // SortBy . To change the list order, you can specify SortOrder to be Ascending . + SortOrder types.SortOrder + + // Filter for status. + Status types.SchedulerResourceStatus + + noSmithyDocumentSerde +} + +type ListClusterSchedulerConfigsOutput struct { + + // Summaries of the cluster policies. + ClusterSchedulerConfigSummaries []types.ClusterSchedulerConfigSummary + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListClusterSchedulerConfigsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListClusterSchedulerConfigs{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListClusterSchedulerConfigs{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListClusterSchedulerConfigs"); 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_opListClusterSchedulerConfigs(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 +} + +// ListClusterSchedulerConfigsPaginatorOptions is the paginator options for +// ListClusterSchedulerConfigs +type ListClusterSchedulerConfigsPaginatorOptions struct { + // The maximum number of cluster policies to list. + 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 +} + +// ListClusterSchedulerConfigsPaginator is a paginator for +// ListClusterSchedulerConfigs +type ListClusterSchedulerConfigsPaginator struct { + options ListClusterSchedulerConfigsPaginatorOptions + client ListClusterSchedulerConfigsAPIClient + params *ListClusterSchedulerConfigsInput + nextToken *string + firstPage bool +} + +// NewListClusterSchedulerConfigsPaginator returns a new +// ListClusterSchedulerConfigsPaginator +func NewListClusterSchedulerConfigsPaginator(client ListClusterSchedulerConfigsAPIClient, params *ListClusterSchedulerConfigsInput, optFns ...func(*ListClusterSchedulerConfigsPaginatorOptions)) *ListClusterSchedulerConfigsPaginator { + if params == nil { + params = &ListClusterSchedulerConfigsInput{} + } + + options := ListClusterSchedulerConfigsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListClusterSchedulerConfigsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListClusterSchedulerConfigsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListClusterSchedulerConfigs page. +func (p *ListClusterSchedulerConfigsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListClusterSchedulerConfigsOutput, 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.ListClusterSchedulerConfigs(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 +} + +// ListClusterSchedulerConfigsAPIClient is a client that implements the +// ListClusterSchedulerConfigs operation. +type ListClusterSchedulerConfigsAPIClient interface { + ListClusterSchedulerConfigs(context.Context, *ListClusterSchedulerConfigsInput, ...func(*Options)) (*ListClusterSchedulerConfigsOutput, error) +} + +var _ ListClusterSchedulerConfigsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListClusterSchedulerConfigs(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListClusterSchedulerConfigs", + } +} diff --git a/service/sagemaker/api_op_ListClusters.go b/service/sagemaker/api_op_ListClusters.go index 31c0c0426bc..4b4f22cf4f2 100644 --- a/service/sagemaker/api_op_ListClusters.go +++ b/service/sagemaker/api_op_ListClusters.go @@ -77,6 +77,13 @@ type ListClustersInput struct { // The sort order for results. The default value is Ascending . SortOrder types.SortOrder + // The Amazon Resource Name (ARN); of the training plan to filter clusters by. For + // more information about reserving GPU capacity for your SageMaker HyperPod + // clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArn *string + noSmithyDocumentSerde } diff --git a/service/sagemaker/api_op_ListComputeQuotas.go b/service/sagemaker/api_op_ListComputeQuotas.go new file mode 100644 index 00000000000..82b1f9a1a1e --- /dev/null +++ b/service/sagemaker/api_op_ListComputeQuotas.go @@ -0,0 +1,283 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// List the resource allocation definitions. +func (c *Client) ListComputeQuotas(ctx context.Context, params *ListComputeQuotasInput, optFns ...func(*Options)) (*ListComputeQuotasOutput, error) { + if params == nil { + params = &ListComputeQuotasInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListComputeQuotas", params, optFns, c.addOperationListComputeQuotasMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListComputeQuotasOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListComputeQuotasInput struct { + + // Filter for ARN of the cluster. + ClusterArn *string + + // Filter for after this creation time. The input for this parameter is a Unix + // timestamp. To convert a date and time into a Unix timestamp, see [EpochConverter]. + // + // [EpochConverter]: https://www.epochconverter.com/ + CreatedAfter *time.Time + + // Filter for before this creation time. The input for this parameter is a Unix + // timestamp. To convert a date and time into a Unix timestamp, see [EpochConverter]. + // + // [EpochConverter]: https://www.epochconverter.com/ + CreatedBefore *time.Time + + // The maximum number of compute allocation definitions to list. + MaxResults *int32 + + // Filter for name containing this string. + NameContains *string + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + // Filter for sorting the list by a given value. For example, sort by name, + // creation time, or status. + SortBy types.SortQuotaBy + + // The order of the list. By default, listed in Descending order according to by + // SortBy . To change the list order, you can specify SortOrder to be Ascending . + SortOrder types.SortOrder + + // Filter for status. + Status types.SchedulerResourceStatus + + noSmithyDocumentSerde +} + +type ListComputeQuotasOutput struct { + + // Summaries of the compute allocation definitions. + ComputeQuotaSummaries []types.ComputeQuotaSummary + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListComputeQuotasMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListComputeQuotas{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListComputeQuotas{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListComputeQuotas"); 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_opListComputeQuotas(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 +} + +// ListComputeQuotasPaginatorOptions is the paginator options for ListComputeQuotas +type ListComputeQuotasPaginatorOptions struct { + // The maximum number of compute allocation definitions to list. + 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 +} + +// ListComputeQuotasPaginator is a paginator for ListComputeQuotas +type ListComputeQuotasPaginator struct { + options ListComputeQuotasPaginatorOptions + client ListComputeQuotasAPIClient + params *ListComputeQuotasInput + nextToken *string + firstPage bool +} + +// NewListComputeQuotasPaginator returns a new ListComputeQuotasPaginator +func NewListComputeQuotasPaginator(client ListComputeQuotasAPIClient, params *ListComputeQuotasInput, optFns ...func(*ListComputeQuotasPaginatorOptions)) *ListComputeQuotasPaginator { + if params == nil { + params = &ListComputeQuotasInput{} + } + + options := ListComputeQuotasPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListComputeQuotasPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListComputeQuotasPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListComputeQuotas page. +func (p *ListComputeQuotasPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListComputeQuotasOutput, 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.ListComputeQuotas(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 +} + +// ListComputeQuotasAPIClient is a client that implements the ListComputeQuotas +// operation. +type ListComputeQuotasAPIClient interface { + ListComputeQuotas(context.Context, *ListComputeQuotasInput, ...func(*Options)) (*ListComputeQuotasOutput, error) +} + +var _ ListComputeQuotasAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListComputeQuotas(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListComputeQuotas", + } +} diff --git a/service/sagemaker/api_op_ListPartnerApps.go b/service/sagemaker/api_op_ListPartnerApps.go new file mode 100644 index 00000000000..a67bb163c2b --- /dev/null +++ b/service/sagemaker/api_op_ListPartnerApps.go @@ -0,0 +1,263 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all of the SageMaker Partner AI Apps in an account. +func (c *Client) ListPartnerApps(ctx context.Context, params *ListPartnerAppsInput, optFns ...func(*Options)) (*ListPartnerAppsOutput, error) { + if params == nil { + params = &ListPartnerAppsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPartnerApps", params, optFns, c.addOperationListPartnerAppsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPartnerAppsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPartnerAppsInput struct { + + // This parameter defines the maximum number of results that can be returned in a + // single response. The MaxResults parameter is an upper bound, not a target. If + // there are more results available than the value specified, a NextToken is + // provided in the response. The NextToken indicates that the user should get the + // next set of results by providing this token as a part of a subsequent call. The + // default value for MaxResults is 10. + MaxResults *int32 + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListPartnerAppsOutput struct { + + // If the previous response was truncated, you will receive this token. Use it in + // your next request to receive the next set of results. + NextToken *string + + // The information related to each of the SageMaker Partner AI Apps in an account. + Summaries []types.PartnerAppSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPartnerAppsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListPartnerApps{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListPartnerApps{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListPartnerApps"); 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_opListPartnerApps(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 +} + +// ListPartnerAppsPaginatorOptions is the paginator options for ListPartnerApps +type ListPartnerAppsPaginatorOptions struct { + // This parameter defines the maximum number of results that can be returned in a + // single response. The MaxResults parameter is an upper bound, not a target. If + // there are more results available than the value specified, a NextToken is + // provided in the response. The NextToken indicates that the user should get the + // next set of results by providing this token as a part of a subsequent call. The + // default value for MaxResults is 10. + 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 +} + +// ListPartnerAppsPaginator is a paginator for ListPartnerApps +type ListPartnerAppsPaginator struct { + options ListPartnerAppsPaginatorOptions + client ListPartnerAppsAPIClient + params *ListPartnerAppsInput + nextToken *string + firstPage bool +} + +// NewListPartnerAppsPaginator returns a new ListPartnerAppsPaginator +func NewListPartnerAppsPaginator(client ListPartnerAppsAPIClient, params *ListPartnerAppsInput, optFns ...func(*ListPartnerAppsPaginatorOptions)) *ListPartnerAppsPaginator { + if params == nil { + params = &ListPartnerAppsInput{} + } + + options := ListPartnerAppsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPartnerAppsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPartnerAppsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPartnerApps page. +func (p *ListPartnerAppsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPartnerAppsOutput, 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.ListPartnerApps(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 +} + +// ListPartnerAppsAPIClient is a client that implements the ListPartnerApps +// operation. +type ListPartnerAppsAPIClient interface { + ListPartnerApps(context.Context, *ListPartnerAppsInput, ...func(*Options)) (*ListPartnerAppsOutput, error) +} + +var _ ListPartnerAppsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListPartnerApps(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListPartnerApps", + } +} diff --git a/service/sagemaker/api_op_ListTrainingJobs.go b/service/sagemaker/api_op_ListTrainingJobs.go index bd1ba602fda..c2266707faf 100644 --- a/service/sagemaker/api_op_ListTrainingJobs.go +++ b/service/sagemaker/api_op_ListTrainingJobs.go @@ -84,6 +84,13 @@ type ListTrainingJobsInput struct { // A filter that retrieves only training jobs with a specific status. StatusEquals types.TrainingJobStatus + // The Amazon Resource Name (ARN); of the training plan to filter training jobs + // by. For more information about reserving GPU capacity for your SageMaker + // training jobs using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArnEquals *string + // A filter that retrieves only training jobs with a specific warm pool status. WarmPoolStatusEquals types.WarmPoolResourceStatus diff --git a/service/sagemaker/api_op_ListTrainingPlans.go b/service/sagemaker/api_op_ListTrainingPlans.go new file mode 100644 index 00000000000..316d5770aa7 --- /dev/null +++ b/service/sagemaker/api_op_ListTrainingPlans.go @@ -0,0 +1,272 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Retrieves a list of training plans for the current account. +func (c *Client) ListTrainingPlans(ctx context.Context, params *ListTrainingPlansInput, optFns ...func(*Options)) (*ListTrainingPlansOutput, error) { + if params == nil { + params = &ListTrainingPlansInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListTrainingPlans", params, optFns, c.addOperationListTrainingPlansMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListTrainingPlansOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListTrainingPlansInput struct { + + // Additional filters to apply to the list of training plans. + Filters []types.TrainingPlanFilter + + // The maximum number of results to return in the response. + MaxResults *int32 + + // A token to continue pagination if more results are available. + NextToken *string + + // The training plan field to sort the results by (e.g., StartTime, Status). + SortBy types.TrainingPlanSortBy + + // The order to sort the results (Ascending or Descending). + SortOrder types.TrainingPlanSortOrder + + // Filter to list only training plans with an actual start time after this date. + StartTimeAfter *time.Time + + // Filter to list only training plans with an actual start time before this date. + StartTimeBefore *time.Time + + noSmithyDocumentSerde +} + +type ListTrainingPlansOutput struct { + + // A list of summary information for the training plans. + // + // This member is required. + TrainingPlanSummaries []types.TrainingPlanSummary + + // A token to continue pagination if more results are available. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListTrainingPlansMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListTrainingPlans{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListTrainingPlans{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListTrainingPlans"); 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 = addOpListTrainingPlansValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListTrainingPlans(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 +} + +// ListTrainingPlansPaginatorOptions is the paginator options for ListTrainingPlans +type ListTrainingPlansPaginatorOptions struct { + // The maximum number of results to return in the response. + 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 +} + +// ListTrainingPlansPaginator is a paginator for ListTrainingPlans +type ListTrainingPlansPaginator struct { + options ListTrainingPlansPaginatorOptions + client ListTrainingPlansAPIClient + params *ListTrainingPlansInput + nextToken *string + firstPage bool +} + +// NewListTrainingPlansPaginator returns a new ListTrainingPlansPaginator +func NewListTrainingPlansPaginator(client ListTrainingPlansAPIClient, params *ListTrainingPlansInput, optFns ...func(*ListTrainingPlansPaginatorOptions)) *ListTrainingPlansPaginator { + if params == nil { + params = &ListTrainingPlansInput{} + } + + options := ListTrainingPlansPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListTrainingPlansPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListTrainingPlansPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListTrainingPlans page. +func (p *ListTrainingPlansPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListTrainingPlansOutput, 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.ListTrainingPlans(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 +} + +// ListTrainingPlansAPIClient is a client that implements the ListTrainingPlans +// operation. +type ListTrainingPlansAPIClient interface { + ListTrainingPlans(context.Context, *ListTrainingPlansInput, ...func(*Options)) (*ListTrainingPlansOutput, error) +} + +var _ ListTrainingPlansAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListTrainingPlans(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListTrainingPlans", + } +} diff --git a/service/sagemaker/api_op_SearchTrainingPlanOfferings.go b/service/sagemaker/api_op_SearchTrainingPlanOfferings.go new file mode 100644 index 00000000000..bce5fe33df2 --- /dev/null +++ b/service/sagemaker/api_op_SearchTrainingPlanOfferings.go @@ -0,0 +1,210 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Searches for available training plan offerings based on specified criteria. +// +// - Users search for available plan offerings based on their requirements +// (e.g., instance type, count, start time, duration). +// +// - And then, they create a plan that best matches their needs using the ID of +// the plan offering they want to use. +// +// For more information about how to reserve GPU capacity for your SageMaker +// training jobs or SageMaker HyperPod clusters using Amazon SageMaker Training +// Plan , see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +func (c *Client) SearchTrainingPlanOfferings(ctx context.Context, params *SearchTrainingPlanOfferingsInput, optFns ...func(*Options)) (*SearchTrainingPlanOfferingsOutput, error) { + if params == nil { + params = &SearchTrainingPlanOfferingsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SearchTrainingPlanOfferings", params, optFns, c.addOperationSearchTrainingPlanOfferingsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SearchTrainingPlanOfferingsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SearchTrainingPlanOfferingsInput struct { + + // The number of instances you want to reserve in the training plan offerings. + // This allows you to specify the quantity of compute resources needed for your + // SageMaker training jobs or SageMaker HyperPod clusters, helping you find + // reserved capacity offerings that match your requirements. + // + // This member is required. + InstanceCount *int32 + + // The type of instance you want to search for in the available training plan + // offerings. This field allows you to filter the search results based on the + // specific compute resources you require for your SageMaker training jobs or + // SageMaker HyperPod clusters. When searching for training plan offerings, + // specifying the instance type helps you find Reserved Instances that match your + // computational needs. + // + // This member is required. + InstanceType types.ReservedCapacityInstanceType + + // The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) to + // search for in the offerings. + // + // Training plans are specific to their target resource. + // + // - A training plan designed for SageMaker training jobs can only be used to + // schedule and run training jobs. + // + // - A training plan for HyperPod clusters can be used exclusively to provide + // compute resources to a cluster's instance group. + // + // This member is required. + TargetResources []types.SageMakerResourceName + + // The desired duration in hours for the training plan offerings. + DurationHours *int64 + + // A filter to search for reserved capacity offerings with an end time before a + // specified date. + EndTimeBefore *time.Time + + // A filter to search for training plan offerings with a start time after a + // specified date. + StartTimeAfter *time.Time + + noSmithyDocumentSerde +} + +type SearchTrainingPlanOfferingsOutput struct { + + // A list of training plan offerings that match the search criteria. + // + // This member is required. + TrainingPlanOfferings []types.TrainingPlanOffering + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSearchTrainingPlanOfferingsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpSearchTrainingPlanOfferings{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpSearchTrainingPlanOfferings{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "SearchTrainingPlanOfferings"); 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 = addOpSearchTrainingPlanOfferingsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSearchTrainingPlanOfferings(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_opSearchTrainingPlanOfferings(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "SearchTrainingPlanOfferings", + } +} diff --git a/service/sagemaker/api_op_UpdateClusterSchedulerConfig.go b/service/sagemaker/api_op_UpdateClusterSchedulerConfig.go new file mode 100644 index 00000000000..00a00e42798 --- /dev/null +++ b/service/sagemaker/api_op_UpdateClusterSchedulerConfig.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Update the cluster policy configuration. +func (c *Client) UpdateClusterSchedulerConfig(ctx context.Context, params *UpdateClusterSchedulerConfigInput, optFns ...func(*Options)) (*UpdateClusterSchedulerConfigOutput, error) { + if params == nil { + params = &UpdateClusterSchedulerConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateClusterSchedulerConfig", params, optFns, c.addOperationUpdateClusterSchedulerConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateClusterSchedulerConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateClusterSchedulerConfigInput struct { + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + // Target version. + // + // This member is required. + TargetVersion *int32 + + // Description of the cluster policy. + Description *string + + // Cluster policy configuration. + SchedulerConfig *types.SchedulerConfig + + noSmithyDocumentSerde +} + +type UpdateClusterSchedulerConfigOutput struct { + + // ARN of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigArn *string + + // Version of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigVersion *int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateClusterSchedulerConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateClusterSchedulerConfig{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateClusterSchedulerConfig"); 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 = addOpUpdateClusterSchedulerConfigValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateClusterSchedulerConfig(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_opUpdateClusterSchedulerConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateClusterSchedulerConfig", + } +} diff --git a/service/sagemaker/api_op_UpdateComputeQuota.go b/service/sagemaker/api_op_UpdateComputeQuota.go new file mode 100644 index 00000000000..b1e0813d9ad --- /dev/null +++ b/service/sagemaker/api_op_UpdateComputeQuota.go @@ -0,0 +1,185 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Update the compute allocation definition. +func (c *Client) UpdateComputeQuota(ctx context.Context, params *UpdateComputeQuotaInput, optFns ...func(*Options)) (*UpdateComputeQuotaOutput, error) { + if params == nil { + params = &UpdateComputeQuotaInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateComputeQuota", params, optFns, c.addOperationUpdateComputeQuotaMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateComputeQuotaOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateComputeQuotaInput struct { + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + // Target version. + // + // This member is required. + TargetVersion *int32 + + // The state of the compute allocation being described. Use to enable or disable + // compute allocation. + // + // Default is Enabled . + ActivationState types.ActivationState + + // Configuration of the compute allocation definition. This includes the resource + // sharing option, and the setting to preempt low priority tasks. + ComputeQuotaConfig *types.ComputeQuotaConfig + + // The target entity to allocate compute resources to. + ComputeQuotaTarget *types.ComputeQuotaTarget + + // Description of the compute allocation definition. + Description *string + + noSmithyDocumentSerde +} + +type UpdateComputeQuotaOutput struct { + + // ARN of the compute allocation definition. + // + // This member is required. + ComputeQuotaArn *string + + // Version of the compute allocation definition. + // + // This member is required. + ComputeQuotaVersion *int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateComputeQuotaMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateComputeQuota{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateComputeQuota{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateComputeQuota"); 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 = addOpUpdateComputeQuotaValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateComputeQuota(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_opUpdateComputeQuota(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateComputeQuota", + } +} diff --git a/service/sagemaker/api_op_UpdatePartnerApp.go b/service/sagemaker/api_op_UpdatePartnerApp.go new file mode 100644 index 00000000000..1a7ed76a2aa --- /dev/null +++ b/service/sagemaker/api_op_UpdatePartnerApp.go @@ -0,0 +1,215 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates all of the SageMaker Partner AI Apps in an account. +func (c *Client) UpdatePartnerApp(ctx context.Context, params *UpdatePartnerAppInput, optFns ...func(*Options)) (*UpdatePartnerAppOutput, error) { + if params == nil { + params = &UpdatePartnerAppInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdatePartnerApp", params, optFns, c.addOperationUpdatePartnerAppMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdatePartnerAppOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdatePartnerAppInput struct { + + // The ARN of the SageMaker Partner AI App to update. + // + // This member is required. + Arn *string + + // Configuration settings for the SageMaker Partner AI App. + ApplicationConfig *types.PartnerAppConfig + + // A unique token that guarantees that the call to this API is idempotent. + ClientToken *string + + // When set to TRUE , the SageMaker Partner AI App sets the Amazon Web Services IAM + // session name or the authenticated IAM user as the identity of the SageMaker + // Partner AI App user. + EnableIamSessionBasedIdentity *bool + + // Maintenance configuration settings for the SageMaker Partner AI App. + MaintenanceConfig *types.PartnerAppMaintenanceConfig + + // Each tag consists of a key and an optional value. Tag keys must be unique per + // resource. + Tags []types.Tag + + // Indicates the instance type and size of the cluster attached to the SageMaker + // Partner AI App. + Tier *string + + noSmithyDocumentSerde +} + +type UpdatePartnerAppOutput struct { + + // The ARN of the SageMaker Partner AI App that was updated. + Arn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdatePartnerAppMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdatePartnerApp{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdatePartnerApp{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdatePartnerApp"); 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_opUpdatePartnerAppMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdatePartnerAppValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdatePartnerApp(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_initializeOpUpdatePartnerApp struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdatePartnerApp) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdatePartnerApp) 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.(*UpdatePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdatePartnerAppInput ") + } + + 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_opUpdatePartnerAppMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdatePartnerApp{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdatePartnerApp(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdatePartnerApp", + } +} diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index d1b4aa27d81..f665a905bd9 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -1483,14 +1483,14 @@ func awsAwsjson11_deserializeOpErrorCreateCluster(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpCreateCodeRepository struct { +type awsAwsjson11_deserializeOpCreateClusterSchedulerConfig struct { } -func (*awsAwsjson11_deserializeOpCreateCodeRepository) ID() string { +func (*awsAwsjson11_deserializeOpCreateClusterSchedulerConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateClusterSchedulerConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1508,9 +1508,9 @@ func (m *awsAwsjson11_deserializeOpCreateCodeRepository) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateCodeRepository(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateClusterSchedulerConfig(response, &metadata) } - output := &CreateCodeRepositoryOutput{} + output := &CreateClusterSchedulerConfigOutput{} out.Result = output var buff [1024]byte @@ -1530,7 +1530,7 @@ func (m *awsAwsjson11_deserializeOpCreateCodeRepository) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateCodeRepositoryOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateClusterSchedulerConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1544,7 +1544,7 @@ func (m *awsAwsjson11_deserializeOpCreateCodeRepository) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateClusterSchedulerConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1581,6 +1581,12 @@ func awsAwsjson11_deserializeOpErrorCreateCodeRepository(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1591,14 +1597,14 @@ func awsAwsjson11_deserializeOpErrorCreateCodeRepository(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpCreateCompilationJob struct { +type awsAwsjson11_deserializeOpCreateCodeRepository struct { } -func (*awsAwsjson11_deserializeOpCreateCompilationJob) ID() string { +func (*awsAwsjson11_deserializeOpCreateCodeRepository) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1616,9 +1622,9 @@ func (m *awsAwsjson11_deserializeOpCreateCompilationJob) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateCompilationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateCodeRepository(response, &metadata) } - output := &CreateCompilationJobOutput{} + output := &CreateCodeRepositoryOutput{} out.Result = output var buff [1024]byte @@ -1638,7 +1644,7 @@ func (m *awsAwsjson11_deserializeOpCreateCompilationJob) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateCompilationJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateCodeRepositoryOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1652,7 +1658,7 @@ func (m *awsAwsjson11_deserializeOpCreateCompilationJob) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1689,12 +1695,6 @@ func awsAwsjson11_deserializeOpErrorCreateCompilationJob(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1705,14 +1705,14 @@ func awsAwsjson11_deserializeOpErrorCreateCompilationJob(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpCreateContext struct { +type awsAwsjson11_deserializeOpCreateCompilationJob struct { } -func (*awsAwsjson11_deserializeOpCreateContext) ID() string { +func (*awsAwsjson11_deserializeOpCreateCompilationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1730,9 +1730,9 @@ func (m *awsAwsjson11_deserializeOpCreateContext) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateContext(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateCompilationJob(response, &metadata) } - output := &CreateContextOutput{} + output := &CreateCompilationJobOutput{} out.Result = output var buff [1024]byte @@ -1752,7 +1752,7 @@ func (m *awsAwsjson11_deserializeOpCreateContext) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateContextOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateCompilationJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1766,7 +1766,7 @@ func (m *awsAwsjson11_deserializeOpCreateContext) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1803,6 +1803,9 @@ func awsAwsjson11_deserializeOpErrorCreateContext(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -1816,14 +1819,14 @@ func awsAwsjson11_deserializeOpErrorCreateContext(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpCreateDataQualityJobDefinition struct { +type awsAwsjson11_deserializeOpCreateComputeQuota struct { } -func (*awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpCreateComputeQuota) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateComputeQuota) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1841,9 +1844,9 @@ func (m *awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateDataQualityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateComputeQuota(response, &metadata) } - output := &CreateDataQualityJobDefinitionOutput{} + output := &CreateComputeQuotaOutput{} out.Result = output var buff [1024]byte @@ -1863,7 +1866,7 @@ func (m *awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) HandleDeseria return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateDataQualityJobDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateComputeQuotaOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1877,7 +1880,7 @@ func (m *awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) HandleDeseria return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateComputeQuota(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1914,100 +1917,8 @@ func awsAwsjson11_deserializeOpErrorCreateDataQualityJobDefinition(response *smi errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpCreateDeviceFleet struct { -} - -func (*awsAwsjson11_deserializeOpCreateDeviceFleet) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpCreateDeviceFleet) HandleDeserialize(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_deserializeOpErrorCreateDeviceFleet(response, &metadata) - } - output := &CreateDeviceFleetOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorCreateDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2022,14 +1933,14 @@ func awsAwsjson11_deserializeOpErrorCreateDeviceFleet(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpCreateDomain struct { +type awsAwsjson11_deserializeOpCreateContext struct { } -func (*awsAwsjson11_deserializeOpCreateDomain) ID() string { +func (*awsAwsjson11_deserializeOpCreateContext) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2047,9 +1958,9 @@ func (m *awsAwsjson11_deserializeOpCreateDomain) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateDomain(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateContext(response, &metadata) } - output := &CreateDomainOutput{} + output := &CreateContextOutput{} out.Result = output var buff [1024]byte @@ -2069,7 +1980,7 @@ func (m *awsAwsjson11_deserializeOpCreateDomain) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateDomainOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateContextOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2083,7 +1994,7 @@ func (m *awsAwsjson11_deserializeOpCreateDomain) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2120,9 +2031,6 @@ func awsAwsjson11_deserializeOpErrorCreateDomain(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2136,14 +2044,14 @@ func awsAwsjson11_deserializeOpErrorCreateDomain(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan struct { +type awsAwsjson11_deserializeOpCreateDataQualityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) ID() string { +func (*awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2161,9 +2069,9 @@ func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateDataQualityJobDefinition(response, &metadata) } - output := &CreateEdgeDeploymentPlanOutput{} + output := &CreateDataQualityJobDefinitionOutput{} out.Result = output var buff [1024]byte @@ -2183,7 +2091,7 @@ func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateEdgeDeploymentPlanOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateDataQualityJobDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2197,7 +2105,7 @@ func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2234,6 +2142,9 @@ func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response *smithyhtt errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2247,14 +2158,14 @@ func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response *smithyhtt } } -type awsAwsjson11_deserializeOpCreateEdgeDeploymentStage struct { +type awsAwsjson11_deserializeOpCreateDeviceFleet struct { } -func (*awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) ID() string { +func (*awsAwsjson11_deserializeOpCreateDeviceFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2272,9 +2183,9 @@ func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateDeviceFleet(response, &metadata) } - output := &CreateEdgeDeploymentStageOutput{} + output := &CreateDeviceFleetOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -2286,7 +2197,7 @@ func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2323,6 +2234,9 @@ func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response *smithyht errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2336,14 +2250,14 @@ func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response *smithyht } } -type awsAwsjson11_deserializeOpCreateEdgePackagingJob struct { +type awsAwsjson11_deserializeOpCreateDomain struct { } -func (*awsAwsjson11_deserializeOpCreateEdgePackagingJob) ID() string { +func (*awsAwsjson11_deserializeOpCreateDomain) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateEdgePackagingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2361,21 +2275,43 @@ func (m *awsAwsjson11_deserializeOpCreateEdgePackagingJob) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateEdgePackagingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateDomain(response, &metadata) } - output := &CreateEdgePackagingJobOutput{} + output := &CreateDomainOutput{} 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_deserializeOpDocumentCreateDomainOutput(&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_deserializeOpErrorCreateEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2412,6 +2348,9 @@ func awsAwsjson11_deserializeOpErrorCreateEdgePackagingJob(response *smithyhttp. errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2425,14 +2364,14 @@ func awsAwsjson11_deserializeOpErrorCreateEdgePackagingJob(response *smithyhttp. } } -type awsAwsjson11_deserializeOpCreateEndpoint struct { +type awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan struct { } -func (*awsAwsjson11_deserializeOpCreateEndpoint) ID() string { +func (*awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2450,9 +2389,9 @@ func (m *awsAwsjson11_deserializeOpCreateEndpoint) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateEndpoint(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response, &metadata) } - output := &CreateEndpointOutput{} + output := &CreateEdgeDeploymentPlanOutput{} out.Result = output var buff [1024]byte @@ -2472,7 +2411,7 @@ func (m *awsAwsjson11_deserializeOpCreateEndpoint) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateEndpointOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateEdgeDeploymentPlanOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2486,7 +2425,7 @@ func (m *awsAwsjson11_deserializeOpCreateEndpoint) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2536,14 +2475,14 @@ func awsAwsjson11_deserializeOpErrorCreateEndpoint(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpCreateEndpointConfig struct { +type awsAwsjson11_deserializeOpCreateEdgeDeploymentStage struct { } -func (*awsAwsjson11_deserializeOpCreateEndpointConfig) ID() string { +func (*awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2561,9 +2500,187 @@ func (m *awsAwsjson11_deserializeOpCreateEndpointConfig) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateEndpointConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response, &metadata) } - output := &CreateEndpointConfigOutput{} + output := &CreateEdgeDeploymentStageOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorCreateEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpCreateEdgePackagingJob struct { +} + +func (*awsAwsjson11_deserializeOpCreateEdgePackagingJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateEdgePackagingJob) HandleDeserialize(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_deserializeOpErrorCreateEdgePackagingJob(response, &metadata) + } + output := &CreateEdgePackagingJobOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorCreateEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpCreateEndpoint struct { +} + +func (*awsAwsjson11_deserializeOpCreateEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateEndpoint) HandleDeserialize(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_deserializeOpErrorCreateEndpoint(response, &metadata) + } + output := &CreateEndpointOutput{} out.Result = output var buff [1024]byte @@ -2583,7 +2700,7 @@ func (m *awsAwsjson11_deserializeOpCreateEndpointConfig) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateEndpointConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2597,7 +2714,7 @@ func (m *awsAwsjson11_deserializeOpCreateEndpointConfig) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2647,14 +2764,14 @@ func awsAwsjson11_deserializeOpErrorCreateEndpointConfig(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpCreateExperiment struct { +type awsAwsjson11_deserializeOpCreateEndpointConfig struct { } -func (*awsAwsjson11_deserializeOpCreateExperiment) ID() string { +func (*awsAwsjson11_deserializeOpCreateEndpointConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2672,9 +2789,9 @@ func (m *awsAwsjson11_deserializeOpCreateExperiment) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateEndpointConfig(response, &metadata) } - output := &CreateExperimentOutput{} + output := &CreateEndpointConfigOutput{} out.Result = output var buff [1024]byte @@ -2694,7 +2811,7 @@ func (m *awsAwsjson11_deserializeOpCreateExperiment) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateEndpointConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2708,7 +2825,7 @@ func (m *awsAwsjson11_deserializeOpCreateExperiment) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2758,14 +2875,14 @@ func awsAwsjson11_deserializeOpErrorCreateExperiment(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpCreateFeatureGroup struct { +type awsAwsjson11_deserializeOpCreateExperiment struct { } -func (*awsAwsjson11_deserializeOpCreateFeatureGroup) ID() string { +func (*awsAwsjson11_deserializeOpCreateExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2783,9 +2900,9 @@ func (m *awsAwsjson11_deserializeOpCreateFeatureGroup) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateExperiment(response, &metadata) } - output := &CreateFeatureGroupOutput{} + output := &CreateExperimentOutput{} out.Result = output var buff [1024]byte @@ -2805,7 +2922,7 @@ func (m *awsAwsjson11_deserializeOpCreateFeatureGroup) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateFeatureGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2819,7 +2936,7 @@ func (m *awsAwsjson11_deserializeOpCreateFeatureGroup) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2856,9 +2973,6 @@ func awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -2872,14 +2986,14 @@ func awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpCreateFlowDefinition struct { +type awsAwsjson11_deserializeOpCreateFeatureGroup struct { } -func (*awsAwsjson11_deserializeOpCreateFlowDefinition) ID() string { +func (*awsAwsjson11_deserializeOpCreateFeatureGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateFeatureGroup) HandleDeserialize(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 +3011,9 @@ func (m *awsAwsjson11_deserializeOpCreateFlowDefinition) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateFlowDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response, &metadata) } - output := &CreateFlowDefinitionOutput{} + output := &CreateFeatureGroupOutput{} out.Result = output var buff [1024]byte @@ -2919,7 +3033,7 @@ func (m *awsAwsjson11_deserializeOpCreateFlowDefinition) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateFlowDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateFeatureGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2933,7 +3047,7 @@ func (m *awsAwsjson11_deserializeOpCreateFlowDefinition) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2986,14 +3100,14 @@ func awsAwsjson11_deserializeOpErrorCreateFlowDefinition(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpCreateHub struct { +type awsAwsjson11_deserializeOpCreateFlowDefinition struct { } -func (*awsAwsjson11_deserializeOpCreateHub) ID() string { +func (*awsAwsjson11_deserializeOpCreateFlowDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3011,9 +3125,9 @@ func (m *awsAwsjson11_deserializeOpCreateHub) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateHub(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateFlowDefinition(response, &metadata) } - output := &CreateHubOutput{} + output := &CreateFlowDefinitionOutput{} out.Result = output var buff [1024]byte @@ -3033,7 +3147,7 @@ func (m *awsAwsjson11_deserializeOpCreateHub) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateHubOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateFlowDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3047,7 +3161,7 @@ func (m *awsAwsjson11_deserializeOpCreateHub) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3100,14 +3214,14 @@ func awsAwsjson11_deserializeOpErrorCreateHub(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpCreateHubContentReference struct { +type awsAwsjson11_deserializeOpCreateHub struct { } -func (*awsAwsjson11_deserializeOpCreateHubContentReference) ID() string { +func (*awsAwsjson11_deserializeOpCreateHub) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateHubContentReference) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3125,9 +3239,9 @@ func (m *awsAwsjson11_deserializeOpCreateHubContentReference) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateHubContentReference(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateHub(response, &metadata) } - output := &CreateHubContentReferenceOutput{} + output := &CreateHubOutput{} out.Result = output var buff [1024]byte @@ -3147,7 +3261,7 @@ func (m *awsAwsjson11_deserializeOpCreateHubContentReference) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateHubContentReferenceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateHubOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3161,7 +3275,121 @@ func (m *awsAwsjson11_deserializeOpCreateHubContentReference) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateHubContentReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpCreateHubContentReference struct { +} + +func (*awsAwsjson11_deserializeOpCreateHubContentReference) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateHubContentReference) HandleDeserialize(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_deserializeOpErrorCreateHubContentReference(response, &metadata) + } + output := &CreateHubContentReferenceOutput{} + 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_deserializeOpDocumentCreateHubContentReferenceOutput(&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_deserializeOpErrorCreateHubContentReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5599,14 +5827,14 @@ func awsAwsjson11_deserializeOpErrorCreateOptimizationJob(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpCreatePipeline struct { +type awsAwsjson11_deserializeOpCreatePartnerApp struct { } -func (*awsAwsjson11_deserializeOpCreatePipeline) ID() string { +func (*awsAwsjson11_deserializeOpCreatePartnerApp) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreatePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreatePartnerApp) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5624,9 +5852,9 @@ func (m *awsAwsjson11_deserializeOpCreatePipeline) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreatePipeline(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreatePartnerApp(response, &metadata) } - output := &CreatePipelineOutput{} + output := &CreatePartnerAppOutput{} out.Result = output var buff [1024]byte @@ -5646,7 +5874,7 @@ func (m *awsAwsjson11_deserializeOpCreatePipeline) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreatePipelineOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreatePartnerAppOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5660,7 +5888,7 @@ func (m *awsAwsjson11_deserializeOpCreatePipeline) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreatePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreatePartnerApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5703,6 +5931,114 @@ func awsAwsjson11_deserializeOpErrorCreatePipeline(response *smithyhttp.Response case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpCreatePartnerAppPresignedUrl struct { +} + +func (*awsAwsjson11_deserializeOpCreatePartnerAppPresignedUrl) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreatePartnerAppPresignedUrl) HandleDeserialize(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_deserializeOpErrorCreatePartnerAppPresignedUrl(response, &metadata) + } + output := &CreatePartnerAppPresignedUrlOutput{} + 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_deserializeOpDocumentCreatePartnerAppPresignedUrlOutput(&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_deserializeOpErrorCreatePartnerAppPresignedUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -5716,14 +6052,14 @@ func awsAwsjson11_deserializeOpErrorCreatePipeline(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpCreatePresignedDomainUrl struct { +type awsAwsjson11_deserializeOpCreatePipeline struct { } -func (*awsAwsjson11_deserializeOpCreatePresignedDomainUrl) ID() string { +func (*awsAwsjson11_deserializeOpCreatePipeline) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreatePresignedDomainUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreatePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5741,9 +6077,9 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedDomainUrl) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreatePipeline(response, &metadata) } - output := &CreatePresignedDomainUrlOutput{} + output := &CreatePipelineOutput{} out.Result = output var buff [1024]byte @@ -5763,7 +6099,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedDomainUrl) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreatePresignedDomainUrlOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreatePipelineOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5777,7 +6113,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedDomainUrl) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreatePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5814,6 +6150,12 @@ func awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response *smithyhtt errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -5827,14 +6169,14 @@ func awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response *smithyhtt } } -type awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl struct { +type awsAwsjson11_deserializeOpCreatePresignedDomainUrl struct { } -func (*awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) ID() string { +func (*awsAwsjson11_deserializeOpCreatePresignedDomainUrl) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreatePresignedDomainUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5852,9 +6194,9 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedMlflowTrackingServerUrl(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response, &metadata) } - output := &CreatePresignedMlflowTrackingServerUrlOutput{} + output := &CreatePresignedDomainUrlOutput{} out.Result = output var buff [1024]byte @@ -5874,7 +6216,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) Handl return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreatePresignedMlflowTrackingServerUrlOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreatePresignedDomainUrlOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5888,7 +6230,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) Handl return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreatePresignedMlflowTrackingServerUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreatePresignedDomainUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5938,14 +6280,14 @@ func awsAwsjson11_deserializeOpErrorCreatePresignedMlflowTrackingServerUrl(respo } } -type awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl struct { +type awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl struct { } -func (*awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) ID() string { +func (*awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreatePresignedMlflowTrackingServerUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5963,9 +6305,9 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedNotebookInstanceUrl(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedMlflowTrackingServerUrl(response, &metadata) } - output := &CreatePresignedNotebookInstanceUrlOutput{} + output := &CreatePresignedMlflowTrackingServerUrlOutput{} out.Result = output var buff [1024]byte @@ -5985,7 +6327,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) HandleDes return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreatePresignedNotebookInstanceUrlOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreatePresignedMlflowTrackingServerUrlOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5999,7 +6341,7 @@ func (m *awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) HandleDes return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreatePresignedNotebookInstanceUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreatePresignedMlflowTrackingServerUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6036,120 +6378,6 @@ func awsAwsjson11_deserializeOpErrorCreatePresignedNotebookInstanceUrl(response errorMessage = bodyInfo.Message } switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpCreateProcessingJob struct { -} - -func (*awsAwsjson11_deserializeOpCreateProcessingJob) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpCreateProcessingJob) HandleDeserialize(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_deserializeOpErrorCreateProcessingJob(response, &metadata) - } - output := &CreateProcessingJobOutput{} - 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_deserializeOpDocumentCreateProcessingJobOutput(&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_deserializeOpErrorCreateProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -6163,14 +6391,14 @@ func awsAwsjson11_deserializeOpErrorCreateProcessingJob(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpCreateProject struct { +type awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl struct { } -func (*awsAwsjson11_deserializeOpCreateProject) ID() string { +func (*awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreatePresignedNotebookInstanceUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6188,9 +6416,9 @@ func (m *awsAwsjson11_deserializeOpCreateProject) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateProject(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreatePresignedNotebookInstanceUrl(response, &metadata) } - output := &CreateProjectOutput{} + output := &CreatePresignedNotebookInstanceUrlOutput{} out.Result = output var buff [1024]byte @@ -6210,7 +6438,7 @@ func (m *awsAwsjson11_deserializeOpCreateProject) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateProjectOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreatePresignedNotebookInstanceUrlOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6224,7 +6452,7 @@ func (m *awsAwsjson11_deserializeOpCreateProject) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreatePresignedNotebookInstanceUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6261,9 +6489,6 @@ func awsAwsjson11_deserializeOpErrorCreateProject(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6274,14 +6499,14 @@ func awsAwsjson11_deserializeOpErrorCreateProject(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpCreateSpace struct { +type awsAwsjson11_deserializeOpCreateProcessingJob struct { } -func (*awsAwsjson11_deserializeOpCreateSpace) ID() string { +func (*awsAwsjson11_deserializeOpCreateProcessingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateProcessingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6299,9 +6524,9 @@ func (m *awsAwsjson11_deserializeOpCreateSpace) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateSpace(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateProcessingJob(response, &metadata) } - output := &CreateSpaceOutput{} + output := &CreateProcessingJobOutput{} out.Result = output var buff [1024]byte @@ -6321,7 +6546,7 @@ func (m *awsAwsjson11_deserializeOpCreateSpace) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateSpaceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateProcessingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6335,7 +6560,7 @@ func (m *awsAwsjson11_deserializeOpCreateSpace) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6378,6 +6603,9 @@ func awsAwsjson11_deserializeOpErrorCreateSpace(response *smithyhttp.Response, m case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6388,14 +6616,14 @@ func awsAwsjson11_deserializeOpErrorCreateSpace(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpCreateStudioLifecycleConfig struct { +type awsAwsjson11_deserializeOpCreateProject struct { } -func (*awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpCreateProject) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6413,9 +6641,9 @@ func (m *awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateProject(response, &metadata) } - output := &CreateStudioLifecycleConfigOutput{} + output := &CreateProjectOutput{} out.Result = output var buff [1024]byte @@ -6435,7 +6663,7 @@ func (m *awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateStudioLifecycleConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateProjectOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6449,7 +6677,7 @@ func (m *awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6486,8 +6714,8 @@ func awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response *smithy errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -6499,14 +6727,14 @@ func awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response *smithy } } -type awsAwsjson11_deserializeOpCreateTrainingJob struct { +type awsAwsjson11_deserializeOpCreateSpace struct { } -func (*awsAwsjson11_deserializeOpCreateTrainingJob) ID() string { +func (*awsAwsjson11_deserializeOpCreateSpace) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6524,9 +6752,9 @@ func (m *awsAwsjson11_deserializeOpCreateTrainingJob) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrainingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateSpace(response, &metadata) } - output := &CreateTrainingJobOutput{} + output := &CreateSpaceOutput{} out.Result = output var buff [1024]byte @@ -6546,7 +6774,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrainingJob) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateTrainingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateSpaceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6560,7 +6788,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrainingJob) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6603,9 +6831,6 @@ func awsAwsjson11_deserializeOpErrorCreateTrainingJob(response *smithyhttp.Respo case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6616,14 +6841,14 @@ func awsAwsjson11_deserializeOpErrorCreateTrainingJob(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpCreateTransformJob struct { +type awsAwsjson11_deserializeOpCreateStudioLifecycleConfig struct { } -func (*awsAwsjson11_deserializeOpCreateTransformJob) ID() string { +func (*awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6641,9 +6866,9 @@ func (m *awsAwsjson11_deserializeOpCreateTransformJob) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateTransformJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response, &metadata) } - output := &CreateTransformJobOutput{} + output := &CreateStudioLifecycleConfigOutput{} out.Result = output var buff [1024]byte @@ -6663,7 +6888,7 @@ func (m *awsAwsjson11_deserializeOpCreateTransformJob) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateTransformJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateStudioLifecycleConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6677,7 +6902,7 @@ func (m *awsAwsjson11_deserializeOpCreateTransformJob) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6717,12 +6942,6 @@ func awsAwsjson11_deserializeOpErrorCreateTransformJob(response *smithyhttp.Resp case strings.EqualFold("ResourceInUse", errorCode): return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6733,14 +6952,14 @@ func awsAwsjson11_deserializeOpErrorCreateTransformJob(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpCreateTrial struct { +type awsAwsjson11_deserializeOpCreateTrainingJob struct { } -func (*awsAwsjson11_deserializeOpCreateTrial) ID() string { +func (*awsAwsjson11_deserializeOpCreateTrainingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6758,9 +6977,9 @@ func (m *awsAwsjson11_deserializeOpCreateTrial) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrial(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrainingJob(response, &metadata) } - output := &CreateTrialOutput{} + output := &CreateTrainingJobOutput{} out.Result = output var buff [1024]byte @@ -6780,7 +6999,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrial) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateTrialOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateTrainingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6794,7 +7013,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrial) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6831,6 +7050,9 @@ func awsAwsjson11_deserializeOpErrorCreateTrial(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -6847,14 +7069,14 @@ func awsAwsjson11_deserializeOpErrorCreateTrial(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpCreateTrialComponent struct { +type awsAwsjson11_deserializeOpCreateTrainingPlan struct { } -func (*awsAwsjson11_deserializeOpCreateTrialComponent) ID() string { +func (*awsAwsjson11_deserializeOpCreateTrainingPlan) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateTrainingPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6872,9 +7094,9 @@ func (m *awsAwsjson11_deserializeOpCreateTrialComponent) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrialComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrainingPlan(response, &metadata) } - output := &CreateTrialComponentOutput{} + output := &CreateTrainingPlanOutput{} out.Result = output var buff [1024]byte @@ -6894,7 +7116,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrialComponent) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateTrialComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateTrainingPlanOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6908,7 +7130,7 @@ func (m *awsAwsjson11_deserializeOpCreateTrialComponent) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateTrainingPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6945,9 +7167,15 @@ func awsAwsjson11_deserializeOpErrorCreateTrialComponent(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6958,14 +7186,14 @@ func awsAwsjson11_deserializeOpErrorCreateTrialComponent(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpCreateUserProfile struct { +type awsAwsjson11_deserializeOpCreateTransformJob struct { } -func (*awsAwsjson11_deserializeOpCreateUserProfile) ID() string { +func (*awsAwsjson11_deserializeOpCreateTransformJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6983,9 +7211,9 @@ func (m *awsAwsjson11_deserializeOpCreateUserProfile) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateUserProfile(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateTransformJob(response, &metadata) } - output := &CreateUserProfileOutput{} + output := &CreateTransformJobOutput{} out.Result = output var buff [1024]byte @@ -7005,7 +7233,7 @@ func (m *awsAwsjson11_deserializeOpCreateUserProfile) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateUserProfileOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateTransformJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7019,7 +7247,7 @@ func (m *awsAwsjson11_deserializeOpCreateUserProfile) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7062,6 +7290,9 @@ func awsAwsjson11_deserializeOpErrorCreateUserProfile(response *smithyhttp.Respo case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7072,14 +7303,14 @@ func awsAwsjson11_deserializeOpErrorCreateUserProfile(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpCreateWorkforce struct { +type awsAwsjson11_deserializeOpCreateTrial struct { } -func (*awsAwsjson11_deserializeOpCreateWorkforce) ID() string { +func (*awsAwsjson11_deserializeOpCreateTrial) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateWorkforce) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7097,9 +7328,9 @@ func (m *awsAwsjson11_deserializeOpCreateWorkforce) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateWorkforce(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrial(response, &metadata) } - output := &CreateWorkforceOutput{} + output := &CreateTrialOutput{} out.Result = output var buff [1024]byte @@ -7119,7 +7350,7 @@ func (m *awsAwsjson11_deserializeOpCreateWorkforce) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateWorkforceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateTrialOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7133,7 +7364,7 @@ func (m *awsAwsjson11_deserializeOpCreateWorkforce) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7170,6 +7401,12 @@ func awsAwsjson11_deserializeOpErrorCreateWorkforce(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7180,14 +7417,14 @@ func awsAwsjson11_deserializeOpErrorCreateWorkforce(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpCreateWorkteam struct { +type awsAwsjson11_deserializeOpCreateTrialComponent struct { } -func (*awsAwsjson11_deserializeOpCreateWorkteam) ID() string { +func (*awsAwsjson11_deserializeOpCreateTrialComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7205,9 +7442,9 @@ func (m *awsAwsjson11_deserializeOpCreateWorkteam) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateWorkteam(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateTrialComponent(response, &metadata) } - output := &CreateWorkteamOutput{} + output := &CreateTrialComponentOutput{} out.Result = output var buff [1024]byte @@ -7227,7 +7464,7 @@ func (m *awsAwsjson11_deserializeOpCreateWorkteam) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateWorkteamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateTrialComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7241,7 +7478,7 @@ func (m *awsAwsjson11_deserializeOpCreateWorkteam) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7278,9 +7515,6 @@ func awsAwsjson11_deserializeOpErrorCreateWorkteam(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -7294,14 +7528,14 @@ func awsAwsjson11_deserializeOpErrorCreateWorkteam(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteAction struct { +type awsAwsjson11_deserializeOpCreateUserProfile struct { } -func (*awsAwsjson11_deserializeOpDeleteAction) ID() string { +func (*awsAwsjson11_deserializeOpCreateUserProfile) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7319,9 +7553,9 @@ func (m *awsAwsjson11_deserializeOpDeleteAction) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAction(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateUserProfile(response, &metadata) } - output := &DeleteActionOutput{} + output := &CreateUserProfileOutput{} out.Result = output var buff [1024]byte @@ -7341,7 +7575,7 @@ func (m *awsAwsjson11_deserializeOpDeleteAction) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteActionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateUserProfileOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7355,7 +7589,7 @@ func (m *awsAwsjson11_deserializeOpDeleteAction) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7392,8 +7626,11 @@ func awsAwsjson11_deserializeOpErrorDeleteAction(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -7405,14 +7642,14 @@ func awsAwsjson11_deserializeOpErrorDeleteAction(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteAlgorithm struct { +type awsAwsjson11_deserializeOpCreateWorkforce struct { } -func (*awsAwsjson11_deserializeOpDeleteAlgorithm) ID() string { +func (*awsAwsjson11_deserializeOpCreateWorkforce) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteAlgorithm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateWorkforce) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7430,128 +7667,29 @@ func (m *awsAwsjson11_deserializeOpDeleteAlgorithm) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAlgorithm(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateWorkforce(response, &metadata) } - output := &DeleteAlgorithmOutput{} + output := &CreateWorkforceOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorDeleteAlgorithm(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - bodyInfo, err := getProtocolErrorInfo(decoder) - if err != nil { + 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 - } - - 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) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpDeleteApp struct { -} - -func (*awsAwsjson11_deserializeOpDeleteApp) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpDeleteApp) HandleDeserialize(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_deserializeOpErrorDeleteApp(response, &metadata) - } - output := &DeleteAppOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorDeleteApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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) + err = awsAwsjson11_deserializeOpDocumentCreateWorkforceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7559,73 +7697,13 @@ func awsAwsjson11_deserializeOpErrorDeleteApp(response *smithyhttp.Response, met 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("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpDeleteAppImageConfig struct { -} - -func (*awsAwsjson11_deserializeOpDeleteAppImageConfig) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpDeleteAppImageConfig) HandleDeserialize(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_deserializeOpErrorDeleteAppImageConfig(response, &metadata) - } - output := &DeleteAppImageConfigOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7662,9 +7740,6 @@ func awsAwsjson11_deserializeOpErrorDeleteAppImageConfig(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7675,14 +7750,14 @@ func awsAwsjson11_deserializeOpErrorDeleteAppImageConfig(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteArtifact struct { +type awsAwsjson11_deserializeOpCreateWorkteam struct { } -func (*awsAwsjson11_deserializeOpDeleteArtifact) ID() string { +func (*awsAwsjson11_deserializeOpCreateWorkteam) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7700,9 +7775,9 @@ func (m *awsAwsjson11_deserializeOpDeleteArtifact) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteArtifact(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateWorkteam(response, &metadata) } - output := &DeleteArtifactOutput{} + output := &CreateWorkteamOutput{} out.Result = output var buff [1024]byte @@ -7722,7 +7797,7 @@ func (m *awsAwsjson11_deserializeOpDeleteArtifact) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteArtifactOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateWorkteamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7736,7 +7811,7 @@ func (m *awsAwsjson11_deserializeOpDeleteArtifact) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7773,8 +7848,11 @@ func awsAwsjson11_deserializeOpErrorDeleteArtifact(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -7786,14 +7864,14 @@ func awsAwsjson11_deserializeOpErrorDeleteArtifact(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteAssociation struct { +type awsAwsjson11_deserializeOpDeleteAction struct { } -func (*awsAwsjson11_deserializeOpDeleteAssociation) ID() string { +func (*awsAwsjson11_deserializeOpDeleteAction) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7811,9 +7889,9 @@ func (m *awsAwsjson11_deserializeOpDeleteAssociation) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAssociation(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAction(response, &metadata) } - output := &DeleteAssociationOutput{} + output := &DeleteActionOutput{} out.Result = output var buff [1024]byte @@ -7833,7 +7911,7 @@ func (m *awsAwsjson11_deserializeOpDeleteAssociation) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteAssociationOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteActionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7847,7 +7925,7 @@ func (m *awsAwsjson11_deserializeOpDeleteAssociation) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7897,14 +7975,14 @@ func awsAwsjson11_deserializeOpErrorDeleteAssociation(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDeleteCluster struct { +type awsAwsjson11_deserializeOpDeleteAlgorithm struct { } -func (*awsAwsjson11_deserializeOpDeleteCluster) ID() string { +func (*awsAwsjson11_deserializeOpDeleteAlgorithm) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteAlgorithm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7922,43 +8000,110 @@ func (m *awsAwsjson11_deserializeOpDeleteCluster) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCluster(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAlgorithm(response, &metadata) } - output := &DeleteClusterOutput{} + output := &DeleteAlgorithmOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorDeleteAlgorithm(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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(response.Body, ringBuffer) + 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{ Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return out, metadata, err + return err } - err = awsAwsjson11_deserializeOpDocumentDeleteClusterOutput(&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 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) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDeleteApp struct { +} + +func (*awsAwsjson11_deserializeOpDeleteApp) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteApp) HandleDeserialize(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_deserializeOpErrorDeleteApp(response, &metadata) + } + output := &DeleteAppOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7995,8 +8140,8 @@ func awsAwsjson11_deserializeOpErrorDeleteCluster(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -8011,14 +8156,14 @@ func awsAwsjson11_deserializeOpErrorDeleteCluster(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteCodeRepository struct { +type awsAwsjson11_deserializeOpDeleteAppImageConfig struct { } -func (*awsAwsjson11_deserializeOpDeleteCodeRepository) ID() string { +func (*awsAwsjson11_deserializeOpDeleteAppImageConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteAppImageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8036,9 +8181,9 @@ func (m *awsAwsjson11_deserializeOpDeleteCodeRepository) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAppImageConfig(response, &metadata) } - output := &DeleteCodeRepositoryOutput{} + output := &DeleteAppImageConfigOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8050,7 +8195,7 @@ func (m *awsAwsjson11_deserializeOpDeleteCodeRepository) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8087,6 +8232,9 @@ func awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8097,14 +8245,14 @@ func awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteCompilationJob struct { +type awsAwsjson11_deserializeOpDeleteArtifact struct { } -func (*awsAwsjson11_deserializeOpDeleteCompilationJob) ID() string { +func (*awsAwsjson11_deserializeOpDeleteArtifact) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8122,21 +8270,43 @@ func (m *awsAwsjson11_deserializeOpDeleteCompilationJob) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCompilationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteArtifact(response, &metadata) } - output := &DeleteCompilationJobOutput{} + output := &DeleteArtifactOutput{} 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_deserializeOpDocumentDeleteArtifactOutput(&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_deserializeOpErrorDeleteCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8186,14 +8356,14 @@ func awsAwsjson11_deserializeOpErrorDeleteCompilationJob(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteContext struct { +type awsAwsjson11_deserializeOpDeleteAssociation struct { } -func (*awsAwsjson11_deserializeOpDeleteContext) ID() string { +func (*awsAwsjson11_deserializeOpDeleteAssociation) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8211,9 +8381,9 @@ func (m *awsAwsjson11_deserializeOpDeleteContext) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteContext(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAssociation(response, &metadata) } - output := &DeleteContextOutput{} + output := &DeleteAssociationOutput{} out.Result = output var buff [1024]byte @@ -8233,7 +8403,7 @@ func (m *awsAwsjson11_deserializeOpDeleteContext) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteContextOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteAssociationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8247,7 +8417,7 @@ func (m *awsAwsjson11_deserializeOpDeleteContext) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8297,14 +8467,14 @@ func awsAwsjson11_deserializeOpErrorDeleteContext(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition struct { +type awsAwsjson11_deserializeOpDeleteCluster struct { } -func (*awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteCluster) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8322,21 +8492,43 @@ func (m *awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDataQualityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCluster(response, &metadata) } - output := &DeleteDataQualityJobDefinitionOutput{} + output := &DeleteClusterOutput{} 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_deserializeOpDocumentDeleteClusterOutput(&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_deserializeOpErrorDeleteDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8373,6 +8565,9 @@ func awsAwsjson11_deserializeOpErrorDeleteDataQualityJobDefinition(response *smi errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -8386,14 +8581,14 @@ func awsAwsjson11_deserializeOpErrorDeleteDataQualityJobDefinition(response *smi } } -type awsAwsjson11_deserializeOpDeleteDeviceFleet struct { +type awsAwsjson11_deserializeOpDeleteClusterSchedulerConfig struct { } -func (*awsAwsjson11_deserializeOpDeleteDeviceFleet) ID() string { +func (*awsAwsjson11_deserializeOpDeleteClusterSchedulerConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteClusterSchedulerConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8411,9 +8606,9 @@ func (m *awsAwsjson11_deserializeOpDeleteDeviceFleet) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteClusterSchedulerConfig(response, &metadata) } - output := &DeleteDeviceFleetOutput{} + output := &DeleteClusterSchedulerConfigOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8425,7 +8620,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDeviceFleet) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteClusterSchedulerConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8462,8 +8657,8 @@ func awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -8475,14 +8670,14 @@ func awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDeleteDomain struct { +type awsAwsjson11_deserializeOpDeleteCodeRepository struct { } -func (*awsAwsjson11_deserializeOpDeleteDomain) ID() string { +func (*awsAwsjson11_deserializeOpDeleteCodeRepository) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8500,9 +8695,9 @@ func (m *awsAwsjson11_deserializeOpDeleteDomain) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDomain(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response, &metadata) } - output := &DeleteDomainOutput{} + output := &DeleteCodeRepositoryOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8514,7 +8709,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDomain) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8551,12 +8746,6 @@ func awsAwsjson11_deserializeOpErrorDeleteDomain(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8567,14 +8756,14 @@ func awsAwsjson11_deserializeOpErrorDeleteDomain(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan struct { +type awsAwsjson11_deserializeOpDeleteCompilationJob struct { } -func (*awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) ID() string { +func (*awsAwsjson11_deserializeOpDeleteCompilationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8592,9 +8781,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCompilationJob(response, &metadata) } - output := &DeleteEdgeDeploymentPlanOutput{} + output := &DeleteCompilationJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8606,7 +8795,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8643,8 +8832,8 @@ func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response *smithyhtt errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -8656,14 +8845,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response *smithyhtt } } -type awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage struct { +type awsAwsjson11_deserializeOpDeleteComputeQuota struct { } -func (*awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) ID() string { +func (*awsAwsjson11_deserializeOpDeleteComputeQuota) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteComputeQuota) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8681,9 +8870,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteComputeQuota(response, &metadata) } - output := &DeleteEdgeDeploymentStageOutput{} + output := &DeleteComputeQuotaOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8695,7 +8884,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteComputeQuota(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8732,8 +8921,8 @@ func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response *smithyht errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -8745,14 +8934,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response *smithyht } } -type awsAwsjson11_deserializeOpDeleteEndpoint struct { +type awsAwsjson11_deserializeOpDeleteContext struct { } -func (*awsAwsjson11_deserializeOpDeleteEndpoint) ID() string { +func (*awsAwsjson11_deserializeOpDeleteContext) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8770,21 +8959,43 @@ func (m *awsAwsjson11_deserializeOpDeleteEndpoint) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEndpoint(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteContext(response, &metadata) } - output := &DeleteEndpointOutput{} + output := &DeleteContextOutput{} 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_deserializeOpDocumentDeleteContextOutput(&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_deserializeOpErrorDeleteEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8821,6 +9032,9 @@ func awsAwsjson11_deserializeOpErrorDeleteEndpoint(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8831,14 +9045,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEndpoint(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteEndpointConfig struct { +type awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDeleteEndpointConfig) ID() string { +func (*awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8856,9 +9070,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEndpointConfig) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDataQualityJobDefinition(response, &metadata) } - output := &DeleteEndpointConfigOutput{} + output := &DeleteDataQualityJobDefinitionOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8870,7 +9084,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEndpointConfig) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8907,6 +9121,9 @@ func awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8917,14 +9134,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteExperiment struct { +type awsAwsjson11_deserializeOpDeleteDeviceFleet struct { } -func (*awsAwsjson11_deserializeOpDeleteExperiment) ID() string { +func (*awsAwsjson11_deserializeOpDeleteDeviceFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8942,43 +9159,21 @@ func (m *awsAwsjson11_deserializeOpDeleteExperiment) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response, &metadata) } - output := &DeleteExperimentOutput{} + output := &DeleteDeviceFleetOutput{} 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_deserializeOpDocumentDeleteExperimentOutput(&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_deserializeOpErrorDeleteExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9015,8 +9210,8 @@ func awsAwsjson11_deserializeOpErrorDeleteExperiment(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9028,14 +9223,14 @@ func awsAwsjson11_deserializeOpErrorDeleteExperiment(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDeleteFeatureGroup struct { +type awsAwsjson11_deserializeOpDeleteDomain struct { } -func (*awsAwsjson11_deserializeOpDeleteFeatureGroup) ID() string { +func (*awsAwsjson11_deserializeOpDeleteDomain) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9053,9 +9248,9 @@ func (m *awsAwsjson11_deserializeOpDeleteFeatureGroup) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDomain(response, &metadata) } - output := &DeleteFeatureGroupOutput{} + output := &DeleteDomainOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9067,7 +9262,7 @@ func (m *awsAwsjson11_deserializeOpDeleteFeatureGroup) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9104,6 +9299,9 @@ func awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -9117,14 +9315,14 @@ func awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDeleteFlowDefinition struct { +type awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan struct { } -func (*awsAwsjson11_deserializeOpDeleteFlowDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9142,43 +9340,21 @@ func (m *awsAwsjson11_deserializeOpDeleteFlowDefinition) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFlowDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response, &metadata) } - output := &DeleteFlowDefinitionOutput{} + output := &DeleteEdgeDeploymentPlanOutput{} 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_deserializeOpDocumentDeleteFlowDefinitionOutput(&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_deserializeOpErrorDeleteFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9218,9 +9394,6 @@ func awsAwsjson11_deserializeOpErrorDeleteFlowDefinition(response *smithyhttp.Re case strings.EqualFold("ResourceInUse", errorCode): return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9231,14 +9404,14 @@ func awsAwsjson11_deserializeOpErrorDeleteFlowDefinition(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteHub struct { +type awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage struct { } -func (*awsAwsjson11_deserializeOpDeleteHub) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9256,9 +9429,9 @@ func (m *awsAwsjson11_deserializeOpDeleteHub) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHub(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response, &metadata) } - output := &DeleteHubOutput{} + output := &DeleteEdgeDeploymentStageOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9270,7 +9443,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHub) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9310,9 +9483,6 @@ func awsAwsjson11_deserializeOpErrorDeleteHub(response *smithyhttp.Response, met case strings.EqualFold("ResourceInUse", errorCode): return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9323,14 +9493,14 @@ func awsAwsjson11_deserializeOpErrorDeleteHub(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpDeleteHubContent struct { +type awsAwsjson11_deserializeOpDeleteEndpoint struct { } -func (*awsAwsjson11_deserializeOpDeleteHubContent) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteHubContent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9348,9 +9518,9 @@ func (m *awsAwsjson11_deserializeOpDeleteHubContent) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHubContent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEndpoint(response, &metadata) } - output := &DeleteHubContentOutput{} + output := &DeleteEndpointOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9362,7 +9532,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHubContent) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9399,12 +9569,6 @@ func awsAwsjson11_deserializeOpErrorDeleteHubContent(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9415,14 +9579,14 @@ func awsAwsjson11_deserializeOpErrorDeleteHubContent(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDeleteHubContentReference struct { +type awsAwsjson11_deserializeOpDeleteEndpointConfig struct { } -func (*awsAwsjson11_deserializeOpDeleteHubContentReference) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEndpointConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteHubContentReference) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9440,9 +9604,9 @@ func (m *awsAwsjson11_deserializeOpDeleteHubContentReference) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response, &metadata) } - output := &DeleteHubContentReferenceOutput{} + output := &DeleteEndpointConfigOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9454,7 +9618,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHubContentReference) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9491,9 +9655,6 @@ func awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response *smithyht errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9504,14 +9665,14 @@ func awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response *smithyht } } -type awsAwsjson11_deserializeOpDeleteHumanTaskUi struct { +type awsAwsjson11_deserializeOpDeleteExperiment struct { } -func (*awsAwsjson11_deserializeOpDeleteHumanTaskUi) ID() string { +func (*awsAwsjson11_deserializeOpDeleteExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteHumanTaskUi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteExperiment) HandleDeserialize(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,9 +9690,9 @@ func (m *awsAwsjson11_deserializeOpDeleteHumanTaskUi) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHumanTaskUi(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteExperiment(response, &metadata) } - output := &DeleteHumanTaskUiOutput{} + output := &DeleteExperimentOutput{} out.Result = output var buff [1024]byte @@ -9551,7 +9712,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHumanTaskUi) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteHumanTaskUiOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9565,7 +9726,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHumanTaskUi) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteHumanTaskUi(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.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,14 +9776,14 @@ func awsAwsjson11_deserializeOpErrorDeleteHumanTaskUi(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob struct { +type awsAwsjson11_deserializeOpDeleteFeatureGroup struct { } -func (*awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) ID() string { +func (*awsAwsjson11_deserializeOpDeleteFeatureGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9640,9 +9801,9 @@ func (m *awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response, &metadata) } - output := &DeleteHyperParameterTuningJobOutput{} + output := &DeleteFeatureGroupOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9654,7 +9815,7 @@ func (m *awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9691,6 +9852,9 @@ func awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response *smit errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9701,14 +9865,14 @@ func awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response *smit } } -type awsAwsjson11_deserializeOpDeleteImage struct { +type awsAwsjson11_deserializeOpDeleteFlowDefinition struct { } -func (*awsAwsjson11_deserializeOpDeleteImage) ID() string { +func (*awsAwsjson11_deserializeOpDeleteFlowDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9726,9 +9890,9 @@ func (m *awsAwsjson11_deserializeOpDeleteImage) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteImage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFlowDefinition(response, &metadata) } - output := &DeleteImageOutput{} + output := &DeleteFlowDefinitionOutput{} out.Result = output var buff [1024]byte @@ -9748,7 +9912,7 @@ func (m *awsAwsjson11_deserializeOpDeleteImage) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteImageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteFlowDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9762,7 +9926,7 @@ func (m *awsAwsjson11_deserializeOpDeleteImage) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.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,14 +9979,14 @@ func awsAwsjson11_deserializeOpErrorDeleteImage(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteImageVersion struct { +type awsAwsjson11_deserializeOpDeleteHub struct { } -func (*awsAwsjson11_deserializeOpDeleteImageVersion) ID() string { +func (*awsAwsjson11_deserializeOpDeleteHub) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9840,43 +10004,113 @@ func (m *awsAwsjson11_deserializeOpDeleteImageVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteImageVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHub(response, &metadata) } - output := &DeleteImageVersionOutput{} + output := &DeleteHubOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorDeleteHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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(response.Body, ringBuffer) + 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{ Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return out, metadata, err + return err } - err = awsAwsjson11_deserializeOpDocumentDeleteImageVersionOutput(&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 typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDeleteHubContent struct { +} + +func (*awsAwsjson11_deserializeOpDeleteHubContent) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteHubContent) HandleDeserialize(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_deserializeOpErrorDeleteHubContent(response, &metadata) + } + output := &DeleteHubContentOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9929,14 +10163,14 @@ func awsAwsjson11_deserializeOpErrorDeleteImageVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDeleteInferenceComponent struct { +type awsAwsjson11_deserializeOpDeleteHubContentReference struct { } -func (*awsAwsjson11_deserializeOpDeleteInferenceComponent) ID() string { +func (*awsAwsjson11_deserializeOpDeleteHubContentReference) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteHubContentReference) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9954,9 +10188,9 @@ func (m *awsAwsjson11_deserializeOpDeleteInferenceComponent) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response, &metadata) } - output := &DeleteInferenceComponentOutput{} + output := &DeleteHubContentReferenceOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9968,7 +10202,7 @@ func (m *awsAwsjson11_deserializeOpDeleteInferenceComponent) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteHubContentReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10005,6 +10239,9 @@ func awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response *smithyhtt errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10015,14 +10252,14 @@ func awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response *smithyhtt } } -type awsAwsjson11_deserializeOpDeleteInferenceExperiment struct { +type awsAwsjson11_deserializeOpDeleteHumanTaskUi struct { } -func (*awsAwsjson11_deserializeOpDeleteInferenceExperiment) ID() string { +func (*awsAwsjson11_deserializeOpDeleteHumanTaskUi) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteHumanTaskUi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10040,9 +10277,9 @@ func (m *awsAwsjson11_deserializeOpDeleteInferenceExperiment) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHumanTaskUi(response, &metadata) } - output := &DeleteInferenceExperimentOutput{} + output := &DeleteHumanTaskUiOutput{} out.Result = output var buff [1024]byte @@ -10062,7 +10299,7 @@ func (m *awsAwsjson11_deserializeOpDeleteInferenceExperiment) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteInferenceExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteHumanTaskUiOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10076,7 +10313,7 @@ func (m *awsAwsjson11_deserializeOpDeleteInferenceExperiment) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteHumanTaskUi(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10113,9 +10350,6 @@ func awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response *smithyht errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -10129,14 +10363,14 @@ func awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response *smithyht } } -type awsAwsjson11_deserializeOpDeleteMlflowTrackingServer struct { +type awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob struct { } -func (*awsAwsjson11_deserializeOpDeleteMlflowTrackingServer) ID() string { +func (*awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10154,43 +10388,21 @@ func (m *awsAwsjson11_deserializeOpDeleteMlflowTrackingServer) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteMlflowTrackingServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response, &metadata) } - output := &DeleteMlflowTrackingServerOutput{} + output := &DeleteHyperParameterTuningJobOutput{} 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_deserializeOpDocumentDeleteMlflowTrackingServerOutput(&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_deserializeOpErrorDeleteMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10227,9 +10439,6 @@ func awsAwsjson11_deserializeOpErrorDeleteMlflowTrackingServer(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10240,14 +10449,14 @@ func awsAwsjson11_deserializeOpErrorDeleteMlflowTrackingServer(response *smithyh } } -type awsAwsjson11_deserializeOpDeleteModel struct { +type awsAwsjson11_deserializeOpDeleteImage struct { } -func (*awsAwsjson11_deserializeOpDeleteModel) ID() string { +func (*awsAwsjson11_deserializeOpDeleteImage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10265,21 +10474,43 @@ func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteImage(response, &metadata) } - output := &DeleteModelOutput{} + output := &DeleteImageOutput{} 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_deserializeOpDocumentDeleteImageOutput(&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_deserializeOpErrorDeleteModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10316,6 +10547,12 @@ func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10326,14 +10563,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition struct { +type awsAwsjson11_deserializeOpDeleteImageVersion struct { } -func (*awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteImageVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10351,21 +10588,43 @@ func (m *awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelBiasJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteImageVersion(response, &metadata) } - output := &DeleteModelBiasJobDefinitionOutput{} + output := &DeleteImageVersionOutput{} 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_deserializeOpDocumentDeleteImageVersionOutput(&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_deserializeOpErrorDeleteModelBiasJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10402,6 +10661,9 @@ func awsAwsjson11_deserializeOpErrorDeleteModelBiasJobDefinition(response *smith errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -10415,14 +10677,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelBiasJobDefinition(response *smith } } -type awsAwsjson11_deserializeOpDeleteModelCard struct { +type awsAwsjson11_deserializeOpDeleteInferenceComponent struct { } -func (*awsAwsjson11_deserializeOpDeleteModelCard) ID() string { +func (*awsAwsjson11_deserializeOpDeleteInferenceComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10440,9 +10702,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModelCard) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelCard(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response, &metadata) } - output := &DeleteModelCardOutput{} + output := &DeleteInferenceComponentOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -10454,7 +10716,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelCard) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10491,12 +10753,6 @@ func awsAwsjson11_deserializeOpErrorDeleteModelCard(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10507,14 +10763,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelCard(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition struct { +type awsAwsjson11_deserializeOpDeleteInferenceExperiment struct { } -func (*awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteInferenceExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10532,21 +10788,43 @@ func (m *awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelExplainabilityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response, &metadata) } - output := &DeleteModelExplainabilityJobDefinitionOutput{} + output := &DeleteInferenceExperimentOutput{} 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_deserializeOpDocumentDeleteInferenceExperimentOutput(&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_deserializeOpErrorDeleteModelExplainabilityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10583,6 +10861,9 @@ func awsAwsjson11_deserializeOpErrorDeleteModelExplainabilityJobDefinition(respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -10596,14 +10877,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelExplainabilityJobDefinition(respo } } -type awsAwsjson11_deserializeOpDeleteModelPackage struct { +type awsAwsjson11_deserializeOpDeleteMlflowTrackingServer struct { } -func (*awsAwsjson11_deserializeOpDeleteModelPackage) ID() string { +func (*awsAwsjson11_deserializeOpDeleteMlflowTrackingServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10621,21 +10902,43 @@ func (m *awsAwsjson11_deserializeOpDeleteModelPackage) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteMlflowTrackingServer(response, &metadata) } - output := &DeleteModelPackageOutput{} + output := &DeleteMlflowTrackingServerOutput{} 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_deserializeOpDocumentDeleteMlflowTrackingServerOutput(&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_deserializeOpErrorDeleteModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10672,8 +10975,8 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackage(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -10685,14 +10988,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackage(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDeleteModelPackageGroup struct { +type awsAwsjson11_deserializeOpDeleteModel struct { } -func (*awsAwsjson11_deserializeOpDeleteModelPackageGroup) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10710,9 +11013,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroup) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModel(response, &metadata) } - output := &DeleteModelPackageGroupOutput{} + output := &DeleteModelOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -10724,7 +11027,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroup) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10761,9 +11064,6 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response *smithyhttp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10774,14 +11074,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response *smithyhttp } } -type awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy struct { +type awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelBiasJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10799,9 +11099,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelBiasJobDefinition(response, &metadata) } - output := &DeleteModelPackageGroupPolicyOutput{} + output := &DeleteModelBiasJobDefinitionOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -10813,7 +11113,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelBiasJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10850,6 +11150,9 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response *smit errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10860,14 +11163,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response *smit } } -type awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition struct { +type awsAwsjson11_deserializeOpDeleteModelCard struct { } -func (*awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelCard) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10885,9 +11188,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelCard(response, &metadata) } - output := &DeleteModelQualityJobDefinitionOutput{} + output := &DeleteModelCardOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -10899,7 +11202,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) HandleDeseri return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -10936,6 +11239,9 @@ func awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response *sm errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -10949,14 +11255,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response *sm } } -type awsAwsjson11_deserializeOpDeleteMonitoringSchedule struct { +type awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDeleteMonitoringSchedule) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelExplainabilityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -10974,9 +11280,9 @@ func (m *awsAwsjson11_deserializeOpDeleteMonitoringSchedule) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteMonitoringSchedule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelExplainabilityJobDefinition(response, &metadata) } - output := &DeleteMonitoringScheduleOutput{} + output := &DeleteModelExplainabilityJobDefinitionOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -10988,7 +11294,7 @@ func (m *awsAwsjson11_deserializeOpDeleteMonitoringSchedule) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelExplainabilityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11038,14 +11344,14 @@ func awsAwsjson11_deserializeOpErrorDeleteMonitoringSchedule(response *smithyhtt } } -type awsAwsjson11_deserializeOpDeleteNotebookInstance struct { +type awsAwsjson11_deserializeOpDeleteModelPackage struct { } -func (*awsAwsjson11_deserializeOpDeleteNotebookInstance) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelPackage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11063,9 +11369,9 @@ func (m *awsAwsjson11_deserializeOpDeleteNotebookInstance) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackage(response, &metadata) } - output := &DeleteNotebookInstanceOutput{} + output := &DeleteModelPackageOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11077,7 +11383,7 @@ func (m *awsAwsjson11_deserializeOpDeleteNotebookInstance) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11114,6 +11420,9 @@ func awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response *smithyhttp. errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11124,14 +11433,14 @@ func awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig struct { +type awsAwsjson11_deserializeOpDeleteModelPackageGroup struct { } -func (*awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelPackageGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11149,9 +11458,9 @@ func (m *awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response, &metadata) } - output := &DeleteNotebookInstanceLifecycleConfigOutput{} + output := &DeleteModelPackageGroupOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11163,7 +11472,7 @@ func (m *awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) Handle return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11200,6 +11509,9 @@ func awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(respon errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11210,14 +11522,14 @@ func awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(respon } } -type awsAwsjson11_deserializeOpDeleteOptimizationJob struct { +type awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy struct { } -func (*awsAwsjson11_deserializeOpDeleteOptimizationJob) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteOptimizationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11235,9 +11547,9 @@ func (m *awsAwsjson11_deserializeOpDeleteOptimizationJob) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response, &metadata) } - output := &DeleteOptimizationJobOutput{} + output := &DeleteModelPackageGroupPolicyOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11249,7 +11561,7 @@ func (m *awsAwsjson11_deserializeOpDeleteOptimizationJob) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11286,9 +11598,6 @@ func awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response *smithyhttp.R errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11299,14 +11608,14 @@ func awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpDeletePipeline struct { +type awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDeletePipeline) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeletePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11324,43 +11633,21 @@ func (m *awsAwsjson11_deserializeOpDeletePipeline) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeletePipeline(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response, &metadata) } - output := &DeletePipelineOutput{} + output := &DeleteModelQualityJobDefinitionOutput{} 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_deserializeOpDocumentDeletePipelineOutput(&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_deserializeOpErrorDeletePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11397,9 +11684,6 @@ func awsAwsjson11_deserializeOpErrorDeletePipeline(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -11413,14 +11697,14 @@ func awsAwsjson11_deserializeOpErrorDeletePipeline(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteProject struct { +type awsAwsjson11_deserializeOpDeleteMonitoringSchedule struct { } -func (*awsAwsjson11_deserializeOpDeleteProject) ID() string { +func (*awsAwsjson11_deserializeOpDeleteMonitoringSchedule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11438,9 +11722,9 @@ func (m *awsAwsjson11_deserializeOpDeleteProject) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteProject(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteMonitoringSchedule(response, &metadata) } - output := &DeleteProjectOutput{} + output := &DeleteMonitoringScheduleOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11452,7 +11736,7 @@ func (m *awsAwsjson11_deserializeOpDeleteProject) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11489,8 +11773,8 @@ func awsAwsjson11_deserializeOpErrorDeleteProject(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -11502,14 +11786,14 @@ func awsAwsjson11_deserializeOpErrorDeleteProject(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteSpace struct { +type awsAwsjson11_deserializeOpDeleteNotebookInstance struct { } -func (*awsAwsjson11_deserializeOpDeleteSpace) ID() string { +func (*awsAwsjson11_deserializeOpDeleteNotebookInstance) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11527,9 +11811,9 @@ func (m *awsAwsjson11_deserializeOpDeleteSpace) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteSpace(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response, &metadata) } - output := &DeleteSpaceOutput{} + output := &DeleteNotebookInstanceOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11541,7 +11825,7 @@ func (m *awsAwsjson11_deserializeOpDeleteSpace) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11578,12 +11862,6 @@ func awsAwsjson11_deserializeOpErrorDeleteSpace(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11594,14 +11872,14 @@ func awsAwsjson11_deserializeOpErrorDeleteSpace(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig struct { +type awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig struct { } -func (*awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteNotebookInstanceLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11619,9 +11897,9 @@ func (m *awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(response, &metadata) } - output := &DeleteStudioLifecycleConfigOutput{} + output := &DeleteNotebookInstanceLifecycleConfigOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -11633,7 +11911,7 @@ func (m *awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11670,12 +11948,6 @@ func awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response *smithy errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11686,14 +11958,14 @@ func awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response *smithy } } -type awsAwsjson11_deserializeOpDeleteTags struct { +type awsAwsjson11_deserializeOpDeleteOptimizationJob struct { } -func (*awsAwsjson11_deserializeOpDeleteTags) ID() string { +func (*awsAwsjson11_deserializeOpDeleteOptimizationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteOptimizationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11711,43 +11983,21 @@ func (m *awsAwsjson11_deserializeOpDeleteTags) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTags(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response, &metadata) } - output := &DeleteTagsOutput{} + output := &DeleteOptimizationJobOutput{} 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_deserializeOpDocumentDeleteTagsOutput(&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_deserializeOpErrorDeleteTags(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11784,6 +12034,9 @@ func awsAwsjson11_deserializeOpErrorDeleteTags(response *smithyhttp.Response, me errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11794,14 +12047,14 @@ func awsAwsjson11_deserializeOpErrorDeleteTags(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpDeleteTrial struct { +type awsAwsjson11_deserializeOpDeletePartnerApp struct { } -func (*awsAwsjson11_deserializeOpDeleteTrial) ID() string { +func (*awsAwsjson11_deserializeOpDeletePartnerApp) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeletePartnerApp) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11819,9 +12072,9 @@ func (m *awsAwsjson11_deserializeOpDeleteTrial) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTrial(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeletePartnerApp(response, &metadata) } - output := &DeleteTrialOutput{} + output := &DeletePartnerAppOutput{} out.Result = output var buff [1024]byte @@ -11841,7 +12094,7 @@ func (m *awsAwsjson11_deserializeOpDeleteTrial) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteTrialOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeletePartnerAppOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11855,7 +12108,7 @@ func (m *awsAwsjson11_deserializeOpDeleteTrial) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeletePartnerApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -11892,6 +12145,9 @@ func awsAwsjson11_deserializeOpErrorDeleteTrial(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -11905,14 +12161,14 @@ func awsAwsjson11_deserializeOpErrorDeleteTrial(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteTrialComponent struct { +type awsAwsjson11_deserializeOpDeletePipeline struct { } -func (*awsAwsjson11_deserializeOpDeleteTrialComponent) ID() string { +func (*awsAwsjson11_deserializeOpDeletePipeline) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeletePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -11930,9 +12186,9 @@ func (m *awsAwsjson11_deserializeOpDeleteTrialComponent) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeletePipeline(response, &metadata) } - output := &DeleteTrialComponentOutput{} + output := &DeletePipelineOutput{} out.Result = output var buff [1024]byte @@ -11952,7 +12208,7 @@ func (m *awsAwsjson11_deserializeOpDeleteTrialComponent) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteTrialComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeletePipelineOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11966,7 +12222,7 @@ func (m *awsAwsjson11_deserializeOpDeleteTrialComponent) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeletePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12003,6 +12259,9 @@ func awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -12016,14 +12275,14 @@ func awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteUserProfile struct { +type awsAwsjson11_deserializeOpDeleteProject struct { } -func (*awsAwsjson11_deserializeOpDeleteUserProfile) ID() string { +func (*awsAwsjson11_deserializeOpDeleteProject) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12041,9 +12300,9 @@ func (m *awsAwsjson11_deserializeOpDeleteUserProfile) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteUserProfile(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteProject(response, &metadata) } - output := &DeleteUserProfileOutput{} + output := &DeleteProjectOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -12055,7 +12314,7 @@ func (m *awsAwsjson11_deserializeOpDeleteUserProfile) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12092,11 +12351,8 @@ func awsAwsjson11_deserializeOpErrorDeleteUserProfile(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -12108,14 +12364,14 @@ func awsAwsjson11_deserializeOpErrorDeleteUserProfile(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDeleteWorkforce struct { +type awsAwsjson11_deserializeOpDeleteSpace struct { } -func (*awsAwsjson11_deserializeOpDeleteWorkforce) ID() string { +func (*awsAwsjson11_deserializeOpDeleteSpace) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteWorkforce) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12133,43 +12389,21 @@ func (m *awsAwsjson11_deserializeOpDeleteWorkforce) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteWorkforce(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteSpace(response, &metadata) } - output := &DeleteWorkforceOutput{} + output := &DeleteSpaceOutput{} 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_deserializeOpDocumentDeleteWorkforceOutput(&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_deserializeOpErrorDeleteWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12206,6 +12440,12 @@ func awsAwsjson11_deserializeOpErrorDeleteWorkforce(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12216,14 +12456,14 @@ func awsAwsjson11_deserializeOpErrorDeleteWorkforce(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDeleteWorkteam struct { +type awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig struct { } -func (*awsAwsjson11_deserializeOpDeleteWorkteam) ID() string { +func (*awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12241,43 +12481,21 @@ func (m *awsAwsjson11_deserializeOpDeleteWorkteam) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteWorkteam(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response, &metadata) } - output := &DeleteWorkteamOutput{} + output := &DeleteStudioLifecycleConfigOutput{} 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_deserializeOpDocumentDeleteWorkteamOutput(&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_deserializeOpErrorDeleteWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12314,8 +12532,11 @@ func awsAwsjson11_deserializeOpErrorDeleteWorkteam(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -12327,14 +12548,14 @@ func awsAwsjson11_deserializeOpErrorDeleteWorkteam(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeregisterDevices struct { +type awsAwsjson11_deserializeOpDeleteTags struct { } -func (*awsAwsjson11_deserializeOpDeregisterDevices) ID() string { +func (*awsAwsjson11_deserializeOpDeleteTags) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeregisterDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteTags) HandleDeserialize(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,21 +12573,43 @@ func (m *awsAwsjson11_deserializeOpDeregisterDevices) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeregisterDevices(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTags(response, &metadata) } - output := &DeregisterDevicesOutput{} + output := &DeleteTagsOutput{} 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_deserializeOpDocumentDeleteTagsOutput(&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_deserializeOpErrorDeregisterDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteTags(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12413,14 +12656,14 @@ func awsAwsjson11_deserializeOpErrorDeregisterDevices(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDescribeAction struct { +type awsAwsjson11_deserializeOpDeleteTrial struct { } -func (*awsAwsjson11_deserializeOpDescribeAction) ID() string { +func (*awsAwsjson11_deserializeOpDeleteTrial) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12438,9 +12681,9 @@ func (m *awsAwsjson11_deserializeOpDescribeAction) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAction(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTrial(response, &metadata) } - output := &DescribeActionOutput{} + output := &DeleteTrialOutput{} out.Result = output var buff [1024]byte @@ -12460,7 +12703,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAction) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeActionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteTrialOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12474,7 +12717,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAction) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12524,14 +12767,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAction(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeAlgorithm struct { +type awsAwsjson11_deserializeOpDeleteTrialComponent struct { } -func (*awsAwsjson11_deserializeOpDescribeAlgorithm) ID() string { +func (*awsAwsjson11_deserializeOpDeleteTrialComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAlgorithm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12549,9 +12792,9 @@ func (m *awsAwsjson11_deserializeOpDescribeAlgorithm) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response, &metadata) } - output := &DescribeAlgorithmOutput{} + output := &DeleteTrialComponentOutput{} out.Result = output var buff [1024]byte @@ -12571,7 +12814,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAlgorithm) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeAlgorithmOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteTrialComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12585,7 +12828,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAlgorithm) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12622,6 +12865,9 @@ func awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12632,14 +12878,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDescribeApp struct { +type awsAwsjson11_deserializeOpDeleteUserProfile struct { } -func (*awsAwsjson11_deserializeOpDescribeApp) ID() string { +func (*awsAwsjson11_deserializeOpDeleteUserProfile) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeApp) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12657,9 +12903,101 @@ func (m *awsAwsjson11_deserializeOpDescribeApp) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeApp(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteUserProfile(response, &metadata) } - output := &DescribeAppOutput{} + output := &DeleteUserProfileOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorDeleteUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDeleteWorkforce struct { +} + +func (*awsAwsjson11_deserializeOpDeleteWorkforce) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteWorkforce) HandleDeserialize(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_deserializeOpErrorDeleteWorkforce(response, &metadata) + } + output := &DeleteWorkforceOutput{} out.Result = output var buff [1024]byte @@ -12679,7 +13017,7 @@ func (m *awsAwsjson11_deserializeOpDescribeApp) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeAppOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteWorkforceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12693,7 +13031,7 @@ func (m *awsAwsjson11_deserializeOpDescribeApp) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12730,9 +13068,6 @@ func awsAwsjson11_deserializeOpErrorDescribeApp(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12743,14 +13078,14 @@ func awsAwsjson11_deserializeOpErrorDescribeApp(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDescribeAppImageConfig struct { +type awsAwsjson11_deserializeOpDeleteWorkteam struct { } -func (*awsAwsjson11_deserializeOpDescribeAppImageConfig) ID() string { +func (*awsAwsjson11_deserializeOpDeleteWorkteam) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAppImageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12768,9 +13103,9 @@ func (m *awsAwsjson11_deserializeOpDescribeAppImageConfig) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteWorkteam(response, &metadata) } - output := &DescribeAppImageConfigOutput{} + output := &DeleteWorkteamOutput{} out.Result = output var buff [1024]byte @@ -12790,7 +13125,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAppImageConfig) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeAppImageConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteWorkteamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12804,7 +13139,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAppImageConfig) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12841,8 +13176,8 @@ func awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -12854,14 +13189,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeArtifact struct { +type awsAwsjson11_deserializeOpDeregisterDevices struct { } -func (*awsAwsjson11_deserializeOpDescribeArtifact) ID() string { +func (*awsAwsjson11_deserializeOpDeregisterDevices) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeregisterDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12879,9 +13214,95 @@ func (m *awsAwsjson11_deserializeOpDescribeArtifact) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeArtifact(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeregisterDevices(response, &metadata) } - output := &DescribeArtifactOutput{} + output := &DeregisterDevicesOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorDeregisterDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDescribeAction struct { +} + +func (*awsAwsjson11_deserializeOpDescribeAction) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeAction) HandleDeserialize(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_deserializeOpErrorDescribeAction(response, &metadata) + } + output := &DescribeActionOutput{} out.Result = output var buff [1024]byte @@ -12901,7 +13322,7 @@ func (m *awsAwsjson11_deserializeOpDescribeArtifact) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeArtifactOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeActionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12915,7 +13336,7 @@ func (m *awsAwsjson11_deserializeOpDescribeArtifact) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12965,14 +13386,14 @@ func awsAwsjson11_deserializeOpErrorDescribeArtifact(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDescribeAutoMLJob struct { +type awsAwsjson11_deserializeOpDescribeAlgorithm struct { } -func (*awsAwsjson11_deserializeOpDescribeAutoMLJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeAlgorithm) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeAlgorithm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12990,9 +13411,9 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJob) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response, &metadata) } - output := &DescribeAutoMLJobOutput{} + output := &DescribeAlgorithmOutput{} out.Result = output var buff [1024]byte @@ -13012,7 +13433,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJob) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeAutoMLJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAlgorithmOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13026,7 +13447,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJob) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAlgorithm(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13063,9 +13484,6 @@ func awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -13076,14 +13494,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDescribeAutoMLJobV2 struct { +type awsAwsjson11_deserializeOpDescribeApp struct { } -func (*awsAwsjson11_deserializeOpDescribeAutoMLJobV2) ID() string { +func (*awsAwsjson11_deserializeOpDescribeApp) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAutoMLJobV2) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeApp) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13101,9 +13519,9 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJobV2) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAutoMLJobV2(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeApp(response, &metadata) } - output := &DescribeAutoMLJobV2Output{} + output := &DescribeAppOutput{} out.Result = output var buff [1024]byte @@ -13123,7 +13541,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJobV2) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeAutoMLJobV2Output(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAppOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13137,7 +13555,7 @@ func (m *awsAwsjson11_deserializeOpDescribeAutoMLJobV2) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAutoMLJobV2(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13187,14 +13605,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAutoMLJobV2(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeCluster struct { +type awsAwsjson11_deserializeOpDescribeAppImageConfig struct { } -func (*awsAwsjson11_deserializeOpDescribeCluster) ID() string { +func (*awsAwsjson11_deserializeOpDescribeAppImageConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeAppImageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13212,9 +13630,9 @@ func (m *awsAwsjson11_deserializeOpDescribeCluster) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCluster(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response, &metadata) } - output := &DescribeClusterOutput{} + output := &DescribeAppImageConfigOutput{} out.Result = output var buff [1024]byte @@ -13234,7 +13652,7 @@ func (m *awsAwsjson11_deserializeOpDescribeCluster) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeClusterOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAppImageConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13248,7 +13666,7 @@ func (m *awsAwsjson11_deserializeOpDescribeCluster) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13298,14 +13716,14 @@ func awsAwsjson11_deserializeOpErrorDescribeCluster(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDescribeClusterNode struct { +type awsAwsjson11_deserializeOpDescribeArtifact struct { } -func (*awsAwsjson11_deserializeOpDescribeClusterNode) ID() string { +func (*awsAwsjson11_deserializeOpDescribeArtifact) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeClusterNode) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13323,9 +13741,9 @@ func (m *awsAwsjson11_deserializeOpDescribeClusterNode) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeClusterNode(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeArtifact(response, &metadata) } - output := &DescribeClusterNodeOutput{} + output := &DescribeArtifactOutput{} out.Result = output var buff [1024]byte @@ -13345,7 +13763,7 @@ func (m *awsAwsjson11_deserializeOpDescribeClusterNode) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeClusterNodeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeArtifactOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13359,7 +13777,7 @@ func (m *awsAwsjson11_deserializeOpDescribeClusterNode) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeClusterNode(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13409,122 +13827,14 @@ func awsAwsjson11_deserializeOpErrorDescribeClusterNode(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeCodeRepository struct { -} - -func (*awsAwsjson11_deserializeOpDescribeCodeRepository) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpDescribeCodeRepository) HandleDeserialize(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_deserializeOpErrorDescribeCodeRepository(response, &metadata) - } - output := &DescribeCodeRepositoryOutput{} - 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_deserializeOpDocumentDescribeCodeRepositoryOutput(&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_deserializeOpErrorDescribeCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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 { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpDescribeCompilationJob struct { +type awsAwsjson11_deserializeOpDescribeAutoMLJob struct { } -func (*awsAwsjson11_deserializeOpDescribeCompilationJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeAutoMLJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13542,9 +13852,9 @@ func (m *awsAwsjson11_deserializeOpDescribeCompilationJob) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCompilationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response, &metadata) } - output := &DescribeCompilationJobOutput{} + output := &DescribeAutoMLJobOutput{} out.Result = output var buff [1024]byte @@ -13564,7 +13874,7 @@ func (m *awsAwsjson11_deserializeOpDescribeCompilationJob) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeCompilationJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAutoMLJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13578,7 +13888,7 @@ func (m *awsAwsjson11_deserializeOpDescribeCompilationJob) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13628,14 +13938,14 @@ func awsAwsjson11_deserializeOpErrorDescribeCompilationJob(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeContext struct { +type awsAwsjson11_deserializeOpDescribeAutoMLJobV2 struct { } -func (*awsAwsjson11_deserializeOpDescribeContext) ID() string { +func (*awsAwsjson11_deserializeOpDescribeAutoMLJobV2) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeAutoMLJobV2) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13653,9 +13963,9 @@ func (m *awsAwsjson11_deserializeOpDescribeContext) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeContext(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAutoMLJobV2(response, &metadata) } - output := &DescribeContextOutput{} + output := &DescribeAutoMLJobV2Output{} out.Result = output var buff [1024]byte @@ -13675,7 +13985,7 @@ func (m *awsAwsjson11_deserializeOpDescribeContext) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeContextOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAutoMLJobV2Output(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13689,7 +13999,7 @@ func (m *awsAwsjson11_deserializeOpDescribeContext) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAutoMLJobV2(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13739,14 +14049,14 @@ func awsAwsjson11_deserializeOpErrorDescribeContext(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition struct { +type awsAwsjson11_deserializeOpDescribeCluster struct { } -func (*awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeCluster) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13764,9 +14074,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDataQualityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCluster(response, &metadata) } - output := &DescribeDataQualityJobDefinitionOutput{} + output := &DescribeClusterOutput{} out.Result = output var buff [1024]byte @@ -13786,7 +14096,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDataQualityJobDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeClusterOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13800,7 +14110,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13850,14 +14160,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDataQualityJobDefinition(response *s } } -type awsAwsjson11_deserializeOpDescribeDevice struct { +type awsAwsjson11_deserializeOpDescribeClusterNode struct { } -func (*awsAwsjson11_deserializeOpDescribeDevice) ID() string { +func (*awsAwsjson11_deserializeOpDescribeClusterNode) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDevice) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeClusterNode) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13875,9 +14185,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDevice) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDevice(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeClusterNode(response, &metadata) } - output := &DescribeDeviceOutput{} + output := &DescribeClusterNodeOutput{} out.Result = output var buff [1024]byte @@ -13897,7 +14207,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDevice) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDeviceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeClusterNodeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13911,7 +14221,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDevice) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDevice(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeClusterNode(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -13961,14 +14271,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDevice(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeDeviceFleet struct { +type awsAwsjson11_deserializeOpDescribeClusterSchedulerConfig struct { } -func (*awsAwsjson11_deserializeOpDescribeDeviceFleet) ID() string { +func (*awsAwsjson11_deserializeOpDescribeClusterSchedulerConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeClusterSchedulerConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -13986,9 +14296,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDeviceFleet) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDeviceFleet(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeClusterSchedulerConfig(response, &metadata) } - output := &DescribeDeviceFleetOutput{} + output := &DescribeClusterSchedulerConfigOutput{} out.Result = output var buff [1024]byte @@ -14008,7 +14318,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDeviceFleet) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDeviceFleetOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeClusterSchedulerConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14022,7 +14332,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDeviceFleet) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeClusterSchedulerConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14072,14 +14382,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDeviceFleet(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeDomain struct { +type awsAwsjson11_deserializeOpDescribeCodeRepository struct { } -func (*awsAwsjson11_deserializeOpDescribeDomain) ID() string { +func (*awsAwsjson11_deserializeOpDescribeCodeRepository) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14097,9 +14407,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDomain) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDomain(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCodeRepository(response, &metadata) } - output := &DescribeDomainOutput{} + output := &DescribeCodeRepositoryOutput{} out.Result = output var buff [1024]byte @@ -14119,7 +14429,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDomain) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDomainOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeCodeRepositoryOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14133,7 +14443,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDomain) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14170,9 +14480,6 @@ func awsAwsjson11_deserializeOpErrorDescribeDomain(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -14183,14 +14490,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDomain(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan struct { +type awsAwsjson11_deserializeOpDescribeCompilationJob struct { } -func (*awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) ID() string { +func (*awsAwsjson11_deserializeOpDescribeCompilationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14208,9 +14515,9 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEdgeDeploymentPlan(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCompilationJob(response, &metadata) } - output := &DescribeEdgeDeploymentPlanOutput{} + output := &DescribeCompilationJobOutput{} out.Result = output var buff [1024]byte @@ -14230,7 +14537,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeEdgeDeploymentPlanOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeCompilationJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14244,7 +14551,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14294,14 +14601,14 @@ func awsAwsjson11_deserializeOpErrorDescribeEdgeDeploymentPlan(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeEdgePackagingJob struct { +type awsAwsjson11_deserializeOpDescribeComputeQuota struct { } -func (*awsAwsjson11_deserializeOpDescribeEdgePackagingJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeComputeQuota) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeEdgePackagingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeComputeQuota) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14319,9 +14626,9 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgePackagingJob) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEdgePackagingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeComputeQuota(response, &metadata) } - output := &DescribeEdgePackagingJobOutput{} + output := &DescribeComputeQuotaOutput{} out.Result = output var buff [1024]byte @@ -14341,7 +14648,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgePackagingJob) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeEdgePackagingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeComputeQuotaOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14355,7 +14662,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEdgePackagingJob) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeComputeQuota(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14405,14 +14712,14 @@ func awsAwsjson11_deserializeOpErrorDescribeEdgePackagingJob(response *smithyhtt } } -type awsAwsjson11_deserializeOpDescribeEndpoint struct { +type awsAwsjson11_deserializeOpDescribeContext struct { } -func (*awsAwsjson11_deserializeOpDescribeEndpoint) ID() string { +func (*awsAwsjson11_deserializeOpDescribeContext) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14430,9 +14737,9 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpoint) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEndpoint(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeContext(response, &metadata) } - output := &DescribeEndpointOutput{} + output := &DescribeContextOutput{} out.Result = output var buff [1024]byte @@ -14452,7 +14759,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpoint) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeEndpointOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeContextOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14466,7 +14773,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpoint) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14503,6 +14810,9 @@ func awsAwsjson11_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -14513,14 +14823,14 @@ func awsAwsjson11_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDescribeEndpointConfig struct { +type awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribeEndpointConfig) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDataQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14538,9 +14848,9 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpointConfig) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDataQualityJobDefinition(response, &metadata) } - output := &DescribeEndpointConfigOutput{} + output := &DescribeDataQualityJobDefinitionOutput{} out.Result = output var buff [1024]byte @@ -14560,7 +14870,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpointConfig) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeEndpointConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDataQualityJobDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14574,7 +14884,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEndpointConfig) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDataQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14611,6 +14921,9 @@ func awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response *smithyhttp. errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -14621,14 +14934,14 @@ func awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeExperiment struct { +type awsAwsjson11_deserializeOpDescribeDevice struct { } -func (*awsAwsjson11_deserializeOpDescribeExperiment) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDevice) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDevice) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14646,9 +14959,9 @@ func (m *awsAwsjson11_deserializeOpDescribeExperiment) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDevice(response, &metadata) } - output := &DescribeExperimentOutput{} + output := &DescribeDeviceOutput{} out.Result = output var buff [1024]byte @@ -14668,7 +14981,7 @@ func (m *awsAwsjson11_deserializeOpDescribeExperiment) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDeviceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14682,7 +14995,7 @@ func (m *awsAwsjson11_deserializeOpDescribeExperiment) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDevice(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14732,14 +15045,14 @@ func awsAwsjson11_deserializeOpErrorDescribeExperiment(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDescribeFeatureGroup struct { +type awsAwsjson11_deserializeOpDescribeDeviceFleet struct { } -func (*awsAwsjson11_deserializeOpDescribeFeatureGroup) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDeviceFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14757,9 +15070,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureGroup) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFeatureGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDeviceFleet(response, &metadata) } - output := &DescribeFeatureGroupOutput{} + output := &DescribeDeviceFleetOutput{} out.Result = output var buff [1024]byte @@ -14779,7 +15092,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureGroup) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFeatureGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDeviceFleetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14793,7 +15106,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureGroup) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14843,14 +15156,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFeatureGroup(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDescribeFeatureMetadata struct { +type awsAwsjson11_deserializeOpDescribeDomain struct { } -func (*awsAwsjson11_deserializeOpDescribeFeatureMetadata) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDomain) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFeatureMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14868,9 +15181,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureMetadata) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFeatureMetadata(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDomain(response, &metadata) } - output := &DescribeFeatureMetadataOutput{} + output := &DescribeDomainOutput{} out.Result = output var buff [1024]byte @@ -14890,7 +15203,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureMetadata) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFeatureMetadataOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDomainOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14904,7 +15217,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFeatureMetadata) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFeatureMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -14954,14 +15267,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFeatureMetadata(response *smithyhttp } } -type awsAwsjson11_deserializeOpDescribeFlowDefinition struct { +type awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan struct { } -func (*awsAwsjson11_deserializeOpDescribeFlowDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeEdgeDeploymentPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -14979,9 +15292,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFlowDefinition) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFlowDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEdgeDeploymentPlan(response, &metadata) } - output := &DescribeFlowDefinitionOutput{} + output := &DescribeEdgeDeploymentPlanOutput{} out.Result = output var buff [1024]byte @@ -15001,7 +15314,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFlowDefinition) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFlowDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeEdgeDeploymentPlanOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15015,7 +15328,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFlowDefinition) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeEdgeDeploymentPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15065,14 +15378,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFlowDefinition(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeHub struct { +type awsAwsjson11_deserializeOpDescribeEdgePackagingJob struct { } -func (*awsAwsjson11_deserializeOpDescribeHub) ID() string { +func (*awsAwsjson11_deserializeOpDescribeEdgePackagingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeEdgePackagingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15090,9 +15403,9 @@ func (m *awsAwsjson11_deserializeOpDescribeHub) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHub(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEdgePackagingJob(response, &metadata) } - output := &DescribeHubOutput{} + output := &DescribeEdgePackagingJobOutput{} out.Result = output var buff [1024]byte @@ -15112,7 +15425,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHub) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeHubOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeEdgePackagingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15126,7 +15439,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHub) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15176,14 +15489,14 @@ func awsAwsjson11_deserializeOpErrorDescribeHub(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDescribeHubContent struct { +type awsAwsjson11_deserializeOpDescribeEndpoint struct { } -func (*awsAwsjson11_deserializeOpDescribeHubContent) ID() string { +func (*awsAwsjson11_deserializeOpDescribeEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeHubContent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15201,9 +15514,9 @@ func (m *awsAwsjson11_deserializeOpDescribeHubContent) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHubContent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEndpoint(response, &metadata) } - output := &DescribeHubContentOutput{} + output := &DescribeEndpointOutput{} out.Result = output var buff [1024]byte @@ -15223,7 +15536,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHubContent) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeHubContentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15237,7 +15550,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHubContent) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15274,9 +15587,6 @@ func awsAwsjson11_deserializeOpErrorDescribeHubContent(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -15287,14 +15597,14 @@ func awsAwsjson11_deserializeOpErrorDescribeHubContent(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDescribeHumanTaskUi struct { +type awsAwsjson11_deserializeOpDescribeEndpointConfig struct { } -func (*awsAwsjson11_deserializeOpDescribeHumanTaskUi) ID() string { +func (*awsAwsjson11_deserializeOpDescribeEndpointConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeHumanTaskUi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeEndpointConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15312,9 +15622,9 @@ func (m *awsAwsjson11_deserializeOpDescribeHumanTaskUi) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response, &metadata) } - output := &DescribeHumanTaskUiOutput{} + output := &DescribeEndpointConfigOutput{} out.Result = output var buff [1024]byte @@ -15334,7 +15644,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHumanTaskUi) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeHumanTaskUiOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeEndpointConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15348,7 +15658,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHumanTaskUi) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeEndpointConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15385,9 +15695,6 @@ func awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response *smithyhttp.Res errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -15398,14 +15705,14 @@ func awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob struct { +type awsAwsjson11_deserializeOpDescribeExperiment struct { } -func (*awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15423,9 +15730,9 @@ func (m *awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHyperParameterTuningJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeExperiment(response, &metadata) } - output := &DescribeHyperParameterTuningJobOutput{} + output := &DescribeExperimentOutput{} out.Result = output var buff [1024]byte @@ -15445,7 +15752,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) HandleDeseri return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeHyperParameterTuningJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15459,7 +15766,7 @@ func (m *awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) HandleDeseri return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15509,14 +15816,14 @@ func awsAwsjson11_deserializeOpErrorDescribeHyperParameterTuningJob(response *sm } } -type awsAwsjson11_deserializeOpDescribeImage struct { +type awsAwsjson11_deserializeOpDescribeFeatureGroup struct { } -func (*awsAwsjson11_deserializeOpDescribeImage) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFeatureGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15534,9 +15841,9 @@ func (m *awsAwsjson11_deserializeOpDescribeImage) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeImage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFeatureGroup(response, &metadata) } - output := &DescribeImageOutput{} + output := &DescribeFeatureGroupOutput{} out.Result = output var buff [1024]byte @@ -15556,7 +15863,7 @@ func (m *awsAwsjson11_deserializeOpDescribeImage) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeImageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFeatureGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15570,7 +15877,7 @@ func (m *awsAwsjson11_deserializeOpDescribeImage) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15620,14 +15927,14 @@ func awsAwsjson11_deserializeOpErrorDescribeImage(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDescribeImageVersion struct { +type awsAwsjson11_deserializeOpDescribeFeatureMetadata struct { } -func (*awsAwsjson11_deserializeOpDescribeImageVersion) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFeatureMetadata) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFeatureMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15645,9 +15952,9 @@ func (m *awsAwsjson11_deserializeOpDescribeImageVersion) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeImageVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFeatureMetadata(response, &metadata) } - output := &DescribeImageVersionOutput{} + output := &DescribeFeatureMetadataOutput{} out.Result = output var buff [1024]byte @@ -15667,7 +15974,7 @@ func (m *awsAwsjson11_deserializeOpDescribeImageVersion) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeImageVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFeatureMetadataOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15681,7 +15988,7 @@ func (m *awsAwsjson11_deserializeOpDescribeImageVersion) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFeatureMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15731,14 +16038,14 @@ func awsAwsjson11_deserializeOpErrorDescribeImageVersion(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDescribeInferenceComponent struct { +type awsAwsjson11_deserializeOpDescribeFlowDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribeInferenceComponent) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFlowDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFlowDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15756,9 +16063,9 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceComponent) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFlowDefinition(response, &metadata) } - output := &DescribeInferenceComponentOutput{} + output := &DescribeFlowDefinitionOutput{} out.Result = output var buff [1024]byte @@ -15778,7 +16085,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceComponent) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeInferenceComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFlowDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15792,7 +16099,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceComponent) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFlowDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15829,6 +16136,9 @@ func awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response *smithyh errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -15839,14 +16149,14 @@ func awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeInferenceExperiment struct { +type awsAwsjson11_deserializeOpDescribeHub struct { } -func (*awsAwsjson11_deserializeOpDescribeInferenceExperiment) ID() string { +func (*awsAwsjson11_deserializeOpDescribeHub) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15864,9 +16174,9 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceExperiment) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHub(response, &metadata) } - output := &DescribeInferenceExperimentOutput{} + output := &DescribeHubOutput{} out.Result = output var buff [1024]byte @@ -15886,7 +16196,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceExperiment) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeInferenceExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeHubOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15900,7 +16210,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceExperiment) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -15950,14 +16260,14 @@ func awsAwsjson11_deserializeOpErrorDescribeInferenceExperiment(response *smithy } } -type awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob struct { +type awsAwsjson11_deserializeOpDescribeHubContent struct { } -func (*awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeHubContent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeHubContent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -15975,9 +16285,9 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDe } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHubContent(response, &metadata) } - output := &DescribeInferenceRecommendationsJobOutput{} + output := &DescribeHubContentOutput{} out.Result = output var buff [1024]byte @@ -15997,7 +16307,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDe return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeInferenceRecommendationsJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeHubContentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16011,7 +16321,7 @@ func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDe return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16061,14 +16371,14 @@ func awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response } } -type awsAwsjson11_deserializeOpDescribeLabelingJob struct { +type awsAwsjson11_deserializeOpDescribeHumanTaskUi struct { } -func (*awsAwsjson11_deserializeOpDescribeLabelingJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeHumanTaskUi) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeLabelingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeHumanTaskUi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16086,9 +16396,9 @@ func (m *awsAwsjson11_deserializeOpDescribeLabelingJob) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response, &metadata) } - output := &DescribeLabelingJobOutput{} + output := &DescribeHumanTaskUiOutput{} out.Result = output var buff [1024]byte @@ -16108,7 +16418,7 @@ func (m *awsAwsjson11_deserializeOpDescribeLabelingJob) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeLabelingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeHumanTaskUiOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16122,7 +16432,7 @@ func (m *awsAwsjson11_deserializeOpDescribeLabelingJob) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeHumanTaskUi(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16172,14 +16482,14 @@ func awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeLineageGroup struct { +type awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob struct { } -func (*awsAwsjson11_deserializeOpDescribeLineageGroup) ID() string { +func (*awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16197,9 +16507,9 @@ func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeHyperParameterTuningJob(response, &metadata) } - output := &DescribeLineageGroupOutput{} + output := &DescribeHyperParameterTuningJobOutput{} out.Result = output var buff [1024]byte @@ -16219,7 +16529,7 @@ func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeLineageGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeHyperParameterTuningJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16233,7 +16543,7 @@ func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16283,14 +16593,14 @@ func awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDescribeMlflowTrackingServer struct { +type awsAwsjson11_deserializeOpDescribeImage struct { } -func (*awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) ID() string { +func (*awsAwsjson11_deserializeOpDescribeImage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16308,9 +16618,9 @@ func (m *awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMlflowTrackingServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeImage(response, &metadata) } - output := &DescribeMlflowTrackingServerOutput{} + output := &DescribeImageOutput{} out.Result = output var buff [1024]byte @@ -16330,7 +16640,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) HandleDeseriali return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeMlflowTrackingServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeImageOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16344,7 +16654,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) HandleDeseriali return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16394,14 +16704,14 @@ func awsAwsjson11_deserializeOpErrorDescribeMlflowTrackingServer(response *smith } } -type awsAwsjson11_deserializeOpDescribeModel struct { +type awsAwsjson11_deserializeOpDescribeImageVersion struct { } -func (*awsAwsjson11_deserializeOpDescribeModel) ID() string { +func (*awsAwsjson11_deserializeOpDescribeImageVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16419,9 +16729,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModel) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeImageVersion(response, &metadata) } - output := &DescribeModelOutput{} + output := &DescribeImageVersionOutput{} out.Result = output var buff [1024]byte @@ -16441,7 +16751,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModel) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeImageVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16455,7 +16765,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModel) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16492,6 +16802,9 @@ func awsAwsjson11_deserializeOpErrorDescribeModel(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16502,14 +16815,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModel(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition struct { +type awsAwsjson11_deserializeOpDescribeInferenceComponent struct { } -func (*awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeInferenceComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16527,9 +16840,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response, &metadata) } - output := &DescribeModelBiasJobDefinitionOutput{} + output := &DescribeInferenceComponentOutput{} out.Result = output var buff [1024]byte @@ -16549,7 +16862,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) HandleDeseria return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelBiasJobDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeInferenceComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16563,7 +16876,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) HandleDeseria return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16600,9 +16913,6 @@ func awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response *smi errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16613,14 +16923,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response *smi } } -type awsAwsjson11_deserializeOpDescribeModelCard struct { +type awsAwsjson11_deserializeOpDescribeInferenceExperiment struct { } -func (*awsAwsjson11_deserializeOpDescribeModelCard) ID() string { +func (*awsAwsjson11_deserializeOpDescribeInferenceExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16638,9 +16948,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCard) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelCard(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceExperiment(response, &metadata) } - output := &DescribeModelCardOutput{} + output := &DescribeInferenceExperimentOutput{} out.Result = output var buff [1024]byte @@ -16660,7 +16970,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCard) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelCardOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeInferenceExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16674,7 +16984,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCard) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16724,14 +17034,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelCard(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDescribeModelCardExportJob struct { +type awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob struct { } -func (*awsAwsjson11_deserializeOpDescribeModelCardExportJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelCardExportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16749,9 +17059,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCardExportJob) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelCardExportJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response, &metadata) } - output := &DescribeModelCardExportJobOutput{} + output := &DescribeInferenceRecommendationsJobOutput{} out.Result = output var buff [1024]byte @@ -16771,7 +17081,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCardExportJob) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelCardExportJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeInferenceRecommendationsJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16785,7 +17095,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelCardExportJob) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelCardExportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16835,14 +17145,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelCardExportJob(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition struct { +type awsAwsjson11_deserializeOpDescribeLabelingJob struct { } -func (*awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeLabelingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeLabelingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16860,9 +17170,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) Han } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelExplainabilityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response, &metadata) } - output := &DescribeModelExplainabilityJobDefinitionOutput{} + output := &DescribeLabelingJobOutput{} out.Result = output var buff [1024]byte @@ -16882,7 +17192,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) Han return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelExplainabilityJobDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeLabelingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16896,7 +17206,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) Han return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelExplainabilityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeLabelingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16946,14 +17256,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelExplainabilityJobDefinition(res } } -type awsAwsjson11_deserializeOpDescribeModelPackage struct { +type awsAwsjson11_deserializeOpDescribeLineageGroup struct { } -func (*awsAwsjson11_deserializeOpDescribeModelPackage) ID() string { +func (*awsAwsjson11_deserializeOpDescribeLineageGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeLineageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16971,9 +17281,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelPackage) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelPackage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response, &metadata) } - output := &DescribeModelPackageOutput{} + output := &DescribeLineageGroupOutput{} out.Result = output var buff [1024]byte @@ -16993,7 +17303,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelPackage) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelPackageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeLineageGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17007,7 +17317,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelPackage) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeLineageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17044,114 +17354,9 @@ func awsAwsjson11_deserializeOpErrorDescribeModelPackage(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpDescribeModelPackageGroup struct { -} - -func (*awsAwsjson11_deserializeOpDescribeModelPackageGroup) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpDescribeModelPackageGroup) HandleDeserialize(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_deserializeOpErrorDescribeModelPackageGroup(response, &metadata) - } - output := &DescribeModelPackageGroupOutput{} - 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_deserializeOpDocumentDescribeModelPackageGroupOutput(&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_deserializeOpErrorDescribeModelPackageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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 - } + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - 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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17162,14 +17367,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelPackageGroup(response *smithyht } } -type awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition struct { +type awsAwsjson11_deserializeOpDescribeMlflowTrackingServer struct { } -func (*awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17187,9 +17392,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelQualityJobDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMlflowTrackingServer(response, &metadata) } - output := &DescribeModelQualityJobDefinitionOutput{} + output := &DescribeMlflowTrackingServerOutput{} out.Result = output var buff [1024]byte @@ -17209,7 +17414,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) HandleDese return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelQualityJobDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeMlflowTrackingServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17223,7 +17428,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) HandleDese return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17273,14 +17478,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelQualityJobDefinition(response * } } -type awsAwsjson11_deserializeOpDescribeMonitoringSchedule struct { +type awsAwsjson11_deserializeOpDescribeModel struct { } -func (*awsAwsjson11_deserializeOpDescribeMonitoringSchedule) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17298,9 +17503,9 @@ func (m *awsAwsjson11_deserializeOpDescribeMonitoringSchedule) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModel(response, &metadata) } - output := &DescribeMonitoringScheduleOutput{} + output := &DescribeModelOutput{} out.Result = output var buff [1024]byte @@ -17320,7 +17525,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMonitoringSchedule) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeMonitoringScheduleOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17334,7 +17539,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMonitoringSchedule) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17371,9 +17576,6 @@ func awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17384,14 +17586,14 @@ func awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeNotebookInstance struct { +type awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribeNotebookInstance) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelBiasJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17409,9 +17611,9 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstance) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response, &metadata) } - output := &DescribeNotebookInstanceOutput{} + output := &DescribeModelBiasJobDefinitionOutput{} out.Result = output var buff [1024]byte @@ -17431,7 +17633,7 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstance) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeNotebookInstanceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelBiasJobDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17445,7 +17647,7 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstance) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelBiasJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17482,6 +17684,9 @@ func awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response *smithyhtt errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17492,14 +17697,14 @@ func awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response *smithyhtt } } -type awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig struct { +type awsAwsjson11_deserializeOpDescribeModelCard struct { } -func (*awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelCard) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17517,9 +17722,9 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) Hand } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelCard(response, &metadata) } - output := &DescribeNotebookInstanceLifecycleConfigOutput{} + output := &DescribeModelCardOutput{} out.Result = output var buff [1024]byte @@ -17539,7 +17744,7 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) Hand return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeNotebookInstanceLifecycleConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelCardOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17553,7 +17758,7 @@ func (m *awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) Hand return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17590,6 +17795,9 @@ func awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17600,14 +17808,14 @@ func awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(resp } } -type awsAwsjson11_deserializeOpDescribeOptimizationJob struct { +type awsAwsjson11_deserializeOpDescribeModelCardExportJob struct { } -func (*awsAwsjson11_deserializeOpDescribeOptimizationJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelCardExportJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeOptimizationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelCardExportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17625,9 +17833,9 @@ func (m *awsAwsjson11_deserializeOpDescribeOptimizationJob) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeOptimizationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelCardExportJob(response, &metadata) } - output := &DescribeOptimizationJobOutput{} + output := &DescribeModelCardExportJobOutput{} out.Result = output var buff [1024]byte @@ -17647,7 +17855,7 @@ func (m *awsAwsjson11_deserializeOpDescribeOptimizationJob) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeOptimizationJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelCardExportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17661,7 +17869,7 @@ func (m *awsAwsjson11_deserializeOpDescribeOptimizationJob) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelCardExportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17711,14 +17919,14 @@ func awsAwsjson11_deserializeOpErrorDescribeOptimizationJob(response *smithyhttp } } -type awsAwsjson11_deserializeOpDescribePipeline struct { +type awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribePipeline) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelExplainabilityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17736,9 +17944,9 @@ func (m *awsAwsjson11_deserializeOpDescribePipeline) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipeline(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelExplainabilityJobDefinition(response, &metadata) } - output := &DescribePipelineOutput{} + output := &DescribeModelExplainabilityJobDefinitionOutput{} out.Result = output var buff [1024]byte @@ -17758,7 +17966,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipeline) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribePipelineOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelExplainabilityJobDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17772,7 +17980,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipeline) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelExplainabilityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17822,14 +18030,14 @@ func awsAwsjson11_deserializeOpErrorDescribePipeline(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution struct { +type awsAwsjson11_deserializeOpDescribeModelPackage struct { } -func (*awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelPackage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17847,9 +18055,9 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelPackage(response, &metadata) } - output := &DescribePipelineDefinitionForExecutionOutput{} + output := &DescribeModelPackageOutput{} out.Result = output var buff [1024]byte @@ -17869,7 +18077,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) Handl return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribePipelineDefinitionForExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelPackageOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17883,7 +18091,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) Handl return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17920,9 +18128,6 @@ func awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17933,14 +18138,14 @@ func awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(respo } } -type awsAwsjson11_deserializeOpDescribePipelineExecution struct { +type awsAwsjson11_deserializeOpDescribeModelPackageGroup struct { } -func (*awsAwsjson11_deserializeOpDescribePipelineExecution) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelPackageGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribePipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelPackageGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17958,9 +18163,9 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineExecution) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelPackageGroup(response, &metadata) } - output := &DescribePipelineExecutionOutput{} + output := &DescribeModelPackageGroupOutput{} out.Result = output var buff [1024]byte @@ -17980,7 +18185,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineExecution) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribePipelineExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelPackageGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17994,7 +18199,7 @@ func (m *awsAwsjson11_deserializeOpDescribePipelineExecution) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelPackageGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18031,9 +18236,6 @@ func awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response *smithyht errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18044,14 +18246,14 @@ func awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response *smithyht } } -type awsAwsjson11_deserializeOpDescribeProcessingJob struct { +type awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribeProcessingJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeProcessingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelQualityJobDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18069,9 +18271,9 @@ func (m *awsAwsjson11_deserializeOpDescribeProcessingJob) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeProcessingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelQualityJobDefinition(response, &metadata) } - output := &DescribeProcessingJobOutput{} + output := &DescribeModelQualityJobDefinitionOutput{} out.Result = output var buff [1024]byte @@ -18091,7 +18293,7 @@ func (m *awsAwsjson11_deserializeOpDescribeProcessingJob) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeProcessingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelQualityJobDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18105,7 +18307,7 @@ func (m *awsAwsjson11_deserializeOpDescribeProcessingJob) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelQualityJobDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18155,14 +18357,14 @@ func awsAwsjson11_deserializeOpErrorDescribeProcessingJob(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpDescribeProject struct { +type awsAwsjson11_deserializeOpDescribeMonitoringSchedule struct { } -func (*awsAwsjson11_deserializeOpDescribeProject) ID() string { +func (*awsAwsjson11_deserializeOpDescribeMonitoringSchedule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18180,9 +18382,9 @@ func (m *awsAwsjson11_deserializeOpDescribeProject) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeProject(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response, &metadata) } - output := &DescribeProjectOutput{} + output := &DescribeMonitoringScheduleOutput{} out.Result = output var buff [1024]byte @@ -18202,7 +18404,7 @@ func (m *awsAwsjson11_deserializeOpDescribeProject) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeProjectOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeMonitoringScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18216,7 +18418,7 @@ func (m *awsAwsjson11_deserializeOpDescribeProject) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18253,6 +18455,9 @@ func awsAwsjson11_deserializeOpErrorDescribeProject(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18263,14 +18468,14 @@ func awsAwsjson11_deserializeOpErrorDescribeProject(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDescribeSpace struct { +type awsAwsjson11_deserializeOpDescribeNotebookInstance struct { } -func (*awsAwsjson11_deserializeOpDescribeSpace) ID() string { +func (*awsAwsjson11_deserializeOpDescribeNotebookInstance) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18288,9 +18493,9 @@ func (m *awsAwsjson11_deserializeOpDescribeSpace) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSpace(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response, &metadata) } - output := &DescribeSpaceOutput{} + output := &DescribeNotebookInstanceOutput{} out.Result = output var buff [1024]byte @@ -18310,7 +18515,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSpace) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeSpaceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeNotebookInstanceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18324,7 +18529,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSpace) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18361,9 +18566,6 @@ func awsAwsjson11_deserializeOpErrorDescribeSpace(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18374,14 +18576,14 @@ func awsAwsjson11_deserializeOpErrorDescribeSpace(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig struct { +type awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig struct { } -func (*awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeNotebookInstanceLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18399,9 +18601,9 @@ func (m *awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(response, &metadata) } - output := &DescribeStudioLifecycleConfigOutput{} + output := &DescribeNotebookInstanceLifecycleConfigOutput{} out.Result = output var buff [1024]byte @@ -18421,7 +18623,7 @@ func (m *awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeStudioLifecycleConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeNotebookInstanceLifecycleConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18435,7 +18637,7 @@ func (m *awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18472,9 +18674,6 @@ func awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response *smit errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18485,14 +18684,14 @@ func awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response *smit } } -type awsAwsjson11_deserializeOpDescribeSubscribedWorkteam struct { +type awsAwsjson11_deserializeOpDescribeOptimizationJob struct { } -func (*awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) ID() string { +func (*awsAwsjson11_deserializeOpDescribeOptimizationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeOptimizationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18510,9 +18709,9 @@ func (m *awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeOptimizationJob(response, &metadata) } - output := &DescribeSubscribedWorkteamOutput{} + output := &DescribeOptimizationJobOutput{} out.Result = output var buff [1024]byte @@ -18532,7 +18731,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeSubscribedWorkteamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeOptimizationJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18546,7 +18745,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18583,6 +18782,9 @@ func awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response *smithyh errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18593,14 +18795,14 @@ func awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeTrainingJob struct { +type awsAwsjson11_deserializeOpDescribePartnerApp struct { } -func (*awsAwsjson11_deserializeOpDescribeTrainingJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribePartnerApp) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribePartnerApp) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18618,9 +18820,9 @@ func (m *awsAwsjson11_deserializeOpDescribeTrainingJob) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrainingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribePartnerApp(response, &metadata) } - output := &DescribeTrainingJobOutput{} + output := &DescribePartnerAppOutput{} out.Result = output var buff [1024]byte @@ -18640,7 +18842,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrainingJob) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeTrainingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribePartnerAppOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18654,7 +18856,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrainingJob) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribePartnerApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18704,14 +18906,14 @@ func awsAwsjson11_deserializeOpErrorDescribeTrainingJob(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeTransformJob struct { +type awsAwsjson11_deserializeOpDescribePipeline struct { } -func (*awsAwsjson11_deserializeOpDescribeTransformJob) ID() string { +func (*awsAwsjson11_deserializeOpDescribePipeline) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18729,9 +18931,9 @@ func (m *awsAwsjson11_deserializeOpDescribeTransformJob) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTransformJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipeline(response, &metadata) } - output := &DescribeTransformJobOutput{} + output := &DescribePipelineOutput{} out.Result = output var buff [1024]byte @@ -18751,7 +18953,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTransformJob) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeTransformJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribePipelineOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18765,7 +18967,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTransformJob) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18815,14 +19017,14 @@ func awsAwsjson11_deserializeOpErrorDescribeTransformJob(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDescribeTrial struct { +type awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution struct { } -func (*awsAwsjson11_deserializeOpDescribeTrial) ID() string { +func (*awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribePipelineDefinitionForExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18840,9 +19042,9 @@ func (m *awsAwsjson11_deserializeOpDescribeTrial) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrial(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(response, &metadata) } - output := &DescribeTrialOutput{} + output := &DescribePipelineDefinitionForExecutionOutput{} out.Result = output var buff [1024]byte @@ -18862,7 +19064,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrial) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeTrialOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribePipelineDefinitionForExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18876,7 +19078,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrial) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribePipelineDefinitionForExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -18926,14 +19128,14 @@ func awsAwsjson11_deserializeOpErrorDescribeTrial(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDescribeTrialComponent struct { +type awsAwsjson11_deserializeOpDescribePipelineExecution struct { } -func (*awsAwsjson11_deserializeOpDescribeTrialComponent) ID() string { +func (*awsAwsjson11_deserializeOpDescribePipelineExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribePipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18951,9 +19153,9 @@ func (m *awsAwsjson11_deserializeOpDescribeTrialComponent) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrialComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response, &metadata) } - output := &DescribeTrialComponentOutput{} + output := &DescribePipelineExecutionOutput{} out.Result = output var buff [1024]byte @@ -18973,7 +19175,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrialComponent) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeTrialComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribePipelineExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18987,7 +19189,7 @@ func (m *awsAwsjson11_deserializeOpDescribeTrialComponent) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribePipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19037,14 +19239,14 @@ func awsAwsjson11_deserializeOpErrorDescribeTrialComponent(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeUserProfile struct { +type awsAwsjson11_deserializeOpDescribeProcessingJob struct { } -func (*awsAwsjson11_deserializeOpDescribeUserProfile) ID() string { +func (*awsAwsjson11_deserializeOpDescribeProcessingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeProcessingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19062,9 +19264,9 @@ func (m *awsAwsjson11_deserializeOpDescribeUserProfile) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeUserProfile(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeProcessingJob(response, &metadata) } - output := &DescribeUserProfileOutput{} + output := &DescribeProcessingJobOutput{} out.Result = output var buff [1024]byte @@ -19084,7 +19286,7 @@ func (m *awsAwsjson11_deserializeOpDescribeUserProfile) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeUserProfileOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeProcessingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19098,7 +19300,7 @@ func (m *awsAwsjson11_deserializeOpDescribeUserProfile) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19135,9 +19337,6 @@ func awsAwsjson11_deserializeOpErrorDescribeUserProfile(response *smithyhttp.Res errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -19151,14 +19350,14 @@ func awsAwsjson11_deserializeOpErrorDescribeUserProfile(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeWorkforce struct { +type awsAwsjson11_deserializeOpDescribeProject struct { } -func (*awsAwsjson11_deserializeOpDescribeWorkforce) ID() string { +func (*awsAwsjson11_deserializeOpDescribeProject) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeWorkforce) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19176,9 +19375,9 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkforce) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeWorkforce(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeProject(response, &metadata) } - output := &DescribeWorkforceOutput{} + output := &DescribeProjectOutput{} out.Result = output var buff [1024]byte @@ -19198,7 +19397,7 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkforce) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeWorkforceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeProjectOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19212,7 +19411,7 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkforce) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19259,14 +19458,14 @@ func awsAwsjson11_deserializeOpErrorDescribeWorkforce(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpDescribeWorkteam struct { +type awsAwsjson11_deserializeOpDescribeSpace struct { } -func (*awsAwsjson11_deserializeOpDescribeWorkteam) ID() string { +func (*awsAwsjson11_deserializeOpDescribeSpace) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19284,9 +19483,9 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkteam) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeWorkteam(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSpace(response, &metadata) } - output := &DescribeWorkteamOutput{} + output := &DescribeSpaceOutput{} out.Result = output var buff [1024]byte @@ -19306,7 +19505,7 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkteam) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeWorkteamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeSpaceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19320,7 +19519,7 @@ func (m *awsAwsjson11_deserializeOpDescribeWorkteam) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19357,6 +19556,9 @@ func awsAwsjson11_deserializeOpErrorDescribeWorkteam(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19367,14 +19569,14 @@ func awsAwsjson11_deserializeOpErrorDescribeWorkteam(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio struct { +type awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig struct { } -func (*awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) ID() string { +func (*awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeStudioLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19392,9 +19594,9 @@ func (m *awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) Hand } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response, &metadata) } - output := &DisableSagemakerServicecatalogPortfolioOutput{} + output := &DescribeStudioLifecycleConfigOutput{} out.Result = output var buff [1024]byte @@ -19414,7 +19616,7 @@ func (m *awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) Hand return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDisableSagemakerServicecatalogPortfolioOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeStudioLifecycleConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19428,7 +19630,7 @@ func (m *awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) Hand return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeStudioLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19465,6 +19667,9 @@ func awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19475,14 +19680,14 @@ func awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(resp } } -type awsAwsjson11_deserializeOpDisassociateTrialComponent struct { +type awsAwsjson11_deserializeOpDescribeSubscribedWorkteam struct { } -func (*awsAwsjson11_deserializeOpDisassociateTrialComponent) ID() string { +func (*awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDisassociateTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeSubscribedWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19500,9 +19705,9 @@ func (m *awsAwsjson11_deserializeOpDisassociateTrialComponent) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response, &metadata) } - output := &DisassociateTrialComponentOutput{} + output := &DescribeSubscribedWorkteamOutput{} out.Result = output var buff [1024]byte @@ -19522,7 +19727,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateTrialComponent) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDisassociateTrialComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeSubscribedWorkteamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19536,7 +19741,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateTrialComponent) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeSubscribedWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19573,9 +19778,6 @@ func awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19586,14 +19788,14 @@ func awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response *smithyh } } -type awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio struct { +type awsAwsjson11_deserializeOpDescribeTrainingJob struct { } -func (*awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) ID() string { +func (*awsAwsjson11_deserializeOpDescribeTrainingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19611,9 +19813,9 @@ func (m *awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrainingJob(response, &metadata) } - output := &EnableSagemakerServicecatalogPortfolioOutput{} + output := &DescribeTrainingJobOutput{} out.Result = output var buff [1024]byte @@ -19633,7 +19835,7 @@ func (m *awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) Handl return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentEnableSagemakerServicecatalogPortfolioOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeTrainingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19647,7 +19849,7 @@ func (m *awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) Handl return out, metadata, err } -func awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19684,6 +19886,9 @@ func awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19694,14 +19899,14 @@ func awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(respo } } -type awsAwsjson11_deserializeOpGetDeviceFleetReport struct { +type awsAwsjson11_deserializeOpDescribeTrainingPlan struct { } -func (*awsAwsjson11_deserializeOpGetDeviceFleetReport) ID() string { +func (*awsAwsjson11_deserializeOpDescribeTrainingPlan) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetDeviceFleetReport) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeTrainingPlan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19719,9 +19924,9 @@ func (m *awsAwsjson11_deserializeOpGetDeviceFleetReport) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrainingPlan(response, &metadata) } - output := &GetDeviceFleetReportOutput{} + output := &DescribeTrainingPlanOutput{} out.Result = output var buff [1024]byte @@ -19741,7 +19946,7 @@ func (m *awsAwsjson11_deserializeOpGetDeviceFleetReport) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetDeviceFleetReportOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeTrainingPlanOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19755,7 +19960,7 @@ func (m *awsAwsjson11_deserializeOpGetDeviceFleetReport) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeTrainingPlan(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19792,6 +19997,9 @@ func awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19802,14 +20010,14 @@ func awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpGetLineageGroupPolicy struct { +type awsAwsjson11_deserializeOpDescribeTransformJob struct { } -func (*awsAwsjson11_deserializeOpGetLineageGroupPolicy) ID() string { +func (*awsAwsjson11_deserializeOpDescribeTransformJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19827,9 +20035,9 @@ func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTransformJob(response, &metadata) } - output := &GetLineageGroupPolicyOutput{} + output := &DescribeTransformJobOutput{} out.Result = output var buff [1024]byte @@ -19849,7 +20057,7 @@ func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetLineageGroupPolicyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeTransformJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19863,7 +20071,7 @@ func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -19913,14 +20121,14 @@ func awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpGetModelPackageGroupPolicy struct { +type awsAwsjson11_deserializeOpDescribeTrial struct { } -func (*awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) ID() string { +func (*awsAwsjson11_deserializeOpDescribeTrial) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -19938,9 +20146,9 @@ func (m *awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrial(response, &metadata) } - output := &GetModelPackageGroupPolicyOutput{} + output := &DescribeTrialOutput{} out.Result = output var buff [1024]byte @@ -19960,7 +20168,7 @@ func (m *awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetModelPackageGroupPolicyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeTrialOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19974,7 +20182,7 @@ func (m *awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20011,6 +20219,9 @@ func awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response *smithyh errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20021,14 +20232,14 @@ func awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response *smithyh } } -type awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus struct { +type awsAwsjson11_deserializeOpDescribeTrialComponent struct { } -func (*awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) ID() string { +func (*awsAwsjson11_deserializeOpDescribeTrialComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20046,9 +20257,9 @@ func (m *awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) Ha } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeTrialComponent(response, &metadata) } - output := &GetSagemakerServicecatalogPortfolioStatusOutput{} + output := &DescribeTrialComponentOutput{} out.Result = output var buff [1024]byte @@ -20068,7 +20279,7 @@ func (m *awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) Ha return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetSagemakerServicecatalogPortfolioStatusOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeTrialComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20082,7 +20293,7 @@ func (m *awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) Ha return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20119,6 +20330,9 @@ func awsAwsjson11_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20129,14 +20343,14 @@ func awsAwsjson11_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(re } } -type awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation struct { +type awsAwsjson11_deserializeOpDescribeUserProfile struct { } -func (*awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) ID() string { +func (*awsAwsjson11_deserializeOpDescribeUserProfile) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20154,9 +20368,9 @@ func (m *awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeUserProfile(response, &metadata) } - output := &GetScalingConfigurationRecommendationOutput{} + output := &DescribeUserProfileOutput{} out.Result = output var buff [1024]byte @@ -20176,7 +20390,7 @@ func (m *awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) Handle return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetScalingConfigurationRecommendationOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeUserProfileOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20190,7 +20404,7 @@ func (m *awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) Handle return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20227,6 +20441,9 @@ func awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(respon errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -20240,14 +20457,14 @@ func awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(respon } } -type awsAwsjson11_deserializeOpGetSearchSuggestions struct { +type awsAwsjson11_deserializeOpDescribeWorkforce struct { } -func (*awsAwsjson11_deserializeOpGetSearchSuggestions) ID() string { +func (*awsAwsjson11_deserializeOpDescribeWorkforce) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetSearchSuggestions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeWorkforce) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20265,9 +20482,9 @@ func (m *awsAwsjson11_deserializeOpGetSearchSuggestions) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetSearchSuggestions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeWorkforce(response, &metadata) } - output := &GetSearchSuggestionsOutput{} + output := &DescribeWorkforceOutput{} out.Result = output var buff [1024]byte @@ -20287,7 +20504,7 @@ func (m *awsAwsjson11_deserializeOpGetSearchSuggestions) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetSearchSuggestionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeWorkforceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20301,7 +20518,7 @@ func (m *awsAwsjson11_deserializeOpGetSearchSuggestions) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetSearchSuggestions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeWorkforce(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20348,14 +20565,14 @@ func awsAwsjson11_deserializeOpErrorGetSearchSuggestions(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpImportHubContent struct { +type awsAwsjson11_deserializeOpDescribeWorkteam struct { } -func (*awsAwsjson11_deserializeOpImportHubContent) ID() string { +func (*awsAwsjson11_deserializeOpDescribeWorkteam) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpImportHubContent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20373,9 +20590,9 @@ func (m *awsAwsjson11_deserializeOpImportHubContent) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorImportHubContent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeWorkteam(response, &metadata) } - output := &ImportHubContentOutput{} + output := &DescribeWorkteamOutput{} out.Result = output var buff [1024]byte @@ -20395,7 +20612,7 @@ func (m *awsAwsjson11_deserializeOpImportHubContent) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentImportHubContentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeWorkteamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20409,7 +20626,7 @@ func (m *awsAwsjson11_deserializeOpImportHubContent) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorImportHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20446,15 +20663,6 @@ func awsAwsjson11_deserializeOpErrorImportHubContent(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20465,14 +20673,14 @@ func awsAwsjson11_deserializeOpErrorImportHubContent(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListActions struct { +type awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio struct { } -func (*awsAwsjson11_deserializeOpListActions) ID() string { +func (*awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListActions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDisableSagemakerServicecatalogPortfolio) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20490,9 +20698,9 @@ func (m *awsAwsjson11_deserializeOpListActions) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListActions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(response, &metadata) } - output := &ListActionsOutput{} + output := &DisableSagemakerServicecatalogPortfolioOutput{} out.Result = output var buff [1024]byte @@ -20512,7 +20720,7 @@ func (m *awsAwsjson11_deserializeOpListActions) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListActionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDisableSagemakerServicecatalogPortfolioOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20526,7 +20734,7 @@ func (m *awsAwsjson11_deserializeOpListActions) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListActions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDisableSagemakerServicecatalogPortfolio(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20563,9 +20771,6 @@ func awsAwsjson11_deserializeOpErrorListActions(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20576,14 +20781,14 @@ func awsAwsjson11_deserializeOpErrorListActions(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListAlgorithms struct { +type awsAwsjson11_deserializeOpDisassociateTrialComponent struct { } -func (*awsAwsjson11_deserializeOpListAlgorithms) ID() string { +func (*awsAwsjson11_deserializeOpDisassociateTrialComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAlgorithms) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDisassociateTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20601,9 +20806,9 @@ func (m *awsAwsjson11_deserializeOpListAlgorithms) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAlgorithms(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response, &metadata) } - output := &ListAlgorithmsOutput{} + output := &DisassociateTrialComponentOutput{} out.Result = output var buff [1024]byte @@ -20623,7 +20828,7 @@ func (m *awsAwsjson11_deserializeOpListAlgorithms) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAlgorithmsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDisassociateTrialComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20637,7 +20842,7 @@ func (m *awsAwsjson11_deserializeOpListAlgorithms) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAlgorithms(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDisassociateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20674,6 +20879,9 @@ func awsAwsjson11_deserializeOpErrorListAlgorithms(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20684,14 +20892,14 @@ func awsAwsjson11_deserializeOpErrorListAlgorithms(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpListAliases struct { +type awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio struct { } -func (*awsAwsjson11_deserializeOpListAliases) ID() string { +func (*awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpEnableSagemakerServicecatalogPortfolio) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20709,9 +20917,9 @@ func (m *awsAwsjson11_deserializeOpListAliases) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAliases(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(response, &metadata) } - output := &ListAliasesOutput{} + output := &EnableSagemakerServicecatalogPortfolioOutput{} out.Result = output var buff [1024]byte @@ -20731,7 +20939,7 @@ func (m *awsAwsjson11_deserializeOpListAliases) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAliasesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentEnableSagemakerServicecatalogPortfolioOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20745,7 +20953,7 @@ func (m *awsAwsjson11_deserializeOpListAliases) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorEnableSagemakerServicecatalogPortfolio(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20782,9 +20990,6 @@ func awsAwsjson11_deserializeOpErrorListAliases(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20795,14 +21000,14 @@ func awsAwsjson11_deserializeOpErrorListAliases(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListAppImageConfigs struct { +type awsAwsjson11_deserializeOpGetDeviceFleetReport struct { } -func (*awsAwsjson11_deserializeOpListAppImageConfigs) ID() string { +func (*awsAwsjson11_deserializeOpGetDeviceFleetReport) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAppImageConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetDeviceFleetReport) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20820,9 +21025,9 @@ func (m *awsAwsjson11_deserializeOpListAppImageConfigs) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAppImageConfigs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response, &metadata) } - output := &ListAppImageConfigsOutput{} + output := &GetDeviceFleetReportOutput{} out.Result = output var buff [1024]byte @@ -20842,7 +21047,7 @@ func (m *awsAwsjson11_deserializeOpListAppImageConfigs) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAppImageConfigsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetDeviceFleetReportOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20856,7 +21061,7 @@ func (m *awsAwsjson11_deserializeOpListAppImageConfigs) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAppImageConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetDeviceFleetReport(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -20903,14 +21108,14 @@ func awsAwsjson11_deserializeOpErrorListAppImageConfigs(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListApps struct { +type awsAwsjson11_deserializeOpGetLineageGroupPolicy struct { } -func (*awsAwsjson11_deserializeOpListApps) ID() string { +func (*awsAwsjson11_deserializeOpGetLineageGroupPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListApps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetLineageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -20928,9 +21133,9 @@ func (m *awsAwsjson11_deserializeOpListApps) HandleDeserialize(ctx context.Conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListApps(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response, &metadata) } - output := &ListAppsOutput{} + output := &GetLineageGroupPolicyOutput{} out.Result = output var buff [1024]byte @@ -20950,7 +21155,7 @@ func (m *awsAwsjson11_deserializeOpListApps) HandleDeserialize(ctx context.Conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAppsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetLineageGroupPolicyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20964,7 +21169,7 @@ func (m *awsAwsjson11_deserializeOpListApps) HandleDeserialize(ctx context.Conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListApps(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetLineageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21001,6 +21206,9 @@ func awsAwsjson11_deserializeOpErrorListApps(response *smithyhttp.Response, meta errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21011,14 +21219,14 @@ func awsAwsjson11_deserializeOpErrorListApps(response *smithyhttp.Response, meta } } -type awsAwsjson11_deserializeOpListArtifacts struct { +type awsAwsjson11_deserializeOpGetModelPackageGroupPolicy struct { } -func (*awsAwsjson11_deserializeOpListArtifacts) ID() string { +func (*awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListArtifacts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21036,9 +21244,9 @@ func (m *awsAwsjson11_deserializeOpListArtifacts) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListArtifacts(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response, &metadata) } - output := &ListArtifactsOutput{} + output := &GetModelPackageGroupPolicyOutput{} out.Result = output var buff [1024]byte @@ -21058,7 +21266,7 @@ func (m *awsAwsjson11_deserializeOpListArtifacts) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListArtifactsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetModelPackageGroupPolicyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21072,7 +21280,7 @@ func (m *awsAwsjson11_deserializeOpListArtifacts) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListArtifacts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21109,9 +21317,114 @@ func awsAwsjson11_deserializeOpErrorListArtifacts(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus struct { +} + +func (*awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGetSagemakerServicecatalogPortfolioStatus) HandleDeserialize(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_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(response, &metadata) + } + output := &GetSagemakerServicecatalogPortfolioStatusOutput{} + 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_deserializeOpDocumentGetSagemakerServicecatalogPortfolioStatusOutput(&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_deserializeOpErrorGetSagemakerServicecatalogPortfolioStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21122,14 +21435,14 @@ func awsAwsjson11_deserializeOpErrorListArtifacts(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListAssociations struct { +type awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation struct { } -func (*awsAwsjson11_deserializeOpListAssociations) ID() string { +func (*awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetScalingConfigurationRecommendation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21147,9 +21460,9 @@ func (m *awsAwsjson11_deserializeOpListAssociations) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAssociations(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(response, &metadata) } - output := &ListAssociationsOutput{} + output := &GetScalingConfigurationRecommendationOutput{} out.Result = output var buff [1024]byte @@ -21169,7 +21482,7 @@ func (m *awsAwsjson11_deserializeOpListAssociations) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAssociationsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetScalingConfigurationRecommendationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21183,7 +21496,7 @@ func (m *awsAwsjson11_deserializeOpListAssociations) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetScalingConfigurationRecommendation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21233,14 +21546,14 @@ func awsAwsjson11_deserializeOpErrorListAssociations(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListAutoMLJobs struct { +type awsAwsjson11_deserializeOpGetSearchSuggestions struct { } -func (*awsAwsjson11_deserializeOpListAutoMLJobs) ID() string { +func (*awsAwsjson11_deserializeOpGetSearchSuggestions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAutoMLJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetSearchSuggestions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21258,9 +21571,9 @@ func (m *awsAwsjson11_deserializeOpListAutoMLJobs) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAutoMLJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetSearchSuggestions(response, &metadata) } - output := &ListAutoMLJobsOutput{} + output := &GetSearchSuggestionsOutput{} out.Result = output var buff [1024]byte @@ -21280,7 +21593,7 @@ func (m *awsAwsjson11_deserializeOpListAutoMLJobs) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAutoMLJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetSearchSuggestionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21294,7 +21607,7 @@ func (m *awsAwsjson11_deserializeOpListAutoMLJobs) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAutoMLJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetSearchSuggestions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21341,14 +21654,14 @@ func awsAwsjson11_deserializeOpErrorListAutoMLJobs(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpListCandidatesForAutoMLJob struct { +type awsAwsjson11_deserializeOpImportHubContent struct { } -func (*awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) ID() string { +func (*awsAwsjson11_deserializeOpImportHubContent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpImportHubContent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21366,9 +21679,9 @@ func (m *awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorImportHubContent(response, &metadata) } - output := &ListCandidatesForAutoMLJobOutput{} + output := &ImportHubContentOutput{} out.Result = output var buff [1024]byte @@ -21388,7 +21701,7 @@ func (m *awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListCandidatesForAutoMLJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentImportHubContentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21402,7 +21715,7 @@ func (m *awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorImportHubContent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21439,6 +21752,12 @@ func awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response *smithyh errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -21452,14 +21771,14 @@ func awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response *smithyh } } -type awsAwsjson11_deserializeOpListClusterNodes struct { +type awsAwsjson11_deserializeOpListActions struct { } -func (*awsAwsjson11_deserializeOpListClusterNodes) ID() string { +func (*awsAwsjson11_deserializeOpListActions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListClusterNodes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListActions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21477,9 +21796,9 @@ func (m *awsAwsjson11_deserializeOpListClusterNodes) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListClusterNodes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListActions(response, &metadata) } - output := &ListClusterNodesOutput{} + output := &ListActionsOutput{} out.Result = output var buff [1024]byte @@ -21499,7 +21818,7 @@ func (m *awsAwsjson11_deserializeOpListClusterNodes) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListClusterNodesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListActionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21513,7 +21832,7 @@ func (m *awsAwsjson11_deserializeOpListClusterNodes) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListClusterNodes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListActions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21563,14 +21882,14 @@ func awsAwsjson11_deserializeOpErrorListClusterNodes(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListClusters struct { +type awsAwsjson11_deserializeOpListAlgorithms struct { } -func (*awsAwsjson11_deserializeOpListClusters) ID() string { +func (*awsAwsjson11_deserializeOpListAlgorithms) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListClusters) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAlgorithms) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21588,9 +21907,9 @@ func (m *awsAwsjson11_deserializeOpListClusters) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListClusters(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAlgorithms(response, &metadata) } - output := &ListClustersOutput{} + output := &ListAlgorithmsOutput{} out.Result = output var buff [1024]byte @@ -21610,7 +21929,7 @@ func (m *awsAwsjson11_deserializeOpListClusters) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListClustersOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAlgorithmsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21624,7 +21943,7 @@ func (m *awsAwsjson11_deserializeOpListClusters) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListClusters(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAlgorithms(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21671,14 +21990,14 @@ func awsAwsjson11_deserializeOpErrorListClusters(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListCodeRepositories struct { +type awsAwsjson11_deserializeOpListAliases struct { } -func (*awsAwsjson11_deserializeOpListCodeRepositories) ID() string { +func (*awsAwsjson11_deserializeOpListAliases) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListCodeRepositories) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21696,9 +22015,9 @@ func (m *awsAwsjson11_deserializeOpListCodeRepositories) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListCodeRepositories(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAliases(response, &metadata) } - output := &ListCodeRepositoriesOutput{} + output := &ListAliasesOutput{} out.Result = output var buff [1024]byte @@ -21718,7 +22037,7 @@ func (m *awsAwsjson11_deserializeOpListCodeRepositories) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListCodeRepositoriesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAliasesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21732,7 +22051,7 @@ func (m *awsAwsjson11_deserializeOpListCodeRepositories) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListCodeRepositories(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21769,6 +22088,9 @@ func awsAwsjson11_deserializeOpErrorListCodeRepositories(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21779,14 +22101,14 @@ func awsAwsjson11_deserializeOpErrorListCodeRepositories(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListCompilationJobs struct { +type awsAwsjson11_deserializeOpListAppImageConfigs struct { } -func (*awsAwsjson11_deserializeOpListCompilationJobs) ID() string { +func (*awsAwsjson11_deserializeOpListAppImageConfigs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListCompilationJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAppImageConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21804,9 +22126,9 @@ func (m *awsAwsjson11_deserializeOpListCompilationJobs) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListCompilationJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAppImageConfigs(response, &metadata) } - output := &ListCompilationJobsOutput{} + output := &ListAppImageConfigsOutput{} out.Result = output var buff [1024]byte @@ -21826,7 +22148,7 @@ func (m *awsAwsjson11_deserializeOpListCompilationJobs) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListCompilationJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAppImageConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21840,7 +22162,7 @@ func (m *awsAwsjson11_deserializeOpListCompilationJobs) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListCompilationJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAppImageConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21887,14 +22209,14 @@ func awsAwsjson11_deserializeOpErrorListCompilationJobs(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListContexts struct { +type awsAwsjson11_deserializeOpListApps struct { } -func (*awsAwsjson11_deserializeOpListContexts) ID() string { +func (*awsAwsjson11_deserializeOpListApps) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListContexts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListApps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21912,9 +22234,9 @@ func (m *awsAwsjson11_deserializeOpListContexts) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListContexts(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListApps(response, &metadata) } - output := &ListContextsOutput{} + output := &ListAppsOutput{} out.Result = output var buff [1024]byte @@ -21934,7 +22256,7 @@ func (m *awsAwsjson11_deserializeOpListContexts) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListContextsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAppsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21948,7 +22270,7 @@ func (m *awsAwsjson11_deserializeOpListContexts) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListContexts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListApps(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21985,9 +22307,6 @@ func awsAwsjson11_deserializeOpErrorListContexts(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21998,14 +22317,14 @@ func awsAwsjson11_deserializeOpErrorListContexts(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListDataQualityJobDefinitions struct { +type awsAwsjson11_deserializeOpListArtifacts struct { } -func (*awsAwsjson11_deserializeOpListDataQualityJobDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListArtifacts) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListDataQualityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListArtifacts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22023,9 +22342,9 @@ func (m *awsAwsjson11_deserializeOpListDataQualityJobDefinitions) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListArtifacts(response, &metadata) } - output := &ListDataQualityJobDefinitionsOutput{} + output := &ListArtifactsOutput{} out.Result = output var buff [1024]byte @@ -22045,7 +22364,7 @@ func (m *awsAwsjson11_deserializeOpListDataQualityJobDefinitions) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListDataQualityJobDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListArtifactsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22059,7 +22378,7 @@ func (m *awsAwsjson11_deserializeOpListDataQualityJobDefinitions) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListArtifacts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22096,6 +22415,9 @@ func awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response *smit errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22106,14 +22428,14 @@ func awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response *smit } } -type awsAwsjson11_deserializeOpListDeviceFleets struct { +type awsAwsjson11_deserializeOpListAssociations struct { } -func (*awsAwsjson11_deserializeOpListDeviceFleets) ID() string { +func (*awsAwsjson11_deserializeOpListAssociations) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListDeviceFleets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22131,9 +22453,9 @@ func (m *awsAwsjson11_deserializeOpListDeviceFleets) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListDeviceFleets(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAssociations(response, &metadata) } - output := &ListDeviceFleetsOutput{} + output := &ListAssociationsOutput{} out.Result = output var buff [1024]byte @@ -22153,7 +22475,7 @@ func (m *awsAwsjson11_deserializeOpListDeviceFleets) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListDeviceFleetsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAssociationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22167,7 +22489,7 @@ func (m *awsAwsjson11_deserializeOpListDeviceFleets) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListDeviceFleets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22204,114 +22526,9 @@ func awsAwsjson11_deserializeOpErrorListDeviceFleets(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpListDevices struct { -} - -func (*awsAwsjson11_deserializeOpListDevices) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpListDevices) HandleDeserialize(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_deserializeOpErrorListDevices(response, &metadata) - } - output := &ListDevicesOutput{} - 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_deserializeOpDocumentListDevicesOutput(&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_deserializeOpErrorListDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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 - } + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - 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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22322,14 +22539,14 @@ func awsAwsjson11_deserializeOpErrorListDevices(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListDomains struct { +type awsAwsjson11_deserializeOpListAutoMLJobs struct { } -func (*awsAwsjson11_deserializeOpListDomains) ID() string { +func (*awsAwsjson11_deserializeOpListAutoMLJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListDomains) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAutoMLJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22347,9 +22564,9 @@ func (m *awsAwsjson11_deserializeOpListDomains) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListDomains(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAutoMLJobs(response, &metadata) } - output := &ListDomainsOutput{} + output := &ListAutoMLJobsOutput{} out.Result = output var buff [1024]byte @@ -22369,7 +22586,7 @@ func (m *awsAwsjson11_deserializeOpListDomains) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListDomainsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAutoMLJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22383,7 +22600,7 @@ func (m *awsAwsjson11_deserializeOpListDomains) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListDomains(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAutoMLJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22430,14 +22647,14 @@ func awsAwsjson11_deserializeOpErrorListDomains(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListEdgeDeploymentPlans struct { +type awsAwsjson11_deserializeOpListCandidatesForAutoMLJob struct { } -func (*awsAwsjson11_deserializeOpListEdgeDeploymentPlans) ID() string { +func (*awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListEdgeDeploymentPlans) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListCandidatesForAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22455,9 +22672,9 @@ func (m *awsAwsjson11_deserializeOpListEdgeDeploymentPlans) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response, &metadata) } - output := &ListEdgeDeploymentPlansOutput{} + output := &ListCandidatesForAutoMLJobOutput{} out.Result = output var buff [1024]byte @@ -22477,7 +22694,7 @@ func (m *awsAwsjson11_deserializeOpListEdgeDeploymentPlans) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListEdgeDeploymentPlansOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListCandidatesForAutoMLJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22491,7 +22708,7 @@ func (m *awsAwsjson11_deserializeOpListEdgeDeploymentPlans) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListCandidatesForAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22528,6 +22745,9 @@ func awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response *smithyhttp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22538,14 +22758,14 @@ func awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response *smithyhttp } } -type awsAwsjson11_deserializeOpListEdgePackagingJobs struct { +type awsAwsjson11_deserializeOpListClusterNodes struct { } -func (*awsAwsjson11_deserializeOpListEdgePackagingJobs) ID() string { +func (*awsAwsjson11_deserializeOpListClusterNodes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListEdgePackagingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListClusterNodes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22563,9 +22783,9 @@ func (m *awsAwsjson11_deserializeOpListEdgePackagingJobs) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListClusterNodes(response, &metadata) } - output := &ListEdgePackagingJobsOutput{} + output := &ListClusterNodesOutput{} out.Result = output var buff [1024]byte @@ -22585,7 +22805,7 @@ func (m *awsAwsjson11_deserializeOpListEdgePackagingJobs) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListEdgePackagingJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListClusterNodesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22599,7 +22819,7 @@ func (m *awsAwsjson11_deserializeOpListEdgePackagingJobs) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListClusterNodes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22636,6 +22856,9 @@ func awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response *smithyhttp.R errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22646,14 +22869,14 @@ func awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpListEndpointConfigs struct { +type awsAwsjson11_deserializeOpListClusters struct { } -func (*awsAwsjson11_deserializeOpListEndpointConfigs) ID() string { +func (*awsAwsjson11_deserializeOpListClusters) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListEndpointConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListClusters) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22671,9 +22894,9 @@ func (m *awsAwsjson11_deserializeOpListEndpointConfigs) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListEndpointConfigs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListClusters(response, &metadata) } - output := &ListEndpointConfigsOutput{} + output := &ListClustersOutput{} out.Result = output var buff [1024]byte @@ -22693,7 +22916,7 @@ func (m *awsAwsjson11_deserializeOpListEndpointConfigs) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListEndpointConfigsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListClustersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22707,7 +22930,7 @@ func (m *awsAwsjson11_deserializeOpListEndpointConfigs) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListEndpointConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListClusters(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22754,14 +22977,14 @@ func awsAwsjson11_deserializeOpErrorListEndpointConfigs(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListEndpoints struct { +type awsAwsjson11_deserializeOpListClusterSchedulerConfigs struct { } -func (*awsAwsjson11_deserializeOpListEndpoints) ID() string { +func (*awsAwsjson11_deserializeOpListClusterSchedulerConfigs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListEndpoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListClusterSchedulerConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22779,9 +23002,9 @@ func (m *awsAwsjson11_deserializeOpListEndpoints) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListEndpoints(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListClusterSchedulerConfigs(response, &metadata) } - output := &ListEndpointsOutput{} + output := &ListClusterSchedulerConfigsOutput{} out.Result = output var buff [1024]byte @@ -22801,7 +23024,7 @@ func (m *awsAwsjson11_deserializeOpListEndpoints) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListEndpointsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListClusterSchedulerConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22815,7 +23038,7 @@ func (m *awsAwsjson11_deserializeOpListEndpoints) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListEndpoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListClusterSchedulerConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22862,14 +23085,14 @@ func awsAwsjson11_deserializeOpErrorListEndpoints(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListExperiments struct { +type awsAwsjson11_deserializeOpListCodeRepositories struct { } -func (*awsAwsjson11_deserializeOpListExperiments) ID() string { +func (*awsAwsjson11_deserializeOpListCodeRepositories) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListExperiments) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListCodeRepositories) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22887,9 +23110,9 @@ func (m *awsAwsjson11_deserializeOpListExperiments) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListExperiments(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListCodeRepositories(response, &metadata) } - output := &ListExperimentsOutput{} + output := &ListCodeRepositoriesOutput{} out.Result = output var buff [1024]byte @@ -22909,7 +23132,7 @@ func (m *awsAwsjson11_deserializeOpListExperiments) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListExperimentsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListCodeRepositoriesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22923,7 +23146,7 @@ func (m *awsAwsjson11_deserializeOpListExperiments) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListExperiments(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListCodeRepositories(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22970,14 +23193,14 @@ func awsAwsjson11_deserializeOpErrorListExperiments(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpListFeatureGroups struct { +type awsAwsjson11_deserializeOpListCompilationJobs struct { } -func (*awsAwsjson11_deserializeOpListFeatureGroups) ID() string { +func (*awsAwsjson11_deserializeOpListCompilationJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListFeatureGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListCompilationJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22995,9 +23218,9 @@ func (m *awsAwsjson11_deserializeOpListFeatureGroups) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListFeatureGroups(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListCompilationJobs(response, &metadata) } - output := &ListFeatureGroupsOutput{} + output := &ListCompilationJobsOutput{} out.Result = output var buff [1024]byte @@ -23017,7 +23240,7 @@ func (m *awsAwsjson11_deserializeOpListFeatureGroups) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListFeatureGroupsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListCompilationJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23031,7 +23254,7 @@ func (m *awsAwsjson11_deserializeOpListFeatureGroups) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListFeatureGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListCompilationJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23078,14 +23301,14 @@ func awsAwsjson11_deserializeOpErrorListFeatureGroups(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListFlowDefinitions struct { +type awsAwsjson11_deserializeOpListComputeQuotas struct { } -func (*awsAwsjson11_deserializeOpListFlowDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListComputeQuotas) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListFlowDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListComputeQuotas) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23103,9 +23326,9 @@ func (m *awsAwsjson11_deserializeOpListFlowDefinitions) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListFlowDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListComputeQuotas(response, &metadata) } - output := &ListFlowDefinitionsOutput{} + output := &ListComputeQuotasOutput{} out.Result = output var buff [1024]byte @@ -23125,7 +23348,7 @@ func (m *awsAwsjson11_deserializeOpListFlowDefinitions) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListFlowDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListComputeQuotasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23139,7 +23362,7 @@ func (m *awsAwsjson11_deserializeOpListFlowDefinitions) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListFlowDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListComputeQuotas(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23186,14 +23409,14 @@ func awsAwsjson11_deserializeOpErrorListFlowDefinitions(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListHubContents struct { +type awsAwsjson11_deserializeOpListContexts struct { } -func (*awsAwsjson11_deserializeOpListHubContents) ID() string { +func (*awsAwsjson11_deserializeOpListContexts) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListHubContents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListContexts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23211,9 +23434,9 @@ func (m *awsAwsjson11_deserializeOpListHubContents) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListHubContents(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListContexts(response, &metadata) } - output := &ListHubContentsOutput{} + output := &ListContextsOutput{} out.Result = output var buff [1024]byte @@ -23233,7 +23456,7 @@ func (m *awsAwsjson11_deserializeOpListHubContents) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListHubContentsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListContextsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23247,7 +23470,7 @@ func (m *awsAwsjson11_deserializeOpListHubContents) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListHubContents(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListContexts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23297,14 +23520,14 @@ func awsAwsjson11_deserializeOpErrorListHubContents(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpListHubContentVersions struct { +type awsAwsjson11_deserializeOpListDataQualityJobDefinitions struct { } -func (*awsAwsjson11_deserializeOpListHubContentVersions) ID() string { +func (*awsAwsjson11_deserializeOpListDataQualityJobDefinitions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListHubContentVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListDataQualityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23322,9 +23545,9 @@ func (m *awsAwsjson11_deserializeOpListHubContentVersions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListHubContentVersions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response, &metadata) } - output := &ListHubContentVersionsOutput{} + output := &ListDataQualityJobDefinitionsOutput{} out.Result = output var buff [1024]byte @@ -23344,7 +23567,7 @@ func (m *awsAwsjson11_deserializeOpListHubContentVersions) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListHubContentVersionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListDataQualityJobDefinitionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23358,7 +23581,7 @@ func (m *awsAwsjson11_deserializeOpListHubContentVersions) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListHubContentVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListDataQualityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23395,9 +23618,6 @@ func awsAwsjson11_deserializeOpErrorListHubContentVersions(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -23408,14 +23628,14 @@ func awsAwsjson11_deserializeOpErrorListHubContentVersions(response *smithyhttp. } } -type awsAwsjson11_deserializeOpListHubs struct { +type awsAwsjson11_deserializeOpListDeviceFleets struct { } -func (*awsAwsjson11_deserializeOpListHubs) ID() string { +func (*awsAwsjson11_deserializeOpListDeviceFleets) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListHubs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListDeviceFleets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23433,9 +23653,9 @@ func (m *awsAwsjson11_deserializeOpListHubs) HandleDeserialize(ctx context.Conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListHubs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListDeviceFleets(response, &metadata) } - output := &ListHubsOutput{} + output := &ListDeviceFleetsOutput{} out.Result = output var buff [1024]byte @@ -23455,7 +23675,7 @@ func (m *awsAwsjson11_deserializeOpListHubs) HandleDeserialize(ctx context.Conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListHubsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListDeviceFleetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23469,7 +23689,7 @@ func (m *awsAwsjson11_deserializeOpListHubs) HandleDeserialize(ctx context.Conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListHubs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListDeviceFleets(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23516,14 +23736,14 @@ func awsAwsjson11_deserializeOpErrorListHubs(response *smithyhttp.Response, meta } } -type awsAwsjson11_deserializeOpListHumanTaskUis struct { +type awsAwsjson11_deserializeOpListDevices struct { } -func (*awsAwsjson11_deserializeOpListHumanTaskUis) ID() string { +func (*awsAwsjson11_deserializeOpListDevices) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListHumanTaskUis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23541,9 +23761,9 @@ func (m *awsAwsjson11_deserializeOpListHumanTaskUis) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListHumanTaskUis(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListDevices(response, &metadata) } - output := &ListHumanTaskUisOutput{} + output := &ListDevicesOutput{} out.Result = output var buff [1024]byte @@ -23563,7 +23783,7 @@ func (m *awsAwsjson11_deserializeOpListHumanTaskUis) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListHumanTaskUisOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListDevicesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23577,7 +23797,7 @@ func (m *awsAwsjson11_deserializeOpListHumanTaskUis) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListHumanTaskUis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23624,14 +23844,14 @@ func awsAwsjson11_deserializeOpErrorListHumanTaskUis(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListHyperParameterTuningJobs struct { +type awsAwsjson11_deserializeOpListDomains struct { } -func (*awsAwsjson11_deserializeOpListHyperParameterTuningJobs) ID() string { +func (*awsAwsjson11_deserializeOpListDomains) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListHyperParameterTuningJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListDomains) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23649,9 +23869,9 @@ func (m *awsAwsjson11_deserializeOpListHyperParameterTuningJobs) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListHyperParameterTuningJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListDomains(response, &metadata) } - output := &ListHyperParameterTuningJobsOutput{} + output := &ListDomainsOutput{} out.Result = output var buff [1024]byte @@ -23671,7 +23891,7 @@ func (m *awsAwsjson11_deserializeOpListHyperParameterTuningJobs) HandleDeseriali return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListHyperParameterTuningJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListDomainsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23685,7 +23905,7 @@ func (m *awsAwsjson11_deserializeOpListHyperParameterTuningJobs) HandleDeseriali return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListHyperParameterTuningJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListDomains(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23732,14 +23952,14 @@ func awsAwsjson11_deserializeOpErrorListHyperParameterTuningJobs(response *smith } } -type awsAwsjson11_deserializeOpListImages struct { +type awsAwsjson11_deserializeOpListEdgeDeploymentPlans struct { } -func (*awsAwsjson11_deserializeOpListImages) ID() string { +func (*awsAwsjson11_deserializeOpListEdgeDeploymentPlans) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListImages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListEdgeDeploymentPlans) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23757,9 +23977,9 @@ func (m *awsAwsjson11_deserializeOpListImages) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListImages(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response, &metadata) } - output := &ListImagesOutput{} + output := &ListEdgeDeploymentPlansOutput{} out.Result = output var buff [1024]byte @@ -23779,7 +23999,7 @@ func (m *awsAwsjson11_deserializeOpListImages) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListImagesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListEdgeDeploymentPlansOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23793,7 +24013,7 @@ func (m *awsAwsjson11_deserializeOpListImages) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListImages(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListEdgeDeploymentPlans(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23840,14 +24060,14 @@ func awsAwsjson11_deserializeOpErrorListImages(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpListImageVersions struct { +type awsAwsjson11_deserializeOpListEdgePackagingJobs struct { } -func (*awsAwsjson11_deserializeOpListImageVersions) ID() string { +func (*awsAwsjson11_deserializeOpListEdgePackagingJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListImageVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListEdgePackagingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23865,9 +24085,9 @@ func (m *awsAwsjson11_deserializeOpListImageVersions) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListImageVersions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response, &metadata) } - output := &ListImageVersionsOutput{} + output := &ListEdgePackagingJobsOutput{} out.Result = output var buff [1024]byte @@ -23887,7 +24107,7 @@ func (m *awsAwsjson11_deserializeOpListImageVersions) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListImageVersionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListEdgePackagingJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23901,7 +24121,7 @@ func (m *awsAwsjson11_deserializeOpListImageVersions) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListImageVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListEdgePackagingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -23938,9 +24158,6 @@ func awsAwsjson11_deserializeOpErrorListImageVersions(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -23951,14 +24168,14 @@ func awsAwsjson11_deserializeOpErrorListImageVersions(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListInferenceComponents struct { +type awsAwsjson11_deserializeOpListEndpointConfigs struct { } -func (*awsAwsjson11_deserializeOpListInferenceComponents) ID() string { +func (*awsAwsjson11_deserializeOpListEndpointConfigs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListInferenceComponents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListEndpointConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -23976,9 +24193,9 @@ func (m *awsAwsjson11_deserializeOpListInferenceComponents) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceComponents(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListEndpointConfigs(response, &metadata) } - output := &ListInferenceComponentsOutput{} + output := &ListEndpointConfigsOutput{} out.Result = output var buff [1024]byte @@ -23998,7 +24215,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceComponents) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListInferenceComponentsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListEndpointConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24012,7 +24229,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceComponents) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListInferenceComponents(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListEndpointConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24059,14 +24276,14 @@ func awsAwsjson11_deserializeOpErrorListInferenceComponents(response *smithyhttp } } -type awsAwsjson11_deserializeOpListInferenceExperiments struct { +type awsAwsjson11_deserializeOpListEndpoints struct { } -func (*awsAwsjson11_deserializeOpListInferenceExperiments) ID() string { +func (*awsAwsjson11_deserializeOpListEndpoints) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListInferenceExperiments) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListEndpoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24084,9 +24301,9 @@ func (m *awsAwsjson11_deserializeOpListInferenceExperiments) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceExperiments(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListEndpoints(response, &metadata) } - output := &ListInferenceExperimentsOutput{} + output := &ListEndpointsOutput{} out.Result = output var buff [1024]byte @@ -24106,7 +24323,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceExperiments) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListInferenceExperimentsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListEndpointsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24120,7 +24337,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceExperiments) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListInferenceExperiments(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListEndpoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24167,14 +24384,14 @@ func awsAwsjson11_deserializeOpErrorListInferenceExperiments(response *smithyhtt } } -type awsAwsjson11_deserializeOpListInferenceRecommendationsJobs struct { +type awsAwsjson11_deserializeOpListExperiments struct { } -func (*awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) ID() string { +func (*awsAwsjson11_deserializeOpListExperiments) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListExperiments) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24192,9 +24409,9 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListExperiments(response, &metadata) } - output := &ListInferenceRecommendationsJobsOutput{} + output := &ListExperimentsOutput{} out.Result = output var buff [1024]byte @@ -24214,7 +24431,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListExperimentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24228,7 +24445,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListExperiments(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24275,14 +24492,14 @@ func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response *s } } -type awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps struct { +type awsAwsjson11_deserializeOpListFeatureGroups struct { } -func (*awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) ID() string { +func (*awsAwsjson11_deserializeOpListFeatureGroups) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListFeatureGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24300,9 +24517,9 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) HandleD } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListFeatureGroups(response, &metadata) } - output := &ListInferenceRecommendationsJobStepsOutput{} + output := &ListFeatureGroupsOutput{} out.Result = output var buff [1024]byte @@ -24322,7 +24539,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) HandleD return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobStepsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListFeatureGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24336,7 +24553,7 @@ func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) HandleD return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListFeatureGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24373,9 +24590,6 @@ func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -24386,14 +24600,14 @@ func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(respons } } -type awsAwsjson11_deserializeOpListLabelingJobs struct { +type awsAwsjson11_deserializeOpListFlowDefinitions struct { } -func (*awsAwsjson11_deserializeOpListLabelingJobs) ID() string { +func (*awsAwsjson11_deserializeOpListFlowDefinitions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListLabelingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListFlowDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24411,9 +24625,9 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobs) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListLabelingJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListFlowDefinitions(response, &metadata) } - output := &ListLabelingJobsOutput{} + output := &ListFlowDefinitionsOutput{} out.Result = output var buff [1024]byte @@ -24433,7 +24647,7 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobs) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListLabelingJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListFlowDefinitionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24447,7 +24661,7 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobs) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListLabelingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListFlowDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24494,14 +24708,14 @@ func awsAwsjson11_deserializeOpErrorListLabelingJobs(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListLabelingJobsForWorkteam struct { +type awsAwsjson11_deserializeOpListHubContents struct { } -func (*awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) ID() string { +func (*awsAwsjson11_deserializeOpListHubContents) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListHubContents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24519,9 +24733,9 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListHubContents(response, &metadata) } - output := &ListLabelingJobsForWorkteamOutput{} + output := &ListHubContentsOutput{} out.Result = output var buff [1024]byte @@ -24541,7 +24755,7 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListLabelingJobsForWorkteamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListHubContentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24555,7 +24769,7 @@ func (m *awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListHubContents(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24605,14 +24819,14 @@ func awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response *smithy } } -type awsAwsjson11_deserializeOpListLineageGroups struct { +type awsAwsjson11_deserializeOpListHubContentVersions struct { } -func (*awsAwsjson11_deserializeOpListLineageGroups) ID() string { +func (*awsAwsjson11_deserializeOpListHubContentVersions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListHubContentVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24630,9 +24844,9 @@ func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListLineageGroups(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListHubContentVersions(response, &metadata) } - output := &ListLineageGroupsOutput{} + output := &ListHubContentVersionsOutput{} out.Result = output var buff [1024]byte @@ -24652,7 +24866,7 @@ func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListLineageGroupsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListHubContentVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24666,7 +24880,7 @@ func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListLineageGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListHubContentVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24703,6 +24917,9 @@ func awsAwsjson11_deserializeOpErrorListLineageGroups(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -24713,14 +24930,14 @@ func awsAwsjson11_deserializeOpErrorListLineageGroups(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListMlflowTrackingServers struct { +type awsAwsjson11_deserializeOpListHubs struct { } -func (*awsAwsjson11_deserializeOpListMlflowTrackingServers) ID() string { +func (*awsAwsjson11_deserializeOpListHubs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMlflowTrackingServers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListHubs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24738,9 +24955,9 @@ func (m *awsAwsjson11_deserializeOpListMlflowTrackingServers) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMlflowTrackingServers(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListHubs(response, &metadata) } - output := &ListMlflowTrackingServersOutput{} + output := &ListHubsOutput{} out.Result = output var buff [1024]byte @@ -24760,7 +24977,7 @@ func (m *awsAwsjson11_deserializeOpListMlflowTrackingServers) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMlflowTrackingServersOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListHubsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24774,7 +24991,7 @@ func (m *awsAwsjson11_deserializeOpListMlflowTrackingServers) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMlflowTrackingServers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListHubs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24821,14 +25038,14 @@ func awsAwsjson11_deserializeOpErrorListMlflowTrackingServers(response *smithyht } } -type awsAwsjson11_deserializeOpListModelBiasJobDefinitions struct { +type awsAwsjson11_deserializeOpListHumanTaskUis struct { } -func (*awsAwsjson11_deserializeOpListModelBiasJobDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListHumanTaskUis) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelBiasJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListHumanTaskUis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24846,9 +25063,9 @@ func (m *awsAwsjson11_deserializeOpListModelBiasJobDefinitions) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelBiasJobDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListHumanTaskUis(response, &metadata) } - output := &ListModelBiasJobDefinitionsOutput{} + output := &ListHumanTaskUisOutput{} out.Result = output var buff [1024]byte @@ -24868,7 +25085,7 @@ func (m *awsAwsjson11_deserializeOpListModelBiasJobDefinitions) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelBiasJobDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListHumanTaskUisOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24882,7 +25099,7 @@ func (m *awsAwsjson11_deserializeOpListModelBiasJobDefinitions) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelBiasJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListHumanTaskUis(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -24929,14 +25146,14 @@ func awsAwsjson11_deserializeOpErrorListModelBiasJobDefinitions(response *smithy } } -type awsAwsjson11_deserializeOpListModelCardExportJobs struct { +type awsAwsjson11_deserializeOpListHyperParameterTuningJobs struct { } -func (*awsAwsjson11_deserializeOpListModelCardExportJobs) ID() string { +func (*awsAwsjson11_deserializeOpListHyperParameterTuningJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelCardExportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListHyperParameterTuningJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -24954,9 +25171,9 @@ func (m *awsAwsjson11_deserializeOpListModelCardExportJobs) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelCardExportJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListHyperParameterTuningJobs(response, &metadata) } - output := &ListModelCardExportJobsOutput{} + output := &ListHyperParameterTuningJobsOutput{} out.Result = output var buff [1024]byte @@ -24976,7 +25193,7 @@ func (m *awsAwsjson11_deserializeOpListModelCardExportJobs) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelCardExportJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListHyperParameterTuningJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24990,7 +25207,7 @@ func (m *awsAwsjson11_deserializeOpListModelCardExportJobs) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelCardExportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListHyperParameterTuningJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25037,14 +25254,14 @@ func awsAwsjson11_deserializeOpErrorListModelCardExportJobs(response *smithyhttp } } -type awsAwsjson11_deserializeOpListModelCards struct { +type awsAwsjson11_deserializeOpListImages struct { } -func (*awsAwsjson11_deserializeOpListModelCards) ID() string { +func (*awsAwsjson11_deserializeOpListImages) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelCards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListImages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25062,9 +25279,9 @@ func (m *awsAwsjson11_deserializeOpListModelCards) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelCards(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListImages(response, &metadata) } - output := &ListModelCardsOutput{} + output := &ListImagesOutput{} out.Result = output var buff [1024]byte @@ -25084,7 +25301,7 @@ func (m *awsAwsjson11_deserializeOpListModelCards) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelCardsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListImagesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25098,7 +25315,7 @@ func (m *awsAwsjson11_deserializeOpListModelCards) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelCards(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListImages(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25145,14 +25362,14 @@ func awsAwsjson11_deserializeOpErrorListModelCards(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpListModelCardVersions struct { +type awsAwsjson11_deserializeOpListImageVersions struct { } -func (*awsAwsjson11_deserializeOpListModelCardVersions) ID() string { +func (*awsAwsjson11_deserializeOpListImageVersions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelCardVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListImageVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25170,9 +25387,9 @@ func (m *awsAwsjson11_deserializeOpListModelCardVersions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelCardVersions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListImageVersions(response, &metadata) } - output := &ListModelCardVersionsOutput{} + output := &ListImageVersionsOutput{} out.Result = output var buff [1024]byte @@ -25192,7 +25409,7 @@ func (m *awsAwsjson11_deserializeOpListModelCardVersions) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelCardVersionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListImageVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25206,7 +25423,7 @@ func (m *awsAwsjson11_deserializeOpListModelCardVersions) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelCardVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListImageVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25256,14 +25473,14 @@ func awsAwsjson11_deserializeOpErrorListModelCardVersions(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions struct { +type awsAwsjson11_deserializeOpListInferenceComponents struct { } -func (*awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListInferenceComponents) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListInferenceComponents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25281,9 +25498,9 @@ func (m *awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceComponents(response, &metadata) } - output := &ListModelExplainabilityJobDefinitionsOutput{} + output := &ListInferenceComponentsOutput{} out.Result = output var buff [1024]byte @@ -25303,7 +25520,7 @@ func (m *awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) Handle return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelExplainabilityJobDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListInferenceComponentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25317,7 +25534,7 @@ func (m *awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) Handle return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListInferenceComponents(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25364,14 +25581,14 @@ func awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(respon } } -type awsAwsjson11_deserializeOpListModelMetadata struct { +type awsAwsjson11_deserializeOpListInferenceExperiments struct { } -func (*awsAwsjson11_deserializeOpListModelMetadata) ID() string { +func (*awsAwsjson11_deserializeOpListInferenceExperiments) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListInferenceExperiments) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25389,9 +25606,9 @@ func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelMetadata(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceExperiments(response, &metadata) } - output := &ListModelMetadataOutput{} + output := &ListInferenceExperimentsOutput{} out.Result = output var buff [1024]byte @@ -25411,7 +25628,7 @@ func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelMetadataOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListInferenceExperimentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25425,7 +25642,7 @@ func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListInferenceExperiments(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25472,14 +25689,14 @@ func awsAwsjson11_deserializeOpErrorListModelMetadata(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListModelPackageGroups struct { +type awsAwsjson11_deserializeOpListInferenceRecommendationsJobs struct { } -func (*awsAwsjson11_deserializeOpListModelPackageGroups) ID() string { +func (*awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelPackageGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25497,9 +25714,9 @@ func (m *awsAwsjson11_deserializeOpListModelPackageGroups) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelPackageGroups(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response, &metadata) } - output := &ListModelPackageGroupsOutput{} + output := &ListInferenceRecommendationsJobsOutput{} out.Result = output var buff [1024]byte @@ -25519,7 +25736,7 @@ func (m *awsAwsjson11_deserializeOpListModelPackageGroups) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelPackageGroupsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25533,7 +25750,7 @@ func (m *awsAwsjson11_deserializeOpListModelPackageGroups) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelPackageGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25580,14 +25797,14 @@ func awsAwsjson11_deserializeOpErrorListModelPackageGroups(response *smithyhttp. } } -type awsAwsjson11_deserializeOpListModelPackages struct { +type awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps struct { } -func (*awsAwsjson11_deserializeOpListModelPackages) ID() string { +func (*awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelPackages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListInferenceRecommendationsJobSteps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25605,9 +25822,9 @@ func (m *awsAwsjson11_deserializeOpListModelPackages) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelPackages(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(response, &metadata) } - output := &ListModelPackagesOutput{} + output := &ListInferenceRecommendationsJobStepsOutput{} out.Result = output var buff [1024]byte @@ -25627,7 +25844,7 @@ func (m *awsAwsjson11_deserializeOpListModelPackages) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelPackagesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListInferenceRecommendationsJobStepsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25641,7 +25858,7 @@ func (m *awsAwsjson11_deserializeOpListModelPackages) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelPackages(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListInferenceRecommendationsJobSteps(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25678,6 +25895,9 @@ func awsAwsjson11_deserializeOpErrorListModelPackages(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25688,14 +25908,14 @@ func awsAwsjson11_deserializeOpErrorListModelPackages(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListModelQualityJobDefinitions struct { +type awsAwsjson11_deserializeOpListLabelingJobs struct { } -func (*awsAwsjson11_deserializeOpListModelQualityJobDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListLabelingJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModelQualityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListLabelingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25713,9 +25933,9 @@ func (m *awsAwsjson11_deserializeOpListModelQualityJobDefinitions) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModelQualityJobDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListLabelingJobs(response, &metadata) } - output := &ListModelQualityJobDefinitionsOutput{} + output := &ListLabelingJobsOutput{} out.Result = output var buff [1024]byte @@ -25735,7 +25955,7 @@ func (m *awsAwsjson11_deserializeOpListModelQualityJobDefinitions) HandleDeseria return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelQualityJobDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListLabelingJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25749,7 +25969,7 @@ func (m *awsAwsjson11_deserializeOpListModelQualityJobDefinitions) HandleDeseria return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModelQualityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListLabelingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25796,14 +26016,14 @@ func awsAwsjson11_deserializeOpErrorListModelQualityJobDefinitions(response *smi } } -type awsAwsjson11_deserializeOpListModels struct { +type awsAwsjson11_deserializeOpListLabelingJobsForWorkteam struct { } -func (*awsAwsjson11_deserializeOpListModels) ID() string { +func (*awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListLabelingJobsForWorkteam) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25821,9 +26041,9 @@ func (m *awsAwsjson11_deserializeOpListModels) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListModels(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response, &metadata) } - output := &ListModelsOutput{} + output := &ListLabelingJobsForWorkteamOutput{} out.Result = output var buff [1024]byte @@ -25843,7 +26063,7 @@ func (m *awsAwsjson11_deserializeOpListModels) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListModelsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListLabelingJobsForWorkteamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25857,7 +26077,7 @@ func (m *awsAwsjson11_deserializeOpListModels) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListLabelingJobsForWorkteam(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -25894,6 +26114,9 @@ func awsAwsjson11_deserializeOpErrorListModels(response *smithyhttp.Response, me errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25904,14 +26127,14 @@ func awsAwsjson11_deserializeOpErrorListModels(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpListMonitoringAlertHistory struct { +type awsAwsjson11_deserializeOpListLineageGroups struct { } -func (*awsAwsjson11_deserializeOpListMonitoringAlertHistory) ID() string { +func (*awsAwsjson11_deserializeOpListLineageGroups) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMonitoringAlertHistory) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListLineageGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -25929,9 +26152,9 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlertHistory) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListLineageGroups(response, &metadata) } - output := &ListMonitoringAlertHistoryOutput{} + output := &ListLineageGroupsOutput{} out.Result = output var buff [1024]byte @@ -25951,7 +26174,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlertHistory) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMonitoringAlertHistoryOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListLineageGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25965,7 +26188,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlertHistory) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListLineageGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26002,9 +26225,6 @@ func awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26015,14 +26235,14 @@ func awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response *smithyh } } -type awsAwsjson11_deserializeOpListMonitoringAlerts struct { +type awsAwsjson11_deserializeOpListMlflowTrackingServers struct { } -func (*awsAwsjson11_deserializeOpListMonitoringAlerts) ID() string { +func (*awsAwsjson11_deserializeOpListMlflowTrackingServers) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMonitoringAlerts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMlflowTrackingServers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26040,9 +26260,9 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlerts) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMlflowTrackingServers(response, &metadata) } - output := &ListMonitoringAlertsOutput{} + output := &ListMlflowTrackingServersOutput{} out.Result = output var buff [1024]byte @@ -26062,7 +26282,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlerts) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMlflowTrackingServersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26076,7 +26296,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringAlerts) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMlflowTrackingServers(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26113,9 +26333,114 @@ func awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpListModelBiasJobDefinitions struct { +} + +func (*awsAwsjson11_deserializeOpListModelBiasJobDefinitions) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListModelBiasJobDefinitions) HandleDeserialize(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_deserializeOpErrorListModelBiasJobDefinitions(response, &metadata) + } + output := &ListModelBiasJobDefinitionsOutput{} + 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_deserializeOpDocumentListModelBiasJobDefinitionsOutput(&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_deserializeOpErrorListModelBiasJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26126,14 +26451,14 @@ func awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListMonitoringExecutions struct { +type awsAwsjson11_deserializeOpListModelCardExportJobs struct { } -func (*awsAwsjson11_deserializeOpListMonitoringExecutions) ID() string { +func (*awsAwsjson11_deserializeOpListModelCardExportJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMonitoringExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelCardExportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26151,9 +26476,9 @@ func (m *awsAwsjson11_deserializeOpListMonitoringExecutions) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringExecutions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelCardExportJobs(response, &metadata) } - output := &ListMonitoringExecutionsOutput{} + output := &ListModelCardExportJobsOutput{} out.Result = output var buff [1024]byte @@ -26173,7 +26498,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringExecutions) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelCardExportJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26187,7 +26512,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringExecutions) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMonitoringExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelCardExportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26234,14 +26559,14 @@ func awsAwsjson11_deserializeOpErrorListMonitoringExecutions(response *smithyhtt } } -type awsAwsjson11_deserializeOpListMonitoringSchedules struct { +type awsAwsjson11_deserializeOpListModelCards struct { } -func (*awsAwsjson11_deserializeOpListMonitoringSchedules) ID() string { +func (*awsAwsjson11_deserializeOpListModelCards) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMonitoringSchedules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelCards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26259,9 +26584,9 @@ func (m *awsAwsjson11_deserializeOpListMonitoringSchedules) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringSchedules(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelCards(response, &metadata) } - output := &ListMonitoringSchedulesOutput{} + output := &ListModelCardsOutput{} out.Result = output var buff [1024]byte @@ -26281,7 +26606,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringSchedules) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelCardsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26295,7 +26620,7 @@ func (m *awsAwsjson11_deserializeOpListMonitoringSchedules) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMonitoringSchedules(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelCards(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26342,14 +26667,14 @@ func awsAwsjson11_deserializeOpErrorListMonitoringSchedules(response *smithyhttp } } -type awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs struct { +type awsAwsjson11_deserializeOpListModelCardVersions struct { } -func (*awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) ID() string { +func (*awsAwsjson11_deserializeOpListModelCardVersions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelCardVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26367,9 +26692,9 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) HandleD } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelCardVersions(response, &metadata) } - output := &ListNotebookInstanceLifecycleConfigsOutput{} + output := &ListModelCardVersionsOutput{} out.Result = output var buff [1024]byte @@ -26389,7 +26714,7 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) HandleD return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelCardVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26403,7 +26728,7 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) HandleD return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelCardVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26440,6 +26765,9 @@ func awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(respons errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26450,14 +26778,14 @@ func awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(respons } } -type awsAwsjson11_deserializeOpListNotebookInstances struct { +type awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions struct { } -func (*awsAwsjson11_deserializeOpListNotebookInstances) ID() string { +func (*awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListNotebookInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelExplainabilityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26475,9 +26803,9 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstances) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListNotebookInstances(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(response, &metadata) } - output := &ListNotebookInstancesOutput{} + output := &ListModelExplainabilityJobDefinitionsOutput{} out.Result = output var buff [1024]byte @@ -26497,7 +26825,7 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstances) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelExplainabilityJobDefinitionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26511,7 +26839,7 @@ func (m *awsAwsjson11_deserializeOpListNotebookInstances) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListNotebookInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelExplainabilityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26558,14 +26886,14 @@ func awsAwsjson11_deserializeOpErrorListNotebookInstances(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpListOptimizationJobs struct { +type awsAwsjson11_deserializeOpListModelMetadata struct { } -func (*awsAwsjson11_deserializeOpListOptimizationJobs) ID() string { +func (*awsAwsjson11_deserializeOpListModelMetadata) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListOptimizationJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26583,9 +26911,9 @@ func (m *awsAwsjson11_deserializeOpListOptimizationJobs) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListOptimizationJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelMetadata(response, &metadata) } - output := &ListOptimizationJobsOutput{} + output := &ListModelMetadataOutput{} out.Result = output var buff [1024]byte @@ -26605,7 +26933,7 @@ func (m *awsAwsjson11_deserializeOpListOptimizationJobs) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelMetadataOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26619,7 +26947,7 @@ func (m *awsAwsjson11_deserializeOpListOptimizationJobs) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListOptimizationJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26666,14 +26994,14 @@ func awsAwsjson11_deserializeOpErrorListOptimizationJobs(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListPipelineExecutions struct { +type awsAwsjson11_deserializeOpListModelPackageGroups struct { } -func (*awsAwsjson11_deserializeOpListPipelineExecutions) ID() string { +func (*awsAwsjson11_deserializeOpListModelPackageGroups) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListPipelineExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelPackageGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26691,9 +27019,9 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineExecutions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelPackageGroups(response, &metadata) } - output := &ListPipelineExecutionsOutput{} + output := &ListModelPackageGroupsOutput{} out.Result = output var buff [1024]byte @@ -26713,7 +27041,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutions) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListPipelineExecutionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelPackageGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26727,7 +27055,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutions) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListPipelineExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelPackageGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26764,9 +27092,6 @@ func awsAwsjson11_deserializeOpErrorListPipelineExecutions(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26777,14 +27102,14 @@ func awsAwsjson11_deserializeOpErrorListPipelineExecutions(response *smithyhttp. } } -type awsAwsjson11_deserializeOpListPipelineExecutionSteps struct { +type awsAwsjson11_deserializeOpListModelPackages struct { } -func (*awsAwsjson11_deserializeOpListPipelineExecutionSteps) ID() string { +func (*awsAwsjson11_deserializeOpListModelPackages) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListPipelineExecutionSteps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelPackages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26802,9 +27127,9 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutionSteps) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelPackages(response, &metadata) } - output := &ListPipelineExecutionStepsOutput{} + output := &ListModelPackagesOutput{} out.Result = output var buff [1024]byte @@ -26824,7 +27149,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutionSteps) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListPipelineExecutionStepsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelPackagesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26838,7 +27163,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineExecutionSteps) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelPackages(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26875,9 +27200,6 @@ func awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26888,14 +27210,14 @@ func awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response *smithyh } } -type awsAwsjson11_deserializeOpListPipelineParametersForExecution struct { +type awsAwsjson11_deserializeOpListModelQualityJobDefinitions struct { } -func (*awsAwsjson11_deserializeOpListPipelineParametersForExecution) ID() string { +func (*awsAwsjson11_deserializeOpListModelQualityJobDefinitions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListPipelineParametersForExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListModelQualityJobDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -26913,9 +27235,9 @@ func (m *awsAwsjson11_deserializeOpListPipelineParametersForExecution) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListModelQualityJobDefinitions(response, &metadata) } - output := &ListPipelineParametersForExecutionOutput{} + output := &ListModelQualityJobDefinitionsOutput{} out.Result = output var buff [1024]byte @@ -26935,7 +27257,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineParametersForExecution) HandleDes return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListPipelineParametersForExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListModelQualityJobDefinitionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26949,7 +27271,7 @@ func (m *awsAwsjson11_deserializeOpListPipelineParametersForExecution) HandleDes return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListModelQualityJobDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -26986,9 +27308,114 @@ func awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpListModels struct { +} + +func (*awsAwsjson11_deserializeOpListModels) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListModels) HandleDeserialize(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_deserializeOpErrorListModels(response, &metadata) + } + output := &ListModelsOutput{} + 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_deserializeOpDocumentListModelsOutput(&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_deserializeOpErrorListModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26999,14 +27426,14 @@ func awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response } } -type awsAwsjson11_deserializeOpListPipelines struct { +type awsAwsjson11_deserializeOpListMonitoringAlertHistory struct { } -func (*awsAwsjson11_deserializeOpListPipelines) ID() string { +func (*awsAwsjson11_deserializeOpListMonitoringAlertHistory) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListPipelines) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMonitoringAlertHistory) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27024,9 +27451,9 @@ func (m *awsAwsjson11_deserializeOpListPipelines) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListPipelines(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response, &metadata) } - output := &ListPipelinesOutput{} + output := &ListMonitoringAlertHistoryOutput{} out.Result = output var buff [1024]byte @@ -27046,7 +27473,7 @@ func (m *awsAwsjson11_deserializeOpListPipelines) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListPipelinesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMonitoringAlertHistoryOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27060,7 +27487,7 @@ func (m *awsAwsjson11_deserializeOpListPipelines) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListPipelines(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMonitoringAlertHistory(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27097,6 +27524,9 @@ func awsAwsjson11_deserializeOpErrorListPipelines(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27107,14 +27537,14 @@ func awsAwsjson11_deserializeOpErrorListPipelines(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListProcessingJobs struct { +type awsAwsjson11_deserializeOpListMonitoringAlerts struct { } -func (*awsAwsjson11_deserializeOpListProcessingJobs) ID() string { +func (*awsAwsjson11_deserializeOpListMonitoringAlerts) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListProcessingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMonitoringAlerts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27132,9 +27562,9 @@ func (m *awsAwsjson11_deserializeOpListProcessingJobs) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListProcessingJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response, &metadata) } - output := &ListProcessingJobsOutput{} + output := &ListMonitoringAlertsOutput{} out.Result = output var buff [1024]byte @@ -27154,7 +27584,7 @@ func (m *awsAwsjson11_deserializeOpListProcessingJobs) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListProcessingJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27168,7 +27598,7 @@ func (m *awsAwsjson11_deserializeOpListProcessingJobs) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListProcessingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMonitoringAlerts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27205,6 +27635,9 @@ func awsAwsjson11_deserializeOpErrorListProcessingJobs(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27215,14 +27648,14 @@ func awsAwsjson11_deserializeOpErrorListProcessingJobs(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpListProjects struct { +type awsAwsjson11_deserializeOpListMonitoringExecutions struct { } -func (*awsAwsjson11_deserializeOpListProjects) ID() string { +func (*awsAwsjson11_deserializeOpListMonitoringExecutions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListProjects) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMonitoringExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27240,9 +27673,9 @@ func (m *awsAwsjson11_deserializeOpListProjects) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListProjects(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringExecutions(response, &metadata) } - output := &ListProjectsOutput{} + output := &ListMonitoringExecutionsOutput{} out.Result = output var buff [1024]byte @@ -27262,7 +27695,7 @@ func (m *awsAwsjson11_deserializeOpListProjects) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListProjectsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27276,7 +27709,7 @@ func (m *awsAwsjson11_deserializeOpListProjects) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListProjects(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMonitoringExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27323,14 +27756,14 @@ func awsAwsjson11_deserializeOpErrorListProjects(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListResourceCatalogs struct { +type awsAwsjson11_deserializeOpListMonitoringSchedules struct { } -func (*awsAwsjson11_deserializeOpListResourceCatalogs) ID() string { +func (*awsAwsjson11_deserializeOpListMonitoringSchedules) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListResourceCatalogs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMonitoringSchedules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27348,9 +27781,9 @@ func (m *awsAwsjson11_deserializeOpListResourceCatalogs) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListResourceCatalogs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMonitoringSchedules(response, &metadata) } - output := &ListResourceCatalogsOutput{} + output := &ListMonitoringSchedulesOutput{} out.Result = output var buff [1024]byte @@ -27370,7 +27803,7 @@ func (m *awsAwsjson11_deserializeOpListResourceCatalogs) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListResourceCatalogsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27384,7 +27817,7 @@ func (m *awsAwsjson11_deserializeOpListResourceCatalogs) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListResourceCatalogs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMonitoringSchedules(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27431,14 +27864,14 @@ func awsAwsjson11_deserializeOpErrorListResourceCatalogs(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListSpaces struct { +type awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs struct { } -func (*awsAwsjson11_deserializeOpListSpaces) ID() string { +func (*awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListSpaces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListNotebookInstanceLifecycleConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27456,9 +27889,9 @@ func (m *awsAwsjson11_deserializeOpListSpaces) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListSpaces(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(response, &metadata) } - output := &ListSpacesOutput{} + output := &ListNotebookInstanceLifecycleConfigsOutput{} out.Result = output var buff [1024]byte @@ -27478,7 +27911,7 @@ func (m *awsAwsjson11_deserializeOpListSpaces) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListSpacesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27492,7 +27925,7 @@ func (m *awsAwsjson11_deserializeOpListSpaces) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListSpaces(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListNotebookInstanceLifecycleConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27539,14 +27972,14 @@ func awsAwsjson11_deserializeOpErrorListSpaces(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpListStageDevices struct { +type awsAwsjson11_deserializeOpListNotebookInstances struct { } -func (*awsAwsjson11_deserializeOpListStageDevices) ID() string { +func (*awsAwsjson11_deserializeOpListNotebookInstances) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListStageDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListNotebookInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27564,9 +27997,9 @@ func (m *awsAwsjson11_deserializeOpListStageDevices) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListStageDevices(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListNotebookInstances(response, &metadata) } - output := &ListStageDevicesOutput{} + output := &ListNotebookInstancesOutput{} out.Result = output var buff [1024]byte @@ -27586,7 +28019,7 @@ func (m *awsAwsjson11_deserializeOpListStageDevices) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListStageDevicesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27600,7 +28033,7 @@ func (m *awsAwsjson11_deserializeOpListStageDevices) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListStageDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListNotebookInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27647,14 +28080,14 @@ func awsAwsjson11_deserializeOpErrorListStageDevices(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListStudioLifecycleConfigs struct { +type awsAwsjson11_deserializeOpListOptimizationJobs struct { } -func (*awsAwsjson11_deserializeOpListStudioLifecycleConfigs) ID() string { +func (*awsAwsjson11_deserializeOpListOptimizationJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListStudioLifecycleConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListOptimizationJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27672,9 +28105,9 @@ func (m *awsAwsjson11_deserializeOpListStudioLifecycleConfigs) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListOptimizationJobs(response, &metadata) } - output := &ListStudioLifecycleConfigsOutput{} + output := &ListOptimizationJobsOutput{} out.Result = output var buff [1024]byte @@ -27694,7 +28127,7 @@ func (m *awsAwsjson11_deserializeOpListStudioLifecycleConfigs) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListStudioLifecycleConfigsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27708,7 +28141,7 @@ func (m *awsAwsjson11_deserializeOpListStudioLifecycleConfigs) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListOptimizationJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27745,9 +28178,6 @@ func awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27758,14 +28188,14 @@ func awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response *smithyh } } -type awsAwsjson11_deserializeOpListSubscribedWorkteams struct { +type awsAwsjson11_deserializeOpListPartnerApps struct { } -func (*awsAwsjson11_deserializeOpListSubscribedWorkteams) ID() string { +func (*awsAwsjson11_deserializeOpListPartnerApps) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListSubscribedWorkteams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPartnerApps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27783,9 +28213,9 @@ func (m *awsAwsjson11_deserializeOpListSubscribedWorkteams) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListSubscribedWorkteams(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPartnerApps(response, &metadata) } - output := &ListSubscribedWorkteamsOutput{} + output := &ListPartnerAppsOutput{} out.Result = output var buff [1024]byte @@ -27805,7 +28235,7 @@ func (m *awsAwsjson11_deserializeOpListSubscribedWorkteams) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListSubscribedWorkteamsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPartnerAppsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27819,7 +28249,7 @@ func (m *awsAwsjson11_deserializeOpListSubscribedWorkteams) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListSubscribedWorkteams(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPartnerApps(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27866,14 +28296,14 @@ func awsAwsjson11_deserializeOpErrorListSubscribedWorkteams(response *smithyhttp } } -type awsAwsjson11_deserializeOpListTags struct { +type awsAwsjson11_deserializeOpListPipelineExecutions struct { } -func (*awsAwsjson11_deserializeOpListTags) ID() string { +func (*awsAwsjson11_deserializeOpListPipelineExecutions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPipelineExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27891,9 +28321,9 @@ func (m *awsAwsjson11_deserializeOpListTags) HandleDeserialize(ctx context.Conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTags(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineExecutions(response, &metadata) } - output := &ListTagsOutput{} + output := &ListPipelineExecutionsOutput{} out.Result = output var buff [1024]byte @@ -27913,7 +28343,7 @@ func (m *awsAwsjson11_deserializeOpListTags) HandleDeserialize(ctx context.Conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTagsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPipelineExecutionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27927,7 +28357,7 @@ func (m *awsAwsjson11_deserializeOpListTags) HandleDeserialize(ctx context.Conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTags(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPipelineExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -27964,6 +28394,9 @@ func awsAwsjson11_deserializeOpErrorListTags(response *smithyhttp.Response, meta errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27974,14 +28407,14 @@ func awsAwsjson11_deserializeOpErrorListTags(response *smithyhttp.Response, meta } } -type awsAwsjson11_deserializeOpListTrainingJobs struct { +type awsAwsjson11_deserializeOpListPipelineExecutionSteps struct { } -func (*awsAwsjson11_deserializeOpListTrainingJobs) ID() string { +func (*awsAwsjson11_deserializeOpListPipelineExecutionSteps) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTrainingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPipelineExecutionSteps) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -27999,9 +28432,9 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobs) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTrainingJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response, &metadata) } - output := &ListTrainingJobsOutput{} + output := &ListPipelineExecutionStepsOutput{} out.Result = output var buff [1024]byte @@ -28021,7 +28454,7 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobs) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTrainingJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPipelineExecutionStepsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28035,7 +28468,7 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobs) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTrainingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPipelineExecutionSteps(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28072,6 +28505,9 @@ func awsAwsjson11_deserializeOpErrorListTrainingJobs(response *smithyhttp.Respon errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28082,14 +28518,14 @@ func awsAwsjson11_deserializeOpErrorListTrainingJobs(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob struct { +type awsAwsjson11_deserializeOpListPipelineParametersForExecution struct { } -func (*awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) ID() string { +func (*awsAwsjson11_deserializeOpListPipelineParametersForExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPipelineParametersForExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28107,9 +28543,9 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) H } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTrainingJobsForHyperParameterTuningJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response, &metadata) } - output := &ListTrainingJobsForHyperParameterTuningJobOutput{} + output := &ListPipelineParametersForExecutionOutput{} out.Result = output var buff [1024]byte @@ -28129,7 +28565,7 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) H return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTrainingJobsForHyperParameterTuningJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPipelineParametersForExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28143,7 +28579,7 @@ func (m *awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) H return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTrainingJobsForHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPipelineParametersForExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28193,14 +28629,14 @@ func awsAwsjson11_deserializeOpErrorListTrainingJobsForHyperParameterTuningJob(r } } -type awsAwsjson11_deserializeOpListTransformJobs struct { +type awsAwsjson11_deserializeOpListPipelines struct { } -func (*awsAwsjson11_deserializeOpListTransformJobs) ID() string { +func (*awsAwsjson11_deserializeOpListPipelines) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTransformJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPipelines) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28218,9 +28654,9 @@ func (m *awsAwsjson11_deserializeOpListTransformJobs) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTransformJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPipelines(response, &metadata) } - output := &ListTransformJobsOutput{} + output := &ListPipelinesOutput{} out.Result = output var buff [1024]byte @@ -28240,7 +28676,7 @@ func (m *awsAwsjson11_deserializeOpListTransformJobs) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTransformJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPipelinesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28254,7 +28690,7 @@ func (m *awsAwsjson11_deserializeOpListTransformJobs) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTransformJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPipelines(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28301,14 +28737,14 @@ func awsAwsjson11_deserializeOpErrorListTransformJobs(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpListTrialComponents struct { +type awsAwsjson11_deserializeOpListProcessingJobs struct { } -func (*awsAwsjson11_deserializeOpListTrialComponents) ID() string { +func (*awsAwsjson11_deserializeOpListProcessingJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTrialComponents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListProcessingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28326,9 +28762,9 @@ func (m *awsAwsjson11_deserializeOpListTrialComponents) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTrialComponents(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListProcessingJobs(response, &metadata) } - output := &ListTrialComponentsOutput{} + output := &ListProcessingJobsOutput{} out.Result = output var buff [1024]byte @@ -28348,7 +28784,7 @@ func (m *awsAwsjson11_deserializeOpListTrialComponents) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTrialComponentsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListProcessingJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28362,7 +28798,7 @@ func (m *awsAwsjson11_deserializeOpListTrialComponents) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTrialComponents(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListProcessingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28399,9 +28835,6 @@ func awsAwsjson11_deserializeOpErrorListTrialComponents(response *smithyhttp.Res errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28412,14 +28845,14 @@ func awsAwsjson11_deserializeOpErrorListTrialComponents(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListTrials struct { +type awsAwsjson11_deserializeOpListProjects struct { } -func (*awsAwsjson11_deserializeOpListTrials) ID() string { +func (*awsAwsjson11_deserializeOpListProjects) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTrials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListProjects) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28437,9 +28870,9 @@ func (m *awsAwsjson11_deserializeOpListTrials) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTrials(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListProjects(response, &metadata) } - output := &ListTrialsOutput{} + output := &ListProjectsOutput{} out.Result = output var buff [1024]byte @@ -28459,7 +28892,7 @@ func (m *awsAwsjson11_deserializeOpListTrials) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTrialsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListProjectsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28473,7 +28906,7 @@ func (m *awsAwsjson11_deserializeOpListTrials) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTrials(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListProjects(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28510,9 +28943,114 @@ func awsAwsjson11_deserializeOpErrorListTrials(response *smithyhttp.Response, me errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpListResourceCatalogs struct { +} + +func (*awsAwsjson11_deserializeOpListResourceCatalogs) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListResourceCatalogs) HandleDeserialize(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_deserializeOpErrorListResourceCatalogs(response, &metadata) + } + output := &ListResourceCatalogsOutput{} + 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_deserializeOpDocumentListResourceCatalogsOutput(&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_deserializeOpErrorListResourceCatalogs(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28523,14 +29061,14 @@ func awsAwsjson11_deserializeOpErrorListTrials(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpListUserProfiles struct { +type awsAwsjson11_deserializeOpListSpaces struct { } -func (*awsAwsjson11_deserializeOpListUserProfiles) ID() string { +func (*awsAwsjson11_deserializeOpListSpaces) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListUserProfiles) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListSpaces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28548,9 +29086,9 @@ func (m *awsAwsjson11_deserializeOpListUserProfiles) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListUserProfiles(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListSpaces(response, &metadata) } - output := &ListUserProfilesOutput{} + output := &ListSpacesOutput{} out.Result = output var buff [1024]byte @@ -28570,7 +29108,7 @@ func (m *awsAwsjson11_deserializeOpListUserProfiles) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListUserProfilesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListSpacesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28584,7 +29122,7 @@ func (m *awsAwsjson11_deserializeOpListUserProfiles) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListUserProfiles(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListSpaces(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28631,14 +29169,14 @@ func awsAwsjson11_deserializeOpErrorListUserProfiles(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpListWorkforces struct { +type awsAwsjson11_deserializeOpListStageDevices struct { } -func (*awsAwsjson11_deserializeOpListWorkforces) ID() string { +func (*awsAwsjson11_deserializeOpListStageDevices) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListWorkforces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListStageDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28656,9 +29194,9 @@ func (m *awsAwsjson11_deserializeOpListWorkforces) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListWorkforces(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListStageDevices(response, &metadata) } - output := &ListWorkforcesOutput{} + output := &ListStageDevicesOutput{} out.Result = output var buff [1024]byte @@ -28678,7 +29216,7 @@ func (m *awsAwsjson11_deserializeOpListWorkforces) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListWorkforcesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListStageDevicesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28692,7 +29230,7 @@ func (m *awsAwsjson11_deserializeOpListWorkforces) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListWorkforces(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListStageDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28739,14 +29277,14 @@ func awsAwsjson11_deserializeOpErrorListWorkforces(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpListWorkteams struct { +type awsAwsjson11_deserializeOpListStudioLifecycleConfigs struct { } -func (*awsAwsjson11_deserializeOpListWorkteams) ID() string { +func (*awsAwsjson11_deserializeOpListStudioLifecycleConfigs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListWorkteams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListStudioLifecycleConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28764,9 +29302,9 @@ func (m *awsAwsjson11_deserializeOpListWorkteams) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListWorkteams(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response, &metadata) } - output := &ListWorkteamsOutput{} + output := &ListStudioLifecycleConfigsOutput{} out.Result = output var buff [1024]byte @@ -28786,7 +29324,7 @@ func (m *awsAwsjson11_deserializeOpListWorkteams) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListWorkteamsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListStudioLifecycleConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28800,7 +29338,7 @@ func (m *awsAwsjson11_deserializeOpListWorkteams) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListWorkteams(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListStudioLifecycleConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28837,6 +29375,9 @@ func awsAwsjson11_deserializeOpErrorListWorkteams(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28847,14 +29388,14 @@ func awsAwsjson11_deserializeOpErrorListWorkteams(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpPutModelPackageGroupPolicy struct { +type awsAwsjson11_deserializeOpListSubscribedWorkteams struct { } -func (*awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) ID() string { +func (*awsAwsjson11_deserializeOpListSubscribedWorkteams) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListSubscribedWorkteams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28872,9 +29413,9 @@ func (m *awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListSubscribedWorkteams(response, &metadata) } - output := &PutModelPackageGroupPolicyOutput{} + output := &ListSubscribedWorkteamsOutput{} out.Result = output var buff [1024]byte @@ -28894,7 +29435,7 @@ func (m *awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutModelPackageGroupPolicyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListSubscribedWorkteamsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28908,7 +29449,7 @@ func (m *awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListSubscribedWorkteams(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -28945,9 +29486,6 @@ func awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28958,14 +29496,14 @@ func awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response *smithyh } } -type awsAwsjson11_deserializeOpQueryLineage struct { +type awsAwsjson11_deserializeOpListTags struct { } -func (*awsAwsjson11_deserializeOpQueryLineage) ID() string { +func (*awsAwsjson11_deserializeOpListTags) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -28983,9 +29521,9 @@ func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorQueryLineage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTags(response, &metadata) } - output := &QueryLineageOutput{} + output := &ListTagsOutput{} out.Result = output var buff [1024]byte @@ -29005,7 +29543,7 @@ func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentQueryLineageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTagsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29019,7 +29557,7 @@ func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorQueryLineage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTags(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29056,9 +29594,6 @@ func awsAwsjson11_deserializeOpErrorQueryLineage(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29069,14 +29604,14 @@ func awsAwsjson11_deserializeOpErrorQueryLineage(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpRegisterDevices struct { +type awsAwsjson11_deserializeOpListTrainingJobs struct { } -func (*awsAwsjson11_deserializeOpRegisterDevices) ID() string { +func (*awsAwsjson11_deserializeOpListTrainingJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRegisterDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTrainingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29094,21 +29629,43 @@ func (m *awsAwsjson11_deserializeOpRegisterDevices) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRegisterDevices(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTrainingJobs(response, &metadata) } - output := &RegisterDevicesOutput{} + output := &ListTrainingJobsOutput{} 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_deserializeOpDocumentListTrainingJobsOutput(&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_deserializeOpErrorRegisterDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTrainingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29145,9 +29702,6 @@ func awsAwsjson11_deserializeOpErrorRegisterDevices(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29158,14 +29712,14 @@ func awsAwsjson11_deserializeOpErrorRegisterDevices(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpRenderUiTemplate struct { +type awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob struct { } -func (*awsAwsjson11_deserializeOpRenderUiTemplate) ID() string { +func (*awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRenderUiTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTrainingJobsForHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29183,9 +29737,9 @@ func (m *awsAwsjson11_deserializeOpRenderUiTemplate) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRenderUiTemplate(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTrainingJobsForHyperParameterTuningJob(response, &metadata) } - output := &RenderUiTemplateOutput{} + output := &ListTrainingJobsForHyperParameterTuningJobOutput{} out.Result = output var buff [1024]byte @@ -29205,7 +29759,7 @@ func (m *awsAwsjson11_deserializeOpRenderUiTemplate) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRenderUiTemplateOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTrainingJobsForHyperParameterTuningJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29219,7 +29773,7 @@ func (m *awsAwsjson11_deserializeOpRenderUiTemplate) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorRenderUiTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTrainingJobsForHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29269,14 +29823,14 @@ func awsAwsjson11_deserializeOpErrorRenderUiTemplate(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpRetryPipelineExecution struct { +type awsAwsjson11_deserializeOpListTrainingPlans struct { } -func (*awsAwsjson11_deserializeOpRetryPipelineExecution) ID() string { +func (*awsAwsjson11_deserializeOpListTrainingPlans) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRetryPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTrainingPlans) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29294,9 +29848,9 @@ func (m *awsAwsjson11_deserializeOpRetryPipelineExecution) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTrainingPlans(response, &metadata) } - output := &RetryPipelineExecutionOutput{} + output := &ListTrainingPlansOutput{} out.Result = output var buff [1024]byte @@ -29316,7 +29870,7 @@ func (m *awsAwsjson11_deserializeOpRetryPipelineExecution) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRetryPipelineExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTrainingPlansOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29330,7 +29884,7 @@ func (m *awsAwsjson11_deserializeOpRetryPipelineExecution) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTrainingPlans(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29367,15 +29921,114 @@ func awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + } +} - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) +type awsAwsjson11_deserializeOpListTransformJobs struct { +} + +func (*awsAwsjson11_deserializeOpListTransformJobs) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListTransformJobs) HandleDeserialize(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_deserializeOpErrorListTransformJobs(response, &metadata) + } + output := &ListTransformJobsOutput{} + 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_deserializeOpDocumentListTransformJobsOutput(&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_deserializeOpErrorListTransformJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29386,14 +30039,14 @@ func awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response *smithyhttp. } } -type awsAwsjson11_deserializeOpSearch struct { +type awsAwsjson11_deserializeOpListTrialComponents struct { } -func (*awsAwsjson11_deserializeOpSearch) ID() string { +func (*awsAwsjson11_deserializeOpListTrialComponents) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpSearch) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTrialComponents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29411,9 +30064,9 @@ func (m *awsAwsjson11_deserializeOpSearch) HandleDeserialize(ctx context.Context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorSearch(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTrialComponents(response, &metadata) } - output := &SearchOutput{} + output := &ListTrialComponentsOutput{} out.Result = output var buff [1024]byte @@ -29433,7 +30086,7 @@ func (m *awsAwsjson11_deserializeOpSearch) HandleDeserialize(ctx context.Context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentSearchOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTrialComponentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29447,7 +30100,7 @@ func (m *awsAwsjson11_deserializeOpSearch) HandleDeserialize(ctx context.Context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorSearch(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTrialComponents(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29484,6 +30137,9 @@ func awsAwsjson11_deserializeOpErrorSearch(response *smithyhttp.Response, metada errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29494,14 +30150,14 @@ func awsAwsjson11_deserializeOpErrorSearch(response *smithyhttp.Response, metada } } -type awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure struct { +type awsAwsjson11_deserializeOpListTrials struct { } -func (*awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) ID() string { +func (*awsAwsjson11_deserializeOpListTrials) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTrials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29519,9 +30175,9 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTrials(response, &metadata) } - output := &SendPipelineExecutionStepFailureOutput{} + output := &ListTrialsOutput{} out.Result = output var buff [1024]byte @@ -29541,7 +30197,7 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentSendPipelineExecutionStepFailureOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTrialsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29555,7 +30211,7 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTrials(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29592,12 +30248,6 @@ func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response *s errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -29611,14 +30261,14 @@ func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response *s } } -type awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess struct { +type awsAwsjson11_deserializeOpListUserProfiles struct { } -func (*awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) ID() string { +func (*awsAwsjson11_deserializeOpListUserProfiles) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListUserProfiles) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29636,9 +30286,9 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListUserProfiles(response, &metadata) } - output := &SendPipelineExecutionStepSuccessOutput{} + output := &ListUserProfilesOutput{} out.Result = output var buff [1024]byte @@ -29658,7 +30308,7 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentSendPipelineExecutionStepSuccessOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListUserProfilesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29672,7 +30322,7 @@ func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListUserProfiles(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29709,15 +30359,6 @@ func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response *s errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29728,14 +30369,14 @@ func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response *s } } -type awsAwsjson11_deserializeOpStartEdgeDeploymentStage struct { +type awsAwsjson11_deserializeOpListWorkforces struct { } -func (*awsAwsjson11_deserializeOpStartEdgeDeploymentStage) ID() string { +func (*awsAwsjson11_deserializeOpListWorkforces) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListWorkforces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29753,21 +30394,43 @@ func (m *awsAwsjson11_deserializeOpStartEdgeDeploymentStage) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartEdgeDeploymentStage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListWorkforces(response, &metadata) } - output := &StartEdgeDeploymentStageOutput{} + output := &ListWorkforcesOutput{} 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_deserializeOpDocumentListWorkforcesOutput(&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_deserializeOpErrorStartEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListWorkforces(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29814,14 +30477,14 @@ func awsAwsjson11_deserializeOpErrorStartEdgeDeploymentStage(response *smithyhtt } } -type awsAwsjson11_deserializeOpStartInferenceExperiment struct { +type awsAwsjson11_deserializeOpListWorkteams struct { } -func (*awsAwsjson11_deserializeOpStartInferenceExperiment) ID() string { +func (*awsAwsjson11_deserializeOpListWorkteams) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListWorkteams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29839,9 +30502,9 @@ func (m *awsAwsjson11_deserializeOpStartInferenceExperiment) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListWorkteams(response, &metadata) } - output := &StartInferenceExperimentOutput{} + output := &ListWorkteamsOutput{} out.Result = output var buff [1024]byte @@ -29861,7 +30524,7 @@ func (m *awsAwsjson11_deserializeOpStartInferenceExperiment) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartInferenceExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListWorkteamsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29875,7 +30538,7 @@ func (m *awsAwsjson11_deserializeOpStartInferenceExperiment) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListWorkteams(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29912,12 +30575,6 @@ func awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response *smithyhtt errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29928,14 +30585,14 @@ func awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response *smithyhtt } } -type awsAwsjson11_deserializeOpStartMlflowTrackingServer struct { +type awsAwsjson11_deserializeOpPutModelPackageGroupPolicy struct { } -func (*awsAwsjson11_deserializeOpStartMlflowTrackingServer) ID() string { +func (*awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutModelPackageGroupPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29953,9 +30610,9 @@ func (m *awsAwsjson11_deserializeOpStartMlflowTrackingServer) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response, &metadata) } - output := &StartMlflowTrackingServerOutput{} + output := &PutModelPackageGroupPolicyOutput{} out.Result = output var buff [1024]byte @@ -29975,7 +30632,7 @@ func (m *awsAwsjson11_deserializeOpStartMlflowTrackingServer) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartMlflowTrackingServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutModelPackageGroupPolicyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29989,7 +30646,7 @@ func (m *awsAwsjson11_deserializeOpStartMlflowTrackingServer) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutModelPackageGroupPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30029,9 +30686,6 @@ func awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response *smithyht case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -30042,14 +30696,14 @@ func awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response *smithyht } } -type awsAwsjson11_deserializeOpStartMonitoringSchedule struct { +type awsAwsjson11_deserializeOpQueryLineage struct { } -func (*awsAwsjson11_deserializeOpStartMonitoringSchedule) ID() string { +func (*awsAwsjson11_deserializeOpQueryLineage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpQueryLineage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30067,21 +30721,43 @@ func (m *awsAwsjson11_deserializeOpStartMonitoringSchedule) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartMonitoringSchedule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorQueryLineage(response, &metadata) } - output := &StartMonitoringScheduleOutput{} + output := &QueryLineageOutput{} 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_deserializeOpDocumentQueryLineageOutput(&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_deserializeOpErrorStartMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorQueryLineage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30131,14 +30807,14 @@ func awsAwsjson11_deserializeOpErrorStartMonitoringSchedule(response *smithyhttp } } -type awsAwsjson11_deserializeOpStartNotebookInstance struct { +type awsAwsjson11_deserializeOpRegisterDevices struct { } -func (*awsAwsjson11_deserializeOpStartNotebookInstance) ID() string { +func (*awsAwsjson11_deserializeOpRegisterDevices) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRegisterDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30156,9 +30832,9 @@ func (m *awsAwsjson11_deserializeOpStartNotebookInstance) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartNotebookInstance(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRegisterDevices(response, &metadata) } - output := &StartNotebookInstanceOutput{} + output := &RegisterDevicesOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -30170,7 +30846,7 @@ func (m *awsAwsjson11_deserializeOpStartNotebookInstance) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRegisterDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30220,14 +30896,14 @@ func awsAwsjson11_deserializeOpErrorStartNotebookInstance(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpStartPipelineExecution struct { +type awsAwsjson11_deserializeOpRenderUiTemplate struct { } -func (*awsAwsjson11_deserializeOpStartPipelineExecution) ID() string { +func (*awsAwsjson11_deserializeOpRenderUiTemplate) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRenderUiTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30245,9 +30921,9 @@ func (m *awsAwsjson11_deserializeOpStartPipelineExecution) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartPipelineExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRenderUiTemplate(response, &metadata) } - output := &StartPipelineExecutionOutput{} + output := &RenderUiTemplateOutput{} out.Result = output var buff [1024]byte @@ -30267,7 +30943,7 @@ func (m *awsAwsjson11_deserializeOpStartPipelineExecution) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartPipelineExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentRenderUiTemplateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30281,7 +30957,7 @@ func (m *awsAwsjson11_deserializeOpStartPipelineExecution) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRenderUiTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30318,12 +30994,6 @@ func awsAwsjson11_deserializeOpErrorStartPipelineExecution(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -30337,14 +31007,14 @@ func awsAwsjson11_deserializeOpErrorStartPipelineExecution(response *smithyhttp. } } -type awsAwsjson11_deserializeOpStopAutoMLJob struct { +type awsAwsjson11_deserializeOpRetryPipelineExecution struct { } -func (*awsAwsjson11_deserializeOpStopAutoMLJob) ID() string { +func (*awsAwsjson11_deserializeOpRetryPipelineExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRetryPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30362,110 +31032,43 @@ func (m *awsAwsjson11_deserializeOpStopAutoMLJob) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopAutoMLJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response, &metadata) } - output := &StopAutoMLJobOutput{} + output := &RetryPipelineExecutionOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorStopAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - bodyInfo, err := getProtocolErrorInfo(decoder) - if err != nil { + 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 - } - - 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("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpStopCompilationJob struct { -} - -func (*awsAwsjson11_deserializeOpStopCompilationJob) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpStopCompilationJob) HandleDeserialize(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_deserializeOpErrorStopCompilationJob(response, &metadata) - } - output := &StopCompilationJobOutput{} - 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), + err = awsAwsjson11_deserializeOpDocumentRetryPipelineExecutionOutput(&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_deserializeOpErrorStopCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRetryPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30502,6 +31105,12 @@ func awsAwsjson11_deserializeOpErrorStopCompilationJob(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -30515,14 +31124,14 @@ func awsAwsjson11_deserializeOpErrorStopCompilationJob(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpStopEdgeDeploymentStage struct { +type awsAwsjson11_deserializeOpSearch struct { } -func (*awsAwsjson11_deserializeOpStopEdgeDeploymentStage) ID() string { +func (*awsAwsjson11_deserializeOpSearch) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSearch) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30540,107 +31149,43 @@ func (m *awsAwsjson11_deserializeOpStopEdgeDeploymentStage) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopEdgeDeploymentStage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSearch(response, &metadata) } - output := &StopEdgeDeploymentStageOutput{} + output := &SearchOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorStopEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - bodyInfo, err := getProtocolErrorInfo(decoder) - if err != nil { + 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 - } - - 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 { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpStopEdgePackagingJob struct { -} - -func (*awsAwsjson11_deserializeOpStopEdgePackagingJob) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpStopEdgePackagingJob) HandleDeserialize(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_deserializeOpErrorStopEdgePackagingJob(response, &metadata) - } - output := &StopEdgePackagingJobOutput{} - 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), + err = awsAwsjson11_deserializeOpDocumentSearchOutput(&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_deserializeOpErrorStopEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSearch(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30687,14 +31232,14 @@ func awsAwsjson11_deserializeOpErrorStopEdgePackagingJob(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpStopHyperParameterTuningJob struct { +type awsAwsjson11_deserializeOpSearchTrainingPlanOfferings struct { } -func (*awsAwsjson11_deserializeOpStopHyperParameterTuningJob) ID() string { +func (*awsAwsjson11_deserializeOpSearchTrainingPlanOfferings) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopHyperParameterTuningJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSearchTrainingPlanOfferings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30712,21 +31257,43 @@ func (m *awsAwsjson11_deserializeOpStopHyperParameterTuningJob) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopHyperParameterTuningJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSearchTrainingPlanOfferings(response, &metadata) } - output := &StopHyperParameterTuningJobOutput{} + output := &SearchTrainingPlanOfferingsOutput{} 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_deserializeOpDocumentSearchTrainingPlanOfferingsOutput(&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_deserializeOpErrorStopHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSearchTrainingPlanOfferings(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30763,8 +31330,8 @@ func awsAwsjson11_deserializeOpErrorStopHyperParameterTuningJob(response *smithy errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -30776,14 +31343,14 @@ func awsAwsjson11_deserializeOpErrorStopHyperParameterTuningJob(response *smithy } } -type awsAwsjson11_deserializeOpStopInferenceExperiment struct { +type awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure struct { } -func (*awsAwsjson11_deserializeOpStopInferenceExperiment) ID() string { +func (*awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepFailure) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30801,9 +31368,9 @@ func (m *awsAwsjson11_deserializeOpStopInferenceExperiment) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response, &metadata) } - output := &StopInferenceExperimentOutput{} + output := &SendPipelineExecutionStepFailureOutput{} out.Result = output var buff [1024]byte @@ -30823,7 +31390,7 @@ func (m *awsAwsjson11_deserializeOpStopInferenceExperiment) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopInferenceExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentSendPipelineExecutionStepFailureOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30837,7 +31404,7 @@ func (m *awsAwsjson11_deserializeOpStopInferenceExperiment) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepFailure(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30877,6 +31444,9 @@ func awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response *smithyhttp case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -30890,14 +31460,14 @@ func awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response *smithyhttp } } -type awsAwsjson11_deserializeOpStopInferenceRecommendationsJob struct { +type awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess struct { } -func (*awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) ID() string { +func (*awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSendPipelineExecutionStepSuccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30915,21 +31485,43 @@ func (m *awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response, &metadata) } - output := &StopInferenceRecommendationsJobOutput{} + output := &SendPipelineExecutionStepSuccessOutput{} 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_deserializeOpDocumentSendPipelineExecutionStepSuccessOutput(&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_deserializeOpErrorStopInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSendPipelineExecutionStepSuccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30966,6 +31558,12 @@ func awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response *sm errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -30979,14 +31577,14 @@ func awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response *sm } } -type awsAwsjson11_deserializeOpStopLabelingJob struct { +type awsAwsjson11_deserializeOpStartEdgeDeploymentStage struct { } -func (*awsAwsjson11_deserializeOpStopLabelingJob) ID() string { +func (*awsAwsjson11_deserializeOpStartEdgeDeploymentStage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopLabelingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31004,9 +31602,9 @@ func (m *awsAwsjson11_deserializeOpStopLabelingJob) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopLabelingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartEdgeDeploymentStage(response, &metadata) } - output := &StopLabelingJobOutput{} + output := &StartEdgeDeploymentStageOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31018,7 +31616,7 @@ func (m *awsAwsjson11_deserializeOpStopLabelingJob) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopLabelingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31055,9 +31653,6 @@ func awsAwsjson11_deserializeOpErrorStopLabelingJob(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -31068,14 +31663,14 @@ func awsAwsjson11_deserializeOpErrorStopLabelingJob(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpStopMlflowTrackingServer struct { +type awsAwsjson11_deserializeOpStartInferenceExperiment struct { } -func (*awsAwsjson11_deserializeOpStopMlflowTrackingServer) ID() string { +func (*awsAwsjson11_deserializeOpStartInferenceExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31093,9 +31688,9 @@ func (m *awsAwsjson11_deserializeOpStopMlflowTrackingServer) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopMlflowTrackingServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response, &metadata) } - output := &StopMlflowTrackingServerOutput{} + output := &StartInferenceExperimentOutput{} out.Result = output var buff [1024]byte @@ -31115,7 +31710,7 @@ func (m *awsAwsjson11_deserializeOpStopMlflowTrackingServer) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopMlflowTrackingServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartInferenceExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -31129,7 +31724,7 @@ func (m *awsAwsjson11_deserializeOpStopMlflowTrackingServer) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31182,14 +31777,14 @@ func awsAwsjson11_deserializeOpErrorStopMlflowTrackingServer(response *smithyhtt } } -type awsAwsjson11_deserializeOpStopMonitoringSchedule struct { +type awsAwsjson11_deserializeOpStartMlflowTrackingServer struct { } -func (*awsAwsjson11_deserializeOpStopMonitoringSchedule) ID() string { +func (*awsAwsjson11_deserializeOpStartMlflowTrackingServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31207,21 +31802,43 @@ func (m *awsAwsjson11_deserializeOpStopMonitoringSchedule) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopMonitoringSchedule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response, &metadata) } - output := &StopMonitoringScheduleOutput{} + output := &StartMlflowTrackingServerOutput{} 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_deserializeOpDocumentStartMlflowTrackingServerOutput(&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_deserializeOpErrorStopMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31258,6 +31875,9 @@ func awsAwsjson11_deserializeOpErrorStopMonitoringSchedule(response *smithyhttp. errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -31271,14 +31891,14 @@ func awsAwsjson11_deserializeOpErrorStopMonitoringSchedule(response *smithyhttp. } } -type awsAwsjson11_deserializeOpStopNotebookInstance struct { +type awsAwsjson11_deserializeOpStartMonitoringSchedule struct { } -func (*awsAwsjson11_deserializeOpStopNotebookInstance) ID() string { +func (*awsAwsjson11_deserializeOpStartMonitoringSchedule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31296,9 +31916,9 @@ func (m *awsAwsjson11_deserializeOpStopNotebookInstance) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopNotebookInstance(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartMonitoringSchedule(response, &metadata) } - output := &StopNotebookInstanceOutput{} + output := &StartMonitoringScheduleOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31310,7 +31930,7 @@ func (m *awsAwsjson11_deserializeOpStopNotebookInstance) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31347,6 +31967,9 @@ func awsAwsjson11_deserializeOpErrorStopNotebookInstance(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -31357,14 +31980,14 @@ func awsAwsjson11_deserializeOpErrorStopNotebookInstance(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpStopOptimizationJob struct { +type awsAwsjson11_deserializeOpStartNotebookInstance struct { } -func (*awsAwsjson11_deserializeOpStopOptimizationJob) ID() string { +func (*awsAwsjson11_deserializeOpStartNotebookInstance) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopOptimizationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31382,9 +32005,9 @@ func (m *awsAwsjson11_deserializeOpStopOptimizationJob) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopOptimizationJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartNotebookInstance(response, &metadata) } - output := &StopOptimizationJobOutput{} + output := &StartNotebookInstanceOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31396,7 +32019,7 @@ func (m *awsAwsjson11_deserializeOpStopOptimizationJob) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31433,8 +32056,8 @@ func awsAwsjson11_deserializeOpErrorStopOptimizationJob(response *smithyhttp.Res errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -31446,14 +32069,14 @@ func awsAwsjson11_deserializeOpErrorStopOptimizationJob(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpStopPipelineExecution struct { +type awsAwsjson11_deserializeOpStartPipelineExecution struct { } -func (*awsAwsjson11_deserializeOpStopPipelineExecution) ID() string { +func (*awsAwsjson11_deserializeOpStartPipelineExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31471,9 +32094,9 @@ func (m *awsAwsjson11_deserializeOpStopPipelineExecution) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopPipelineExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartPipelineExecution(response, &metadata) } - output := &StopPipelineExecutionOutput{} + output := &StartPipelineExecutionOutput{} out.Result = output var buff [1024]byte @@ -31493,7 +32116,7 @@ func (m *awsAwsjson11_deserializeOpStopPipelineExecution) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopPipelineExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartPipelineExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -31507,7 +32130,7 @@ func (m *awsAwsjson11_deserializeOpStopPipelineExecution) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31547,6 +32170,9 @@ func awsAwsjson11_deserializeOpErrorStopPipelineExecution(response *smithyhttp.R case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -31560,14 +32186,14 @@ func awsAwsjson11_deserializeOpErrorStopPipelineExecution(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpStopProcessingJob struct { +type awsAwsjson11_deserializeOpStopAutoMLJob struct { } -func (*awsAwsjson11_deserializeOpStopProcessingJob) ID() string { +func (*awsAwsjson11_deserializeOpStopAutoMLJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopProcessingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopAutoMLJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31585,9 +32211,9 @@ func (m *awsAwsjson11_deserializeOpStopProcessingJob) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopProcessingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopAutoMLJob(response, &metadata) } - output := &StopProcessingJobOutput{} + output := &StopAutoMLJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31599,7 +32225,7 @@ func (m *awsAwsjson11_deserializeOpStopProcessingJob) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopAutoMLJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31649,14 +32275,14 @@ func awsAwsjson11_deserializeOpErrorStopProcessingJob(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpStopTrainingJob struct { +type awsAwsjson11_deserializeOpStopCompilationJob struct { } -func (*awsAwsjson11_deserializeOpStopTrainingJob) ID() string { +func (*awsAwsjson11_deserializeOpStopCompilationJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopCompilationJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31674,9 +32300,9 @@ func (m *awsAwsjson11_deserializeOpStopTrainingJob) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopTrainingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopCompilationJob(response, &metadata) } - output := &StopTrainingJobOutput{} + output := &StopCompilationJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31688,7 +32314,7 @@ func (m *awsAwsjson11_deserializeOpStopTrainingJob) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopCompilationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31738,14 +32364,14 @@ func awsAwsjson11_deserializeOpErrorStopTrainingJob(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpStopTransformJob struct { +type awsAwsjson11_deserializeOpStopEdgeDeploymentStage struct { } -func (*awsAwsjson11_deserializeOpStopTransformJob) ID() string { +func (*awsAwsjson11_deserializeOpStopEdgeDeploymentStage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopEdgeDeploymentStage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31763,9 +32389,9 @@ func (m *awsAwsjson11_deserializeOpStopTransformJob) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopTransformJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopEdgeDeploymentStage(response, &metadata) } - output := &StopTransformJobOutput{} + output := &StopEdgeDeploymentStageOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -31777,7 +32403,179 @@ func (m *awsAwsjson11_deserializeOpStopTransformJob) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopEdgeDeploymentStage(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpStopEdgePackagingJob struct { +} + +func (*awsAwsjson11_deserializeOpStopEdgePackagingJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopEdgePackagingJob) HandleDeserialize(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_deserializeOpErrorStopEdgePackagingJob(response, &metadata) + } + output := &StopEdgePackagingJobOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorStopEdgePackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpStopHyperParameterTuningJob struct { +} + +func (*awsAwsjson11_deserializeOpStopHyperParameterTuningJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopHyperParameterTuningJob) HandleDeserialize(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_deserializeOpErrorStopHyperParameterTuningJob(response, &metadata) + } + output := &StopHyperParameterTuningJobOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorStopHyperParameterTuningJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31827,14 +32625,14 @@ func awsAwsjson11_deserializeOpErrorStopTransformJob(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpUpdateAction struct { +type awsAwsjson11_deserializeOpStopInferenceExperiment struct { } -func (*awsAwsjson11_deserializeOpUpdateAction) ID() string { +func (*awsAwsjson11_deserializeOpStopInferenceExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31852,9 +32650,9 @@ func (m *awsAwsjson11_deserializeOpUpdateAction) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAction(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response, &metadata) } - output := &UpdateActionOutput{} + output := &StopInferenceExperimentOutput{} out.Result = output var buff [1024]byte @@ -31874,7 +32672,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAction) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateActionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopInferenceExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -31888,7 +32686,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAction) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -31941,14 +32739,14 @@ func awsAwsjson11_deserializeOpErrorUpdateAction(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateAppImageConfig struct { +type awsAwsjson11_deserializeOpStopInferenceRecommendationsJob struct { } -func (*awsAwsjson11_deserializeOpUpdateAppImageConfig) ID() string { +func (*awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateAppImageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopInferenceRecommendationsJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -31966,43 +32764,21 @@ func (m *awsAwsjson11_deserializeOpUpdateAppImageConfig) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAppImageConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response, &metadata) } - output := &UpdateAppImageConfigOutput{} + output := &StopInferenceRecommendationsJobOutput{} 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_deserializeOpDocumentUpdateAppImageConfigOutput(&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_deserializeOpErrorUpdateAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopInferenceRecommendationsJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32052,14 +32828,14 @@ func awsAwsjson11_deserializeOpErrorUpdateAppImageConfig(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpUpdateArtifact struct { +type awsAwsjson11_deserializeOpStopLabelingJob struct { } -func (*awsAwsjson11_deserializeOpUpdateArtifact) ID() string { +func (*awsAwsjson11_deserializeOpStopLabelingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopLabelingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32077,43 +32853,21 @@ func (m *awsAwsjson11_deserializeOpUpdateArtifact) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateArtifact(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopLabelingJob(response, &metadata) } - output := &UpdateArtifactOutput{} + output := &StopLabelingJobOutput{} 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_deserializeOpDocumentUpdateArtifactOutput(&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_deserializeOpErrorUpdateArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopLabelingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32150,9 +32904,6 @@ func awsAwsjson11_deserializeOpErrorUpdateArtifact(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -32166,14 +32917,14 @@ func awsAwsjson11_deserializeOpErrorUpdateArtifact(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpUpdateCluster struct { +type awsAwsjson11_deserializeOpStopMlflowTrackingServer struct { } -func (*awsAwsjson11_deserializeOpUpdateCluster) ID() string { +func (*awsAwsjson11_deserializeOpStopMlflowTrackingServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32191,9 +32942,9 @@ func (m *awsAwsjson11_deserializeOpUpdateCluster) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCluster(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopMlflowTrackingServer(response, &metadata) } - output := &UpdateClusterOutput{} + output := &StopMlflowTrackingServerOutput{} out.Result = output var buff [1024]byte @@ -32213,7 +32964,7 @@ func (m *awsAwsjson11_deserializeOpUpdateCluster) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateClusterOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopMlflowTrackingServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32227,7 +32978,7 @@ func (m *awsAwsjson11_deserializeOpUpdateCluster) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32267,9 +33018,6 @@ func awsAwsjson11_deserializeOpErrorUpdateCluster(response *smithyhttp.Response, case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -32283,14 +33031,14 @@ func awsAwsjson11_deserializeOpErrorUpdateCluster(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateClusterSoftware struct { +type awsAwsjson11_deserializeOpStopMonitoringSchedule struct { } -func (*awsAwsjson11_deserializeOpUpdateClusterSoftware) ID() string { +func (*awsAwsjson11_deserializeOpStopMonitoringSchedule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateClusterSoftware) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32308,43 +33056,21 @@ func (m *awsAwsjson11_deserializeOpUpdateClusterSoftware) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateClusterSoftware(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopMonitoringSchedule(response, &metadata) } - output := &UpdateClusterSoftwareOutput{} + output := &StopMonitoringScheduleOutput{} 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_deserializeOpDocumentUpdateClusterSoftwareOutput(&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_deserializeOpErrorUpdateClusterSoftware(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32381,9 +33107,6 @@ func awsAwsjson11_deserializeOpErrorUpdateClusterSoftware(response *smithyhttp.R errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -32397,14 +33120,14 @@ func awsAwsjson11_deserializeOpErrorUpdateClusterSoftware(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpUpdateCodeRepository struct { +type awsAwsjson11_deserializeOpStopNotebookInstance struct { } -func (*awsAwsjson11_deserializeOpUpdateCodeRepository) ID() string { +func (*awsAwsjson11_deserializeOpStopNotebookInstance) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32422,43 +33145,107 @@ func (m *awsAwsjson11_deserializeOpUpdateCodeRepository) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopNotebookInstance(response, &metadata) } - output := &UpdateCodeRepositoryOutput{} + output := &StopNotebookInstanceOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorStopNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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(response.Body, ringBuffer) + 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{ Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return out, metadata, err + return err } - err = awsAwsjson11_deserializeOpDocumentUpdateCodeRepositoryOutput(&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 typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } + return genericError + + } +} + +type awsAwsjson11_deserializeOpStopOptimizationJob struct { +} + +func (*awsAwsjson11_deserializeOpStopOptimizationJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopOptimizationJob) HandleDeserialize(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_deserializeOpErrorStopOptimizationJob(response, &metadata) + } + output := &StopOptimizationJobOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopOptimizationJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32495,8 +33282,8 @@ func awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response *smithyhttp.Re errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -32508,14 +33295,14 @@ func awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpUpdateContext struct { +type awsAwsjson11_deserializeOpStopPipelineExecution struct { } -func (*awsAwsjson11_deserializeOpUpdateContext) ID() string { +func (*awsAwsjson11_deserializeOpStopPipelineExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopPipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32533,9 +33320,9 @@ func (m *awsAwsjson11_deserializeOpUpdateContext) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateContext(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopPipelineExecution(response, &metadata) } - output := &UpdateContextOutput{} + output := &StopPipelineExecutionOutput{} out.Result = output var buff [1024]byte @@ -32555,7 +33342,7 @@ func (m *awsAwsjson11_deserializeOpUpdateContext) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateContextOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopPipelineExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32569,7 +33356,7 @@ func (m *awsAwsjson11_deserializeOpUpdateContext) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopPipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32622,14 +33409,14 @@ func awsAwsjson11_deserializeOpErrorUpdateContext(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateDeviceFleet struct { +type awsAwsjson11_deserializeOpStopProcessingJob struct { } -func (*awsAwsjson11_deserializeOpUpdateDeviceFleet) ID() string { +func (*awsAwsjson11_deserializeOpStopProcessingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopProcessingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32647,9 +33434,9 @@ func (m *awsAwsjson11_deserializeOpUpdateDeviceFleet) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopProcessingJob(response, &metadata) } - output := &UpdateDeviceFleetOutput{} + output := &StopProcessingJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -32661,7 +33448,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDeviceFleet) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopProcessingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32698,8 +33485,8 @@ func awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -32711,14 +33498,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpUpdateDevices struct { +type awsAwsjson11_deserializeOpStopTrainingJob struct { } -func (*awsAwsjson11_deserializeOpUpdateDevices) ID() string { +func (*awsAwsjson11_deserializeOpStopTrainingJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDevices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32736,9 +33523,9 @@ func (m *awsAwsjson11_deserializeOpUpdateDevices) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDevices(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopTrainingJob(response, &metadata) } - output := &UpdateDevicesOutput{} + output := &StopTrainingJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -32750,7 +33537,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDevices) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32787,6 +33574,9 @@ func awsAwsjson11_deserializeOpErrorUpdateDevices(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -32797,14 +33587,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDevices(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateDomain struct { +type awsAwsjson11_deserializeOpStopTransformJob struct { } -func (*awsAwsjson11_deserializeOpUpdateDomain) ID() string { +func (*awsAwsjson11_deserializeOpStopTransformJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopTransformJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32822,43 +33612,21 @@ func (m *awsAwsjson11_deserializeOpUpdateDomain) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDomain(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopTransformJob(response, &metadata) } - output := &UpdateDomainOutput{} + output := &StopTransformJobOutput{} 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_deserializeOpDocumentUpdateDomainOutput(&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_deserializeOpErrorUpdateDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopTransformJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32895,12 +33663,6 @@ func awsAwsjson11_deserializeOpErrorUpdateDomain(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -32914,14 +33676,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDomain(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateEndpoint struct { +type awsAwsjson11_deserializeOpUpdateAction struct { } -func (*awsAwsjson11_deserializeOpUpdateEndpoint) ID() string { +func (*awsAwsjson11_deserializeOpUpdateAction) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32939,9 +33701,9 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpoint) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateEndpoint(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAction(response, &metadata) } - output := &UpdateEndpointOutput{} + output := &UpdateActionOutput{} out.Result = output var buff [1024]byte @@ -32961,7 +33723,7 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpoint) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateEndpointOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateActionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32975,7 +33737,7 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpoint) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33012,8 +33774,11 @@ func awsAwsjson11_deserializeOpErrorUpdateEndpoint(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -33025,14 +33790,14 @@ func awsAwsjson11_deserializeOpErrorUpdateEndpoint(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities struct { +type awsAwsjson11_deserializeOpUpdateAppImageConfig struct { } -func (*awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) ID() string { +func (*awsAwsjson11_deserializeOpUpdateAppImageConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateAppImageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33050,9 +33815,9 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAppImageConfig(response, &metadata) } - output := &UpdateEndpointWeightsAndCapacitiesOutput{} + output := &UpdateAppImageConfigOutput{} out.Result = output var buff [1024]byte @@ -33072,7 +33837,7 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) HandleDes return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateEndpointWeightsAndCapacitiesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateAppImageConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33086,7 +33851,7 @@ func (m *awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) HandleDes return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateAppImageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33123,8 +33888,8 @@ func awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -33136,14 +33901,14 @@ func awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response } } -type awsAwsjson11_deserializeOpUpdateExperiment struct { +type awsAwsjson11_deserializeOpUpdateArtifact struct { } -func (*awsAwsjson11_deserializeOpUpdateExperiment) ID() string { +func (*awsAwsjson11_deserializeOpUpdateArtifact) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33161,9 +33926,9 @@ func (m *awsAwsjson11_deserializeOpUpdateExperiment) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateArtifact(response, &metadata) } - output := &UpdateExperimentOutput{} + output := &UpdateArtifactOutput{} out.Result = output var buff [1024]byte @@ -33183,7 +33948,7 @@ func (m *awsAwsjson11_deserializeOpUpdateExperiment) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateArtifactOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33197,7 +33962,7 @@ func (m *awsAwsjson11_deserializeOpUpdateExperiment) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33250,14 +34015,14 @@ func awsAwsjson11_deserializeOpErrorUpdateExperiment(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpUpdateFeatureGroup struct { +type awsAwsjson11_deserializeOpUpdateCluster struct { } -func (*awsAwsjson11_deserializeOpUpdateFeatureGroup) ID() string { +func (*awsAwsjson11_deserializeOpUpdateCluster) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateCluster) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33275,9 +34040,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFeatureGroup) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCluster(response, &metadata) } - output := &UpdateFeatureGroupOutput{} + output := &UpdateClusterOutput{} out.Result = output var buff [1024]byte @@ -33297,7 +34062,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFeatureGroup) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateFeatureGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateClusterOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33311,7 +34076,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFeatureGroup) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateCluster(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33348,6 +34113,9 @@ func awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -33364,14 +34132,14 @@ func awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpUpdateFeatureMetadata struct { +type awsAwsjson11_deserializeOpUpdateClusterSchedulerConfig struct { } -func (*awsAwsjson11_deserializeOpUpdateFeatureMetadata) ID() string { +func (*awsAwsjson11_deserializeOpUpdateClusterSchedulerConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFeatureMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateClusterSchedulerConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33389,98 +34157,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFeatureMetadata) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFeatureMetadata(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateClusterSchedulerConfig(response, &metadata) } - output := &UpdateFeatureMetadataOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsAwsjson11_deserializeOpErrorUpdateFeatureMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpUpdateHub struct { -} - -func (*awsAwsjson11_deserializeOpUpdateHub) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpUpdateHub) HandleDeserialize(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_deserializeOpErrorUpdateHub(response, &metadata) - } - output := &UpdateHubOutput{} + output := &UpdateClusterSchedulerConfigOutput{} out.Result = output var buff [1024]byte @@ -33500,7 +34179,7 @@ func (m *awsAwsjson11_deserializeOpUpdateHub) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateHubOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateClusterSchedulerConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33514,7 +34193,7 @@ func (m *awsAwsjson11_deserializeOpUpdateHub) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateClusterSchedulerConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33551,6 +34230,12 @@ func awsAwsjson11_deserializeOpErrorUpdateHub(response *smithyhttp.Response, met errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -33564,14 +34249,14 @@ func awsAwsjson11_deserializeOpErrorUpdateHub(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpUpdateImage struct { +type awsAwsjson11_deserializeOpUpdateClusterSoftware struct { } -func (*awsAwsjson11_deserializeOpUpdateImage) ID() string { +func (*awsAwsjson11_deserializeOpUpdateClusterSoftware) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateClusterSoftware) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33589,9 +34274,9 @@ func (m *awsAwsjson11_deserializeOpUpdateImage) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateImage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateClusterSoftware(response, &metadata) } - output := &UpdateImageOutput{} + output := &UpdateClusterSoftwareOutput{} out.Result = output var buff [1024]byte @@ -33611,7 +34296,7 @@ func (m *awsAwsjson11_deserializeOpUpdateImage) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateImageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateClusterSoftwareOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33625,7 +34310,7 @@ func (m *awsAwsjson11_deserializeOpUpdateImage) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateClusterSoftware(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33662,8 +34347,8 @@ func awsAwsjson11_deserializeOpErrorUpdateImage(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -33678,14 +34363,14 @@ func awsAwsjson11_deserializeOpErrorUpdateImage(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateImageVersion struct { +type awsAwsjson11_deserializeOpUpdateCodeRepository struct { } -func (*awsAwsjson11_deserializeOpUpdateImageVersion) ID() string { +func (*awsAwsjson11_deserializeOpUpdateCodeRepository) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateCodeRepository) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33703,9 +34388,9 @@ func (m *awsAwsjson11_deserializeOpUpdateImageVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateImageVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response, &metadata) } - output := &UpdateImageVersionOutput{} + output := &UpdateCodeRepositoryOutput{} out.Result = output var buff [1024]byte @@ -33725,7 +34410,7 @@ func (m *awsAwsjson11_deserializeOpUpdateImageVersion) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateImageVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateCodeRepositoryOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33739,7 +34424,7 @@ func (m *awsAwsjson11_deserializeOpUpdateImageVersion) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateCodeRepository(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33776,11 +34461,8 @@ func awsAwsjson11_deserializeOpErrorUpdateImageVersion(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -33792,14 +34474,14 @@ func awsAwsjson11_deserializeOpErrorUpdateImageVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpUpdateInferenceComponent struct { +type awsAwsjson11_deserializeOpUpdateComputeQuota struct { } -func (*awsAwsjson11_deserializeOpUpdateInferenceComponent) ID() string { +func (*awsAwsjson11_deserializeOpUpdateComputeQuota) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateComputeQuota) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33817,9 +34499,9 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponent) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateComputeQuota(response, &metadata) } - output := &UpdateInferenceComponentOutput{} + output := &UpdateComputeQuotaOutput{} out.Result = output var buff [1024]byte @@ -33839,7 +34521,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponent) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateInferenceComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateComputeQuotaOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33853,7 +34535,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponent) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateComputeQuota(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33890,9 +34572,15 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response *smithyhtt errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -33903,14 +34591,14 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response *smithyhtt } } -type awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig struct { +type awsAwsjson11_deserializeOpUpdateContext struct { } -func (*awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) ID() string { +func (*awsAwsjson11_deserializeOpUpdateContext) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateContext) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33928,9 +34616,9 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateContext(response, &metadata) } - output := &UpdateInferenceComponentRuntimeConfigOutput{} + output := &UpdateContextOutput{} out.Result = output var buff [1024]byte @@ -33950,7 +34638,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) Handle return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateInferenceComponentRuntimeConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateContextOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33964,7 +34652,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) Handle return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateContext(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34001,8 +34689,11 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(respon errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -34014,14 +34705,14 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(respon } } -type awsAwsjson11_deserializeOpUpdateInferenceExperiment struct { +type awsAwsjson11_deserializeOpUpdateDeviceFleet struct { } -func (*awsAwsjson11_deserializeOpUpdateInferenceExperiment) ID() string { +func (*awsAwsjson11_deserializeOpUpdateDeviceFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateInferenceExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateDeviceFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34039,9 +34730,184 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceExperiment) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateInferenceExperiment(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response, &metadata) } - output := &UpdateInferenceExperimentOutput{} + output := &UpdateDeviceFleetOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateDeviceFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateDevices struct { +} + +func (*awsAwsjson11_deserializeOpUpdateDevices) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateDevices) HandleDeserialize(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_deserializeOpErrorUpdateDevices(response, &metadata) + } + output := &UpdateDevicesOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateDevices(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateDomain struct { +} + +func (*awsAwsjson11_deserializeOpUpdateDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateDomain) HandleDeserialize(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_deserializeOpErrorUpdateDomain(response, &metadata) + } + output := &UpdateDomainOutput{} out.Result = output var buff [1024]byte @@ -34061,7 +34927,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceExperiment) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateInferenceExperimentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateDomainOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34075,7 +34941,7 @@ func (m *awsAwsjson11_deserializeOpUpdateInferenceExperiment) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34112,8 +34978,11 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceExperiment(response *smithyht errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -34128,14 +34997,14 @@ func awsAwsjson11_deserializeOpErrorUpdateInferenceExperiment(response *smithyht } } -type awsAwsjson11_deserializeOpUpdateMlflowTrackingServer struct { +type awsAwsjson11_deserializeOpUpdateEndpoint struct { } -func (*awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) ID() string { +func (*awsAwsjson11_deserializeOpUpdateEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34153,9 +35022,9 @@ func (m *awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateEndpoint(response, &metadata) } - output := &UpdateMlflowTrackingServerOutput{} + output := &UpdateEndpointOutput{} out.Result = output var buff [1024]byte @@ -34175,7 +35044,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateMlflowTrackingServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34189,7 +35058,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34226,15 +35095,9 @@ func awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response *smithyh errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -34245,14 +35108,14 @@ func awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response *smithyh } } -type awsAwsjson11_deserializeOpUpdateModelCard struct { +type awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities struct { } -func (*awsAwsjson11_deserializeOpUpdateModelCard) ID() string { +func (*awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateEndpointWeightsAndCapacities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34270,9 +35133,9 @@ func (m *awsAwsjson11_deserializeOpUpdateModelCard) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelCard(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response, &metadata) } - output := &UpdateModelCardOutput{} + output := &UpdateEndpointWeightsAndCapacitiesOutput{} out.Result = output var buff [1024]byte @@ -34292,7 +35155,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelCard) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateModelCardOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateEndpointWeightsAndCapacitiesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34306,7 +35169,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelCard) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateEndpointWeightsAndCapacities(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34343,15 +35206,9 @@ func awsAwsjson11_deserializeOpErrorUpdateModelCard(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -34362,14 +35219,14 @@ func awsAwsjson11_deserializeOpErrorUpdateModelCard(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpUpdateModelPackage struct { +type awsAwsjson11_deserializeOpUpdateExperiment struct { } -func (*awsAwsjson11_deserializeOpUpdateModelPackage) ID() string { +func (*awsAwsjson11_deserializeOpUpdateExperiment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateExperiment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34387,9 +35244,9 @@ func (m *awsAwsjson11_deserializeOpUpdateModelPackage) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelPackage(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateExperiment(response, &metadata) } - output := &UpdateModelPackageOutput{} + output := &UpdateExperimentOutput{} out.Result = output var buff [1024]byte @@ -34409,7 +35266,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelPackage) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateModelPackageOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateExperimentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34423,7 +35280,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelPackage) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34463,117 +35320,6 @@ func awsAwsjson11_deserializeOpErrorUpdateModelPackage(response *smithyhttp.Resp case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsAwsjson11_deserializeOpUpdateMonitoringAlert struct { -} - -func (*awsAwsjson11_deserializeOpUpdateMonitoringAlert) ID() string { - return "OperationDeserializer" -} - -func (m *awsAwsjson11_deserializeOpUpdateMonitoringAlert) HandleDeserialize(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_deserializeOpErrorUpdateMonitoringAlert(response, &metadata) - } - output := &UpdateMonitoringAlertOutput{} - 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_deserializeOpDocumentUpdateMonitoringAlertOutput(&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_deserializeOpErrorUpdateMonitoringAlert(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -34587,14 +35333,14 @@ func awsAwsjson11_deserializeOpErrorUpdateMonitoringAlert(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpUpdateMonitoringSchedule struct { +type awsAwsjson11_deserializeOpUpdateFeatureGroup struct { } -func (*awsAwsjson11_deserializeOpUpdateMonitoringSchedule) ID() string { +func (*awsAwsjson11_deserializeOpUpdateFeatureGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateFeatureGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34612,9 +35358,9 @@ func (m *awsAwsjson11_deserializeOpUpdateMonitoringSchedule) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMonitoringSchedule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response, &metadata) } - output := &UpdateMonitoringScheduleOutput{} + output := &UpdateFeatureGroupOutput{} out.Result = output var buff [1024]byte @@ -34634,7 +35380,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMonitoringSchedule) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateMonitoringScheduleOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateFeatureGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34648,7 +35394,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMonitoringSchedule) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateFeatureGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34701,14 +35447,14 @@ func awsAwsjson11_deserializeOpErrorUpdateMonitoringSchedule(response *smithyhtt } } -type awsAwsjson11_deserializeOpUpdateNotebookInstance struct { +type awsAwsjson11_deserializeOpUpdateFeatureMetadata struct { } -func (*awsAwsjson11_deserializeOpUpdateNotebookInstance) ID() string { +func (*awsAwsjson11_deserializeOpUpdateFeatureMetadata) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateNotebookInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateFeatureMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34726,43 +35472,21 @@ func (m *awsAwsjson11_deserializeOpUpdateNotebookInstance) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateNotebookInstance(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFeatureMetadata(response, &metadata) } - output := &UpdateNotebookInstanceOutput{} + output := &UpdateFeatureMetadataOutput{} 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_deserializeOpDocumentUpdateNotebookInstanceOutput(&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_deserializeOpErrorUpdateNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateFeatureMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34799,8 +35523,8 @@ func awsAwsjson11_deserializeOpErrorUpdateNotebookInstance(response *smithyhttp. errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -34812,14 +35536,14 @@ func awsAwsjson11_deserializeOpErrorUpdateNotebookInstance(response *smithyhttp. } } -type awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig struct { +type awsAwsjson11_deserializeOpUpdateHub struct { } -func (*awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) ID() string { +func (*awsAwsjson11_deserializeOpUpdateHub) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34837,9 +35561,9 @@ func (m *awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateHub(response, &metadata) } - output := &UpdateNotebookInstanceLifecycleConfigOutput{} + output := &UpdateHubOutput{} out.Result = output var buff [1024]byte @@ -34859,7 +35583,7 @@ func (m *awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) Handle return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateNotebookInstanceLifecycleConfigOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateHubOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34873,7 +35597,7 @@ func (m *awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) Handle return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateHub(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34910,8 +35634,8 @@ func awsAwsjson11_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(respon errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -34923,14 +35647,14 @@ func awsAwsjson11_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(respon } } -type awsAwsjson11_deserializeOpUpdatePipeline struct { +type awsAwsjson11_deserializeOpUpdateImage struct { } -func (*awsAwsjson11_deserializeOpUpdatePipeline) ID() string { +func (*awsAwsjson11_deserializeOpUpdateImage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdatePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34948,9 +35672,9 @@ func (m *awsAwsjson11_deserializeOpUpdatePipeline) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdatePipeline(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateImage(response, &metadata) } - output := &UpdatePipelineOutput{} + output := &UpdateImageOutput{} out.Result = output var buff [1024]byte @@ -34970,7 +35694,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePipeline) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdatePipelineOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateImageOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34984,7 +35708,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePipeline) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdatePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35021,8 +35745,8 @@ func awsAwsjson11_deserializeOpErrorUpdatePipeline(response *smithyhttp.Response errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -35037,14 +35761,14 @@ func awsAwsjson11_deserializeOpErrorUpdatePipeline(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpUpdatePipelineExecution struct { +type awsAwsjson11_deserializeOpUpdateImageVersion struct { } -func (*awsAwsjson11_deserializeOpUpdatePipelineExecution) ID() string { +func (*awsAwsjson11_deserializeOpUpdateImageVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdatePipelineExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateImageVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35062,9 +35786,9 @@ func (m *awsAwsjson11_deserializeOpUpdatePipelineExecution) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdatePipelineExecution(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateImageVersion(response, &metadata) } - output := &UpdatePipelineExecutionOutput{} + output := &UpdateImageVersionOutput{} out.Result = output var buff [1024]byte @@ -35084,7 +35808,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePipelineExecution) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdatePipelineExecutionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateImageVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35098,7 +35822,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePipelineExecution) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdatePipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateImageVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35135,8 +35859,8 @@ func awsAwsjson11_deserializeOpErrorUpdatePipelineExecution(response *smithyhttp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -35151,14 +35875,14 @@ func awsAwsjson11_deserializeOpErrorUpdatePipelineExecution(response *smithyhttp } } -type awsAwsjson11_deserializeOpUpdateProject struct { +type awsAwsjson11_deserializeOpUpdateInferenceComponent struct { } -func (*awsAwsjson11_deserializeOpUpdateProject) ID() string { +func (*awsAwsjson11_deserializeOpUpdateInferenceComponent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateInferenceComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35176,9 +35900,9 @@ func (m *awsAwsjson11_deserializeOpUpdateProject) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateProject(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response, &metadata) } - output := &UpdateProjectOutput{} + output := &UpdateInferenceComponentOutput{} out.Result = output var buff [1024]byte @@ -35198,7 +35922,7 @@ func (m *awsAwsjson11_deserializeOpUpdateProject) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateProjectOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateInferenceComponentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35212,7 +35936,7 @@ func (m *awsAwsjson11_deserializeOpUpdateProject) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateInferenceComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35249,8 +35973,8 @@ func awsAwsjson11_deserializeOpErrorUpdateProject(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -35262,14 +35986,14 @@ func awsAwsjson11_deserializeOpErrorUpdateProject(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateSpace struct { +type awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig struct { } -func (*awsAwsjson11_deserializeOpUpdateSpace) ID() string { +func (*awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateSpace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateInferenceComponentRuntimeConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35287,9 +36011,9 @@ func (m *awsAwsjson11_deserializeOpUpdateSpace) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateSpace(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(response, &metadata) } - output := &UpdateSpaceOutput{} + output := &UpdateInferenceComponentRuntimeConfigOutput{} out.Result = output var buff [1024]byte @@ -35309,7 +36033,7 @@ func (m *awsAwsjson11_deserializeOpUpdateSpace) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateSpaceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateInferenceComponentRuntimeConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35323,7 +36047,7 @@ func (m *awsAwsjson11_deserializeOpUpdateSpace) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateInferenceComponentRuntimeConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35360,12 +36084,120 @@ func awsAwsjson11_deserializeOpErrorUpdateSpace(response *smithyhttp.Response, m errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) - case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateInferenceExperiment struct { +} + +func (*awsAwsjson11_deserializeOpUpdateInferenceExperiment) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateInferenceExperiment) HandleDeserialize(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_deserializeOpErrorUpdateInferenceExperiment(response, &metadata) + } + output := &UpdateInferenceExperimentOutput{} + 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_deserializeOpDocumentUpdateInferenceExperimentOutput(&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_deserializeOpErrorUpdateInferenceExperiment(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -35379,14 +36211,14 @@ func awsAwsjson11_deserializeOpErrorUpdateSpace(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateTrainingJob struct { +type awsAwsjson11_deserializeOpUpdateMlflowTrackingServer struct { } -func (*awsAwsjson11_deserializeOpUpdateTrainingJob) ID() string { +func (*awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateTrainingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateMlflowTrackingServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35404,9 +36236,9 @@ func (m *awsAwsjson11_deserializeOpUpdateTrainingJob) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateTrainingJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response, &metadata) } - output := &UpdateTrainingJobOutput{} + output := &UpdateMlflowTrackingServerOutput{} out.Result = output var buff [1024]byte @@ -35426,7 +36258,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrainingJob) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateTrainingJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateMlflowTrackingServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35440,7 +36272,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrainingJob) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateMlflowTrackingServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35477,6 +36309,9 @@ func awsAwsjson11_deserializeOpErrorUpdateTrainingJob(response *smithyhttp.Respo errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) @@ -35493,14 +36328,14 @@ func awsAwsjson11_deserializeOpErrorUpdateTrainingJob(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpUpdateTrial struct { +type awsAwsjson11_deserializeOpUpdateModelCard struct { } -func (*awsAwsjson11_deserializeOpUpdateTrial) ID() string { +func (*awsAwsjson11_deserializeOpUpdateModelCard) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateTrial) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateModelCard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35518,9 +36353,9 @@ func (m *awsAwsjson11_deserializeOpUpdateTrial) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateTrial(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelCard(response, &metadata) } - output := &UpdateTrialOutput{} + output := &UpdateModelCardOutput{} out.Result = output var buff [1024]byte @@ -35540,7 +36375,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrial) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateTrialOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateModelCardOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35554,7 +36389,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrial) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateModelCard(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35594,6 +36429,9 @@ func awsAwsjson11_deserializeOpErrorUpdateTrial(response *smithyhttp.Response, m case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -35607,14 +36445,14 @@ func awsAwsjson11_deserializeOpErrorUpdateTrial(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateTrialComponent struct { +type awsAwsjson11_deserializeOpUpdateModelPackage struct { } -func (*awsAwsjson11_deserializeOpUpdateTrialComponent) ID() string { +func (*awsAwsjson11_deserializeOpUpdateModelPackage) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateTrialComponent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateModelPackage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35632,9 +36470,9 @@ func (m *awsAwsjson11_deserializeOpUpdateTrialComponent) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateTrialComponent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelPackage(response, &metadata) } - output := &UpdateTrialComponentOutput{} + output := &UpdateModelPackageOutput{} out.Result = output var buff [1024]byte @@ -35654,7 +36492,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrialComponent) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateTrialComponentOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateModelPackageOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35668,7 +36506,7 @@ func (m *awsAwsjson11_deserializeOpUpdateTrialComponent) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateModelPackage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35708,6 +36546,117 @@ func awsAwsjson11_deserializeOpErrorUpdateTrialComponent(response *smithyhttp.Re case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateMonitoringAlert struct { +} + +func (*awsAwsjson11_deserializeOpUpdateMonitoringAlert) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateMonitoringAlert) HandleDeserialize(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_deserializeOpErrorUpdateMonitoringAlert(response, &metadata) + } + output := &UpdateMonitoringAlertOutput{} + 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_deserializeOpDocumentUpdateMonitoringAlertOutput(&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_deserializeOpErrorUpdateMonitoringAlert(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + case strings.EqualFold("ResourceNotFound", errorCode): return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) @@ -35721,14 +36670,14 @@ func awsAwsjson11_deserializeOpErrorUpdateTrialComponent(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpUpdateUserProfile struct { +type awsAwsjson11_deserializeOpUpdateMonitoringSchedule struct { } -func (*awsAwsjson11_deserializeOpUpdateUserProfile) ID() string { +func (*awsAwsjson11_deserializeOpUpdateMonitoringSchedule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateUserProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateMonitoringSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35746,9 +36695,9 @@ func (m *awsAwsjson11_deserializeOpUpdateUserProfile) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateUserProfile(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMonitoringSchedule(response, &metadata) } - output := &UpdateUserProfileOutput{} + output := &UpdateMonitoringScheduleOutput{} out.Result = output var buff [1024]byte @@ -35768,7 +36717,7 @@ func (m *awsAwsjson11_deserializeOpUpdateUserProfile) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateUserProfileOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateMonitoringScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35782,7 +36731,1255 @@ func (m *awsAwsjson11_deserializeOpUpdateUserProfile) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateMonitoringSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateNotebookInstance struct { +} + +func (*awsAwsjson11_deserializeOpUpdateNotebookInstance) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateNotebookInstance) HandleDeserialize(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_deserializeOpErrorUpdateNotebookInstance(response, &metadata) + } + output := &UpdateNotebookInstanceOutput{} + 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_deserializeOpDocumentUpdateNotebookInstanceOutput(&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_deserializeOpErrorUpdateNotebookInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig struct { +} + +func (*awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateNotebookInstanceLifecycleConfig) HandleDeserialize(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_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(response, &metadata) + } + output := &UpdateNotebookInstanceLifecycleConfigOutput{} + 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_deserializeOpDocumentUpdateNotebookInstanceLifecycleConfigOutput(&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_deserializeOpErrorUpdateNotebookInstanceLifecycleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdatePartnerApp struct { +} + +func (*awsAwsjson11_deserializeOpUpdatePartnerApp) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdatePartnerApp) HandleDeserialize(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_deserializeOpErrorUpdatePartnerApp(response, &metadata) + } + output := &UpdatePartnerAppOutput{} + 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_deserializeOpDocumentUpdatePartnerAppOutput(&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_deserializeOpErrorUpdatePartnerApp(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdatePipeline struct { +} + +func (*awsAwsjson11_deserializeOpUpdatePipeline) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdatePipeline) HandleDeserialize(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_deserializeOpErrorUpdatePipeline(response, &metadata) + } + output := &UpdatePipelineOutput{} + 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_deserializeOpDocumentUpdatePipelineOutput(&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_deserializeOpErrorUpdatePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdatePipelineExecution struct { +} + +func (*awsAwsjson11_deserializeOpUpdatePipelineExecution) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdatePipelineExecution) HandleDeserialize(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_deserializeOpErrorUpdatePipelineExecution(response, &metadata) + } + output := &UpdatePipelineExecutionOutput{} + 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_deserializeOpDocumentUpdatePipelineExecutionOutput(&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_deserializeOpErrorUpdatePipelineExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateProject struct { +} + +func (*awsAwsjson11_deserializeOpUpdateProject) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateProject) HandleDeserialize(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_deserializeOpErrorUpdateProject(response, &metadata) + } + output := &UpdateProjectOutput{} + 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_deserializeOpDocumentUpdateProjectOutput(&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_deserializeOpErrorUpdateProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateSpace struct { +} + +func (*awsAwsjson11_deserializeOpUpdateSpace) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateSpace) HandleDeserialize(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_deserializeOpErrorUpdateSpace(response, &metadata) + } + output := &UpdateSpaceOutput{} + 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_deserializeOpDocumentUpdateSpaceOutput(&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_deserializeOpErrorUpdateSpace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + case strings.EqualFold("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateTrainingJob struct { +} + +func (*awsAwsjson11_deserializeOpUpdateTrainingJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateTrainingJob) HandleDeserialize(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_deserializeOpErrorUpdateTrainingJob(response, &metadata) + } + output := &UpdateTrainingJobOutput{} + 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_deserializeOpDocumentUpdateTrainingJobOutput(&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_deserializeOpErrorUpdateTrainingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorResourceLimitExceeded(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateTrial struct { +} + +func (*awsAwsjson11_deserializeOpUpdateTrial) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateTrial) HandleDeserialize(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_deserializeOpErrorUpdateTrial(response, &metadata) + } + output := &UpdateTrialOutput{} + 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_deserializeOpDocumentUpdateTrialOutput(&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_deserializeOpErrorUpdateTrial(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateTrialComponent struct { +} + +func (*awsAwsjson11_deserializeOpUpdateTrialComponent) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateTrialComponent) HandleDeserialize(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_deserializeOpErrorUpdateTrialComponent(response, &metadata) + } + output := &UpdateTrialComponentOutput{} + 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_deserializeOpDocumentUpdateTrialComponentOutput(&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_deserializeOpErrorUpdateTrialComponent(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateUserProfile struct { +} + +func (*awsAwsjson11_deserializeOpUpdateUserProfile) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateUserProfile) HandleDeserialize(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_deserializeOpErrorUpdateUserProfile(response, &metadata) + } + output := &UpdateUserProfileOutput{} + 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_deserializeOpDocumentUpdateUserProfileOutput(&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_deserializeOpErrorUpdateUserProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -42847,6 +45044,15 @@ func awsAwsjson11_deserializeDocumentClusterInstanceGroupDetails(v **types.Clust return err } + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceGroupStatus to be of type string, got %T instead", value) + } + sv.Status = types.InstanceGroupStatus(jtv) + } + case "TargetCount": if value != nil { jtv, ok := value.(json.Number) @@ -42873,6 +45079,24 @@ func awsAwsjson11_deserializeDocumentClusterInstanceGroupDetails(v **types.Clust sv.ThreadsPerCore = ptr.Int32(int32(i64)) } + case "TrainingPlanArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) + } + sv.TrainingPlanArn = ptr.String(jtv) + } + + case "TrainingPlanStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceGroupTrainingPlanStatus to be of type string, got %T instead", value) + } + sv.TrainingPlanStatus = ptr.String(jtv) + } + default: _, _ = key, value @@ -43490,6 +45714,161 @@ func awsAwsjson11_deserializeDocumentClusterOrchestratorEksConfig(v **types.Clus return nil } +func awsAwsjson11_deserializeDocumentClusterSchedulerConfigSummary(v **types.ClusterSchedulerConfigSummary, 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.ClusterSchedulerConfigSummary + if *v == nil { + sv = &types.ClusterSchedulerConfigSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterArn to be of type string, got %T instead", value) + } + sv.ClusterArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigArn to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigId to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigId = ptr.String(jtv) + } + + case "ClusterSchedulerConfigVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ClusterSchedulerConfigVersion = ptr.Int32(int32(i64)) + } + + 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 "LastModifiedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityName 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 SchedulerResourceStatus to be of type string, got %T instead", value) + } + sv.Status = types.SchedulerResourceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentClusterSchedulerConfigSummaryList(v *[]types.ClusterSchedulerConfigSummary, 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.ClusterSchedulerConfigSummary + if *v == nil { + cv = []types.ClusterSchedulerConfigSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ClusterSchedulerConfigSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentClusterSchedulerConfigSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentClusterSummaries(v *[]types.ClusterSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -43589,6 +45968,11 @@ func awsAwsjson11_deserializeDocumentClusterSummary(v **types.ClusterSummary, va } } + case "TrainingPlanArns": + if err := awsAwsjson11_deserializeDocumentTrainingPlanArns(&sv.TrainingPlanArns, value); err != nil { + return err + } + default: _, _ = key, value @@ -44383,6 +46767,370 @@ func awsAwsjson11_deserializeDocumentCompressionTypes(v *[]types.CompressionType return nil } +func awsAwsjson11_deserializeDocumentComputeQuotaConfig(v **types.ComputeQuotaConfig, 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.ComputeQuotaConfig + if *v == nil { + sv = &types.ComputeQuotaConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComputeQuotaResources": + if err := awsAwsjson11_deserializeDocumentComputeQuotaResourceConfigList(&sv.ComputeQuotaResources, value); err != nil { + return err + } + + case "PreemptTeamTasks": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PreemptTeamTasks to be of type string, got %T instead", value) + } + sv.PreemptTeamTasks = types.PreemptTeamTasks(jtv) + } + + case "ResourceSharingConfig": + if err := awsAwsjson11_deserializeDocumentResourceSharingConfig(&sv.ResourceSharingConfig, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeQuotaResourceConfig(v **types.ComputeQuotaResourceConfig, 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.ComputeQuotaResourceConfig + if *v == nil { + sv = &types.ComputeQuotaResourceConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Count": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected InstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Count = ptr.Int32(int32(i64)) + } + + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterInstanceType to be of type string, got %T instead", value) + } + sv.InstanceType = types.ClusterInstanceType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeQuotaResourceConfigList(v *[]types.ComputeQuotaResourceConfig, 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.ComputeQuotaResourceConfig + if *v == nil { + cv = []types.ComputeQuotaResourceConfig{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ComputeQuotaResourceConfig + destAddr := &col + if err := awsAwsjson11_deserializeDocumentComputeQuotaResourceConfig(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeQuotaSummary(v **types.ComputeQuotaSummary, 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.ComputeQuotaSummary + if *v == nil { + sv = &types.ComputeQuotaSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActivationState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActivationState to be of type string, got %T instead", value) + } + sv.ActivationState = types.ActivationState(jtv) + } + + case "ClusterArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterArn to be of type string, got %T instead", value) + } + sv.ClusterArn = ptr.String(jtv) + } + + case "ComputeQuotaArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaArn to be of type string, got %T instead", value) + } + sv.ComputeQuotaArn = ptr.String(jtv) + } + + case "ComputeQuotaConfig": + if err := awsAwsjson11_deserializeDocumentComputeQuotaConfig(&sv.ComputeQuotaConfig, value); err != nil { + return err + } + + case "ComputeQuotaId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaId to be of type string, got %T instead", value) + } + sv.ComputeQuotaId = ptr.String(jtv) + } + + case "ComputeQuotaTarget": + if err := awsAwsjson11_deserializeDocumentComputeQuotaTarget(&sv.ComputeQuotaTarget, value); err != nil { + return err + } + + case "ComputeQuotaVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ComputeQuotaVersion = ptr.Int32(int32(i64)) + } + + 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 "LastModifiedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityName 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 SchedulerResourceStatus to be of type string, got %T instead", value) + } + sv.Status = types.SchedulerResourceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeQuotaSummaryList(v *[]types.ComputeQuotaSummary, 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.ComputeQuotaSummary + if *v == nil { + cv = []types.ComputeQuotaSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ComputeQuotaSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentComputeQuotaSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeQuotaTarget(v **types.ComputeQuotaTarget, 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.ComputeQuotaTarget + if *v == nil { + sv = &types.ComputeQuotaTarget{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FairShareWeight": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected FairShareWeight to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FairShareWeight = ptr.Int32(int32(i64)) + } + + case "TeamName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaTargetTeamName to be of type string, got %T instead", value) + } + sv.TeamName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentConditionStepMetadata(v **types.ConditionStepMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -45276,6 +48024,16 @@ loop: uv = &types.CustomFileSystemMemberEFSFileSystem{Value: mv} break loop + case "FSxLustreFileSystem": + var mv types.FSxLustreFileSystem + destAddr := &mv + if err := awsAwsjson11_deserializeDocumentFSxLustreFileSystem(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.CustomFileSystemMemberFSxLustreFileSystem{Value: mv} + break loop + default: uv = &types.UnknownUnionMember{Tag: key} break loop @@ -45316,6 +48074,16 @@ loop: uv = &types.CustomFileSystemConfigMemberEFSFileSystemConfig{Value: mv} break loop + case "FSxLustreFileSystemConfig": + var mv types.FSxLustreFileSystemConfig + destAddr := &mv + if err := awsAwsjson11_deserializeDocumentFSxLustreFileSystemConfig(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.CustomFileSystemConfigMemberFSxLustreFileSystemConfig{Value: mv} + break loop + default: uv = &types.UnknownUnionMember{Tag: key} break loop @@ -50853,6 +53621,55 @@ func awsAwsjson11_deserializeDocumentEnvironmentParameters(v *[]types.Environmen return nil } +func awsAwsjson11_deserializeDocumentErrorInfo(v **types.ErrorInfo, 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.ErrorInfo + if *v == nil { + sv = &types.ErrorInfo{} + } 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 NonEmptyString64 to be of type string, got %T instead", value) + } + sv.Code = ptr.String(jtv) + } + + case "Reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString256 to be of type string, got %T instead", value) + } + sv.Reason = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentExecutionRoleArns(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -52644,6 +55461,95 @@ func awsAwsjson11_deserializeDocumentForecastQuantiles(v *[]string, value interf return nil } +func awsAwsjson11_deserializeDocumentFSxLustreFileSystem(v **types.FSxLustreFileSystem, 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.FSxLustreFileSystem + if *v == nil { + sv = &types.FSxLustreFileSystem{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentFSxLustreFileSystemConfig(v **types.FSxLustreFileSystemConfig, 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.FSxLustreFileSystemConfig + if *v == nil { + sv = &types.FSxLustreFileSystemConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "FileSystemPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemPath to be of type string, got %T instead", value) + } + sv.FileSystemPath = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentGenerativeAiSettings(v **types.GenerativeAiSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -69019,6 +71925,276 @@ func awsAwsjson11_deserializeDocumentParents(v *[]types.Parent, value interface{ return nil } +func awsAwsjson11_deserializeDocumentPartnerAppAdminUserList(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 NonEmptyString256 to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentPartnerAppArguments(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 String1024 to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + +func awsAwsjson11_deserializeDocumentPartnerAppConfig(v **types.PartnerAppConfig, 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.PartnerAppConfig + if *v == nil { + sv = &types.PartnerAppConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdminUsers": + if err := awsAwsjson11_deserializeDocumentPartnerAppAdminUserList(&sv.AdminUsers, value); err != nil { + return err + } + + case "Arguments": + if err := awsAwsjson11_deserializeDocumentPartnerAppArguments(&sv.Arguments, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentPartnerAppMaintenanceConfig(v **types.PartnerAppMaintenanceConfig, 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.PartnerAppMaintenanceConfig + if *v == nil { + sv = &types.PartnerAppMaintenanceConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MaintenanceWindowStart": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WeeklyScheduleTimeFormat to be of type string, got %T instead", value) + } + sv.MaintenanceWindowStart = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentPartnerAppSummaries(v *[]types.PartnerAppSummary, 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.PartnerAppSummary + if *v == nil { + cv = []types.PartnerAppSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PartnerAppSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentPartnerAppSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentPartnerAppSummary(v **types.PartnerAppSummary, 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.PartnerAppSummary + if *v == nil { + sv = &types.PartnerAppSummary{} + } 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 PartnerAppArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(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 "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppName 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 PartnerAppStatus to be of type string, got %T instead", value) + } + sv.Status = types.PartnerAppStatus(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppType to be of type string, got %T instead", value) + } + sv.Type = types.PartnerAppType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentPendingDeploymentSummary(v **types.PendingDeploymentSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -70359,6 +73535,93 @@ func awsAwsjson11_deserializeDocumentPredefinedMetricSpecification(v **types.Pre return nil } +func awsAwsjson11_deserializeDocumentPriorityClass(v **types.PriorityClass, 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.PriorityClass + if *v == nil { + sv = &types.PriorityClass{} + } 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 ClusterSchedulerPriorityClassName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Weight": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PriorityWeight to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Weight = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentPriorityClassList(v *[]types.PriorityClass, 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.PriorityClass + if *v == nil { + cv = []types.PriorityClass{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PriorityClass + destAddr := &col + if err := awsAwsjson11_deserializeDocumentPriorityClass(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentProcessingClusterConfig(v **types.ProcessingClusterConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -74468,6 +77731,332 @@ func awsAwsjson11_deserializeDocumentRepositoryAuthConfig(v **types.RepositoryAu return nil } +func awsAwsjson11_deserializeDocumentReservedCapacityOffering(v **types.ReservedCapacityOffering, 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.ReservedCapacityOffering + if *v == nil { + sv = &types.ReservedCapacityOffering{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AvailabilityZone to be of type string, got %T instead", value) + } + sv.AvailabilityZone = ptr.String(jtv) + } + + case "DurationHours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ReservedCapacityDurationHours to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationHours = ptr.Int64(i64) + } + + case "DurationMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ReservedCapacityDurationMinutes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationMinutes = ptr.Int64(i64) + } + + case "EndTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "InstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ReservedCapacityInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InstanceCount = ptr.Int32(int32(i64)) + } + + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReservedCapacityInstanceType to be of type string, got %T instead", value) + } + sv.InstanceType = types.ReservedCapacityInstanceType(jtv) + } + + case "StartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.StartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentReservedCapacityOfferings(v *[]types.ReservedCapacityOffering, 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.ReservedCapacityOffering + if *v == nil { + cv = []types.ReservedCapacityOffering{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ReservedCapacityOffering + destAddr := &col + if err := awsAwsjson11_deserializeDocumentReservedCapacityOffering(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentReservedCapacitySummaries(v *[]types.ReservedCapacitySummary, 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.ReservedCapacitySummary + if *v == nil { + cv = []types.ReservedCapacitySummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ReservedCapacitySummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentReservedCapacitySummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentReservedCapacitySummary(v **types.ReservedCapacitySummary, 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.ReservedCapacitySummary + if *v == nil { + sv = &types.ReservedCapacitySummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AvailabilityZone to be of type string, got %T instead", value) + } + sv.AvailabilityZone = ptr.String(jtv) + } + + case "DurationHours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ReservedCapacityDurationHours to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationHours = ptr.Int64(i64) + } + + case "DurationMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ReservedCapacityDurationMinutes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationMinutes = ptr.Int64(i64) + } + + case "EndTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReservedCapacityInstanceType to be of type string, got %T instead", value) + } + sv.InstanceType = types.ReservedCapacityInstanceType(jtv) + } + + case "ReservedCapacityArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReservedCapacityArn to be of type string, got %T instead", value) + } + sv.ReservedCapacityArn = ptr.String(jtv) + } + + case "StartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.StartTime = 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 ReservedCapacityStatus to be of type string, got %T instead", value) + } + sv.Status = types.ReservedCapacityStatus(jtv) + } + + case "TotalInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TotalInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalInstanceCount = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentResolvedAttributes(v **types.ResolvedAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -74688,6 +78277,15 @@ func awsAwsjson11_deserializeDocumentResourceConfig(v **types.ResourceConfig, va sv.KeepAlivePeriodInSeconds = ptr.Int32(int32(i64)) } + case "TrainingPlanArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) + } + sv.TrainingPlanArn = ptr.String(jtv) + } + case "VolumeKmsKeyId": if value != nil { jtv, ok := value.(string) @@ -74909,6 +78507,59 @@ func awsAwsjson11_deserializeDocumentResourceNotFound(v **types.ResourceNotFound return nil } +func awsAwsjson11_deserializeDocumentResourceSharingConfig(v **types.ResourceSharingConfig, 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.ResourceSharingConfig + if *v == nil { + sv = &types.ResourceSharingConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BorrowLimit": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected BorrowLimit to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BorrowLimit = ptr.Int32(int32(i64)) + } + + case "Strategy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSharingStrategy to be of type string, got %T instead", value) + } + sv.Strategy = types.ResourceSharingStrategy(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentResourceSpec(v **types.ResourceSpec, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -75596,6 +79247,42 @@ func awsAwsjson11_deserializeDocumentSageMakerImageVersionAliases(v *[]string, v return nil } +func awsAwsjson11_deserializeDocumentSageMakerResourceNames(v *[]types.SageMakerResourceName, 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.SageMakerResourceName + if *v == nil { + cv = []types.SageMakerResourceName{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SageMakerResourceName + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SageMakerResourceName to be of type string, got %T instead", value) + } + col = types.SageMakerResourceName(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentScalingPolicies(v *[]types.ScalingPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -75840,6 +79527,51 @@ func awsAwsjson11_deserializeDocumentScheduleConfig(v **types.ScheduleConfig, va return nil } +func awsAwsjson11_deserializeDocumentSchedulerConfig(v **types.SchedulerConfig, 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.SchedulerConfig + if *v == nil { + sv = &types.SchedulerConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FairShare": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FairShare to be of type string, got %T instead", value) + } + sv.FairShare = types.FairShare(jtv) + } + + case "PriorityClasses": + if err := awsAwsjson11_deserializeDocumentPriorityClassList(&sv.PriorityClasses, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentSearchRecord(v **types.SearchRecord, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -79503,30 +83235,394 @@ func awsAwsjson11_deserializeDocumentTrainingJob(v **types.TrainingJob, value in } } - case "TrainingTimeInSeconds": + case "TrainingTimeInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingTimeInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TrainingTimeInSeconds = ptr.Int32(int32(i64)) + } + + case "TuningJobArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HyperParameterTuningJobArn to be of type string, got %T instead", value) + } + sv.TuningJobArn = ptr.String(jtv) + } + + case "VpcConfig": + if err := awsAwsjson11_deserializeDocumentVpcConfig(&sv.VpcConfig, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentTrainingJobDefinition(v **types.TrainingJobDefinition, 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.TrainingJobDefinition + if *v == nil { + sv = &types.TrainingJobDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "HyperParameters": + if err := awsAwsjson11_deserializeDocumentHyperParameters(&sv.HyperParameters, value); err != nil { + return err + } + + case "InputDataConfig": + if err := awsAwsjson11_deserializeDocumentInputDataConfig(&sv.InputDataConfig, value); err != nil { + return err + } + + case "OutputDataConfig": + if err := awsAwsjson11_deserializeDocumentOutputDataConfig(&sv.OutputDataConfig, value); err != nil { + return err + } + + case "ResourceConfig": + if err := awsAwsjson11_deserializeDocumentResourceConfig(&sv.ResourceConfig, value); err != nil { + return err + } + + case "StoppingCondition": + if err := awsAwsjson11_deserializeDocumentStoppingCondition(&sv.StoppingCondition, value); err != nil { + return err + } + + case "TrainingInputMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingInputMode to be of type string, got %T instead", value) + } + sv.TrainingInputMode = types.TrainingInputMode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentTrainingJobStatusCounters(v **types.TrainingJobStatusCounters, 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.TrainingJobStatusCounters + if *v == nil { + sv = &types.TrainingJobStatusCounters{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Completed": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Completed = ptr.Int32(int32(i64)) + } + + case "InProgress": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InProgress = ptr.Int32(int32(i64)) + } + + case "NonRetryableError": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NonRetryableError = ptr.Int32(int32(i64)) + } + + case "RetryableError": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RetryableError = ptr.Int32(int32(i64)) + } + + case "Stopped": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Stopped = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentTrainingJobStepMetadata(v **types.TrainingJobStepMetadata, 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.TrainingJobStepMetadata + if *v == nil { + sv = &types.TrainingJobStepMetadata{} + } 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 TrainingJobArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentTrainingJobSummaries(v *[]types.TrainingJobSummary, 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.TrainingJobSummary + if *v == nil { + cv = []types.TrainingJobSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.TrainingJobSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentTrainingJobSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSummary, 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.TrainingJobSummary + if *v == nil { + sv = &types.TrainingJobSummary{} + } 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 "LastModifiedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "SecondaryStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecondaryStatus to be of type string, got %T instead", value) + } + sv.SecondaryStatus = types.SecondaryStatus(jtv) + } + + case "TrainingEndTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.TrainingEndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "TrainingJobArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingJobArn to be of type string, got %T instead", value) + } + sv.TrainingJobArn = ptr.String(jtv) + } + + case "TrainingJobName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingTimeInSeconds to be json.Number, got %T instead", value) + return fmt.Errorf("expected TrainingJobName to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.TrainingJobName = ptr.String(jtv) + } + + case "TrainingJobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingJobStatus to be of type string, got %T instead", value) } - sv.TrainingTimeInSeconds = ptr.Int32(int32(i64)) + sv.TrainingJobStatus = types.TrainingJobStatus(jtv) } - case "TuningJobArn": + case "TrainingPlanArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected HyperParameterTuningJobArn to be of type string, got %T instead", value) + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) } - sv.TuningJobArn = ptr.String(jtv) + sv.TrainingPlanArn = ptr.String(jtv) } - case "VpcConfig": - if err := awsAwsjson11_deserializeDocumentVpcConfig(&sv.VpcConfig, value); err != nil { + case "WarmPoolStatus": + if err := awsAwsjson11_deserializeDocumentWarmPoolStatus(&sv.WarmPoolStatus, value); err != nil { return err } @@ -79539,7 +83635,7 @@ func awsAwsjson11_deserializeDocumentTrainingJob(v **types.TrainingJob, value in return nil } -func awsAwsjson11_deserializeDocumentTrainingJobDefinition(v **types.TrainingJobDefinition, value interface{}) error { +func awsAwsjson11_deserializeDocumentTrainingPlanArns(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -79547,64 +83643,35 @@ func awsAwsjson11_deserializeDocumentTrainingJobDefinition(v **types.TrainingJob 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.TrainingJobDefinition + var cv []string if *v == nil { - sv = &types.TrainingJobDefinition{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "HyperParameters": - if err := awsAwsjson11_deserializeDocumentHyperParameters(&sv.HyperParameters, value); err != nil { - return err - } - - case "InputDataConfig": - if err := awsAwsjson11_deserializeDocumentInputDataConfig(&sv.InputDataConfig, value); err != nil { - return err - } - - case "OutputDataConfig": - if err := awsAwsjson11_deserializeDocumentOutputDataConfig(&sv.OutputDataConfig, value); err != nil { - return err - } - - case "ResourceConfig": - if err := awsAwsjson11_deserializeDocumentResourceConfig(&sv.ResourceConfig, value); err != nil { - return err - } - - case "StoppingCondition": - if err := awsAwsjson11_deserializeDocumentStoppingCondition(&sv.StoppingCondition, value); err != nil { - return err - } - - case "TrainingInputMode": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TrainingInputMode to be of type string, got %T instead", value) - } - sv.TrainingInputMode = types.TrainingInputMode(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanArn 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_deserializeDocumentTrainingJobStatusCounters(v **types.TrainingJobStatusCounters, value interface{}) error { +func awsAwsjson11_deserializeDocumentTrainingPlanOffering(v **types.TrainingPlanOffering, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -79617,78 +83684,108 @@ func awsAwsjson11_deserializeDocumentTrainingJobStatusCounters(v **types.Trainin return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.TrainingJobStatusCounters + var sv *types.TrainingPlanOffering if *v == nil { - sv = &types.TrainingJobStatusCounters{} + sv = &types.TrainingPlanOffering{} } else { sv = *v } for key, value := range shape { switch key { - case "Completed": + case "CurrencyCode": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value) } - sv.Completed = ptr.Int32(int32(i64)) + sv.CurrencyCode = ptr.String(jtv) } - case "InProgress": + case "DurationHours": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + return fmt.Errorf("expected TrainingPlanDurationHours to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.InProgress = ptr.Int32(int32(i64)) + sv.DurationHours = ptr.Int64(i64) } - case "NonRetryableError": + case "DurationMinutes": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + return fmt.Errorf("expected TrainingPlanDurationMinutes to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.NonRetryableError = ptr.Int32(int32(i64)) + sv.DurationMinutes = ptr.Int64(i64) } - case "RetryableError": + case "RequestedEndTimeBefore": if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RequestedEndTimeBefore = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + } - i64, err := jtv.Int64() - if err != nil { - return err + } + + case "RequestedStartTimeAfter": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RequestedStartTimeAfter = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + } - sv.RetryableError = ptr.Int32(int32(i64)) } - case "Stopped": + case "ReservedCapacityOfferings": + if err := awsAwsjson11_deserializeDocumentReservedCapacityOfferings(&sv.ReservedCapacityOfferings, value); err != nil { + return err + } + + case "TargetResources": + if err := awsAwsjson11_deserializeDocumentSageMakerResourceNames(&sv.TargetResources, value); err != nil { + return err + } + + case "TrainingPlanOfferingId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingJobStatusCounter to be json.Number, got %T instead", value) + return fmt.Errorf("expected TrainingPlanOfferingId to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.TrainingPlanOfferingId = ptr.String(jtv) + } + + case "UpfrontFee": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String256 to be of type string, got %T instead", value) } - sv.Stopped = ptr.Int32(int32(i64)) + sv.UpfrontFee = ptr.String(jtv) } default: @@ -79700,7 +83797,7 @@ func awsAwsjson11_deserializeDocumentTrainingJobStatusCounters(v **types.Trainin return nil } -func awsAwsjson11_deserializeDocumentTrainingJobStepMetadata(v **types.TrainingJobStepMetadata, value interface{}) error { +func awsAwsjson11_deserializeDocumentTrainingPlanOfferings(v *[]types.TrainingPlanOffering, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -79708,39 +83805,33 @@ func awsAwsjson11_deserializeDocumentTrainingJobStepMetadata(v **types.TrainingJ 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.TrainingJobStepMetadata + var cv []types.TrainingPlanOffering if *v == nil { - sv = &types.TrainingJobStepMetadata{} + cv = []types.TrainingPlanOffering{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TrainingJobArn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.TrainingPlanOffering + destAddr := &col + if err := awsAwsjson11_deserializeDocumentTrainingPlanOffering(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentTrainingJobSummaries(v *[]types.TrainingJobSummary, value interface{}) error { +func awsAwsjson11_deserializeDocumentTrainingPlanSummaries(v *[]types.TrainingPlanSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -79753,17 +83844,17 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummaries(v *[]types.TrainingJob return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.TrainingJobSummary + var cv []types.TrainingPlanSummary if *v == nil { - cv = []types.TrainingJobSummary{} + cv = []types.TrainingPlanSummary{} } else { cv = *v } for _, value := range shape { - var col types.TrainingJobSummary + var col types.TrainingPlanSummary destAddr := &col - if err := awsAwsjson11_deserializeDocumentTrainingJobSummary(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentTrainingPlanSummary(&destAddr, value); err != nil { return err } col = *destAddr @@ -79774,7 +83865,7 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummaries(v *[]types.TrainingJob return nil } -func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSummary, value interface{}) error { +func awsAwsjson11_deserializeDocumentTrainingPlanSummary(v **types.TrainingPlanSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -79787,32 +83878,64 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSum return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.TrainingJobSummary + var sv *types.TrainingPlanSummary if *v == nil { - sv = &types.TrainingJobSummary{} + sv = &types.TrainingPlanSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "CreationTime": + case "AvailableInstanceCount": 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)) + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AvailableInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailableInstanceCount = ptr.Int32(int32(i64)) + } - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + 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 = ptr.String(jtv) + } + case "DurationHours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingPlanDurationHours to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err } + sv.DurationHours = ptr.Int64(i64) } - case "LastModifiedTime": + case "DurationMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingPlanDurationMinutes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationMinutes = ptr.Int64(i64) + } + + case "EndTime": if value != nil { switch jtv := value.(type) { case json.Number: @@ -79820,7 +83943,7 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSum if err != nil { return err } - sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) default: return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) @@ -79828,16 +83951,25 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSum } } - case "SecondaryStatus": + case "InUseInstanceCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected SecondaryStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected InUseInstanceCount to be json.Number, got %T instead", value) } - sv.SecondaryStatus = types.SecondaryStatus(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InUseInstanceCount = ptr.Int32(int32(i64)) } - case "TrainingEndTime": + case "ReservedCapacitySummaries": + if err := awsAwsjson11_deserializeDocumentReservedCapacitySummaries(&sv.ReservedCapacitySummaries, value); err != nil { + return err + } + + case "StartTime": if value != nil { switch jtv := value.(type) { case json.Number: @@ -79845,7 +83977,7 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSum if err != nil { return err } - sv.TrainingEndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + sv.StartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) default: return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) @@ -79853,36 +83985,67 @@ func awsAwsjson11_deserializeDocumentTrainingJobSummary(v **types.TrainingJobSum } } - case "TrainingJobArn": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingJobArn to be of type string, got %T instead", value) + return fmt.Errorf("expected TrainingPlanStatus to be of type string, got %T instead", value) } - sv.TrainingJobArn = ptr.String(jtv) + sv.Status = types.TrainingPlanStatus(jtv) } - case "TrainingJobName": + case "StatusMessage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingJobName to be of type string, got %T instead", value) + return fmt.Errorf("expected TrainingPlanStatusMessage to be of type string, got %T instead", value) } - sv.TrainingJobName = ptr.String(jtv) + sv.StatusMessage = ptr.String(jtv) } - case "TrainingJobStatus": + case "TargetResources": + if err := awsAwsjson11_deserializeDocumentSageMakerResourceNames(&sv.TargetResources, value); err != nil { + return err + } + + case "TotalInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TotalInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalInstanceCount = ptr.Int32(int32(i64)) + } + + case "TrainingPlanArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TrainingJobStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) } - sv.TrainingJobStatus = types.TrainingJobStatus(jtv) + sv.TrainingPlanArn = ptr.String(jtv) } - case "WarmPoolStatus": - if err := awsAwsjson11_deserializeDocumentWarmPoolStatus(&sv.WarmPoolStatus, value); err != nil { - return err + case "TrainingPlanName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanName to be of type string, got %T instead", value) + } + sv.TrainingPlanName = ptr.String(jtv) + } + + case "UpfrontFee": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String256 to be of type string, got %T instead", value) + } + sv.UpfrontFee = ptr.String(jtv) } default: @@ -84409,6 +88572,55 @@ func awsAwsjson11_deserializeOpDocumentCreateClusterOutput(v **CreateClusterOutp return nil } +func awsAwsjson11_deserializeOpDocumentCreateClusterSchedulerConfigOutput(v **CreateClusterSchedulerConfigOutput, 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 *CreateClusterSchedulerConfigOutput + if *v == nil { + sv = &CreateClusterSchedulerConfigOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterSchedulerConfigArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigArn to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigId to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateCodeRepositoryOutput(v **CreateCodeRepositoryOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -84489,6 +88701,55 @@ func awsAwsjson11_deserializeOpDocumentCreateCompilationJobOutput(v **CreateComp return nil } +func awsAwsjson11_deserializeOpDocumentCreateComputeQuotaOutput(v **CreateComputeQuotaOutput, 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 *CreateComputeQuotaOutput + if *v == nil { + sv = &CreateComputeQuotaOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComputeQuotaArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaArn to be of type string, got %T instead", value) + } + sv.ComputeQuotaArn = ptr.String(jtv) + } + + case "ComputeQuotaId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaId to be of type string, got %T instead", value) + } + sv.ComputeQuotaId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateContextOutput(v **CreateContextOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -85787,6 +90048,86 @@ func awsAwsjson11_deserializeOpDocumentCreateOptimizationJobOutput(v **CreateOpt return nil } +func awsAwsjson11_deserializeOpDocumentCreatePartnerAppOutput(v **CreatePartnerAppOutput, 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 *CreatePartnerAppOutput + if *v == nil { + sv = &CreatePartnerAppOutput{} + } 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 PartnerAppArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCreatePartnerAppPresignedUrlOutput(v **CreatePartnerAppPresignedUrlOutput, 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 *CreatePartnerAppPresignedUrlOutput + if *v == nil { + sv = &CreatePartnerAppPresignedUrlOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Url": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String2048 to be of type string, got %T instead", value) + } + sv.Url = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreatePipelineOutput(v **CreatePipelineOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -86156,6 +90497,46 @@ func awsAwsjson11_deserializeOpDocumentCreateTrainingJobOutput(v **CreateTrainin return nil } +func awsAwsjson11_deserializeOpDocumentCreateTrainingPlanOutput(v **CreateTrainingPlanOutput, 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 *CreateTrainingPlanOutput + if *v == nil { + sv = &CreateTrainingPlanOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "TrainingPlanArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) + } + sv.TrainingPlanArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateTransformJobOutput(v **CreateTransformJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -86849,6 +91230,46 @@ func awsAwsjson11_deserializeOpDocumentDeleteMlflowTrackingServerOutput(v **Dele return nil } +func awsAwsjson11_deserializeOpDocumentDeletePartnerAppOutput(v **DeletePartnerAppOutput, 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 *DeletePartnerAppOutput + if *v == nil { + sv = &DeletePartnerAppOutput{} + } 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 PartnerAppArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeletePipelineOutput(v **DeletePipelineOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -88270,6 +92691,160 @@ func awsAwsjson11_deserializeOpDocumentDescribeClusterOutput(v **DescribeCluster return nil } +func awsAwsjson11_deserializeOpDocumentDescribeClusterSchedulerConfigOutput(v **DescribeClusterSchedulerConfigOutput, 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 *DescribeClusterSchedulerConfigOutput + if *v == nil { + sv = &DescribeClusterSchedulerConfigOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterArn to be of type string, got %T instead", value) + } + sv.ClusterArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigArn to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigId to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigId = ptr.String(jtv) + } + + case "ClusterSchedulerConfigVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ClusterSchedulerConfigVersion = ptr.Int32(int32(i64)) + } + + case "CreatedBy": + if err := awsAwsjson11_deserializeDocumentUserContext(&sv.CreatedBy, value); err != nil { + return err + } + + 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 "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FailureReason to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } + + case "LastModifiedBy": + if err := awsAwsjson11_deserializeDocumentUserContext(&sv.LastModifiedBy, value); err != nil { + return err + } + + case "LastModifiedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "SchedulerConfig": + if err := awsAwsjson11_deserializeDocumentSchedulerConfig(&sv.SchedulerConfig, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SchedulerResourceStatus to be of type string, got %T instead", value) + } + sv.Status = types.SchedulerResourceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeCodeRepositoryOutput(v **DescribeCodeRepositoryOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -88549,6 +93124,174 @@ func awsAwsjson11_deserializeOpDocumentDescribeCompilationJobOutput(v **Describe return nil } +func awsAwsjson11_deserializeOpDocumentDescribeComputeQuotaOutput(v **DescribeComputeQuotaOutput, 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 *DescribeComputeQuotaOutput + if *v == nil { + sv = &DescribeComputeQuotaOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActivationState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActivationState to be of type string, got %T instead", value) + } + sv.ActivationState = types.ActivationState(jtv) + } + + case "ClusterArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterArn to be of type string, got %T instead", value) + } + sv.ClusterArn = ptr.String(jtv) + } + + case "ComputeQuotaArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaArn to be of type string, got %T instead", value) + } + sv.ComputeQuotaArn = ptr.String(jtv) + } + + case "ComputeQuotaConfig": + if err := awsAwsjson11_deserializeDocumentComputeQuotaConfig(&sv.ComputeQuotaConfig, value); err != nil { + return err + } + + case "ComputeQuotaId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaId to be of type string, got %T instead", value) + } + sv.ComputeQuotaId = ptr.String(jtv) + } + + case "ComputeQuotaTarget": + if err := awsAwsjson11_deserializeDocumentComputeQuotaTarget(&sv.ComputeQuotaTarget, value); err != nil { + return err + } + + case "ComputeQuotaVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ComputeQuotaVersion = ptr.Int32(int32(i64)) + } + + case "CreatedBy": + if err := awsAwsjson11_deserializeDocumentUserContext(&sv.CreatedBy, value); err != nil { + return err + } + + 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 "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FailureReason to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } + + case "LastModifiedBy": + if err := awsAwsjson11_deserializeDocumentUserContext(&sv.LastModifiedBy, value); err != nil { + return err + } + + case "LastModifiedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityName 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 SchedulerResourceStatus to be of type string, got %T instead", value) + } + sv.Status = types.SchedulerResourceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeContextOutput(v **DescribeContextOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -93902,6 +98645,158 @@ func awsAwsjson11_deserializeOpDocumentDescribeOptimizationJobOutput(v **Describ return nil } +func awsAwsjson11_deserializeOpDocumentDescribePartnerAppOutput(v **DescribePartnerAppOutput, 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 *DescribePartnerAppOutput + if *v == nil { + sv = &DescribePartnerAppOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ApplicationConfig": + if err := awsAwsjson11_deserializeDocumentPartnerAppConfig(&sv.ApplicationConfig, value); err != nil { + return err + } + + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "AuthType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppAuthType to be of type string, got %T instead", value) + } + sv.AuthType = types.PartnerAppAuthType(jtv) + } + + case "BaseUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String2048 to be of type string, got %T instead", value) + } + sv.BaseUrl = ptr.String(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 "EnableIamSessionBasedIdentity": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnableIamSessionBasedIdentity = ptr.Bool(jtv) + } + + case "Error": + if err := awsAwsjson11_deserializeDocumentErrorInfo(&sv.Error, value); err != nil { + return err + } + + case "ExecutionRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.ExecutionRoleArn = ptr.String(jtv) + } + + case "MaintenanceConfig": + if err := awsAwsjson11_deserializeDocumentPartnerAppMaintenanceConfig(&sv.MaintenanceConfig, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppName 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 PartnerAppStatus to be of type string, got %T instead", value) + } + sv.Status = types.PartnerAppStatus(jtv) + } + + case "Tier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString64 to be of type string, got %T instead", value) + } + sv.Tier = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PartnerAppType to be of type string, got %T instead", value) + } + sv.Type = types.PartnerAppType(jtv) + } + + case "Version": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString64 to be of type string, got %T instead", value) + } + sv.Version = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribePipelineDefinitionForExecutionOutput(v **DescribePipelineDefinitionForExecutionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -95244,6 +100139,198 @@ func awsAwsjson11_deserializeOpDocumentDescribeTrainingJobOutput(v **DescribeTra return nil } +func awsAwsjson11_deserializeOpDocumentDescribeTrainingPlanOutput(v **DescribeTrainingPlanOutput, 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 *DescribeTrainingPlanOutput + if *v == nil { + sv = &DescribeTrainingPlanOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailableInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AvailableInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailableInstanceCount = ptr.Int32(int32(i64)) + } + + 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 = ptr.String(jtv) + } + + case "DurationHours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingPlanDurationHours to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationHours = ptr.Int64(i64) + } + + case "DurationMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TrainingPlanDurationMinutes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationMinutes = ptr.Int64(i64) + } + + case "EndTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "InUseInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected InUseInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InUseInstanceCount = ptr.Int32(int32(i64)) + } + + case "ReservedCapacitySummaries": + if err := awsAwsjson11_deserializeDocumentReservedCapacitySummaries(&sv.ReservedCapacitySummaries, value); err != nil { + return err + } + + case "StartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.StartTime = 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 TrainingPlanStatus to be of type string, got %T instead", value) + } + sv.Status = types.TrainingPlanStatus(jtv) + } + + case "StatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanStatusMessage to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) + } + + case "TargetResources": + if err := awsAwsjson11_deserializeDocumentSageMakerResourceNames(&sv.TargetResources, value); err != nil { + return err + } + + case "TotalInstanceCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TotalInstanceCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalInstanceCount = ptr.Int32(int32(i64)) + } + + case "TrainingPlanArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanArn to be of type string, got %T instead", value) + } + sv.TrainingPlanArn = ptr.String(jtv) + } + + case "TrainingPlanName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TrainingPlanName to be of type string, got %T instead", value) + } + sv.TrainingPlanName = ptr.String(jtv) + } + + case "UpfrontFee": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String256 to be of type string, got %T instead", value) + } + sv.UpfrontFee = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeTransformJobOutput(v **DescribeTransformJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -96793,97 +101880,322 @@ func awsAwsjson11_deserializeOpDocumentListAssociationsOutput(v **ListAssociatio return nil } -func awsAwsjson11_deserializeOpDocumentListAutoMLJobsOutput(v **ListAutoMLJobsOutput, 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 *ListAutoMLJobsOutput - if *v == nil { - sv = &ListAutoMLJobsOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "AutoMLJobSummaries": - if err := awsAwsjson11_deserializeDocumentAutoMLJobSummaries(&sv.AutoMLJobSummaries, value); err != nil { - return err - } - - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeOpDocumentListCandidatesForAutoMLJobOutput(v **ListCandidatesForAutoMLJobOutput, 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 *ListCandidatesForAutoMLJobOutput - if *v == nil { - sv = &ListCandidatesForAutoMLJobOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Candidates": - if err := awsAwsjson11_deserializeDocumentAutoMLCandidates(&sv.Candidates, value); err != nil { - return err - } - - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeOpDocumentListClusterNodesOutput(v **ListClusterNodesOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListAutoMLJobsOutput(v **ListAutoMLJobsOutput, 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 *ListAutoMLJobsOutput + if *v == nil { + sv = &ListAutoMLJobsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AutoMLJobSummaries": + if err := awsAwsjson11_deserializeDocumentAutoMLJobSummaries(&sv.AutoMLJobSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListCandidatesForAutoMLJobOutput(v **ListCandidatesForAutoMLJobOutput, 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 *ListCandidatesForAutoMLJobOutput + if *v == nil { + sv = &ListCandidatesForAutoMLJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Candidates": + if err := awsAwsjson11_deserializeDocumentAutoMLCandidates(&sv.Candidates, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListClusterNodesOutput(v **ListClusterNodesOutput, 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 *ListClusterNodesOutput + if *v == nil { + sv = &ListClusterNodesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterNodeSummaries": + if err := awsAwsjson11_deserializeDocumentClusterNodeSummaries(&sv.ClusterNodeSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListClusterSchedulerConfigsOutput(v **ListClusterSchedulerConfigsOutput, 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 *ListClusterSchedulerConfigsOutput + if *v == nil { + sv = &ListClusterSchedulerConfigsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterSchedulerConfigSummaries": + if err := awsAwsjson11_deserializeDocumentClusterSchedulerConfigSummaryList(&sv.ClusterSchedulerConfigSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListClustersOutput(v **ListClustersOutput, 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 *ListClustersOutput + if *v == nil { + sv = &ListClustersOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterSummaries": + if err := awsAwsjson11_deserializeDocumentClusterSummaries(&sv.ClusterSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListCodeRepositoriesOutput(v **ListCodeRepositoriesOutput, 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 *ListCodeRepositoriesOutput + if *v == nil { + sv = &ListCodeRepositoriesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CodeRepositorySummaryList": + if err := awsAwsjson11_deserializeDocumentCodeRepositorySummaryList(&sv.CodeRepositorySummaryList, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListCompilationJobsOutput(v **ListCompilationJobsOutput, 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 *ListCompilationJobsOutput + if *v == nil { + sv = &ListCompilationJobsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CompilationJobSummaries": + if err := awsAwsjson11_deserializeDocumentCompilationJobSummaries(&sv.CompilationJobSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListComputeQuotasOutput(v **ListComputeQuotasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -96896,152 +102208,17 @@ func awsAwsjson11_deserializeOpDocumentListClusterNodesOutput(v **ListClusterNod return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListClusterNodesOutput + var sv *ListComputeQuotasOutput if *v == nil { - sv = &ListClusterNodesOutput{} + sv = &ListComputeQuotasOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ClusterNodeSummaries": - if err := awsAwsjson11_deserializeDocumentClusterNodeSummaries(&sv.ClusterNodeSummaries, value); err != nil { - return err - } - - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeOpDocumentListClustersOutput(v **ListClustersOutput, 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 *ListClustersOutput - if *v == nil { - sv = &ListClustersOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ClusterSummaries": - if err := awsAwsjson11_deserializeDocumentClusterSummaries(&sv.ClusterSummaries, value); err != nil { - return err - } - - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeOpDocumentListCodeRepositoriesOutput(v **ListCodeRepositoriesOutput, 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 *ListCodeRepositoriesOutput - if *v == nil { - sv = &ListCodeRepositoriesOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "CodeRepositorySummaryList": - if err := awsAwsjson11_deserializeDocumentCodeRepositorySummaryList(&sv.CodeRepositorySummaryList, value); err != nil { - return err - } - - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeOpDocumentListCompilationJobsOutput(v **ListCompilationJobsOutput, 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 *ListCompilationJobsOutput - if *v == nil { - sv = &ListCompilationJobsOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "CompilationJobSummaries": - if err := awsAwsjson11_deserializeDocumentCompilationJobSummaries(&sv.CompilationJobSummaries, value); err != nil { + case "ComputeQuotaSummaries": + if err := awsAwsjson11_deserializeDocumentComputeQuotaSummaryList(&sv.ComputeQuotaSummaries, value); err != nil { return err } @@ -98773,7 +103950,52 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringAlertHistoryOutput(v **List return nil } -func awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(v **ListMonitoringAlertsOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(v **ListMonitoringAlertsOutput, 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 *ListMonitoringAlertsOutput + if *v == nil { + sv = &ListMonitoringAlertsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MonitoringAlertSummaries": + if err := awsAwsjson11_deserializeDocumentMonitoringAlertSummaryList(&sv.MonitoringAlertSummaries, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(v **ListMonitoringExecutionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -98786,17 +104008,17 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(v **ListMonito return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListMonitoringAlertsOutput + var sv *ListMonitoringExecutionsOutput if *v == nil { - sv = &ListMonitoringAlertsOutput{} + sv = &ListMonitoringExecutionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "MonitoringAlertSummaries": - if err := awsAwsjson11_deserializeDocumentMonitoringAlertSummaryList(&sv.MonitoringAlertSummaries, value); err != nil { + case "MonitoringExecutionSummaries": + if err := awsAwsjson11_deserializeDocumentMonitoringExecutionSummaryList(&sv.MonitoringExecutionSummaries, value); err != nil { return err } @@ -98818,7 +104040,7 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringAlertsOutput(v **ListMonito return nil } -func awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(v **ListMonitoringExecutionsOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(v **ListMonitoringSchedulesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -98831,17 +104053,17 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(v **ListMo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListMonitoringExecutionsOutput + var sv *ListMonitoringSchedulesOutput if *v == nil { - sv = &ListMonitoringExecutionsOutput{} + sv = &ListMonitoringSchedulesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "MonitoringExecutionSummaries": - if err := awsAwsjson11_deserializeDocumentMonitoringExecutionSummaryList(&sv.MonitoringExecutionSummaries, value); err != nil { + case "MonitoringScheduleSummaries": + if err := awsAwsjson11_deserializeDocumentMonitoringScheduleSummaryList(&sv.MonitoringScheduleSummaries, value); err != nil { return err } @@ -98863,7 +104085,7 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringExecutionsOutput(v **ListMo return nil } -func awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(v **ListMonitoringSchedulesOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutput(v **ListNotebookInstanceLifecycleConfigsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -98876,20 +104098,15 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(v **ListMon return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListMonitoringSchedulesOutput + var sv *ListNotebookInstanceLifecycleConfigsOutput if *v == nil { - sv = &ListMonitoringSchedulesOutput{} + sv = &ListNotebookInstanceLifecycleConfigsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "MonitoringScheduleSummaries": - if err := awsAwsjson11_deserializeDocumentMonitoringScheduleSummaryList(&sv.MonitoringScheduleSummaries, value); err != nil { - return err - } - case "NextToken": if value != nil { jtv, ok := value.(string) @@ -98899,6 +104116,11 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(v **ListMon sv.NextToken = ptr.String(jtv) } + case "NotebookInstanceLifecycleConfigs": + if err := awsAwsjson11_deserializeDocumentNotebookInstanceLifecycleConfigSummaryList(&sv.NotebookInstanceLifecycleConfigs, value); err != nil { + return err + } + default: _, _ = key, value @@ -98908,7 +104130,7 @@ func awsAwsjson11_deserializeOpDocumentListMonitoringSchedulesOutput(v **ListMon return nil } -func awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutput(v **ListNotebookInstanceLifecycleConfigsOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(v **ListNotebookInstancesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -98921,9 +104143,9 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutpu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListNotebookInstanceLifecycleConfigsOutput + var sv *ListNotebookInstancesOutput if *v == nil { - sv = &ListNotebookInstanceLifecycleConfigsOutput{} + sv = &ListNotebookInstancesOutput{} } else { sv = *v } @@ -98939,8 +104161,8 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutpu sv.NextToken = ptr.String(jtv) } - case "NotebookInstanceLifecycleConfigs": - if err := awsAwsjson11_deserializeDocumentNotebookInstanceLifecycleConfigSummaryList(&sv.NotebookInstanceLifecycleConfigs, value); err != nil { + case "NotebookInstances": + if err := awsAwsjson11_deserializeDocumentNotebookInstanceSummaryList(&sv.NotebookInstances, value); err != nil { return err } @@ -98953,7 +104175,7 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstanceLifecycleConfigsOutpu return nil } -func awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(v **ListNotebookInstancesOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(v **ListOptimizationJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -98966,9 +104188,9 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(v **ListNoteb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListNotebookInstancesOutput + var sv *ListOptimizationJobsOutput if *v == nil { - sv = &ListNotebookInstancesOutput{} + sv = &ListOptimizationJobsOutput{} } else { sv = *v } @@ -98984,8 +104206,8 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(v **ListNoteb sv.NextToken = ptr.String(jtv) } - case "NotebookInstances": - if err := awsAwsjson11_deserializeDocumentNotebookInstanceSummaryList(&sv.NotebookInstances, value); err != nil { + case "OptimizationJobSummaries": + if err := awsAwsjson11_deserializeDocumentOptimizationJobSummaries(&sv.OptimizationJobSummaries, value); err != nil { return err } @@ -98998,7 +104220,7 @@ func awsAwsjson11_deserializeOpDocumentListNotebookInstancesOutput(v **ListNoteb return nil } -func awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(v **ListOptimizationJobsOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentListPartnerAppsOutput(v **ListPartnerAppsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -99011,9 +104233,9 @@ func awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(v **ListOptimi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListOptimizationJobsOutput + var sv *ListPartnerAppsOutput if *v == nil { - sv = &ListOptimizationJobsOutput{} + sv = &ListPartnerAppsOutput{} } else { sv = *v } @@ -99029,8 +104251,8 @@ func awsAwsjson11_deserializeOpDocumentListOptimizationJobsOutput(v **ListOptimi sv.NextToken = ptr.String(jtv) } - case "OptimizationJobSummaries": - if err := awsAwsjson11_deserializeDocumentOptimizationJobSummaries(&sv.OptimizationJobSummaries, value); err != nil { + case "Summaries": + if err := awsAwsjson11_deserializeDocumentPartnerAppSummaries(&sv.Summaries, value); err != nil { return err } @@ -99673,6 +104895,51 @@ func awsAwsjson11_deserializeOpDocumentListTrainingJobsOutput(v **ListTrainingJo return nil } +func awsAwsjson11_deserializeOpDocumentListTrainingPlansOutput(v **ListTrainingPlansOutput, 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 *ListTrainingPlansOutput + if *v == nil { + sv = &ListTrainingPlansOutput{} + } 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 NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "TrainingPlanSummaries": + if err := awsAwsjson11_deserializeDocumentTrainingPlanSummaries(&sv.TrainingPlanSummaries, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListTransformJobsOutput(v **ListTransformJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -100163,6 +105430,42 @@ func awsAwsjson11_deserializeOpDocumentSearchOutput(v **SearchOutput, value inte return nil } +func awsAwsjson11_deserializeOpDocumentSearchTrainingPlanOfferingsOutput(v **SearchTrainingPlanOfferingsOutput, 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 *SearchTrainingPlanOfferingsOutput + if *v == nil { + sv = &SearchTrainingPlanOfferingsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "TrainingPlanOfferings": + if err := awsAwsjson11_deserializeDocumentTrainingPlanOfferings(&sv.TrainingPlanOfferings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentSendPipelineExecutionStepFailureOutput(v **SendPipelineExecutionStepFailureOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -100643,6 +105946,59 @@ func awsAwsjson11_deserializeOpDocumentUpdateClusterOutput(v **UpdateClusterOutp return nil } +func awsAwsjson11_deserializeOpDocumentUpdateClusterSchedulerConfigOutput(v **UpdateClusterSchedulerConfigOutput, 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 *UpdateClusterSchedulerConfigOutput + if *v == nil { + sv = &UpdateClusterSchedulerConfigOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterSchedulerConfigArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClusterSchedulerConfigArn to be of type string, got %T instead", value) + } + sv.ClusterSchedulerConfigArn = ptr.String(jtv) + } + + case "ClusterSchedulerConfigVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ClusterSchedulerConfigVersion = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdateClusterSoftwareOutput(v **UpdateClusterSoftwareOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -100723,6 +106079,59 @@ func awsAwsjson11_deserializeOpDocumentUpdateCodeRepositoryOutput(v **UpdateCode return nil } +func awsAwsjson11_deserializeOpDocumentUpdateComputeQuotaOutput(v **UpdateComputeQuotaOutput, 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 *UpdateComputeQuotaOutput + if *v == nil { + sv = &UpdateComputeQuotaOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComputeQuotaArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComputeQuotaArn to be of type string, got %T instead", value) + } + sv.ComputeQuotaArn = ptr.String(jtv) + } + + case "ComputeQuotaVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ComputeQuotaVersion = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdateContextOutput(v **UpdateContextOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -101474,6 +106883,46 @@ func awsAwsjson11_deserializeOpDocumentUpdateNotebookInstanceOutput(v **UpdateNo return nil } +func awsAwsjson11_deserializeOpDocumentUpdatePartnerAppOutput(v **UpdatePartnerAppOutput, 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 *UpdatePartnerAppOutput + if *v == nil { + sv = &UpdatePartnerAppOutput{} + } 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 PartnerAppArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdatePipelineExecutionOutput(v **UpdatePipelineExecutionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/sagemaker/generated.json b/service/sagemaker/generated.json index 531051bdefe..2edb0bf7645 100644 --- a/service/sagemaker/generated.json +++ b/service/sagemaker/generated.json @@ -22,8 +22,10 @@ "api_op_CreateAutoMLJob.go", "api_op_CreateAutoMLJobV2.go", "api_op_CreateCluster.go", + "api_op_CreateClusterSchedulerConfig.go", "api_op_CreateCodeRepository.go", "api_op_CreateCompilationJob.go", + "api_op_CreateComputeQuota.go", "api_op_CreateContext.go", "api_op_CreateDataQualityJobDefinition.go", "api_op_CreateDeviceFleet.go", @@ -59,6 +61,8 @@ "api_op_CreateNotebookInstance.go", "api_op_CreateNotebookInstanceLifecycleConfig.go", "api_op_CreateOptimizationJob.go", + "api_op_CreatePartnerApp.go", + "api_op_CreatePartnerAppPresignedUrl.go", "api_op_CreatePipeline.go", "api_op_CreatePresignedDomainUrl.go", "api_op_CreatePresignedMlflowTrackingServerUrl.go", @@ -68,6 +72,7 @@ "api_op_CreateSpace.go", "api_op_CreateStudioLifecycleConfig.go", "api_op_CreateTrainingJob.go", + "api_op_CreateTrainingPlan.go", "api_op_CreateTransformJob.go", "api_op_CreateTrial.go", "api_op_CreateTrialComponent.go", @@ -81,8 +86,10 @@ "api_op_DeleteArtifact.go", "api_op_DeleteAssociation.go", "api_op_DeleteCluster.go", + "api_op_DeleteClusterSchedulerConfig.go", "api_op_DeleteCodeRepository.go", "api_op_DeleteCompilationJob.go", + "api_op_DeleteComputeQuota.go", "api_op_DeleteContext.go", "api_op_DeleteDataQualityJobDefinition.go", "api_op_DeleteDeviceFleet.go", @@ -116,6 +123,7 @@ "api_op_DeleteNotebookInstance.go", "api_op_DeleteNotebookInstanceLifecycleConfig.go", "api_op_DeleteOptimizationJob.go", + "api_op_DeletePartnerApp.go", "api_op_DeletePipeline.go", "api_op_DeleteProject.go", "api_op_DeleteSpace.go", @@ -136,8 +144,10 @@ "api_op_DescribeAutoMLJobV2.go", "api_op_DescribeCluster.go", "api_op_DescribeClusterNode.go", + "api_op_DescribeClusterSchedulerConfig.go", "api_op_DescribeCodeRepository.go", "api_op_DescribeCompilationJob.go", + "api_op_DescribeComputeQuota.go", "api_op_DescribeContext.go", "api_op_DescribeDataQualityJobDefinition.go", "api_op_DescribeDevice.go", @@ -175,6 +185,7 @@ "api_op_DescribeNotebookInstance.go", "api_op_DescribeNotebookInstanceLifecycleConfig.go", "api_op_DescribeOptimizationJob.go", + "api_op_DescribePartnerApp.go", "api_op_DescribePipeline.go", "api_op_DescribePipelineDefinitionForExecution.go", "api_op_DescribePipelineExecution.go", @@ -184,6 +195,7 @@ "api_op_DescribeStudioLifecycleConfig.go", "api_op_DescribeSubscribedWorkteam.go", "api_op_DescribeTrainingJob.go", + "api_op_DescribeTrainingPlan.go", "api_op_DescribeTransformJob.go", "api_op_DescribeTrial.go", "api_op_DescribeTrialComponent.go", @@ -210,9 +222,11 @@ "api_op_ListAutoMLJobs.go", "api_op_ListCandidatesForAutoMLJob.go", "api_op_ListClusterNodes.go", + "api_op_ListClusterSchedulerConfigs.go", "api_op_ListClusters.go", "api_op_ListCodeRepositories.go", "api_op_ListCompilationJobs.go", + "api_op_ListComputeQuotas.go", "api_op_ListContexts.go", "api_op_ListDataQualityJobDefinitions.go", "api_op_ListDeviceFleets.go", @@ -257,6 +271,7 @@ "api_op_ListNotebookInstanceLifecycleConfigs.go", "api_op_ListNotebookInstances.go", "api_op_ListOptimizationJobs.go", + "api_op_ListPartnerApps.go", "api_op_ListPipelineExecutionSteps.go", "api_op_ListPipelineExecutions.go", "api_op_ListPipelineParametersForExecution.go", @@ -271,6 +286,7 @@ "api_op_ListTags.go", "api_op_ListTrainingJobs.go", "api_op_ListTrainingJobsForHyperParameterTuningJob.go", + "api_op_ListTrainingPlans.go", "api_op_ListTransformJobs.go", "api_op_ListTrialComponents.go", "api_op_ListTrials.go", @@ -283,6 +299,7 @@ "api_op_RenderUiTemplate.go", "api_op_RetryPipelineExecution.go", "api_op_Search.go", + "api_op_SearchTrainingPlanOfferings.go", "api_op_SendPipelineExecutionStepFailure.go", "api_op_SendPipelineExecutionStepSuccess.go", "api_op_StartEdgeDeploymentStage.go", @@ -311,8 +328,10 @@ "api_op_UpdateAppImageConfig.go", "api_op_UpdateArtifact.go", "api_op_UpdateCluster.go", + "api_op_UpdateClusterSchedulerConfig.go", "api_op_UpdateClusterSoftware.go", "api_op_UpdateCodeRepository.go", + "api_op_UpdateComputeQuota.go", "api_op_UpdateContext.go", "api_op_UpdateDeviceFleet.go", "api_op_UpdateDevices.go", @@ -335,6 +354,7 @@ "api_op_UpdateMonitoringSchedule.go", "api_op_UpdateNotebookInstance.go", "api_op_UpdateNotebookInstanceLifecycleConfig.go", + "api_op_UpdatePartnerApp.go", "api_op_UpdatePipeline.go", "api_op_UpdatePipelineExecution.go", "api_op_UpdateProject.go", diff --git a/service/sagemaker/serializers.go b/service/sagemaker/serializers.go index f4d69fa3d01..5ab7e78e108 100644 --- a/service/sagemaker/serializers.go +++ b/service/sagemaker/serializers.go @@ -811,6 +811,67 @@ func (m *awsAwsjson11_serializeOpCreateCluster) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateClusterSchedulerConfig struct { +} + +func (*awsAwsjson11_serializeOpCreateClusterSchedulerConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateClusterSchedulerConfig) 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.(*CreateClusterSchedulerConfigInput) + _ = 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("SageMaker.CreateClusterSchedulerConfig") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateClusterSchedulerConfigInput(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_serializeOpCreateCodeRepository struct { } @@ -933,6 +994,67 @@ func (m *awsAwsjson11_serializeOpCreateCompilationJob) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateComputeQuota struct { +} + +func (*awsAwsjson11_serializeOpCreateComputeQuota) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateComputeQuota) 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.(*CreateComputeQuotaInput) + _ = 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("SageMaker.CreateComputeQuota") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateComputeQuotaInput(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_serializeOpCreateContext struct { } @@ -3068,6 +3190,128 @@ func (m *awsAwsjson11_serializeOpCreateOptimizationJob) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreatePartnerApp struct { +} + +func (*awsAwsjson11_serializeOpCreatePartnerApp) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreatePartnerApp) 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.(*CreatePartnerAppInput) + _ = 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("SageMaker.CreatePartnerApp") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreatePartnerAppInput(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_serializeOpCreatePartnerAppPresignedUrl struct { +} + +func (*awsAwsjson11_serializeOpCreatePartnerAppPresignedUrl) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreatePartnerAppPresignedUrl) 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.(*CreatePartnerAppPresignedUrlInput) + _ = 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("SageMaker.CreatePartnerAppPresignedUrl") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreatePartnerAppPresignedUrlInput(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_serializeOpCreatePipeline struct { } @@ -3617,6 +3861,67 @@ func (m *awsAwsjson11_serializeOpCreateTrainingJob) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateTrainingPlan struct { +} + +func (*awsAwsjson11_serializeOpCreateTrainingPlan) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateTrainingPlan) 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.(*CreateTrainingPlanInput) + _ = 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("SageMaker.CreateTrainingPlan") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateTrainingPlanInput(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_serializeOpCreateTransformJob struct { } @@ -4410,6 +4715,67 @@ func (m *awsAwsjson11_serializeOpDeleteCluster) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteClusterSchedulerConfig struct { +} + +func (*awsAwsjson11_serializeOpDeleteClusterSchedulerConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteClusterSchedulerConfig) 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.(*DeleteClusterSchedulerConfigInput) + _ = 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("SageMaker.DeleteClusterSchedulerConfig") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteClusterSchedulerConfigInput(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_serializeOpDeleteCodeRepository struct { } @@ -4532,6 +4898,67 @@ func (m *awsAwsjson11_serializeOpDeleteCompilationJob) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteComputeQuota struct { +} + +func (*awsAwsjson11_serializeOpDeleteComputeQuota) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteComputeQuota) 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.(*DeleteComputeQuotaInput) + _ = 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("SageMaker.DeleteComputeQuota") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteComputeQuotaInput(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_serializeOpDeleteContext struct { } @@ -6545,6 +6972,67 @@ func (m *awsAwsjson11_serializeOpDeleteOptimizationJob) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeletePartnerApp struct { +} + +func (*awsAwsjson11_serializeOpDeletePartnerApp) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeletePartnerApp) 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.(*DeletePartnerAppInput) + _ = 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("SageMaker.DeletePartnerApp") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeletePartnerAppInput(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_serializeOpDeletePipeline struct { } @@ -7765,6 +8253,67 @@ func (m *awsAwsjson11_serializeOpDescribeClusterNode) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeClusterSchedulerConfig struct { +} + +func (*awsAwsjson11_serializeOpDescribeClusterSchedulerConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeClusterSchedulerConfig) 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.(*DescribeClusterSchedulerConfigInput) + _ = 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("SageMaker.DescribeClusterSchedulerConfig") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeClusterSchedulerConfigInput(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_serializeOpDescribeCodeRepository struct { } @@ -7887,6 +8436,67 @@ func (m *awsAwsjson11_serializeOpDescribeCompilationJob) HandleSerialize(ctx con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeComputeQuota struct { +} + +func (*awsAwsjson11_serializeOpDescribeComputeQuota) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeComputeQuota) 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.(*DescribeComputeQuotaInput) + _ = 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("SageMaker.DescribeComputeQuota") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeComputeQuotaInput(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_serializeOpDescribeContext struct { } @@ -10144,6 +10754,67 @@ func (m *awsAwsjson11_serializeOpDescribeOptimizationJob) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribePartnerApp struct { +} + +func (*awsAwsjson11_serializeOpDescribePartnerApp) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribePartnerApp) 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.(*DescribePartnerAppInput) + _ = 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("SageMaker.DescribePartnerApp") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribePartnerAppInput(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_serializeOpDescribePipeline struct { } @@ -10693,6 +11364,67 @@ func (m *awsAwsjson11_serializeOpDescribeTrainingJob) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeTrainingPlan struct { +} + +func (*awsAwsjson11_serializeOpDescribeTrainingPlan) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeTrainingPlan) 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.(*DescribeTrainingPlanInput) + _ = 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("SageMaker.DescribeTrainingPlan") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeTrainingPlanInput(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_serializeOpDescribeTransformJob struct { } @@ -12340,6 +13072,67 @@ func (m *awsAwsjson11_serializeOpListClusters) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListClusterSchedulerConfigs struct { +} + +func (*awsAwsjson11_serializeOpListClusterSchedulerConfigs) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListClusterSchedulerConfigs) 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.(*ListClusterSchedulerConfigsInput) + _ = 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("SageMaker.ListClusterSchedulerConfigs") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListClusterSchedulerConfigsInput(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_serializeOpListCodeRepositories struct { } @@ -12462,6 +13255,67 @@ func (m *awsAwsjson11_serializeOpListCompilationJobs) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListComputeQuotas struct { +} + +func (*awsAwsjson11_serializeOpListComputeQuotas) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListComputeQuotas) 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.(*ListComputeQuotasInput) + _ = 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("SageMaker.ListComputeQuotas") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListComputeQuotasInput(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_serializeOpListContexts struct { } @@ -15146,6 +16000,67 @@ func (m *awsAwsjson11_serializeOpListOptimizationJobs) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListPartnerApps struct { +} + +func (*awsAwsjson11_serializeOpListPartnerApps) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListPartnerApps) 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.(*ListPartnerAppsInput) + _ = 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("SageMaker.ListPartnerApps") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListPartnerAppsInput(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_serializeOpListPipelineExecutions struct { } @@ -16000,6 +16915,67 @@ func (m *awsAwsjson11_serializeOpListTrainingJobsForHyperParameterTuningJob) Han return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListTrainingPlans struct { +} + +func (*awsAwsjson11_serializeOpListTrainingPlans) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListTrainingPlans) 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.(*ListTrainingPlansInput) + _ = 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("SageMaker.ListTrainingPlans") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListTrainingPlansInput(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_serializeOpListTransformJobs struct { } @@ -16732,6 +17708,67 @@ func (m *awsAwsjson11_serializeOpSearch) HandleSerialize(ctx context.Context, in return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpSearchTrainingPlanOfferings struct { +} + +func (*awsAwsjson11_serializeOpSearchTrainingPlanOfferings) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpSearchTrainingPlanOfferings) 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.(*SearchTrainingPlanOfferingsInput) + _ = 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("SageMaker.SearchTrainingPlanOfferings") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentSearchTrainingPlanOfferingsInput(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_serializeOpSendPipelineExecutionStepFailure struct { } @@ -18440,6 +19477,67 @@ func (m *awsAwsjson11_serializeOpUpdateCluster) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpUpdateClusterSchedulerConfig struct { +} + +func (*awsAwsjson11_serializeOpUpdateClusterSchedulerConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateClusterSchedulerConfig) 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.(*UpdateClusterSchedulerConfigInput) + _ = 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("SageMaker.UpdateClusterSchedulerConfig") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateClusterSchedulerConfigInput(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_serializeOpUpdateClusterSoftware struct { } @@ -18562,6 +19660,67 @@ func (m *awsAwsjson11_serializeOpUpdateCodeRepository) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpUpdateComputeQuota struct { +} + +func (*awsAwsjson11_serializeOpUpdateComputeQuota) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateComputeQuota) 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.(*UpdateComputeQuotaInput) + _ = 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("SageMaker.UpdateComputeQuota") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateComputeQuotaInput(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_serializeOpUpdateContext struct { } @@ -19904,6 +21063,67 @@ func (m *awsAwsjson11_serializeOpUpdateNotebookInstanceLifecycleConfig) HandleSe return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpUpdatePartnerApp struct { +} + +func (*awsAwsjson11_serializeOpUpdatePartnerApp) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdatePartnerApp) 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.(*UpdatePartnerAppInput) + _ = 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("SageMaker.UpdatePartnerApp") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdatePartnerAppInput(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_serializeOpUpdatePipeline struct { } @@ -22352,6 +23572,11 @@ func awsAwsjson11_serializeDocumentClusterInstanceGroupSpecification(v *types.Cl ok.Integer(*v.ThreadsPerCore) } + if v.TrainingPlanArn != nil { + ok := object.Key("TrainingPlanArn") + ok.String(*v.TrainingPlanArn) + } + return nil } @@ -22653,6 +23878,79 @@ func awsAwsjson11_serializeDocumentCompressionTypes(v []types.CompressionType, v return nil } +func awsAwsjson11_serializeDocumentComputeQuotaConfig(v *types.ComputeQuotaConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ComputeQuotaResources != nil { + ok := object.Key("ComputeQuotaResources") + if err := awsAwsjson11_serializeDocumentComputeQuotaResourceConfigList(v.ComputeQuotaResources, ok); err != nil { + return err + } + } + + if len(v.PreemptTeamTasks) > 0 { + ok := object.Key("PreemptTeamTasks") + ok.String(string(v.PreemptTeamTasks)) + } + + if v.ResourceSharingConfig != nil { + ok := object.Key("ResourceSharingConfig") + if err := awsAwsjson11_serializeDocumentResourceSharingConfig(v.ResourceSharingConfig, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentComputeQuotaResourceConfig(v *types.ComputeQuotaResourceConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Count != nil { + ok := object.Key("Count") + ok.Integer(*v.Count) + } + + if len(v.InstanceType) > 0 { + ok := object.Key("InstanceType") + ok.String(string(v.InstanceType)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentComputeQuotaResourceConfigList(v []types.ComputeQuotaResourceConfig, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentComputeQuotaResourceConfig(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson11_serializeDocumentComputeQuotaTarget(v *types.ComputeQuotaTarget, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FairShareWeight != nil { + ok := object.Key("FairShareWeight") + ok.Integer(*v.FairShareWeight) + } + + if v.TeamName != nil { + ok := object.Key("TeamName") + ok.String(*v.TeamName) + } + + return nil +} + func awsAwsjson11_serializeDocumentContainerArguments(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -22945,6 +24243,12 @@ func awsAwsjson11_serializeDocumentCustomFileSystem(v types.CustomFileSystem, va return err } + case *types.CustomFileSystemMemberFSxLustreFileSystem: + av := object.Key("FSxLustreFileSystem") + if err := awsAwsjson11_serializeDocumentFSxLustreFileSystem(&uv.Value, av); err != nil { + return err + } + default: return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) @@ -22963,6 +24267,12 @@ func awsAwsjson11_serializeDocumentCustomFileSystemConfig(v types.CustomFileSyst return err } + case *types.CustomFileSystemConfigMemberFSxLustreFileSystemConfig: + av := object.Key("FSxLustreFileSystemConfig") + if err := awsAwsjson11_serializeDocumentFSxLustreFileSystemConfig(&uv.Value, av); err != nil { + return err + } + default: return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) @@ -24607,6 +25917,35 @@ func awsAwsjson11_serializeDocumentForecastQuantiles(v []string, value smithyjso return nil } +func awsAwsjson11_serializeDocumentFSxLustreFileSystem(v *types.FSxLustreFileSystem, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FileSystemId != nil { + ok := object.Key("FileSystemId") + ok.String(*v.FileSystemId) + } + + return nil +} + +func awsAwsjson11_serializeDocumentFSxLustreFileSystemConfig(v *types.FSxLustreFileSystemConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FileSystemId != nil { + ok := object.Key("FileSystemId") + ok.String(*v.FileSystemId) + } + + if v.FileSystemPath != nil { + ok := object.Key("FileSystemPath") + ok.String(*v.FileSystemPath) + } + + return nil +} + func awsAwsjson11_serializeDocumentGenerativeAiSettings(v *types.GenerativeAiSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -28518,6 +29857,61 @@ func awsAwsjson11_serializeDocumentParentHyperParameterTuningJobs(v []types.Pare return nil } +func awsAwsjson11_serializeDocumentPartnerAppAdminUserList(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_serializeDocumentPartnerAppArguments(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 awsAwsjson11_serializeDocumentPartnerAppConfig(v *types.PartnerAppConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdminUsers != nil { + ok := object.Key("AdminUsers") + if err := awsAwsjson11_serializeDocumentPartnerAppAdminUserList(v.AdminUsers, ok); err != nil { + return err + } + } + + if v.Arguments != nil { + ok := object.Key("Arguments") + if err := awsAwsjson11_serializeDocumentPartnerAppArguments(v.Arguments, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentPartnerAppMaintenanceConfig(v *types.PartnerAppMaintenanceConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaintenanceWindowStart != nil { + ok := object.Key("MaintenanceWindowStart") + ok.String(*v.MaintenanceWindowStart) + } + + return nil +} + func awsAwsjson11_serializeDocumentPhase(v *types.Phase, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -28575,6 +29969,36 @@ func awsAwsjson11_serializeDocumentPipelineDefinitionS3Location(v *types.Pipelin return nil } +func awsAwsjson11_serializeDocumentPriorityClass(v *types.PriorityClass, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Weight != nil { + ok := object.Key("Weight") + ok.Integer(*v.Weight) + } + + return nil +} + +func awsAwsjson11_serializeDocumentPriorityClassList(v []types.PriorityClass, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentPriorityClass(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentProcessingClusterConfig(v *types.ProcessingClusterConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -29750,6 +31174,11 @@ func awsAwsjson11_serializeDocumentResourceConfig(v *types.ResourceConfig, value ok.Integer(*v.KeepAlivePeriodInSeconds) } + if v.TrainingPlanArn != nil { + ok := object.Key("TrainingPlanArn") + ok.String(*v.TrainingPlanArn) + } + if v.VolumeKmsKeyId != nil { ok := object.Key("VolumeKmsKeyId") ok.String(*v.VolumeKmsKeyId) @@ -29797,6 +31226,23 @@ func awsAwsjson11_serializeDocumentResourceLimits(v *types.ResourceLimits, value return nil } +func awsAwsjson11_serializeDocumentResourceSharingConfig(v *types.ResourceSharingConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BorrowLimit != nil { + ok := object.Key("BorrowLimit") + ok.Integer(*v.BorrowLimit) + } + + if len(v.Strategy) > 0 { + ok := object.Key("Strategy") + ok.String(string(v.Strategy)) + } + + return nil +} + func awsAwsjson11_serializeDocumentResourceSpec(v *types.ResourceSpec, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -30126,6 +31572,17 @@ func awsAwsjson11_serializeDocumentSageMakerImageVersionAliases(v []string, valu return nil } +func awsAwsjson11_serializeDocumentSageMakerResourceNames(v []types.SageMakerResourceName, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + func awsAwsjson11_serializeDocumentScalingPolicyObjective(v *types.ScalingPolicyObjective, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -30165,6 +31622,25 @@ func awsAwsjson11_serializeDocumentScheduleConfig(v *types.ScheduleConfig, value return nil } +func awsAwsjson11_serializeDocumentSchedulerConfig(v *types.SchedulerConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.FairShare) > 0 { + ok := object.Key("FairShare") + ok.String(string(v.FairShare)) + } + + if v.PriorityClasses != nil { + ok := object.Key("PriorityClasses") + if err := awsAwsjson11_serializeDocumentPriorityClassList(v.PriorityClasses, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentSearchExpression(v *types.SearchExpression, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -31299,6 +32775,36 @@ func awsAwsjson11_serializeDocumentTrainingJobDefinition(v *types.TrainingJobDef return nil } +func awsAwsjson11_serializeDocumentTrainingPlanFilter(v *types.TrainingPlanFilter, 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.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsAwsjson11_serializeDocumentTrainingPlanFilters(v []types.TrainingPlanFilter, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentTrainingPlanFilter(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentTrainingRepositoryAuthConfig(v *types.TrainingRepositoryAuthConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -32606,6 +34112,42 @@ func awsAwsjson11_serializeOpDocumentCreateClusterInput(v *CreateClusterInput, v return nil } +func awsAwsjson11_serializeOpDocumentCreateClusterSchedulerConfigInput(v *CreateClusterSchedulerConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterArn != nil { + ok := object.Key("ClusterArn") + ok.String(*v.ClusterArn) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.SchedulerConfig != nil { + ok := object.Key("SchedulerConfig") + if err := awsAwsjson11_serializeDocumentSchedulerConfig(v.SchedulerConfig, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateCodeRepositoryInput(v *CreateCodeRepositoryInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -32689,6 +34231,54 @@ func awsAwsjson11_serializeOpDocumentCreateCompilationJobInput(v *CreateCompilat return nil } +func awsAwsjson11_serializeOpDocumentCreateComputeQuotaInput(v *CreateComputeQuotaInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ActivationState) > 0 { + ok := object.Key("ActivationState") + ok.String(string(v.ActivationState)) + } + + if v.ClusterArn != nil { + ok := object.Key("ClusterArn") + ok.String(*v.ClusterArn) + } + + if v.ComputeQuotaConfig != nil { + ok := object.Key("ComputeQuotaConfig") + if err := awsAwsjson11_serializeDocumentComputeQuotaConfig(v.ComputeQuotaConfig, ok); err != nil { + return err + } + } + + if v.ComputeQuotaTarget != nil { + ok := object.Key("ComputeQuotaTarget") + if err := awsAwsjson11_serializeDocumentComputeQuotaTarget(v.ComputeQuotaTarget, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateContextInput(v *CreateContextInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -34565,6 +36155,91 @@ func awsAwsjson11_serializeOpDocumentCreateOptimizationJobInput(v *CreateOptimiz return nil } +func awsAwsjson11_serializeOpDocumentCreatePartnerAppInput(v *CreatePartnerAppInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApplicationConfig != nil { + ok := object.Key("ApplicationConfig") + if err := awsAwsjson11_serializeDocumentPartnerAppConfig(v.ApplicationConfig, ok); err != nil { + return err + } + } + + if len(v.AuthType) > 0 { + ok := object.Key("AuthType") + ok.String(string(v.AuthType)) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.EnableIamSessionBasedIdentity != nil { + ok := object.Key("EnableIamSessionBasedIdentity") + ok.Boolean(*v.EnableIamSessionBasedIdentity) + } + + if v.ExecutionRoleArn != nil { + ok := object.Key("ExecutionRoleArn") + ok.String(*v.ExecutionRoleArn) + } + + if v.MaintenanceConfig != nil { + ok := object.Key("MaintenanceConfig") + if err := awsAwsjson11_serializeDocumentPartnerAppMaintenanceConfig(v.MaintenanceConfig, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if v.Tier != nil { + ok := object.Key("Tier") + ok.String(*v.Tier) + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentCreatePartnerAppPresignedUrlInput(v *CreatePartnerAppPresignedUrlInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.ExpiresInSeconds != nil { + ok := object.Key("ExpiresInSeconds") + ok.Integer(*v.ExpiresInSeconds) + } + + if v.SessionExpirationDurationInSeconds != nil { + ok := object.Key("SessionExpirationDurationInSeconds") + ok.Integer(*v.SessionExpirationDurationInSeconds) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreatePipelineInput(v *CreatePipelineInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -35061,6 +36736,30 @@ func awsAwsjson11_serializeOpDocumentCreateTrainingJobInput(v *CreateTrainingJob return nil } +func awsAwsjson11_serializeOpDocumentCreateTrainingPlanInput(v *CreateTrainingPlanInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if v.TrainingPlanName != nil { + ok := object.Key("TrainingPlanName") + ok.String(*v.TrainingPlanName) + } + + if v.TrainingPlanOfferingId != nil { + ok := object.Key("TrainingPlanOfferingId") + ok.String(*v.TrainingPlanOfferingId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateTransformJobInput(v *CreateTransformJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -35515,6 +37214,18 @@ func awsAwsjson11_serializeOpDocumentDeleteClusterInput(v *DeleteClusterInput, v return nil } +func awsAwsjson11_serializeOpDocumentDeleteClusterSchedulerConfigInput(v *DeleteClusterSchedulerConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterSchedulerConfigId != nil { + ok := object.Key("ClusterSchedulerConfigId") + ok.String(*v.ClusterSchedulerConfigId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteCodeRepositoryInput(v *DeleteCodeRepositoryInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -35539,6 +37250,18 @@ func awsAwsjson11_serializeOpDocumentDeleteCompilationJobInput(v *DeleteCompilat return nil } +func awsAwsjson11_serializeOpDocumentDeleteComputeQuotaInput(v *DeleteComputeQuotaInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ComputeQuotaId != nil { + ok := object.Key("ComputeQuotaId") + ok.String(*v.ComputeQuotaId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteContextInput(v *DeleteContextInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -35982,6 +37705,23 @@ func awsAwsjson11_serializeOpDocumentDeleteOptimizationJobInput(v *DeleteOptimiz return nil } +func awsAwsjson11_serializeOpDocumentDeletePartnerAppInput(v *DeletePartnerAppInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeletePipelineInput(v *DeletePipelineInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -36276,6 +38016,23 @@ func awsAwsjson11_serializeOpDocumentDescribeClusterNodeInput(v *DescribeCluster return nil } +func awsAwsjson11_serializeOpDocumentDescribeClusterSchedulerConfigInput(v *DescribeClusterSchedulerConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterSchedulerConfigId != nil { + ok := object.Key("ClusterSchedulerConfigId") + ok.String(*v.ClusterSchedulerConfigId) + } + + if v.ClusterSchedulerConfigVersion != nil { + ok := object.Key("ClusterSchedulerConfigVersion") + ok.Integer(*v.ClusterSchedulerConfigVersion) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeCodeRepositoryInput(v *DescribeCodeRepositoryInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -36300,6 +38057,23 @@ func awsAwsjson11_serializeOpDocumentDescribeCompilationJobInput(v *DescribeComp return nil } +func awsAwsjson11_serializeOpDocumentDescribeComputeQuotaInput(v *DescribeComputeQuotaInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ComputeQuotaId != nil { + ok := object.Key("ComputeQuotaId") + ok.String(*v.ComputeQuotaId) + } + + if v.ComputeQuotaVersion != nil { + ok := object.Key("ComputeQuotaVersion") + ok.Integer(*v.ComputeQuotaVersion) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeContextInput(v *DescribeContextInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -36804,6 +38578,18 @@ func awsAwsjson11_serializeOpDocumentDescribeOptimizationJobInput(v *DescribeOpt return nil } +func awsAwsjson11_serializeOpDocumentDescribePartnerAppInput(v *DescribePartnerAppInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribePipelineDefinitionForExecutionInput(v *DescribePipelineDefinitionForExecutionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -36917,6 +38703,18 @@ func awsAwsjson11_serializeOpDocumentDescribeTrainingJobInput(v *DescribeTrainin return nil } +func awsAwsjson11_serializeOpDocumentDescribeTrainingPlanInput(v *DescribeTrainingPlanInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.TrainingPlanName != nil { + ok := object.Key("TrainingPlanName") + ok.String(*v.TrainingPlanName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeTransformJobInput(v *DescribeTransformJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -37657,6 +39455,58 @@ func awsAwsjson11_serializeOpDocumentListClusterNodesInput(v *ListClusterNodesIn return nil } +func awsAwsjson11_serializeOpDocumentListClusterSchedulerConfigsInput(v *ListClusterSchedulerConfigsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterArn != nil { + ok := object.Key("ClusterArn") + ok.String(*v.ClusterArn) + } + + if v.CreatedAfter != nil { + ok := object.Key("CreatedAfter") + ok.Double(smithytime.FormatEpochSeconds(*v.CreatedAfter)) + } + + if v.CreatedBefore != nil { + ok := object.Key("CreatedBefore") + ok.Double(smithytime.FormatEpochSeconds(*v.CreatedBefore)) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NameContains != nil { + ok := object.Key("NameContains") + ok.String(*v.NameContains) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if len(v.SortBy) > 0 { + ok := object.Key("SortBy") + ok.String(string(v.SortBy)) + } + + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) + } + + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListClustersInput(v *ListClustersInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -37696,6 +39546,11 @@ func awsAwsjson11_serializeOpDocumentListClustersInput(v *ListClustersInput, val ok.String(string(v.SortOrder)) } + if v.TrainingPlanArn != nil { + ok := object.Key("TrainingPlanArn") + ok.String(*v.TrainingPlanArn) + } + return nil } @@ -37808,6 +39663,58 @@ func awsAwsjson11_serializeOpDocumentListCompilationJobsInput(v *ListCompilation return nil } +func awsAwsjson11_serializeOpDocumentListComputeQuotasInput(v *ListComputeQuotasInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterArn != nil { + ok := object.Key("ClusterArn") + ok.String(*v.ClusterArn) + } + + if v.CreatedAfter != nil { + ok := object.Key("CreatedAfter") + ok.Double(smithytime.FormatEpochSeconds(*v.CreatedAfter)) + } + + if v.CreatedBefore != nil { + ok := object.Key("CreatedBefore") + ok.Double(smithytime.FormatEpochSeconds(*v.CreatedBefore)) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NameContains != nil { + ok := object.Key("NameContains") + ok.String(*v.NameContains) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if len(v.SortBy) > 0 { + ok := object.Key("SortBy") + ok.String(string(v.SortBy)) + } + + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) + } + + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListContextsInput(v *ListContextsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -39998,6 +41905,23 @@ func awsAwsjson11_serializeOpDocumentListOptimizationJobsInput(v *ListOptimizati return nil } +func awsAwsjson11_serializeOpDocumentListPartnerAppsInput(v *ListPartnerAppsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + 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 +} + func awsAwsjson11_serializeOpDocumentListPipelineExecutionsInput(v *ListPipelineExecutionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -40533,6 +42457,11 @@ func awsAwsjson11_serializeOpDocumentListTrainingJobsInput(v *ListTrainingJobsIn ok.String(string(v.StatusEquals)) } + if v.TrainingPlanArnEquals != nil { + ok := object.Key("TrainingPlanArnEquals") + ok.String(*v.TrainingPlanArnEquals) + } + if len(v.WarmPoolStatusEquals) > 0 { ok := object.Key("WarmPoolStatusEquals") ok.String(string(v.WarmPoolStatusEquals)) @@ -40541,6 +42470,50 @@ func awsAwsjson11_serializeOpDocumentListTrainingJobsInput(v *ListTrainingJobsIn return nil } +func awsAwsjson11_serializeOpDocumentListTrainingPlansInput(v *ListTrainingPlansInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsAwsjson11_serializeDocumentTrainingPlanFilters(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) + } + + if len(v.SortBy) > 0 { + ok := object.Key("SortBy") + ok.String(string(v.SortBy)) + } + + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) + } + + if v.StartTimeAfter != nil { + ok := object.Key("StartTimeAfter") + ok.Double(smithytime.FormatEpochSeconds(*v.StartTimeAfter)) + } + + if v.StartTimeBefore != nil { + ok := object.Key("StartTimeBefore") + ok.Double(smithytime.FormatEpochSeconds(*v.StartTimeBefore)) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListTransformJobsInput(v *ListTransformJobsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -40993,6 +42966,45 @@ func awsAwsjson11_serializeOpDocumentSearchInput(v *SearchInput, value smithyjso return nil } +func awsAwsjson11_serializeOpDocumentSearchTrainingPlanOfferingsInput(v *SearchTrainingPlanOfferingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DurationHours != nil { + ok := object.Key("DurationHours") + ok.Long(*v.DurationHours) + } + + if v.EndTimeBefore != nil { + ok := object.Key("EndTimeBefore") + ok.Double(smithytime.FormatEpochSeconds(*v.EndTimeBefore)) + } + + if v.InstanceCount != nil { + ok := object.Key("InstanceCount") + ok.Integer(*v.InstanceCount) + } + + if len(v.InstanceType) > 0 { + ok := object.Key("InstanceType") + ok.String(string(v.InstanceType)) + } + + if v.StartTimeAfter != nil { + ok := object.Key("StartTimeAfter") + ok.Double(smithytime.FormatEpochSeconds(*v.StartTimeAfter)) + } + + if v.TargetResources != nil { + ok := object.Key("TargetResources") + if err := awsAwsjson11_serializeDocumentSageMakerResourceNames(v.TargetResources, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentSendPipelineExecutionStepFailureInput(v *SendPipelineExecutionStepFailureInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -41502,6 +43514,35 @@ func awsAwsjson11_serializeOpDocumentUpdateClusterInput(v *UpdateClusterInput, v return nil } +func awsAwsjson11_serializeOpDocumentUpdateClusterSchedulerConfigInput(v *UpdateClusterSchedulerConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterSchedulerConfigId != nil { + ok := object.Key("ClusterSchedulerConfigId") + ok.String(*v.ClusterSchedulerConfigId) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.SchedulerConfig != nil { + ok := object.Key("SchedulerConfig") + if err := awsAwsjson11_serializeDocumentSchedulerConfig(v.SchedulerConfig, ok); err != nil { + return err + } + } + + if v.TargetVersion != nil { + ok := object.Key("TargetVersion") + ok.Integer(*v.TargetVersion) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdateClusterSoftwareInput(v *UpdateClusterSoftwareInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -41533,6 +43574,47 @@ func awsAwsjson11_serializeOpDocumentUpdateCodeRepositoryInput(v *UpdateCodeRepo return nil } +func awsAwsjson11_serializeOpDocumentUpdateComputeQuotaInput(v *UpdateComputeQuotaInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ActivationState) > 0 { + ok := object.Key("ActivationState") + ok.String(string(v.ActivationState)) + } + + if v.ComputeQuotaConfig != nil { + ok := object.Key("ComputeQuotaConfig") + if err := awsAwsjson11_serializeDocumentComputeQuotaConfig(v.ComputeQuotaConfig, ok); err != nil { + return err + } + } + + if v.ComputeQuotaId != nil { + ok := object.Key("ComputeQuotaId") + ok.String(*v.ComputeQuotaId) + } + + if v.ComputeQuotaTarget != nil { + ok := object.Key("ComputeQuotaTarget") + if err := awsAwsjson11_serializeDocumentComputeQuotaTarget(v.ComputeQuotaTarget, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.TargetVersion != nil { + ok := object.Key("TargetVersion") + ok.Integer(*v.TargetVersion) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdateContextInput(v *UpdateContextInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -42330,6 +44412,54 @@ func awsAwsjson11_serializeOpDocumentUpdateNotebookInstanceLifecycleConfigInput( return nil } +func awsAwsjson11_serializeOpDocumentUpdatePartnerAppInput(v *UpdatePartnerAppInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApplicationConfig != nil { + ok := object.Key("ApplicationConfig") + if err := awsAwsjson11_serializeDocumentPartnerAppConfig(v.ApplicationConfig, ok); err != nil { + return err + } + } + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.EnableIamSessionBasedIdentity != nil { + ok := object.Key("EnableIamSessionBasedIdentity") + ok.Boolean(*v.EnableIamSessionBasedIdentity) + } + + if v.MaintenanceConfig != nil { + ok := object.Key("MaintenanceConfig") + if err := awsAwsjson11_serializeDocumentPartnerAppMaintenanceConfig(v.MaintenanceConfig, 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.Tier != nil { + ok := object.Key("Tier") + ok.String(*v.Tier) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdatePipelineExecutionInput(v *UpdatePipelineExecutionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/sagemaker/snapshot/api_op_CreateClusterSchedulerConfig.go.snap b/service/sagemaker/snapshot/api_op_CreateClusterSchedulerConfig.go.snap new file mode 100644 index 00000000000..c928cfeed77 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_CreateClusterSchedulerConfig.go.snap @@ -0,0 +1,41 @@ +CreateClusterSchedulerConfig + 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/sagemaker/snapshot/api_op_CreateComputeQuota.go.snap b/service/sagemaker/snapshot/api_op_CreateComputeQuota.go.snap new file mode 100644 index 00000000000..5d31fab4db5 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_CreateComputeQuota.go.snap @@ -0,0 +1,41 @@ +CreateComputeQuota + 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/sagemaker/snapshot/api_op_CreatePartnerApp.go.snap b/service/sagemaker/snapshot/api_op_CreatePartnerApp.go.snap new file mode 100644 index 00000000000..c1e1f1cf3f0 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_CreatePartnerApp.go.snap @@ -0,0 +1,42 @@ +CreatePartnerApp + 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/sagemaker/snapshot/api_op_CreatePartnerAppPresignedUrl.go.snap b/service/sagemaker/snapshot/api_op_CreatePartnerAppPresignedUrl.go.snap new file mode 100644 index 00000000000..0451bef5c12 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_CreatePartnerAppPresignedUrl.go.snap @@ -0,0 +1,41 @@ +CreatePartnerAppPresignedUrl + 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/sagemaker/snapshot/api_op_CreateTrainingPlan.go.snap b/service/sagemaker/snapshot/api_op_CreateTrainingPlan.go.snap new file mode 100644 index 00000000000..f238484adb0 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_CreateTrainingPlan.go.snap @@ -0,0 +1,41 @@ +CreateTrainingPlan + 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/sagemaker/snapshot/api_op_DeleteClusterSchedulerConfig.go.snap b/service/sagemaker/snapshot/api_op_DeleteClusterSchedulerConfig.go.snap new file mode 100644 index 00000000000..7f6b0576479 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DeleteClusterSchedulerConfig.go.snap @@ -0,0 +1,41 @@ +DeleteClusterSchedulerConfig + 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/sagemaker/snapshot/api_op_DeleteComputeQuota.go.snap b/service/sagemaker/snapshot/api_op_DeleteComputeQuota.go.snap new file mode 100644 index 00000000000..90df3264582 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DeleteComputeQuota.go.snap @@ -0,0 +1,41 @@ +DeleteComputeQuota + 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/sagemaker/snapshot/api_op_DeletePartnerApp.go.snap b/service/sagemaker/snapshot/api_op_DeletePartnerApp.go.snap new file mode 100644 index 00000000000..a9f63c255a3 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DeletePartnerApp.go.snap @@ -0,0 +1,42 @@ +DeletePartnerApp + 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/sagemaker/snapshot/api_op_DescribeClusterSchedulerConfig.go.snap b/service/sagemaker/snapshot/api_op_DescribeClusterSchedulerConfig.go.snap new file mode 100644 index 00000000000..238789bd46c --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DescribeClusterSchedulerConfig.go.snap @@ -0,0 +1,41 @@ +DescribeClusterSchedulerConfig + 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/sagemaker/snapshot/api_op_DescribeComputeQuota.go.snap b/service/sagemaker/snapshot/api_op_DescribeComputeQuota.go.snap new file mode 100644 index 00000000000..1d4d0817c5f --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DescribeComputeQuota.go.snap @@ -0,0 +1,41 @@ +DescribeComputeQuota + 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/sagemaker/snapshot/api_op_DescribePartnerApp.go.snap b/service/sagemaker/snapshot/api_op_DescribePartnerApp.go.snap new file mode 100644 index 00000000000..14468a31309 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DescribePartnerApp.go.snap @@ -0,0 +1,41 @@ +DescribePartnerApp + 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/sagemaker/snapshot/api_op_DescribeTrainingPlan.go.snap b/service/sagemaker/snapshot/api_op_DescribeTrainingPlan.go.snap new file mode 100644 index 00000000000..f1aa338aae1 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_DescribeTrainingPlan.go.snap @@ -0,0 +1,41 @@ +DescribeTrainingPlan + 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/sagemaker/snapshot/api_op_ListClusterSchedulerConfigs.go.snap b/service/sagemaker/snapshot/api_op_ListClusterSchedulerConfigs.go.snap new file mode 100644 index 00000000000..eb5a81a8ffd --- /dev/null +++ b/service/sagemaker/snapshot/api_op_ListClusterSchedulerConfigs.go.snap @@ -0,0 +1,40 @@ +ListClusterSchedulerConfigs + 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/sagemaker/snapshot/api_op_ListComputeQuotas.go.snap b/service/sagemaker/snapshot/api_op_ListComputeQuotas.go.snap new file mode 100644 index 00000000000..15c031ca747 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_ListComputeQuotas.go.snap @@ -0,0 +1,40 @@ +ListComputeQuotas + 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/sagemaker/snapshot/api_op_ListPartnerApps.go.snap b/service/sagemaker/snapshot/api_op_ListPartnerApps.go.snap new file mode 100644 index 00000000000..3136eba4e3d --- /dev/null +++ b/service/sagemaker/snapshot/api_op_ListPartnerApps.go.snap @@ -0,0 +1,40 @@ +ListPartnerApps + 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/sagemaker/snapshot/api_op_ListTrainingPlans.go.snap b/service/sagemaker/snapshot/api_op_ListTrainingPlans.go.snap new file mode 100644 index 00000000000..aeb994493be --- /dev/null +++ b/service/sagemaker/snapshot/api_op_ListTrainingPlans.go.snap @@ -0,0 +1,41 @@ +ListTrainingPlans + 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/sagemaker/snapshot/api_op_SearchTrainingPlanOfferings.go.snap b/service/sagemaker/snapshot/api_op_SearchTrainingPlanOfferings.go.snap new file mode 100644 index 00000000000..c2d5fd231ba --- /dev/null +++ b/service/sagemaker/snapshot/api_op_SearchTrainingPlanOfferings.go.snap @@ -0,0 +1,41 @@ +SearchTrainingPlanOfferings + 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/sagemaker/snapshot/api_op_UpdateClusterSchedulerConfig.go.snap b/service/sagemaker/snapshot/api_op_UpdateClusterSchedulerConfig.go.snap new file mode 100644 index 00000000000..89a6af3970b --- /dev/null +++ b/service/sagemaker/snapshot/api_op_UpdateClusterSchedulerConfig.go.snap @@ -0,0 +1,41 @@ +UpdateClusterSchedulerConfig + 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/sagemaker/snapshot/api_op_UpdateComputeQuota.go.snap b/service/sagemaker/snapshot/api_op_UpdateComputeQuota.go.snap new file mode 100644 index 00000000000..07ce3bf9cd5 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_UpdateComputeQuota.go.snap @@ -0,0 +1,41 @@ +UpdateComputeQuota + 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/sagemaker/snapshot/api_op_UpdatePartnerApp.go.snap b/service/sagemaker/snapshot/api_op_UpdatePartnerApp.go.snap new file mode 100644 index 00000000000..05e12d39f77 --- /dev/null +++ b/service/sagemaker/snapshot/api_op_UpdatePartnerApp.go.snap @@ -0,0 +1,42 @@ +UpdatePartnerApp + 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/sagemaker/snapshot_test.go b/service/sagemaker/snapshot_test.go index a95aac8ccbf..1c71455a083 100644 --- a/service/sagemaker/snapshot_test.go +++ b/service/sagemaker/snapshot_test.go @@ -218,6 +218,18 @@ func TestCheckSnapshot_CreateCluster(t *testing.T) { } } +func TestCheckSnapshot_CreateClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.CreateCodeRepository(context.Background(), nil, func(o *Options) { @@ -242,6 +254,18 @@ func TestCheckSnapshot_CreateCompilationJob(t *testing.T) { } } +func TestCheckSnapshot_CreateComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateContext(t *testing.T) { svc := New(Options{}) _, err := svc.CreateContext(context.Background(), nil, func(o *Options) { @@ -662,6 +686,30 @@ func TestCheckSnapshot_CreateOptimizationJob(t *testing.T) { } } +func TestCheckSnapshot_CreatePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreatePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreatePartnerAppPresignedUrl(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePartnerAppPresignedUrl(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreatePartnerAppPresignedUrl") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreatePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.CreatePipeline(context.Background(), nil, func(o *Options) { @@ -770,6 +818,18 @@ func TestCheckSnapshot_CreateTrainingJob(t *testing.T) { } } +func TestCheckSnapshot_CreateTrainingPlan(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateTrainingPlan(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateTrainingPlan") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateTransformJob(t *testing.T) { svc := New(Options{}) _, err := svc.CreateTransformJob(context.Background(), nil, func(o *Options) { @@ -926,6 +986,18 @@ func TestCheckSnapshot_DeleteCluster(t *testing.T) { } } +func TestCheckSnapshot_DeleteClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteCodeRepository(context.Background(), nil, func(o *Options) { @@ -950,6 +1022,18 @@ func TestCheckSnapshot_DeleteCompilationJob(t *testing.T) { } } +func TestCheckSnapshot_DeleteComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteContext(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteContext(context.Background(), nil, func(o *Options) { @@ -1346,6 +1430,18 @@ func TestCheckSnapshot_DeleteOptimizationJob(t *testing.T) { } } +func TestCheckSnapshot_DeletePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeletePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeletePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeletePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.DeletePipeline(context.Background(), nil, func(o *Options) { @@ -1586,6 +1682,18 @@ func TestCheckSnapshot_DescribeClusterNode(t *testing.T) { } } +func TestCheckSnapshot_DescribeClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeCodeRepository(context.Background(), nil, func(o *Options) { @@ -1610,6 +1718,18 @@ func TestCheckSnapshot_DescribeCompilationJob(t *testing.T) { } } +func TestCheckSnapshot_DescribeComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeContext(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeContext(context.Background(), nil, func(o *Options) { @@ -2054,6 +2174,18 @@ func TestCheckSnapshot_DescribeOptimizationJob(t *testing.T) { } } +func TestCheckSnapshot_DescribePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.DescribePipeline(context.Background(), nil, func(o *Options) { @@ -2162,6 +2294,18 @@ func TestCheckSnapshot_DescribeTrainingJob(t *testing.T) { } } +func TestCheckSnapshot_DescribeTrainingPlan(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeTrainingPlan(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeTrainingPlan") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeTransformJob(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeTransformJob(context.Background(), nil, func(o *Options) { @@ -2486,6 +2630,18 @@ func TestCheckSnapshot_ListClusters(t *testing.T) { } } +func TestCheckSnapshot_ListClusterSchedulerConfigs(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListClusterSchedulerConfigs(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListClusterSchedulerConfigs") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListCodeRepositories(t *testing.T) { svc := New(Options{}) _, err := svc.ListCodeRepositories(context.Background(), nil, func(o *Options) { @@ -2510,6 +2666,18 @@ func TestCheckSnapshot_ListCompilationJobs(t *testing.T) { } } +func TestCheckSnapshot_ListComputeQuotas(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListComputeQuotas(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListComputeQuotas") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListContexts(t *testing.T) { svc := New(Options{}) _, err := svc.ListContexts(context.Background(), nil, func(o *Options) { @@ -3038,6 +3206,18 @@ func TestCheckSnapshot_ListOptimizationJobs(t *testing.T) { } } +func TestCheckSnapshot_ListPartnerApps(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListPartnerApps(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListPartnerApps") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListPipelineExecutions(t *testing.T) { svc := New(Options{}) _, err := svc.ListPipelineExecutions(context.Background(), nil, func(o *Options) { @@ -3206,6 +3386,18 @@ func TestCheckSnapshot_ListTrainingJobsForHyperParameterTuningJob(t *testing.T) } } +func TestCheckSnapshot_ListTrainingPlans(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListTrainingPlans(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListTrainingPlans") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListTransformJobs(t *testing.T) { svc := New(Options{}) _, err := svc.ListTransformJobs(context.Background(), nil, func(o *Options) { @@ -3350,6 +3542,18 @@ func TestCheckSnapshot_Search(t *testing.T) { } } +func TestCheckSnapshot_SearchTrainingPlanOfferings(t *testing.T) { + svc := New(Options{}) + _, err := svc.SearchTrainingPlanOfferings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "SearchTrainingPlanOfferings") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_SendPipelineExecutionStepFailure(t *testing.T) { svc := New(Options{}) _, err := svc.SendPipelineExecutionStepFailure(context.Background(), nil, func(o *Options) { @@ -3686,6 +3890,18 @@ func TestCheckSnapshot_UpdateCluster(t *testing.T) { } } +func TestCheckSnapshot_UpdateClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateClusterSoftware(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateClusterSoftware(context.Background(), nil, func(o *Options) { @@ -3710,6 +3926,18 @@ func TestCheckSnapshot_UpdateCodeRepository(t *testing.T) { } } +func TestCheckSnapshot_UpdateComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateContext(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateContext(context.Background(), nil, func(o *Options) { @@ -3974,6 +4202,18 @@ func TestCheckSnapshot_UpdateNotebookInstanceLifecycleConfig(t *testing.T) { } } +func TestCheckSnapshot_UpdatePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdatePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdatePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdatePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.UpdatePipeline(context.Background(), nil, func(o *Options) { @@ -4249,6 +4489,18 @@ func TestUpdateSnapshot_CreateCluster(t *testing.T) { } } +func TestUpdateSnapshot_CreateClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.CreateCodeRepository(context.Background(), nil, func(o *Options) { @@ -4273,6 +4525,18 @@ func TestUpdateSnapshot_CreateCompilationJob(t *testing.T) { } } +func TestUpdateSnapshot_CreateComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateContext(t *testing.T) { svc := New(Options{}) _, err := svc.CreateContext(context.Background(), nil, func(o *Options) { @@ -4693,6 +4957,30 @@ func TestUpdateSnapshot_CreateOptimizationJob(t *testing.T) { } } +func TestUpdateSnapshot_CreatePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreatePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreatePartnerAppPresignedUrl(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePartnerAppPresignedUrl(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreatePartnerAppPresignedUrl") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreatePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.CreatePipeline(context.Background(), nil, func(o *Options) { @@ -4801,6 +5089,18 @@ func TestUpdateSnapshot_CreateTrainingJob(t *testing.T) { } } +func TestUpdateSnapshot_CreateTrainingPlan(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateTrainingPlan(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateTrainingPlan") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateTransformJob(t *testing.T) { svc := New(Options{}) _, err := svc.CreateTransformJob(context.Background(), nil, func(o *Options) { @@ -4957,6 +5257,18 @@ func TestUpdateSnapshot_DeleteCluster(t *testing.T) { } } +func TestUpdateSnapshot_DeleteClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteCodeRepository(context.Background(), nil, func(o *Options) { @@ -4981,6 +5293,18 @@ func TestUpdateSnapshot_DeleteCompilationJob(t *testing.T) { } } +func TestUpdateSnapshot_DeleteComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteContext(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteContext(context.Background(), nil, func(o *Options) { @@ -5377,6 +5701,18 @@ func TestUpdateSnapshot_DeleteOptimizationJob(t *testing.T) { } } +func TestUpdateSnapshot_DeletePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeletePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeletePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeletePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.DeletePipeline(context.Background(), nil, func(o *Options) { @@ -5617,6 +5953,18 @@ func TestUpdateSnapshot_DescribeClusterNode(t *testing.T) { } } +func TestUpdateSnapshot_DescribeClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeCodeRepository(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeCodeRepository(context.Background(), nil, func(o *Options) { @@ -5641,6 +5989,18 @@ func TestUpdateSnapshot_DescribeCompilationJob(t *testing.T) { } } +func TestUpdateSnapshot_DescribeComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeContext(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeContext(context.Background(), nil, func(o *Options) { @@ -6085,6 +6445,18 @@ func TestUpdateSnapshot_DescribeOptimizationJob(t *testing.T) { } } +func TestUpdateSnapshot_DescribePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.DescribePipeline(context.Background(), nil, func(o *Options) { @@ -6193,6 +6565,18 @@ func TestUpdateSnapshot_DescribeTrainingJob(t *testing.T) { } } +func TestUpdateSnapshot_DescribeTrainingPlan(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeTrainingPlan(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeTrainingPlan") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeTransformJob(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeTransformJob(context.Background(), nil, func(o *Options) { @@ -6517,6 +6901,18 @@ func TestUpdateSnapshot_ListClusters(t *testing.T) { } } +func TestUpdateSnapshot_ListClusterSchedulerConfigs(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListClusterSchedulerConfigs(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListClusterSchedulerConfigs") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListCodeRepositories(t *testing.T) { svc := New(Options{}) _, err := svc.ListCodeRepositories(context.Background(), nil, func(o *Options) { @@ -6541,6 +6937,18 @@ func TestUpdateSnapshot_ListCompilationJobs(t *testing.T) { } } +func TestUpdateSnapshot_ListComputeQuotas(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListComputeQuotas(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListComputeQuotas") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListContexts(t *testing.T) { svc := New(Options{}) _, err := svc.ListContexts(context.Background(), nil, func(o *Options) { @@ -7069,6 +7477,18 @@ func TestUpdateSnapshot_ListOptimizationJobs(t *testing.T) { } } +func TestUpdateSnapshot_ListPartnerApps(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListPartnerApps(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListPartnerApps") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListPipelineExecutions(t *testing.T) { svc := New(Options{}) _, err := svc.ListPipelineExecutions(context.Background(), nil, func(o *Options) { @@ -7237,6 +7657,18 @@ func TestUpdateSnapshot_ListTrainingJobsForHyperParameterTuningJob(t *testing.T) } } +func TestUpdateSnapshot_ListTrainingPlans(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListTrainingPlans(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListTrainingPlans") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListTransformJobs(t *testing.T) { svc := New(Options{}) _, err := svc.ListTransformJobs(context.Background(), nil, func(o *Options) { @@ -7381,6 +7813,18 @@ func TestUpdateSnapshot_Search(t *testing.T) { } } +func TestUpdateSnapshot_SearchTrainingPlanOfferings(t *testing.T) { + svc := New(Options{}) + _, err := svc.SearchTrainingPlanOfferings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "SearchTrainingPlanOfferings") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_SendPipelineExecutionStepFailure(t *testing.T) { svc := New(Options{}) _, err := svc.SendPipelineExecutionStepFailure(context.Background(), nil, func(o *Options) { @@ -7717,6 +8161,18 @@ func TestUpdateSnapshot_UpdateCluster(t *testing.T) { } } +func TestUpdateSnapshot_UpdateClusterSchedulerConfig(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateClusterSchedulerConfig(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateClusterSchedulerConfig") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateClusterSoftware(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateClusterSoftware(context.Background(), nil, func(o *Options) { @@ -7741,6 +8197,18 @@ func TestUpdateSnapshot_UpdateCodeRepository(t *testing.T) { } } +func TestUpdateSnapshot_UpdateComputeQuota(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateComputeQuota(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateComputeQuota") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateContext(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateContext(context.Background(), nil, func(o *Options) { @@ -8005,6 +8473,18 @@ func TestUpdateSnapshot_UpdateNotebookInstanceLifecycleConfig(t *testing.T) { } } +func TestUpdateSnapshot_UpdatePartnerApp(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdatePartnerApp(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdatePartnerApp") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdatePipeline(t *testing.T) { svc := New(Options{}) _, err := svc.UpdatePipeline(context.Background(), nil, func(o *Options) { diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index 81198ed2ba9..0c5ad0b9868 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -29,6 +29,25 @@ func (ActionStatus) Values() []ActionStatus { } } +type ActivationState string + +// Enum values for ActivationState +const ( + ActivationStateEnabled ActivationState = "Enabled" + ActivationStateDisabled ActivationState = "Disabled" +) + +// Values returns all known values for ActivationState. 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 (ActivationState) Values() []ActivationState { + return []ActivationState{ + "Enabled", + "Disabled", + } +} + type AdditionalS3DataSourceDataType string // Enum values for AdditionalS3DataSourceDataType @@ -1653,6 +1672,8 @@ const ( ClusterInstanceTypeMlG6e24xlarge ClusterInstanceType = "ml.g6e.24xlarge" ClusterInstanceTypeMlG6e48xlarge ClusterInstanceType = "ml.g6e.48xlarge" ClusterInstanceTypeMlP5e48xlarge ClusterInstanceType = "ml.p5e.48xlarge" + ClusterInstanceTypeMlP5en48xlarge ClusterInstanceType = "ml.p5en.48xlarge" + ClusterInstanceTypeMlTrn248xlarge ClusterInstanceType = "ml.trn2.48xlarge" ) // Values returns all known values for ClusterInstanceType. Note that this can be @@ -1718,6 +1739,8 @@ func (ClusterInstanceType) Values() []ClusterInstanceType { "ml.g6e.24xlarge", "ml.g6e.48xlarge", "ml.p5e.48xlarge", + "ml.p5en.48xlarge", + "ml.trn2.48xlarge", } } @@ -2432,6 +2455,25 @@ func (FailureHandlingPolicy) Values() []FailureHandlingPolicy { } } +type FairShare string + +// Enum values for FairShare +const ( + FairShareEnabled FairShare = "Enabled" + FairShareDisabled FairShare = "Disabled" +) + +// Values returns all known values for FairShare. 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 (FairShare) Values() []FairShare { + return []FairShare{ + "Enabled", + "Disabled", + } +} + type FeatureGroupSortBy string // Enum values for FeatureGroupSortBy @@ -3283,6 +3325,35 @@ func (InputMode) Values() []InputMode { } } +type InstanceGroupStatus string + +// Enum values for InstanceGroupStatus +const ( + InstanceGroupStatusInservice InstanceGroupStatus = "InService" + InstanceGroupStatusCreating InstanceGroupStatus = "Creating" + InstanceGroupStatusUpdating InstanceGroupStatus = "Updating" + InstanceGroupStatusFailed InstanceGroupStatus = "Failed" + InstanceGroupStatusDegraded InstanceGroupStatus = "Degraded" + InstanceGroupStatusSystemupdating InstanceGroupStatus = "SystemUpdating" + InstanceGroupStatusDeleting InstanceGroupStatus = "Deleting" +) + +// Values returns all known values for InstanceGroupStatus. 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 (InstanceGroupStatus) Values() []InstanceGroupStatus { + return []InstanceGroupStatus{ + "InService", + "Creating", + "Updating", + "Failed", + "Degraded", + "SystemUpdating", + "Deleting", + } +} + type InstanceType string // Enum values for InstanceType @@ -4026,21 +4097,26 @@ type MlTools string // Enum values for MlTools const ( - MlToolsDataWrangler MlTools = "DataWrangler" - MlToolsFeatureStore MlTools = "FeatureStore" - MlToolsEmrClusters MlTools = "EmrClusters" - MlToolsAutoMl MlTools = "AutoMl" - MlToolsExperiments MlTools = "Experiments" - MlToolsTraining MlTools = "Training" - MlToolsModelEvaluation MlTools = "ModelEvaluation" - MlToolsPipelines MlTools = "Pipelines" - MlToolsModels MlTools = "Models" - MlToolsJumpStart MlTools = "JumpStart" - MlToolsInferenceRecommender MlTools = "InferenceRecommender" - MlToolsEndpoints MlTools = "Endpoints" - MlToolsProjects MlTools = "Projects" - MlToolsInferenceOptimization MlTools = "InferenceOptimization" - MlToolsPerformanceEvaluation MlTools = "PerformanceEvaluation" + MlToolsDataWrangler MlTools = "DataWrangler" + MlToolsFeatureStore MlTools = "FeatureStore" + MlToolsEmrClusters MlTools = "EmrClusters" + MlToolsAutoMl MlTools = "AutoMl" + MlToolsExperiments MlTools = "Experiments" + MlToolsTraining MlTools = "Training" + MlToolsModelEvaluation MlTools = "ModelEvaluation" + MlToolsPipelines MlTools = "Pipelines" + MlToolsModels MlTools = "Models" + MlToolsJumpStart MlTools = "JumpStart" + MlToolsInferenceRecommender MlTools = "InferenceRecommender" + MlToolsEndpoints MlTools = "Endpoints" + MlToolsProjects MlTools = "Projects" + MlToolsInferenceOptimization MlTools = "InferenceOptimization" + MlToolsPerformanceEvaluation MlTools = "PerformanceEvaluation" + MlToolsHyperPodClusters MlTools = "HyperPodClusters" + MlToolsLakeraGuard MlTools = "LakeraGuard" + MlToolsComet MlTools = "Comet" + MlToolsDeepchecksLlmEvaluation MlTools = "DeepchecksLLMEvaluation" + MlToolsFiddler MlTools = "Fiddler" ) // Values returns all known values for MlTools. Note that this can be expanded in @@ -4064,6 +4140,11 @@ func (MlTools) Values() []MlTools { "Projects", "InferenceOptimization", "PerformanceEvaluation", + "HyperPodClusters", + "LakeraGuard", + "Comet", + "DeepchecksLLMEvaluation", + "Fiddler", } } @@ -5044,6 +5125,75 @@ func (ParameterType) Values() []ParameterType { } } +type PartnerAppAuthType string + +// Enum values for PartnerAppAuthType +const ( + PartnerAppAuthTypeIam PartnerAppAuthType = "IAM" +) + +// Values returns all known values for PartnerAppAuthType. 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 (PartnerAppAuthType) Values() []PartnerAppAuthType { + return []PartnerAppAuthType{ + "IAM", + } +} + +type PartnerAppStatus string + +// Enum values for PartnerAppStatus +const ( + PartnerAppStatusCreating PartnerAppStatus = "Creating" + PartnerAppStatusUpdating PartnerAppStatus = "Updating" + PartnerAppStatusDeleting PartnerAppStatus = "Deleting" + PartnerAppStatusAvailable PartnerAppStatus = "Available" + PartnerAppStatusFailed PartnerAppStatus = "Failed" + PartnerAppStatusUpdateFailed PartnerAppStatus = "UpdateFailed" + PartnerAppStatusDeleted PartnerAppStatus = "Deleted" +) + +// Values returns all known values for PartnerAppStatus. 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 (PartnerAppStatus) Values() []PartnerAppStatus { + return []PartnerAppStatus{ + "Creating", + "Updating", + "Deleting", + "Available", + "Failed", + "UpdateFailed", + "Deleted", + } +} + +type PartnerAppType string + +// Enum values for PartnerAppType +const ( + PartnerAppTypeLakeraGuard PartnerAppType = "lakera-guard" + PartnerAppTypeComet PartnerAppType = "comet" + PartnerAppTypeDeepchecksLlmEvaluation PartnerAppType = "deepchecks-llm-evaluation" + PartnerAppTypeFiddler PartnerAppType = "fiddler" +) + +// Values returns all known values for PartnerAppType. 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 (PartnerAppType) Values() []PartnerAppType { + return []PartnerAppType{ + "lakera-guard", + "comet", + "deepchecks-llm-evaluation", + "fiddler", + } +} + type PipelineExecutionStatus string // Enum values for PipelineExecutionStatus @@ -5088,6 +5238,25 @@ func (PipelineStatus) Values() []PipelineStatus { } } +type PreemptTeamTasks string + +// Enum values for PreemptTeamTasks +const ( + PreemptTeamTasksNever PreemptTeamTasks = "Never" + PreemptTeamTasksLowerpriority PreemptTeamTasks = "LowerPriority" +) + +// Values returns all known values for PreemptTeamTasks. 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 (PreemptTeamTasks) Values() []PreemptTeamTasks { + return []PreemptTeamTasks{ + "Never", + "LowerPriority", + } +} + type ProblemType string // Enum values for ProblemType @@ -6157,6 +6326,57 @@ func (RepositoryAccessMode) Values() []RepositoryAccessMode { } } +type ReservedCapacityInstanceType string + +// Enum values for ReservedCapacityInstanceType +const ( + ReservedCapacityInstanceTypeMlP4d24xlarge ReservedCapacityInstanceType = "ml.p4d.24xlarge" + ReservedCapacityInstanceTypeMlP548xlarge ReservedCapacityInstanceType = "ml.p5.48xlarge" + ReservedCapacityInstanceTypeMlP5e48xlarge ReservedCapacityInstanceType = "ml.p5e.48xlarge" + ReservedCapacityInstanceTypeMlP5en48xlarge ReservedCapacityInstanceType = "ml.p5en.48xlarge" + ReservedCapacityInstanceTypeMlTrn248xlarge ReservedCapacityInstanceType = "ml.trn2.48xlarge" +) + +// Values returns all known values for ReservedCapacityInstanceType. 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 (ReservedCapacityInstanceType) Values() []ReservedCapacityInstanceType { + return []ReservedCapacityInstanceType{ + "ml.p4d.24xlarge", + "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", + "ml.trn2.48xlarge", + } +} + +type ReservedCapacityStatus string + +// Enum values for ReservedCapacityStatus +const ( + ReservedCapacityStatusPending ReservedCapacityStatus = "Pending" + ReservedCapacityStatusActive ReservedCapacityStatus = "Active" + ReservedCapacityStatusScheduled ReservedCapacityStatus = "Scheduled" + ReservedCapacityStatusExpired ReservedCapacityStatus = "Expired" + ReservedCapacityStatusFailed ReservedCapacityStatus = "Failed" +) + +// Values returns all known values for ReservedCapacityStatus. 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 (ReservedCapacityStatus) Values() []ReservedCapacityStatus { + return []ReservedCapacityStatus{ + "Pending", + "Active", + "Scheduled", + "Expired", + "Failed", + } +} + type ResourceCatalogSortBy string // Enum values for ResourceCatalogSortBy @@ -6193,6 +6413,27 @@ func (ResourceCatalogSortOrder) Values() []ResourceCatalogSortOrder { } } +type ResourceSharingStrategy string + +// Enum values for ResourceSharingStrategy +const ( + ResourceSharingStrategyLend ResourceSharingStrategy = "Lend" + ResourceSharingStrategyDontlend ResourceSharingStrategy = "DontLend" + ResourceSharingStrategyLendandborrow ResourceSharingStrategy = "LendAndBorrow" +) + +// Values returns all known values for ResourceSharingStrategy. 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 (ResourceSharingStrategy) Values() []ResourceSharingStrategy { + return []ResourceSharingStrategy{ + "Lend", + "DontLend", + "LendAndBorrow", + } +} + type ResourceType string // Enum values for ResourceType @@ -6441,6 +6682,25 @@ func (SageMakerImageName) Values() []SageMakerImageName { } } +type SageMakerResourceName string + +// Enum values for SageMakerResourceName +const ( + SageMakerResourceNameTrainingJob SageMakerResourceName = "training-job" + SageMakerResourceNameHyperpodCluster SageMakerResourceName = "hyperpod-cluster" +) + +// Values returns all known values for SageMakerResourceName. 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 (SageMakerResourceName) Values() []SageMakerResourceName { + return []SageMakerResourceName{ + "training-job", + "hyperpod-cluster", + } +} + type SagemakerServicecatalogStatus string // Enum values for SagemakerServicecatalogStatus @@ -6461,6 +6721,45 @@ func (SagemakerServicecatalogStatus) Values() []SagemakerServicecatalogStatus { } } +type SchedulerResourceStatus string + +// Enum values for SchedulerResourceStatus +const ( + SchedulerResourceStatusCreating SchedulerResourceStatus = "Creating" + SchedulerResourceStatusCreateFailed SchedulerResourceStatus = "CreateFailed" + SchedulerResourceStatusCreateRollbackFailed SchedulerResourceStatus = "CreateRollbackFailed" + SchedulerResourceStatusCreated SchedulerResourceStatus = "Created" + SchedulerResourceStatusUpdating SchedulerResourceStatus = "Updating" + SchedulerResourceStatusUpdateFailed SchedulerResourceStatus = "UpdateFailed" + SchedulerResourceStatusUpdateRollbackFailed SchedulerResourceStatus = "UpdateRollbackFailed" + SchedulerResourceStatusUpdated SchedulerResourceStatus = "Updated" + SchedulerResourceStatusDeleting SchedulerResourceStatus = "Deleting" + SchedulerResourceStatusDeleteFailed SchedulerResourceStatus = "DeleteFailed" + SchedulerResourceStatusDeleteRollbackFailed SchedulerResourceStatus = "DeleteRollbackFailed" + SchedulerResourceStatusDeleted SchedulerResourceStatus = "Deleted" +) + +// Values returns all known values for SchedulerResourceStatus. 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 (SchedulerResourceStatus) Values() []SchedulerResourceStatus { + return []SchedulerResourceStatus{ + "Creating", + "CreateFailed", + "CreateRollbackFailed", + "Created", + "Updating", + "UpdateFailed", + "UpdateRollbackFailed", + "Updated", + "Deleting", + "DeleteFailed", + "DeleteRollbackFailed", + "Deleted", + } +} + type ScheduleStatus string // Enum values for ScheduleStatus @@ -6672,6 +6971,28 @@ func (SortBy) Values() []SortBy { } } +type SortClusterSchedulerConfigBy string + +// Enum values for SortClusterSchedulerConfigBy +const ( + SortClusterSchedulerConfigByName SortClusterSchedulerConfigBy = "Name" + SortClusterSchedulerConfigByCreationTime SortClusterSchedulerConfigBy = "CreationTime" + SortClusterSchedulerConfigByStatus SortClusterSchedulerConfigBy = "Status" +) + +// Values returns all known values for SortClusterSchedulerConfigBy. 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 (SortClusterSchedulerConfigBy) Values() []SortClusterSchedulerConfigBy { + return []SortClusterSchedulerConfigBy{ + "Name", + "CreationTime", + "Status", + } +} + type SortContextsBy string // Enum values for SortContextsBy @@ -6807,6 +7128,29 @@ func (SortPipelinesBy) Values() []SortPipelinesBy { } } +type SortQuotaBy string + +// Enum values for SortQuotaBy +const ( + SortQuotaByName SortQuotaBy = "Name" + SortQuotaByCreationTime SortQuotaBy = "CreationTime" + SortQuotaByStatus SortQuotaBy = "Status" + SortQuotaByClusterArn SortQuotaBy = "ClusterArn" +) + +// Values returns all known values for SortQuotaBy. 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 (SortQuotaBy) Values() []SortQuotaBy { + return []SortQuotaBy{ + "Name", + "CreationTime", + "Status", + "ClusterArn", + } +} + type SortTrackingServerBy string // Enum values for SortTrackingServerBy @@ -7486,6 +7830,7 @@ const ( TrainingInstanceTypeMlP4de24xlarge TrainingInstanceType = "ml.p4de.24xlarge" TrainingInstanceTypeMlP548xlarge TrainingInstanceType = "ml.p5.48xlarge" TrainingInstanceTypeMlP5e48xlarge TrainingInstanceType = "ml.p5e.48xlarge" + TrainingInstanceTypeMlP5en48xlarge TrainingInstanceType = "ml.p5en.48xlarge" TrainingInstanceTypeMlC5Xlarge TrainingInstanceType = "ml.c5.xlarge" TrainingInstanceTypeMlC52xlarge TrainingInstanceType = "ml.c5.2xlarge" TrainingInstanceTypeMlC54xlarge TrainingInstanceType = "ml.c5.4xlarge" @@ -7523,6 +7868,7 @@ const ( TrainingInstanceTypeMlTrn12xlarge TrainingInstanceType = "ml.trn1.2xlarge" TrainingInstanceTypeMlTrn132xlarge TrainingInstanceType = "ml.trn1.32xlarge" TrainingInstanceTypeMlTrn1n32xlarge TrainingInstanceType = "ml.trn1n.32xlarge" + TrainingInstanceTypeMlTrn248xlarge TrainingInstanceType = "ml.trn2.48xlarge" TrainingInstanceTypeMlM6iLarge TrainingInstanceType = "ml.m6i.large" TrainingInstanceTypeMlM6iXlarge TrainingInstanceType = "ml.m6i.xlarge" TrainingInstanceTypeMlM6i2xlarge TrainingInstanceType = "ml.m6i.2xlarge" @@ -7600,6 +7946,7 @@ func (TrainingInstanceType) Values() []TrainingInstanceType { "ml.p4de.24xlarge", "ml.p5.48xlarge", "ml.p5e.48xlarge", + "ml.p5en.48xlarge", "ml.c5.xlarge", "ml.c5.2xlarge", "ml.c5.4xlarge", @@ -7637,6 +7984,7 @@ func (TrainingInstanceType) Values() []TrainingInstanceType { "ml.trn1.2xlarge", "ml.trn1.32xlarge", "ml.trn1n.32xlarge", + "ml.trn2.48xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", @@ -7745,6 +8093,88 @@ func (TrainingJobStatus) Values() []TrainingJobStatus { } } +type TrainingPlanFilterName string + +// Enum values for TrainingPlanFilterName +const ( + TrainingPlanFilterNameStatus TrainingPlanFilterName = "Status" +) + +// Values returns all known values for TrainingPlanFilterName. 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 (TrainingPlanFilterName) Values() []TrainingPlanFilterName { + return []TrainingPlanFilterName{ + "Status", + } +} + +type TrainingPlanSortBy string + +// Enum values for TrainingPlanSortBy +const ( + TrainingPlanSortByName TrainingPlanSortBy = "TrainingPlanName" + TrainingPlanSortByStartTime TrainingPlanSortBy = "StartTime" + TrainingPlanSortByStatus TrainingPlanSortBy = "Status" +) + +// Values returns all known values for TrainingPlanSortBy. 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 (TrainingPlanSortBy) Values() []TrainingPlanSortBy { + return []TrainingPlanSortBy{ + "TrainingPlanName", + "StartTime", + "Status", + } +} + +type TrainingPlanSortOrder string + +// Enum values for TrainingPlanSortOrder +const ( + TrainingPlanSortOrderAscending TrainingPlanSortOrder = "Ascending" + TrainingPlanSortOrderDescending TrainingPlanSortOrder = "Descending" +) + +// Values returns all known values for TrainingPlanSortOrder. 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 (TrainingPlanSortOrder) Values() []TrainingPlanSortOrder { + return []TrainingPlanSortOrder{ + "Ascending", + "Descending", + } +} + +type TrainingPlanStatus string + +// Enum values for TrainingPlanStatus +const ( + TrainingPlanStatusPending TrainingPlanStatus = "Pending" + TrainingPlanStatusActive TrainingPlanStatus = "Active" + TrainingPlanStatusScheduled TrainingPlanStatus = "Scheduled" + TrainingPlanStatusExpired TrainingPlanStatus = "Expired" + TrainingPlanStatusFailed TrainingPlanStatus = "Failed" +) + +// Values returns all known values for TrainingPlanStatus. 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 (TrainingPlanStatus) Values() []TrainingPlanStatus { + return []TrainingPlanStatus{ + "Pending", + "Active", + "Scheduled", + "Expired", + "Failed", + } +} + type TrainingRepositoryAccessMode string // Enum values for TrainingRepositoryAccessMode diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 44be12f8774..7ed3556d258 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -3281,6 +3281,22 @@ type ClusterInstanceGroupDetails struct { // [Give SageMaker Access to Resources in your Amazon VPC]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html OverrideVpcConfig *VpcConfig + // The current status of the cluster instance group. + // + // - InService : The instance group is active and healthy. + // + // - Creating : The instance group is being provisioned. + // + // - Updating : The instance group is being updated. + // + // - Failed : The instance group has failed to provision or is no longer healthy. + // + // - Degraded : The instance group is degraded, meaning that some instances have + // failed to provision or are no longer healthy. + // + // - Deleting : The instance group is being deleted. + Status InstanceGroupStatus + // The number of instances you specified to add to the instance group of a // SageMaker HyperPod cluster. TargetCount *int32 @@ -3294,6 +3310,19 @@ type ClusterInstanceGroupDetails struct { // [CPU cores and threads per CPU core per instance type]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html ThreadsPerCore *int32 + // The Amazon Resource Name (ARN); of the training plan associated with this + // cluster instance group. + // + // For more information about how to reserve GPU capacity for your SageMaker + // HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArn *string + + // The current status of the training plan associated with this cluster instance + // group. + TrainingPlanStatus *string + noSmithyDocumentSerde } @@ -3350,6 +3379,15 @@ type ClusterInstanceGroupSpecification struct { // [CPU cores and threads per CPU core per instance type]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html ThreadsPerCore *int32 + // The Amazon Resource Name (ARN); of the training plan to use for this cluster + // instance group. + // + // For more information about how to reserve GPU capacity for your SageMaker + // HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArn *string + noSmithyDocumentSerde } @@ -3536,6 +3574,46 @@ type ClusterOrchestratorEksConfig struct { noSmithyDocumentSerde } +// Summary of the cluster policy. +type ClusterSchedulerConfigSummary struct { + + // ARN of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigArn *string + + // ID of the cluster policy. + // + // This member is required. + ClusterSchedulerConfigId *string + + // Creation time of the cluster policy. + // + // This member is required. + CreationTime *time.Time + + // Name of the cluster policy. + // + // This member is required. + Name *string + + // Status of the cluster policy. + // + // This member is required. + Status SchedulerResourceStatus + + // ARN of the cluster. + ClusterArn *string + + // Version of the cluster policy. + ClusterSchedulerConfigVersion *int32 + + // Last modified time of the cluster policy. + LastModifiedTime *time.Time + + noSmithyDocumentSerde +} + // Lists a summary of the properties of a SageMaker HyperPod cluster. type ClusterSummary struct { @@ -3559,6 +3637,15 @@ type ClusterSummary struct { // This member is required. CreationTime *time.Time + // A list of Amazon Resource Names (ARNs) of the training plans associated with + // this cluster. + // + // For more information about how to reserve GPU capacity for your SageMaker + // HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArns []string + noSmithyDocumentSerde } @@ -3784,6 +3871,118 @@ type CompilationJobSummary struct { noSmithyDocumentSerde } +// Configuration of the compute allocation definition for an entity. This includes +// the resource sharing option and the setting to preempt low priority tasks. +type ComputeQuotaConfig struct { + + // Allocate compute resources by instance types. + ComputeQuotaResources []ComputeQuotaResourceConfig + + // Allows workloads from within an entity to preempt same-team workloads. When set + // to LowerPriority , the entity's lower priority tasks are preempted by their own + // higher priority tasks. + // + // Default is LowerPriority . + PreemptTeamTasks PreemptTeamTasks + + // Resource sharing configuration. This defines how an entity can lend and borrow + // idle compute with other entities within the cluster. + ResourceSharingConfig *ResourceSharingConfig + + noSmithyDocumentSerde +} + +// Configuration of the resources used for the compute allocation definition. +type ComputeQuotaResourceConfig struct { + + // The number of instances to add to the instance group of a SageMaker HyperPod + // cluster. + // + // This member is required. + Count *int32 + + // The instance type of the instance group for the cluster. + // + // This member is required. + InstanceType ClusterInstanceType + + noSmithyDocumentSerde +} + +// Summary of the compute allocation definition. +type ComputeQuotaSummary struct { + + // ARN of the compute allocation definition. + // + // This member is required. + ComputeQuotaArn *string + + // ID of the compute allocation definition. + // + // This member is required. + ComputeQuotaId *string + + // The target entity to allocate compute resources to. + // + // This member is required. + ComputeQuotaTarget *ComputeQuotaTarget + + // Creation time of the compute allocation definition. + // + // This member is required. + CreationTime *time.Time + + // Name of the compute allocation definition. + // + // This member is required. + Name *string + + // Status of the compute allocation definition. + // + // This member is required. + Status SchedulerResourceStatus + + // The state of the compute allocation being described. Use to enable or disable + // compute allocation. + // + // Default is Enabled . + ActivationState ActivationState + + // ARN of the cluster. + ClusterArn *string + + // Configuration of the compute allocation definition. This includes the resource + // sharing option, and the setting to preempt low priority tasks. + ComputeQuotaConfig *ComputeQuotaConfig + + // Version of the compute allocation definition. + ComputeQuotaVersion *int32 + + // Last modified time of the compute allocation definition. + LastModifiedTime *time.Time + + noSmithyDocumentSerde +} + +// The target entity to allocate compute resources to. +type ComputeQuotaTarget struct { + + // Name of the team to allocate compute resources to. + // + // This member is required. + TeamName *string + + // Assigned entity fair-share weight. Idle compute will be shared across entities + // based on these assigned weights. This weight is only used when FairShare is + // enabled. + // + // A weight of 0 is the lowest priority and 100 is the highest. Weight 0 is the + // default. + FairShareWeight *int32 + + noSmithyDocumentSerde +} + // Metadata for a Condition step. type ConditionStepMetadata struct { @@ -4033,6 +4232,7 @@ type ConvergenceDetected struct { // The following types satisfy this interface: // // CustomFileSystemMemberEFSFileSystem +// CustomFileSystemMemberFSxLustreFileSystem type CustomFileSystem interface { isCustomFileSystem() } @@ -4046,6 +4246,15 @@ type CustomFileSystemMemberEFSFileSystem struct { func (*CustomFileSystemMemberEFSFileSystem) isCustomFileSystem() {} +// A custom file system in Amazon FSx for Lustre. +type CustomFileSystemMemberFSxLustreFileSystem struct { + Value FSxLustreFileSystem + + noSmithyDocumentSerde +} + +func (*CustomFileSystemMemberFSxLustreFileSystem) isCustomFileSystem() {} + // The settings for assigning a custom file system to a user profile or space for // an Amazon SageMaker Domain. Permitted users can access this file system in // Amazon SageMaker Studio. @@ -4053,6 +4262,7 @@ func (*CustomFileSystemMemberEFSFileSystem) isCustomFileSystem() {} // The following types satisfy this interface: // // CustomFileSystemConfigMemberEFSFileSystemConfig +// CustomFileSystemConfigMemberFSxLustreFileSystemConfig type CustomFileSystemConfig interface { isCustomFileSystemConfig() } @@ -4066,6 +4276,15 @@ type CustomFileSystemConfigMemberEFSFileSystemConfig struct { func (*CustomFileSystemConfigMemberEFSFileSystemConfig) isCustomFileSystemConfig() {} +// The settings for a custom Amazon FSx for Lustre file system. +type CustomFileSystemConfigMemberFSxLustreFileSystemConfig struct { + Value FSxLustreFileSystemConfig + + noSmithyDocumentSerde +} + +func (*CustomFileSystemConfigMemberFSxLustreFileSystemConfig) isCustomFileSystemConfig() {} + // A custom SageMaker image. For more information, see [Bring your own SageMaker image]. // // [Bring your own SageMaker image]: https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html @@ -5822,6 +6041,19 @@ type EnvironmentParameterRanges struct { noSmithyDocumentSerde } +// This is an error field object that contains the error code and the reason for +// an operation failure. +type ErrorInfo struct { + + // The error code for an invalid or failed operation. + Code *string + + // The failure reason for the operation. + Reason *string + + noSmithyDocumentSerde +} + // The properties of an experiment as returned by the [Search] API. // // [Search]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html @@ -6450,6 +6682,34 @@ type FlowDefinitionSummary struct { noSmithyDocumentSerde } +// A custom file system in Amazon FSx for Lustre. +type FSxLustreFileSystem struct { + + // Amazon FSx for Lustre file system ID. + // + // This member is required. + FileSystemId *string + + noSmithyDocumentSerde +} + +// The settings for assigning a custom Amazon FSx for Lustre file system to a user +// profile or space for an Amazon SageMaker Domain. +type FSxLustreFileSystemConfig struct { + + // The globally unique, 17-digit, ID of the file system, assigned by Amazon FSx + // for Lustre. + // + // This member is required. + FileSystemId *string + + // The path to the file system directory that is accessible in Amazon SageMaker + // Studio. Permitted users can access only this directory and below. + FileSystemPath *string + + noSmithyDocumentSerde +} + // The generative AI settings for the SageMaker Canvas application. // // Configure these settings for Canvas users starting chats with generative AI @@ -13405,6 +13665,55 @@ type ParentHyperParameterTuningJob struct { noSmithyDocumentSerde } +// Configuration settings for the SageMaker Partner AI App. +type PartnerAppConfig struct { + + // The list of users that are given admin access to the SageMaker Partner AI App. + AdminUsers []string + + // This is a map of required inputs for a SageMaker Partner AI App. Based on the + // application type, the map is populated with a key and value pair that is + // specific to the user and application. + Arguments map[string]string + + noSmithyDocumentSerde +} + +// Maintenance configuration settings for the SageMaker Partner AI App. +type PartnerAppMaintenanceConfig struct { + + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour + // standard time that weekly maintenance updates are scheduled. This value must + // take the following format: 3-letter-day:24-h-hour:minute . For example: + // TUE:03:30 . + MaintenanceWindowStart *string + + noSmithyDocumentSerde +} + +// A subset of information related to a SageMaker Partner AI App. This information +// is used as part of the ListPartnerApps API response. +type PartnerAppSummary struct { + + // The ARN of the SageMaker Partner AI App. + Arn *string + + // The creation time of the SageMaker Partner AI App. + CreationTime *time.Time + + // The name of the SageMaker Partner AI App. + Name *string + + // The status of the SageMaker Partner AI App. + Status PartnerAppStatus + + // The type of SageMaker Partner AI App to create. Must be one of the following: + // lakera-guard , comet , deepchecks-llm-evaluation , or fiddler . + Type PartnerAppType + + noSmithyDocumentSerde +} + // The summary of an in-progress deployment when an endpoint is creating or // updating with a new endpoint configuration. type PendingDeploymentSummary struct { @@ -13860,6 +14169,27 @@ type PredefinedMetricSpecification struct { noSmithyDocumentSerde } +// Priority class configuration. When included in PriorityClasses , these class +// configurations define how tasks are queued. +type PriorityClass struct { + + // Name of the priority class. + // + // This member is required. + Name *string + + // Weight of the priority class. The value is within a range from 0 to 100, where + // 0 is the default. + // + // A weight of 0 is the lowest priority and 100 is the highest. Weight 0 is the + // default. + // + // This member is required. + Weight *int32 + + noSmithyDocumentSerde +} + // Configuration for the cluster used to run a processing job. type ProcessingClusterConfig struct { @@ -15562,6 +15892,91 @@ type RepositoryAuthConfig struct { noSmithyDocumentSerde } +// Details about a reserved capacity offering for a training plan offering. +// +// For more information about how to reserve GPU capacity for your SageMaker +// HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +type ReservedCapacityOffering struct { + + // The number of instances in the reserved capacity offering. + // + // This member is required. + InstanceCount *int32 + + // The instance type for the reserved capacity offering. + // + // This member is required. + InstanceType ReservedCapacityInstanceType + + // The availability zone for the reserved capacity offering. + AvailabilityZone *string + + // The number of whole hours in the total duration for this reserved capacity + // offering. + DurationHours *int64 + + // The additional minutes beyond whole hours in the total duration for this + // reserved capacity offering. + DurationMinutes *int64 + + // The end time of the reserved capacity offering. + EndTime *time.Time + + // The start time of the reserved capacity offering. + StartTime *time.Time + + noSmithyDocumentSerde +} + +// Details of a reserved capacity for the training plan. +// +// For more information about how to reserve GPU capacity for your SageMaker +// HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +type ReservedCapacitySummary struct { + + // The instance type for the reserved capacity. + // + // This member is required. + InstanceType ReservedCapacityInstanceType + + // The Amazon Resource Name (ARN); of the reserved capacity. + // + // This member is required. + ReservedCapacityArn *string + + // The current status of the reserved capacity. + // + // This member is required. + Status ReservedCapacityStatus + + // The total number of instances in the reserved capacity. + // + // This member is required. + TotalInstanceCount *int32 + + // The availability zone for the reserved capacity. + AvailabilityZone *string + + // The number of whole hours in the total duration for this reserved capacity. + DurationHours *int64 + + // The additional minutes beyond whole hours in the total duration for this + // reserved capacity. + DurationMinutes *int64 + + // The end time of the reserved capacity. + EndTime *time.Time + + // The start time of the reserved capacity. + StartTime *time.Time + + noSmithyDocumentSerde +} + // The resolved attributes. type ResolvedAttributes struct { @@ -15679,6 +16094,10 @@ type ResourceConfig struct { // for subsequent training jobs. KeepAlivePeriodInSeconds *int32 + // The Amazon Resource Name (ARN); of the training plan to use for this resource + // configuration. + TrainingPlanArn *string + // The Amazon Web Services KMS key that SageMaker uses to encrypt data on the // storage volume attached to the ML compute instance(s) that run the training job. // @@ -15739,6 +16158,33 @@ type ResourceLimits struct { noSmithyDocumentSerde } +// Resource sharing configuration. +type ResourceSharingConfig struct { + + // The strategy of how idle compute is shared within the cluster. The following + // are the options of strategies. + // + // - DontLend : entities do not lend idle compute. + // + // - Lend : entities can lend idle compute to entities that can borrow. + // + // - LendandBorrow : entities can lend idle compute and borrow idle compute from + // other entities. + // + // Default is LendandBorrow . + // + // This member is required. + Strategy ResourceSharingStrategy + + // The limit on how much idle compute can be borrowed.The values can be 1 - 500 + // percent of idle compute that the team is allowed to borrow. + // + // Default is 50 . + BorrowLimit *int32 + + noSmithyDocumentSerde +} + // Specifies the ARN's of a SageMaker image and SageMaker image version, and the // instance type that the version runs on. type ResourceSpec struct { @@ -16260,6 +16706,27 @@ type ScheduleConfig struct { noSmithyDocumentSerde } +// Cluster policy configuration. This policy is used for task prioritization and +// fair-share allocation. This helps prioritize critical workloads and distributes +// idle compute across entities. +type SchedulerConfig struct { + + // When enabled, entities borrow idle compute based on their assigned + // FairShareWeight . + // + // When disabled, entities borrow idle compute based on a first-come first-serve + // basis. + // + // Default is Enabled . + FairShare FairShare + + // List of the priority classes, PriorityClass , of the cluster policy. When + // specified, these class configurations define how tasks are queued. + PriorityClasses []PriorityClass + + noSmithyDocumentSerde +} + // A multi-expression that searches for the specified resource or resources in a // search. All resource objects that satisfy the expression's condition are // included in the search results. You must specify at least one subexpression, @@ -18137,12 +18604,175 @@ type TrainingJobSummary struct { // Stopped ). TrainingEndTime *time.Time + // The Amazon Resource Name (ARN); of the training plan associated with this + // training job. + // + // For more information about how to reserve GPU capacity for your SageMaker + // HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. + // + // [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html + TrainingPlanArn *string + // The status of the warm pool associated with the training job. WarmPoolStatus *WarmPoolStatus noSmithyDocumentSerde } +// A filter to apply when listing or searching for training plans. +// +// For more information about how to reserve GPU capacity for your SageMaker +// HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +type TrainingPlanFilter struct { + + // The name of the filter field (e.g., Status, InstanceType). + // + // This member is required. + Name TrainingPlanFilterName + + // The value to filter by for the specified field. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// Details about a training plan offering. +// +// For more information about how to reserve GPU capacity for your SageMaker +// HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +type TrainingPlanOffering struct { + + // The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod) for + // this training plan offering. + // + // Training plans are specific to their target resource. + // + // - A training plan designed for SageMaker training jobs can only be used to + // schedule and run training jobs. + // + // - A training plan for HyperPod clusters can be used exclusively to provide + // compute resources to a cluster's instance group. + // + // This member is required. + TargetResources []SageMakerResourceName + + // The unique identifier for this training plan offering. + // + // This member is required. + TrainingPlanOfferingId *string + + // The currency code for the upfront fee (e.g., USD). + CurrencyCode *string + + // The number of whole hours in the total duration for this training plan offering. + DurationHours *int64 + + // The additional minutes beyond whole hours in the total duration for this + // training plan offering. + DurationMinutes *int64 + + // The requested end time that the user specified when searching for the training + // plan offering. + RequestedEndTimeBefore *time.Time + + // The requested start time that the user specified when searching for the + // training plan offering. + RequestedStartTimeAfter *time.Time + + // A list of reserved capacity offerings associated with this training plan + // offering. + ReservedCapacityOfferings []ReservedCapacityOffering + + // The upfront fee for this training plan offering. + UpfrontFee *string + + noSmithyDocumentSerde +} + +// Details of the training plan. +// +// For more information about how to reserve GPU capacity for your SageMaker +// HyperPod clusters using Amazon SageMaker Training Plan, see [CreateTrainingPlan]. +// +// [CreateTrainingPlan]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html +type TrainingPlanSummary struct { + + // The current status of the training plan (e.g., Pending, Active, Expired). To + // see the complete list of status values available for a training plan, refer to + // the Status attribute within the [TrainingPlanSummary] object. + // + // [TrainingPlanSummary]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanSummary.html + // + // This member is required. + Status TrainingPlanStatus + + // The Amazon Resource Name (ARN); of the training plan. + // + // This member is required. + TrainingPlanArn *string + + // The name of the training plan. + // + // This member is required. + TrainingPlanName *string + + // The number of instances currently available for use in this training plan. + AvailableInstanceCount *int32 + + // The currency code for the upfront fee (e.g., USD). + CurrencyCode *string + + // The number of whole hours in the total duration for this training plan. + DurationHours *int64 + + // The additional minutes beyond whole hours in the total duration for this + // training plan. + DurationMinutes *int64 + + // The end time of the training plan. + EndTime *time.Time + + // The number of instances currently in use from this training plan. + InUseInstanceCount *int32 + + // A list of reserved capacities associated with this training plan, including + // details such as instance types, counts, and availability zones. + ReservedCapacitySummaries []ReservedCapacitySummary + + // The start time of the training plan. + StartTime *time.Time + + // A message providing additional information about the current status of the + // training plan. + StatusMessage *string + + // The target resources (e.g., training jobs, HyperPod clusters) that can use this + // training plan. + // + // Training plans are specific to their target resource. + // + // - A training plan designed for SageMaker training jobs can only be used to + // schedule and run training jobs. + // + // - A training plan for HyperPod clusters can be used exclusively to provide + // compute resources to a cluster's instance group. + TargetResources []SageMakerResourceName + + // The total number of instances reserved in this training plan. + TotalInstanceCount *int32 + + // The upfront fee for the training plan. + UpfrontFee *string + + noSmithyDocumentSerde +} + // An object containing authentication information for a private Docker registry. type TrainingRepositoryAuthConfig struct { diff --git a/service/sagemaker/types/types_exported_test.go b/service/sagemaker/types/types_exported_test.go index cb3b5aa7979..dfb5dd86cee 100644 --- a/service/sagemaker/types/types_exported_test.go +++ b/service/sagemaker/types/types_exported_test.go @@ -106,6 +106,9 @@ func ExampleCustomFileSystem_outputUsage() { case *types.CustomFileSystemMemberEFSFileSystem: _ = v.Value // Value is types.EFSFileSystem + case *types.CustomFileSystemMemberFSxLustreFileSystem: + _ = v.Value // Value is types.FSxLustreFileSystem + case *types.UnknownUnionMember: fmt.Println("unknown tag:", v.Tag) @@ -115,6 +118,7 @@ func ExampleCustomFileSystem_outputUsage() { } } +var _ *types.FSxLustreFileSystem var _ *types.EFSFileSystem func ExampleCustomFileSystemConfig_outputUsage() { @@ -124,6 +128,9 @@ func ExampleCustomFileSystemConfig_outputUsage() { case *types.CustomFileSystemConfigMemberEFSFileSystemConfig: _ = v.Value // Value is types.EFSFileSystemConfig + case *types.CustomFileSystemConfigMemberFSxLustreFileSystemConfig: + _ = v.Value // Value is types.FSxLustreFileSystemConfig + case *types.UnknownUnionMember: fmt.Println("unknown tag:", v.Tag) @@ -133,6 +140,7 @@ func ExampleCustomFileSystemConfig_outputUsage() { } } +var _ *types.FSxLustreFileSystemConfig var _ *types.EFSFileSystemConfig func ExampleMetricSpecification_outputUsage() { diff --git a/service/sagemaker/validators.go b/service/sagemaker/validators.go index 579bf8cf7e3..2907b0f87be 100644 --- a/service/sagemaker/validators.go +++ b/service/sagemaker/validators.go @@ -270,6 +270,26 @@ func (m *validateOpCreateCluster) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpCreateClusterSchedulerConfig struct { +} + +func (*validateOpCreateClusterSchedulerConfig) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateClusterSchedulerConfig) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateClusterSchedulerConfigInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateClusterSchedulerConfigInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateCodeRepository struct { } @@ -310,6 +330,26 @@ func (m *validateOpCreateCompilationJob) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpCreateComputeQuota struct { +} + +func (*validateOpCreateComputeQuota) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateComputeQuota) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateComputeQuotaInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateComputeQuotaInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateContext struct { } @@ -1010,6 +1050,46 @@ func (m *validateOpCreateOptimizationJob) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpCreatePartnerApp struct { +} + +func (*validateOpCreatePartnerApp) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreatePartnerApp) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreatePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreatePartnerAppInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreatePartnerAppPresignedUrl struct { +} + +func (*validateOpCreatePartnerAppPresignedUrl) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreatePartnerAppPresignedUrl) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreatePartnerAppPresignedUrlInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreatePartnerAppPresignedUrlInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreatePipeline struct { } @@ -1190,6 +1270,26 @@ func (m *validateOpCreateTrainingJob) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpCreateTrainingPlan struct { +} + +func (*validateOpCreateTrainingPlan) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateTrainingPlan) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateTrainingPlanInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateTrainingPlanInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateTransformJob struct { } @@ -1450,6 +1550,26 @@ func (m *validateOpDeleteCluster) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpDeleteClusterSchedulerConfig struct { +} + +func (*validateOpDeleteClusterSchedulerConfig) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteClusterSchedulerConfig) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteClusterSchedulerConfigInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteClusterSchedulerConfigInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteCodeRepository struct { } @@ -1490,6 +1610,26 @@ func (m *validateOpDeleteCompilationJob) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpDeleteComputeQuota struct { +} + +func (*validateOpDeleteComputeQuota) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteComputeQuota) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteComputeQuotaInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteComputeQuotaInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteContext struct { } @@ -2150,6 +2290,26 @@ func (m *validateOpDeleteOptimizationJob) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpDeletePartnerApp struct { +} + +func (*validateOpDeletePartnerApp) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeletePartnerApp) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeletePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeletePartnerAppInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeletePipeline struct { } @@ -2550,6 +2710,26 @@ func (m *validateOpDescribeClusterNode) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpDescribeClusterSchedulerConfig struct { +} + +func (*validateOpDescribeClusterSchedulerConfig) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeClusterSchedulerConfig) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeClusterSchedulerConfigInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeClusterSchedulerConfigInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeCodeRepository struct { } @@ -2590,6 +2770,26 @@ func (m *validateOpDescribeCompilationJob) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpDescribeComputeQuota struct { +} + +func (*validateOpDescribeComputeQuota) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeComputeQuota) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeComputeQuotaInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeComputeQuotaInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeContext struct { } @@ -3330,6 +3530,26 @@ func (m *validateOpDescribeOptimizationJob) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpDescribePartnerApp struct { +} + +func (*validateOpDescribePartnerApp) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribePartnerApp) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribePartnerAppInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribePipelineDefinitionForExecution struct { } @@ -3510,6 +3730,26 @@ func (m *validateOpDescribeTrainingJob) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpDescribeTrainingPlan struct { +} + +func (*validateOpDescribeTrainingPlan) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeTrainingPlan) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeTrainingPlanInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeTrainingPlanInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeTransformJob struct { } @@ -4110,6 +4350,26 @@ func (m *validateOpListTrainingJobsForHyperParameterTuningJob) HandleInitialize( return next.HandleInitialize(ctx, in) } +type validateOpListTrainingPlans struct { +} + +func (*validateOpListTrainingPlans) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListTrainingPlans) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListTrainingPlansInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListTrainingPlansInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutModelPackageGroupPolicy struct { } @@ -4210,6 +4470,26 @@ func (m *validateOpSearch) HandleInitialize(ctx context.Context, in middleware.I return next.HandleInitialize(ctx, in) } +type validateOpSearchTrainingPlanOfferings struct { +} + +func (*validateOpSearchTrainingPlanOfferings) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSearchTrainingPlanOfferings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SearchTrainingPlanOfferingsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSearchTrainingPlanOfferingsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpSendPipelineExecutionStepFailure struct { } @@ -4770,6 +5050,26 @@ func (m *validateOpUpdateCluster) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpUpdateClusterSchedulerConfig struct { +} + +func (*validateOpUpdateClusterSchedulerConfig) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateClusterSchedulerConfig) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateClusterSchedulerConfigInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateClusterSchedulerConfigInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateClusterSoftware struct { } @@ -4810,6 +5110,26 @@ func (m *validateOpUpdateCodeRepository) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpUpdateComputeQuota struct { +} + +func (*validateOpUpdateComputeQuota) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateComputeQuota) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateComputeQuotaInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateComputeQuotaInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateContext struct { } @@ -5250,6 +5570,26 @@ func (m *validateOpUpdateNotebookInstanceLifecycleConfig) HandleInitialize(ctx c return next.HandleInitialize(ctx, in) } +type validateOpUpdatePartnerApp struct { +} + +func (*validateOpUpdatePartnerApp) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdatePartnerApp) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdatePartnerAppInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdatePartnerAppInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdatePipelineExecution struct { } @@ -5502,6 +5842,10 @@ func addOpCreateClusterValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateCluster{}, middleware.After) } +func addOpCreateClusterSchedulerConfigValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateClusterSchedulerConfig{}, middleware.After) +} + func addOpCreateCodeRepositoryValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateCodeRepository{}, middleware.After) } @@ -5510,6 +5854,10 @@ func addOpCreateCompilationJobValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpCreateCompilationJob{}, middleware.After) } +func addOpCreateComputeQuotaValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateComputeQuota{}, middleware.After) +} + func addOpCreateContextValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateContext{}, middleware.After) } @@ -5650,6 +5998,14 @@ func addOpCreateOptimizationJobValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpCreateOptimizationJob{}, middleware.After) } +func addOpCreatePartnerAppValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreatePartnerApp{}, middleware.After) +} + +func addOpCreatePartnerAppPresignedUrlValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreatePartnerAppPresignedUrl{}, middleware.After) +} + func addOpCreatePipelineValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreatePipeline{}, middleware.After) } @@ -5686,6 +6042,10 @@ func addOpCreateTrainingJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateTrainingJob{}, middleware.After) } +func addOpCreateTrainingPlanValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateTrainingPlan{}, middleware.After) +} + func addOpCreateTransformJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateTransformJob{}, middleware.After) } @@ -5738,6 +6098,10 @@ func addOpDeleteClusterValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteCluster{}, middleware.After) } +func addOpDeleteClusterSchedulerConfigValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteClusterSchedulerConfig{}, middleware.After) +} + func addOpDeleteCodeRepositoryValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteCodeRepository{}, middleware.After) } @@ -5746,6 +6110,10 @@ func addOpDeleteCompilationJobValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpDeleteCompilationJob{}, middleware.After) } +func addOpDeleteComputeQuotaValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteComputeQuota{}, middleware.After) +} + func addOpDeleteContextValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteContext{}, middleware.After) } @@ -5878,6 +6246,10 @@ func addOpDeleteOptimizationJobValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpDeleteOptimizationJob{}, middleware.After) } +func addOpDeletePartnerAppValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeletePartnerApp{}, middleware.After) +} + func addOpDeletePipelineValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeletePipeline{}, middleware.After) } @@ -5958,6 +6330,10 @@ func addOpDescribeClusterNodeValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpDescribeClusterNode{}, middleware.After) } +func addOpDescribeClusterSchedulerConfigValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeClusterSchedulerConfig{}, middleware.After) +} + func addOpDescribeCodeRepositoryValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeCodeRepository{}, middleware.After) } @@ -5966,6 +6342,10 @@ func addOpDescribeCompilationJobValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpDescribeCompilationJob{}, middleware.After) } +func addOpDescribeComputeQuotaValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeComputeQuota{}, middleware.After) +} + func addOpDescribeContextValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeContext{}, middleware.After) } @@ -6114,6 +6494,10 @@ func addOpDescribeOptimizationJobValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpDescribeOptimizationJob{}, middleware.After) } +func addOpDescribePartnerAppValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribePartnerApp{}, middleware.After) +} + func addOpDescribePipelineDefinitionForExecutionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribePipelineDefinitionForExecution{}, middleware.After) } @@ -6150,6 +6534,10 @@ func addOpDescribeTrainingJobValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpDescribeTrainingJob{}, middleware.After) } +func addOpDescribeTrainingPlanValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeTrainingPlan{}, middleware.After) +} + func addOpDescribeTransformJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeTransformJob{}, middleware.After) } @@ -6270,6 +6658,10 @@ func addOpListTrainingJobsForHyperParameterTuningJobValidationMiddleware(stack * return stack.Initialize.Add(&validateOpListTrainingJobsForHyperParameterTuningJob{}, middleware.After) } +func addOpListTrainingPlansValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListTrainingPlans{}, middleware.After) +} + func addOpPutModelPackageGroupPolicyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutModelPackageGroupPolicy{}, middleware.After) } @@ -6290,6 +6682,10 @@ func addOpSearchValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpSearch{}, middleware.After) } +func addOpSearchTrainingPlanOfferingsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSearchTrainingPlanOfferings{}, middleware.After) +} + func addOpSendPipelineExecutionStepFailureValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpSendPipelineExecutionStepFailure{}, middleware.After) } @@ -6402,6 +6798,10 @@ func addOpUpdateClusterValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateCluster{}, middleware.After) } +func addOpUpdateClusterSchedulerConfigValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateClusterSchedulerConfig{}, middleware.After) +} + func addOpUpdateClusterSoftwareValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateClusterSoftware{}, middleware.After) } @@ -6410,6 +6810,10 @@ func addOpUpdateCodeRepositoryValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpUpdateCodeRepository{}, middleware.After) } +func addOpUpdateComputeQuotaValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateComputeQuota{}, middleware.After) +} + func addOpUpdateContextValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateContext{}, middleware.After) } @@ -6498,6 +6902,10 @@ func addOpUpdateNotebookInstanceLifecycleConfigValidationMiddleware(stack *middl return stack.Initialize.Add(&validateOpUpdateNotebookInstanceLifecycleConfig{}, middleware.After) } +func addOpUpdatePartnerAppValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdatePartnerApp{}, middleware.After) +} + func addOpUpdatePipelineExecutionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdatePipelineExecution{}, middleware.After) } @@ -7833,6 +8241,78 @@ func validateCollectionConfig(v types.CollectionConfig) error { } } +func validateComputeQuotaConfig(v *types.ComputeQuotaConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComputeQuotaConfig"} + if v.ComputeQuotaResources != nil { + if err := validateComputeQuotaResourceConfigList(v.ComputeQuotaResources); err != nil { + invalidParams.AddNested("ComputeQuotaResources", err.(smithy.InvalidParamsError)) + } + } + if v.ResourceSharingConfig != nil { + if err := validateResourceSharingConfig(v.ResourceSharingConfig); err != nil { + invalidParams.AddNested("ResourceSharingConfig", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComputeQuotaResourceConfig(v *types.ComputeQuotaResourceConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComputeQuotaResourceConfig"} + if len(v.InstanceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("InstanceType")) + } + if v.Count == nil { + invalidParams.Add(smithy.NewErrParamRequired("Count")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComputeQuotaResourceConfigList(v []types.ComputeQuotaResourceConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComputeQuotaResourceConfigList"} + for i := range v { + if err := validateComputeQuotaResourceConfig(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComputeQuotaTarget(v *types.ComputeQuotaTarget) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComputeQuotaTarget"} + if v.TeamName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TeamName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateContainerDefinition(v *types.ContainerDefinition) error { if v == nil { return nil @@ -7959,6 +8439,11 @@ func validateCustomFileSystem(v types.CustomFileSystem) error { invalidParams.AddNested("[EFSFileSystem]", err.(smithy.InvalidParamsError)) } + case *types.CustomFileSystemMemberFSxLustreFileSystem: + if err := validateFSxLustreFileSystem(&uv.Value); err != nil { + invalidParams.AddNested("[FSxLustreFileSystem]", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -7978,6 +8463,11 @@ func validateCustomFileSystemConfig(v types.CustomFileSystemConfig) error { invalidParams.AddNested("[EFSFileSystemConfig]", err.(smithy.InvalidParamsError)) } + case *types.CustomFileSystemConfigMemberFSxLustreFileSystemConfig: + if err := validateFSxLustreFileSystemConfig(&uv.Value); err != nil { + invalidParams.AddNested("[FSxLustreFileSystemConfig]", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -9007,6 +9497,36 @@ func validateFlowDefinitionOutputConfig(v *types.FlowDefinitionOutputConfig) err } } +func validateFSxLustreFileSystem(v *types.FSxLustreFileSystem) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FSxLustreFileSystem"} + if v.FileSystemId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FileSystemId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFSxLustreFileSystemConfig(v *types.FSxLustreFileSystemConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FSxLustreFileSystemConfig"} + if v.FileSystemId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FileSystemId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGitConfig(v *types.GitConfig) error { if v == nil { return nil @@ -11234,6 +11754,41 @@ func validatePipelineDefinitionS3Location(v *types.PipelineDefinitionS3Location) } } +func validatePriorityClass(v *types.PriorityClass) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PriorityClass"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Weight == nil { + invalidParams.Add(smithy.NewErrParamRequired("Weight")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePriorityClassList(v []types.PriorityClass) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PriorityClassList"} + for i := range v { + if err := validatePriorityClass(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateProcessingClusterConfig(v *types.ProcessingClusterConfig) error { if v == nil { return nil @@ -11759,6 +12314,21 @@ func validateResourceLimits(v *types.ResourceLimits) error { } } +func validateResourceSharingConfig(v *types.ResourceSharingConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ResourceSharingConfig"} + if len(v.Strategy) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Strategy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRetryStrategy(v *types.RetryStrategy) error { if v == nil { return nil @@ -11927,6 +12497,23 @@ func validateScheduleConfig(v *types.ScheduleConfig) error { } } +func validateSchedulerConfig(v *types.SchedulerConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SchedulerConfig"} + if v.PriorityClasses != nil { + if err := validatePriorityClassList(v.PriorityClasses); err != nil { + invalidParams.AddNested("PriorityClasses", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSearchExpression(v *types.SearchExpression) error { if v == nil { return nil @@ -12559,6 +13146,41 @@ func validateTrainingJobDefinition(v *types.TrainingJobDefinition) error { } } +func validateTrainingPlanFilter(v *types.TrainingPlanFilter) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TrainingPlanFilter"} + if len(v.Name) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Value == nil { + invalidParams.Add(smithy.NewErrParamRequired("Value")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTrainingPlanFilters(v []types.TrainingPlanFilter) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TrainingPlanFilters"} + for i := range v { + if err := validateTrainingPlanFilter(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTrainingRepositoryAuthConfig(v *types.TrainingRepositoryAuthConfig) error { if v == nil { return nil @@ -13285,6 +13907,36 @@ func validateOpCreateClusterInput(v *CreateClusterInput) error { } } +func validateOpCreateClusterSchedulerConfigInput(v *CreateClusterSchedulerConfigInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateClusterSchedulerConfigInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.ClusterArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterArn")) + } + if v.SchedulerConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("SchedulerConfig")) + } else if v.SchedulerConfig != nil { + if err := validateSchedulerConfig(v.SchedulerConfig); err != nil { + invalidParams.AddNested("SchedulerConfig", 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 validateOpCreateCodeRepositoryInput(v *CreateCodeRepositoryInput) error { if v == nil { return nil @@ -13355,6 +14007,43 @@ func validateOpCreateCompilationJobInput(v *CreateCompilationJobInput) error { } } +func validateOpCreateComputeQuotaInput(v *CreateComputeQuotaInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateComputeQuotaInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.ClusterArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterArn")) + } + if v.ComputeQuotaConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComputeQuotaConfig")) + } else if v.ComputeQuotaConfig != nil { + if err := validateComputeQuotaConfig(v.ComputeQuotaConfig); err != nil { + invalidParams.AddNested("ComputeQuotaConfig", err.(smithy.InvalidParamsError)) + } + } + if v.ComputeQuotaTarget == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComputeQuotaTarget")) + } else if v.ComputeQuotaTarget != nil { + if err := validateComputeQuotaTarget(v.ComputeQuotaTarget); err != nil { + invalidParams.AddNested("ComputeQuotaTarget", 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 validateOpCreateContextInput(v *CreateContextInput) error { if v == nil { return nil @@ -14636,6 +15325,53 @@ func validateOpCreateOptimizationJobInput(v *CreateOptimizationJobInput) error { } } +func validateOpCreatePartnerAppInput(v *CreatePartnerAppInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreatePartnerAppInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.ExecutionRoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExecutionRoleArn")) + } + if v.Tier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Tier")) + } + if len(v.AuthType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("AuthType")) + } + 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 validateOpCreatePartnerAppPresignedUrlInput(v *CreatePartnerAppPresignedUrlInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreatePartnerAppPresignedUrlInput"} + if v.Arn == nil { + invalidParams.Add(smithy.NewErrParamRequired("Arn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreatePipelineInput(v *CreatePipelineInput) error { if v == nil { return nil @@ -14955,6 +15691,29 @@ func validateOpCreateTrainingJobInput(v *CreateTrainingJobInput) error { } } +func validateOpCreateTrainingPlanInput(v *CreateTrainingPlanInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateTrainingPlanInput"} + if v.TrainingPlanName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TrainingPlanName")) + } + if v.TrainingPlanOfferingId == nil { + invalidParams.Add(smithy.NewErrParamRequired("TrainingPlanOfferingId")) + } + 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 validateOpCreateTransformJobInput(v *CreateTransformJobInput) error { if v == nil { return nil @@ -15266,6 +16025,21 @@ func validateOpDeleteClusterInput(v *DeleteClusterInput) error { } } +func validateOpDeleteClusterSchedulerConfigInput(v *DeleteClusterSchedulerConfigInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteClusterSchedulerConfigInput"} + if v.ClusterSchedulerConfigId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterSchedulerConfigId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteCodeRepositoryInput(v *DeleteCodeRepositoryInput) error { if v == nil { return nil @@ -15296,6 +16070,21 @@ func validateOpDeleteCompilationJobInput(v *DeleteCompilationJobInput) error { } } +func validateOpDeleteComputeQuotaInput(v *DeleteComputeQuotaInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteComputeQuotaInput"} + if v.ComputeQuotaId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComputeQuotaId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteContextInput(v *DeleteContextInput) error { if v == nil { return nil @@ -15809,6 +16598,21 @@ func validateOpDeleteOptimizationJobInput(v *DeleteOptimizationJobInput) error { } } +func validateOpDeletePartnerAppInput(v *DeletePartnerAppInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeletePartnerAppInput"} + if v.Arn == nil { + invalidParams.Add(smithy.NewErrParamRequired("Arn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeletePipelineInput(v *DeletePipelineInput) error { if v == nil { return nil @@ -16133,6 +16937,21 @@ func validateOpDescribeClusterNodeInput(v *DescribeClusterNodeInput) error { } } +func validateOpDescribeClusterSchedulerConfigInput(v *DescribeClusterSchedulerConfigInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeClusterSchedulerConfigInput"} + if v.ClusterSchedulerConfigId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterSchedulerConfigId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeCodeRepositoryInput(v *DescribeCodeRepositoryInput) error { if v == nil { return nil @@ -16163,6 +16982,21 @@ func validateOpDescribeCompilationJobInput(v *DescribeCompilationJobInput) error } } +func validateOpDescribeComputeQuotaInput(v *DescribeComputeQuotaInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeComputeQuotaInput"} + if v.ComputeQuotaId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComputeQuotaId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeContextInput(v *DescribeContextInput) error { if v == nil { return nil @@ -16730,6 +17564,21 @@ func validateOpDescribeOptimizationJobInput(v *DescribeOptimizationJobInput) err } } +func validateOpDescribePartnerAppInput(v *DescribePartnerAppInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribePartnerAppInput"} + if v.Arn == nil { + invalidParams.Add(smithy.NewErrParamRequired("Arn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribePipelineDefinitionForExecutionInput(v *DescribePipelineDefinitionForExecutionInput) error { if v == nil { return nil @@ -16868,6 +17717,21 @@ func validateOpDescribeTrainingJobInput(v *DescribeTrainingJobInput) error { } } +func validateOpDescribeTrainingPlanInput(v *DescribeTrainingPlanInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeTrainingPlanInput"} + if v.TrainingPlanName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TrainingPlanName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeTransformJobInput(v *DescribeTransformJobInput) error { if v == nil { return nil @@ -17360,6 +18224,23 @@ func validateOpListTrainingJobsForHyperParameterTuningJobInput(v *ListTrainingJo } } +func validateOpListTrainingPlansInput(v *ListTrainingPlansInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTrainingPlansInput"} + if v.Filters != nil { + if err := validateTrainingPlanFilters(v.Filters); err != nil { + invalidParams.AddNested("Filters", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutModelPackageGroupPolicyInput(v *PutModelPackageGroupPolicyInput) error { if v == nil { return nil @@ -17475,6 +18356,27 @@ func validateOpSearchInput(v *SearchInput) error { } } +func validateOpSearchTrainingPlanOfferingsInput(v *SearchTrainingPlanOfferingsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SearchTrainingPlanOfferingsInput"} + if len(v.InstanceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("InstanceType")) + } + if v.InstanceCount == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceCount")) + } + if v.TargetResources == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetResources")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpSendPipelineExecutionStepFailureInput(v *SendPipelineExecutionStepFailureInput) error { if v == nil { return nil @@ -17947,6 +18849,29 @@ func validateOpUpdateClusterInput(v *UpdateClusterInput) error { } } +func validateOpUpdateClusterSchedulerConfigInput(v *UpdateClusterSchedulerConfigInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateClusterSchedulerConfigInput"} + if v.ClusterSchedulerConfigId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterSchedulerConfigId")) + } + if v.TargetVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetVersion")) + } + if v.SchedulerConfig != nil { + if err := validateSchedulerConfig(v.SchedulerConfig); err != nil { + invalidParams.AddNested("SchedulerConfig", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateClusterSoftwareInput(v *UpdateClusterSoftwareInput) error { if v == nil { return nil @@ -17977,6 +18902,34 @@ func validateOpUpdateCodeRepositoryInput(v *UpdateCodeRepositoryInput) error { } } +func validateOpUpdateComputeQuotaInput(v *UpdateComputeQuotaInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateComputeQuotaInput"} + if v.ComputeQuotaId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComputeQuotaId")) + } + if v.TargetVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetVersion")) + } + if v.ComputeQuotaConfig != nil { + if err := validateComputeQuotaConfig(v.ComputeQuotaConfig); err != nil { + invalidParams.AddNested("ComputeQuotaConfig", err.(smithy.InvalidParamsError)) + } + } + if v.ComputeQuotaTarget != nil { + if err := validateComputeQuotaTarget(v.ComputeQuotaTarget); err != nil { + invalidParams.AddNested("ComputeQuotaTarget", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateContextInput(v *UpdateContextInput) error { if v == nil { return nil @@ -18432,6 +19385,26 @@ func validateOpUpdateNotebookInstanceLifecycleConfigInput(v *UpdateNotebookInsta } } +func validateOpUpdatePartnerAppInput(v *UpdatePartnerAppInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdatePartnerAppInput"} + if v.Arn == nil { + invalidParams.Add(smithy.NewErrParamRequired("Arn")) + } + 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 validateOpUpdatePipelineExecutionInput(v *UpdatePipelineExecutionInput) error { if v == nil { return nil From 9e9d50086a20f820a02f257b9ba2a293db383441 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 4 Dec 2024 19:29:05 +0000 Subject: [PATCH 03/21] Release 2024-12-04 --- .../41575353444b40ffbf474f4155544f00.json | 9 -------- .../752bed98e3a74857bfd1328c5d83d12f.json | 8 ------- .../a0274ad5111d49b6aee0d4def7c16234.json | 8 ------- .../a1e1e7e0d8c442a58710de7a2e051c9f.json | 8 ------- .../a8a77fadb4444724a3a8931c6b27b762.json | 8 ------- .../be02e0fb9f7341a494dad62dd15af644.json | 8 ------- .../c03222513c2c4bedbedead6d8d051764.json | 8 ------- .../ca46f610073445d495baa8760c42037c.json | 8 ------- .../d72ed3ee22fc405a90029df4f52afd6b.json | 8 ------- CHANGELOG.md | 22 +++++++++++++++++++ service/bedrock/CHANGELOG.md | 4 ++++ service/bedrock/go_module_metadata.go | 2 +- service/bedrockagent/CHANGELOG.md | 4 ++++ service/bedrockagent/go_module_metadata.go | 2 +- service/bedrockagentruntime/CHANGELOG.md | 4 ++++ .../bedrockagentruntime/go_module_metadata.go | 2 +- service/bedrockdataautomation/CHANGELOG.md | 5 +++++ .../go_module_metadata.go | 2 +- .../bedrockdataautomationruntime/CHANGELOG.md | 5 +++++ .../go_module_metadata.go | 2 +- service/bedrockruntime/CHANGELOG.md | 4 ++++ service/bedrockruntime/go_module_metadata.go | 2 +- service/kendra/CHANGELOG.md | 4 ++++ service/kendra/go_module_metadata.go | 2 +- service/sagemaker/CHANGELOG.md | 4 ++++ service/sagemaker/go_module_metadata.go | 2 +- 26 files changed, 64 insertions(+), 81 deletions(-) delete mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json delete mode 100644 .changelog/752bed98e3a74857bfd1328c5d83d12f.json delete mode 100644 .changelog/a0274ad5111d49b6aee0d4def7c16234.json delete mode 100644 .changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json delete mode 100644 .changelog/a8a77fadb4444724a3a8931c6b27b762.json delete mode 100644 .changelog/be02e0fb9f7341a494dad62dd15af644.json delete mode 100644 .changelog/c03222513c2c4bedbedead6d8d051764.json delete mode 100644 .changelog/ca46f610073445d495baa8760c42037c.json delete mode 100644 .changelog/d72ed3ee22fc405a90029df4f52afd6b.json create mode 100644 service/bedrockdataautomation/CHANGELOG.md create mode 100644 service/bedrockdataautomationruntime/CHANGELOG.md diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json deleted file mode 100644 index 468a64014fa..00000000000 --- a/.changelog/41575353444b40ffbf474f4155544f00.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "41575353-444b-40ff-bf47-4f4155544f00", - "type": "release", - "description": "New AWS service client module", - "modules": [ - "service/bedrockdataautomation", - "service/bedrockdataautomationruntime" - ] -} \ No newline at end of file diff --git a/.changelog/752bed98e3a74857bfd1328c5d83d12f.json b/.changelog/752bed98e3a74857bfd1328c5d83d12f.json deleted file mode 100644 index bb5b53ed79f..00000000000 --- a/.changelog/752bed98e3a74857bfd1328c5d83d12f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "752bed98-e3a7-4857-bfd1-328c5d83d12f", - "type": "feature", - "description": "Added support for Intelligent Prompt Router in Invoke, InvokeStream, Converse and ConverseStream. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.", - "modules": [ - "service/bedrockruntime" - ] -} \ No newline at end of file diff --git a/.changelog/a0274ad5111d49b6aee0d4def7c16234.json b/.changelog/a0274ad5111d49b6aee0d4def7c16234.json deleted file mode 100644 index 325c4e2097a..00000000000 --- a/.changelog/a0274ad5111d49b6aee0d4def7c16234.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a0274ad5-111d-49b6-aee0-d4def7c16234", - "type": "feature", - "description": "Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.", - "modules": [ - "service/bedrock" - ] -} \ No newline at end of file diff --git a/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json b/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json deleted file mode 100644 index 0eb6f5e8390..00000000000 --- a/.changelog/a1e1e7e0d8c442a58710de7a2e051c9f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a1e1e7e0-d8c4-42a5-8710-de7a2e051c9f", - "type": "feature", - "description": "This release adds GenAI Index in Amazon Kendra for Retrieval Augmented Generation (RAG) and intelligent search. With the Kendra GenAI Index, customers get high retrieval accuracy powered by the latest information retrieval technologies and semantic models.", - "modules": [ - "service/kendra" - ] -} \ No newline at end of file diff --git a/.changelog/a8a77fadb4444724a3a8931c6b27b762.json b/.changelog/a8a77fadb4444724a3a8931c6b27b762.json deleted file mode 100644 index 6bdf17b068d..00000000000 --- a/.changelog/a8a77fadb4444724a3a8931c6b27b762.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a8a77fad-b444-4724-a3a8-931c6b27b762", - "type": "feature", - "description": "Amazon SageMaker HyperPod launched task governance to help customers maximize accelerator utilization for model development and flexible training plans to meet training timelines and budget while reducing weeks of training time. AI apps from AWS partner is now available in SageMaker.", - "modules": [ - "service/sagemaker" - ] -} \ No newline at end of file diff --git a/.changelog/be02e0fb9f7341a494dad62dd15af644.json b/.changelog/be02e0fb9f7341a494dad62dd15af644.json deleted file mode 100644 index 47ce22e9eb9..00000000000 --- a/.changelog/be02e0fb9f7341a494dad62dd15af644.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "be02e0fb-9f73-41a4-94da-d62dd15af644", - "type": "feature", - "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.", - "modules": [ - "service/bedrockagent" - ] -} \ No newline at end of file diff --git a/.changelog/c03222513c2c4bedbedead6d8d051764.json b/.changelog/c03222513c2c4bedbedead6d8d051764.json deleted file mode 100644 index ec403712ef0..00000000000 --- a/.changelog/c03222513c2c4bedbedead6d8d051764.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c0322251-3c2c-4bed-bede-ad6d8d051764", - "type": "feature", - "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.", - "modules": [ - "service/bedrockagentruntime" - ] -} \ No newline at end of file diff --git a/.changelog/ca46f610073445d495baa8760c42037c.json b/.changelog/ca46f610073445d495baa8760c42037c.json deleted file mode 100644 index dfa3ee17550..00000000000 --- a/.changelog/ca46f610073445d495baa8760c42037c.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "ca46f610-0734-45d4-95ba-a8760c42037c", - "type": "feature", - "description": "Release Bedrock Data Automation Runtime SDK", - "modules": [ - "service/bedrockdataautomationruntime" - ] -} \ No newline at end of file diff --git a/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json b/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json deleted file mode 100644 index 1fc7c2b3245..00000000000 --- a/.changelog/d72ed3ee22fc405a90029df4f52afd6b.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "d72ed3ee-22fc-405a-9002-9df4f52afd6b", - "type": "feature", - "description": "Release Bedrock Data Automation SDK", - "modules": [ - "service/bedrockdataautomation" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8637a899982..973090fb66e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +# Release (2024-12-04) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/bedrock`: [v1.25.0](service/bedrock/CHANGELOG.md#v1250-2024-12-04) + * **Feature**: Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability. +* `github.com/aws/aws-sdk-go-v2/service/bedrockagent`: [v1.32.0](service/bedrockagent/CHANGELOG.md#v1320-2024-12-04) + * **Feature**: This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index. +* `github.com/aws/aws-sdk-go-v2/service/bedrockagentruntime`: [v1.30.0](service/bedrockagentruntime/CHANGELOG.md#v1300-2024-12-04) + * **Feature**: This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index. +* `github.com/aws/aws-sdk-go-v2/service/bedrockdataautomation`: [v1.0.0](service/bedrockdataautomation/CHANGELOG.md#v100-2024-12-04) + * **Release**: New AWS service client module + * **Feature**: Release Bedrock Data Automation SDK +* `github.com/aws/aws-sdk-go-v2/service/bedrockdataautomationruntime`: [v1.0.0](service/bedrockdataautomationruntime/CHANGELOG.md#v100-2024-12-04) + * **Release**: New AWS service client module + * **Feature**: Release Bedrock Data Automation Runtime SDK +* `github.com/aws/aws-sdk-go-v2/service/bedrockruntime`: [v1.23.0](service/bedrockruntime/CHANGELOG.md#v1230-2024-12-04) + * **Feature**: Added support for Intelligent Prompt Router in Invoke, InvokeStream, Converse and ConverseStream. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability. +* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.55.0](service/kendra/CHANGELOG.md#v1550-2024-12-04) + * **Feature**: This release adds GenAI Index in Amazon Kendra for Retrieval Augmented Generation (RAG) and intelligent search. With the Kendra GenAI Index, customers get high retrieval accuracy powered by the latest information retrieval technologies and semantic models. +* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.169.0](service/sagemaker/CHANGELOG.md#v11690-2024-12-04) + * **Feature**: Amazon SageMaker HyperPod launched task governance to help customers maximize accelerator utilization for model development and flexible training plans to meet training timelines and budget while reducing weeks of training time. AI apps from AWS partner is now available in SageMaker. + # Release (2024-12-03.2) ## General Highlights diff --git a/service/bedrock/CHANGELOG.md b/service/bedrock/CHANGELOG.md index 4f33e0db3d9..2fce2260c28 100644 --- a/service/bedrock/CHANGELOG.md +++ b/service/bedrock/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.25.0 (2024-12-04) + +* **Feature**: Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability. + # v1.24.0 (2024-12-03.2) * **Feature**: Tagging support for Async Invoke resources. Added support for Distillation in CreateModelCustomizationJob API. Support for videoDataDeliveryEnabled flag in invocation logging. diff --git a/service/bedrock/go_module_metadata.go b/service/bedrock/go_module_metadata.go index 4569ce728c0..60238988ded 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.24.0" +const goModuleVersion = "1.25.0" diff --git a/service/bedrockagent/CHANGELOG.md b/service/bedrockagent/CHANGELOG.md index 3beb11ccd26..96276a95114 100644 --- a/service/bedrockagent/CHANGELOG.md +++ b/service/bedrockagent/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.32.0 (2024-12-04) + +* **Feature**: This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index. + # v1.31.0 (2024-12-03.2) * **Feature**: Releasing SDK for Multi-Agent Collaboration. diff --git a/service/bedrockagent/go_module_metadata.go b/service/bedrockagent/go_module_metadata.go index 461053dc929..40e117f7c6f 100644 --- a/service/bedrockagent/go_module_metadata.go +++ b/service/bedrockagent/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrockagent // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.31.0" +const goModuleVersion = "1.32.0" diff --git a/service/bedrockagentruntime/CHANGELOG.md b/service/bedrockagentruntime/CHANGELOG.md index d977258a664..199342e983a 100644 --- a/service/bedrockagentruntime/CHANGELOG.md +++ b/service/bedrockagentruntime/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.30.0 (2024-12-04) + +* **Feature**: This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index. + # v1.29.0 (2024-12-03.2) * **Feature**: Releasing SDK for multi agent collaboration diff --git a/service/bedrockagentruntime/go_module_metadata.go b/service/bedrockagentruntime/go_module_metadata.go index a9cd02740cd..878ed4b2bdf 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.29.0" +const goModuleVersion = "1.30.0" diff --git a/service/bedrockdataautomation/CHANGELOG.md b/service/bedrockdataautomation/CHANGELOG.md new file mode 100644 index 00000000000..8108a09685a --- /dev/null +++ b/service/bedrockdataautomation/CHANGELOG.md @@ -0,0 +1,5 @@ +# v1.0.0 (2024-12-04) + +* **Release**: New AWS service client module +* **Feature**: Release Bedrock Data Automation SDK + diff --git a/service/bedrockdataautomation/go_module_metadata.go b/service/bedrockdataautomation/go_module_metadata.go index d191d958661..18a4188a147 100644 --- a/service/bedrockdataautomation/go_module_metadata.go +++ b/service/bedrockdataautomation/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrockdataautomation // goModuleVersion is the tagged release for this module -const goModuleVersion = "tip" +const goModuleVersion = "1.0.0" diff --git a/service/bedrockdataautomationruntime/CHANGELOG.md b/service/bedrockdataautomationruntime/CHANGELOG.md new file mode 100644 index 00000000000..daf06f527c2 --- /dev/null +++ b/service/bedrockdataautomationruntime/CHANGELOG.md @@ -0,0 +1,5 @@ +# v1.0.0 (2024-12-04) + +* **Release**: New AWS service client module +* **Feature**: Release Bedrock Data Automation Runtime SDK + diff --git a/service/bedrockdataautomationruntime/go_module_metadata.go b/service/bedrockdataautomationruntime/go_module_metadata.go index 2f8d122546e..fea82e78f3f 100644 --- a/service/bedrockdataautomationruntime/go_module_metadata.go +++ b/service/bedrockdataautomationruntime/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrockdataautomationruntime // goModuleVersion is the tagged release for this module -const goModuleVersion = "tip" +const goModuleVersion = "1.0.0" diff --git a/service/bedrockruntime/CHANGELOG.md b/service/bedrockruntime/CHANGELOG.md index 25738e17aa6..4ffa4d5fcb6 100644 --- a/service/bedrockruntime/CHANGELOG.md +++ b/service/bedrockruntime/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.23.0 (2024-12-04) + +* **Feature**: Added support for Intelligent Prompt Router in Invoke, InvokeStream, Converse and ConverseStream. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability. + # v1.22.0 (2024-12-03.2) * **Feature**: Added support for Async Invoke Operations Start, List and Get. Support for invocation logs with `requestMetadata` field in Converse, ConverseStream, Invoke and InvokeStream. Video content blocks in Converse/ConverseStream accept raw bytes or S3 URI. diff --git a/service/bedrockruntime/go_module_metadata.go b/service/bedrockruntime/go_module_metadata.go index 26d5bb02f2d..afec681f7c2 100644 --- a/service/bedrockruntime/go_module_metadata.go +++ b/service/bedrockruntime/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrockruntime // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.22.0" +const goModuleVersion = "1.23.0" diff --git a/service/kendra/CHANGELOG.md b/service/kendra/CHANGELOG.md index 4ef58609ad9..12103d6c6cc 100644 --- a/service/kendra/CHANGELOG.md +++ b/service/kendra/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.55.0 (2024-12-04) + +* **Feature**: This release adds GenAI Index in Amazon Kendra for Retrieval Augmented Generation (RAG) and intelligent search. With the Kendra GenAI Index, customers get high retrieval accuracy powered by the latest information retrieval technologies and semantic models. + # v1.54.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/kendra/go_module_metadata.go b/service/kendra/go_module_metadata.go index b3f9e055d32..6206c0911f8 100644 --- a/service/kendra/go_module_metadata.go +++ b/service/kendra/go_module_metadata.go @@ -3,4 +3,4 @@ package kendra // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.54.7" +const goModuleVersion = "1.55.0" diff --git a/service/sagemaker/CHANGELOG.md b/service/sagemaker/CHANGELOG.md index e9b3b38816a..b820123bcc6 100644 --- a/service/sagemaker/CHANGELOG.md +++ b/service/sagemaker/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.169.0 (2024-12-04) + +* **Feature**: Amazon SageMaker HyperPod launched task governance to help customers maximize accelerator utilization for model development and flexible training plans to meet training timelines and budget while reducing weeks of training time. AI apps from AWS partner is now available in SageMaker. + # v1.168.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/sagemaker/go_module_metadata.go b/service/sagemaker/go_module_metadata.go index 6ca34499456..49796e33276 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.168.1" +const goModuleVersion = "1.169.0" From 100549f48f786a74f27753bf851c316600f39e4d Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 5 Dec 2024 01:17:11 +0000 Subject: [PATCH 04/21] Update API model --- .../aws-models/partnercentral-selling.json | 4926 ++++++++++++++--- codegen/sdk-codegen/aws-models/qbusiness.json | 16 +- 2 files changed, 4207 insertions(+), 735 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/partnercentral-selling.json b/codegen/sdk-codegen/aws-models/partnercentral-selling.json index d8c8cf41285..02fdd1918c6 100644 --- a/codegen/sdk-codegen/aws-models/partnercentral-selling.json +++ b/codegen/sdk-codegen/aws-models/partnercentral-selling.json @@ -5,6 +5,9 @@ "type": "service", "version": "2022-07-26", "resources": [ + { + "target": "com.amazonaws.partnercentralselling#Engagement" + }, { "target": "com.amazonaws.partnercentralselling#EngagementByAcceptingInvitationTask" }, @@ -17,6 +20,15 @@ { "target": "com.amazonaws.partnercentralselling#Opportunity" }, + { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshot" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJob" + }, + { + "target": "com.amazonaws.partnercentralselling#SellingSystemSettings" + }, { "target": "com.amazonaws.partnercentralselling#Solution" } @@ -52,7 +64,7 @@ "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

This Amazon Web Services (AWS) Partner Central API reference is\n designed to help AWS\n Partners integrate Customer Relationship Management (CRM)\n systems with AWS Partner Central. Partners can automate interactions with\n AWS Partner Central, which helps to ensure effective engagements in joint\n business activities.

\n

The API provides standard AWS API functionality. Access it by\n either using API Actions or by using an AWS SDK that's tailored to your\n programming language or platform. For more information, see Getting Started with\n AWS and Tools to Build on AWS.

\n

\n Features offered by AWS Partner Central API\n

\n
    \n
  1. \n

    \n Opportunity management:\n Manages coselling opportunities through API actions such as\n CreateOpportunity, UpdateOpportunity,\n ListOpportunities, GetOpportunity, and\n AssignOpportunity.

    \n
  2. \n
  3. \n

    \n AWS referral management:\n Manages referrals shared by AWS using actions such as\n ListEngagementInvitations,\n GetEngagementInvitation,\n StartEngagementByAcceptingInvitation, and\n RejectEngagementInvitation.

    \n
  4. \n
  5. \n

    \n Entity association:\n Associates related entities such as AWS Products,\n Partner Solutions, and AWS\n Marketplace Private Offers with opportunities using the\n actions AssociateOpportunity, and\n DisassociateOpportunity.

    \n
  6. \n
  7. \n

    \n View AWS opportunity\n details: Retrieves real-time summaries of AWS\n opportunities using the GetAWSOpportunitySummary\n action.

    \n
  8. \n
  9. \n

    \n List solutions: Provides\n list APIs for listing partner offers using\n ListSolutions.

    \n
  10. \n
  11. \n

    \n Event subscription:\n Subscribe to real-time opportunity updates through AWS EventBridge by\n using actions such as Opportunity Created,\n Opportunity Updated, Engagement\n Invitation Accepted, Engagement Invitation\n Rejected, and Engagement Invitation\n Created.

    \n
  12. \n
", + "smithy.api#documentation": "AWS Partner Central API for Selling\n

\n AWS Partner Central API for Selling Reference\n Guide\n

\n

This Amazon Web Services (AWS) Partner Central API reference is designed to help\n AWS Partners integrate\n Customer Relationship Management (CRM) systems with AWS Partner Central. Partners can\n automate interactions with AWS Partner Central, which helps to ensure effective\n engagements in joint business activities.

\n

The API provides standard AWS API functionality. Access it by either using API Actions or by using an AWS SDK that's tailored to your programming language\n or platform. For more information, see Getting Started with AWS and Tools to Build on AWS.

\n

\n Features offered by AWS Partner Central API\n

\n
    \n
  1. \n

    \n Opportunity management: Manages coselling\n opportunities through API actions such as CreateOpportunity,\n UpdateOpportunity, ListOpportunities,\n GetOpportunity, and AssignOpportunity.

    \n
  2. \n
  3. \n

    \n AWS referral management: Manages referrals\n shared by AWS using actions such as ListEngagementInvitations,\n GetEngagementInvitation,\n StartEngagementByAcceptingInvitation, and\n RejectEngagementInvitation.

    \n
  4. \n
  5. \n

    \n Entity association: Associates related\n entities such as AWS Products, Partner\n Solutions, and AWS Marketplace Private\n Offers with opportunities using the actions\n AssociateOpportunity, and\n DisassociateOpportunity.

    \n
  6. \n
  7. \n

    \n View AWS opportunity details: Retrieves\n real-time summaries of AWS opportunities using the\n GetAWSOpportunitySummary action.

    \n
  8. \n
  9. \n

    \n List solutions: Provides list APIs for\n listing partner offers using ListSolutions.

    \n
  10. \n
  11. \n

    \n Event subscription: Subscribe to real-time\n opportunity updates through AWS EventBridge by using actions such as\n Opportunity Created, Opportunity\n Updated, Engagement Invitation Accepted,\n Engagement Invitation Rejected, and\n Engagement Invitation Created.

    \n
  12. \n
", "smithy.api#title": "Partner Central Selling API", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -394,6 +406,68 @@ } } }, + "com.amazonaws.partnercentralselling#AcceptEngagementInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#AcceptEngagementInvitationRequest" + }, + "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 accept Engagement Invitations on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use the AcceptEngagementInvitation action to accept an engagement invitation shared by AWS. \n Accepting the invitation indicates your willingness to participate in the engagement, \n granting you access to all engagement-related data.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/AcceptEngagementInvitation", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#AcceptEngagementInvitationRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n The CatalogType parameter specifies the catalog associated with the engagement invitation. \n Accepted values are AWS and Sandbox, \n which determine the environment in which the engagement invitation is managed.\n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

\n The Identifier parameter in the AcceptEngagementInvitationRequest specifies the unique \n identifier of the EngagementInvitation to be accepted. \n Providing the correct identifier ensures that the intended invitation is accepted.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.partnercentralselling#AccessDeniedException": { "type": "structure", "members": { @@ -402,7 +476,7 @@ } }, "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#documentation": "

This error occurs when you don't have permission to perform the requested\n action.

\n

You don’t have access to this action or resource. Review IAM policies or contact your\n AWS administrator for assistance.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -413,13 +487,13 @@ "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

" + "smithy.api#documentation": "

Specifies the industry the end Customer belongs to that's associated with\n the Opportunity. It refers to the category or sector where the customer's\n business operates. This is a required field.

" } }, "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#documentation": "

Specifies the end Customer's industry associated with the\n Opportunity, when the selected value in the Industry field\n is Other.

", "smithy.api#length": { "max": 255 } @@ -428,7 +502,7 @@ "CompanyName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's company name associated with the Opportunity.\n

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

Specifies the end Customer's company name associated with the\n Opportunity.

", "smithy.api#length": { "max": 120 }, @@ -438,30 +512,30 @@ "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

" + "smithy.api#documentation": "

Specifies the end customer's company website URL associated with the\n Opportunity. This value is crucial to map the customer within the\n Amazon Web Services CRM system. This field is required in all cases except when the\n opportunity is related to national security.

" } }, "AwsAccountId": { "target": "com.amazonaws.partnercentralselling#AwsAccount", "traits": { - "smithy.api#documentation": "

Specifies the Customer Amazon Web Services account ID associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies the Customer\n Amazon Web Services account ID associated with the Opportunity.

" } }, "Address": { "target": "com.amazonaws.partnercentralselling#Address", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the\n Opportunity.

" } }, "Duns": { "target": "com.amazonaws.partnercentralselling#DunsNumber", "traits": { - "smithy.api#documentation": "

Indicates the Customer DUNS number, if available.\n

" + "smithy.api#documentation": "

Indicates the Customer DUNS number, if available.

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

Specifies the Customer's account details associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies the Customer's account details associated with the\n Opportunity.

" } }, "com.amazonaws.partnercentralselling#AccountReceiver": { @@ -470,19 +544,19 @@ "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.

" + "smithy.api#documentation": "

Represents the alias of the partner account receiving the Engagement Invitation,\n 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#documentation": "

Indicates the AWS account ID of the partner who received the Engagement Invitation.\n 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.

" + "smithy.api#documentation": "

Contains the account details of the partner who received the Engagement Invitation,\n including the AWS account ID and company name.

" } }, "com.amazonaws.partnercentralselling#AccountSummary": { @@ -491,13 +565,13 @@ "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

" + "smithy.api#documentation": "

Specifies which industry the end Customer belongs to associated with the\n Opportunity. It refers to the category or sector that the customer's\n business operates in.

\n

To submit a value outside the picklist, use Other.

\n

Conditionally mandatory if Other is selected for Industry Vertical in\n LOVs.

" } }, "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#documentation": "

Specifies the end Customer's industry associated with the \n Opportunity, when the selected value in the Industry field is\n Other. This field is relevant when the customer's industry doesn't fall\n under the predefined picklist values and requires a custom description.

", "smithy.api#length": { "max": 255 } @@ -506,7 +580,7 @@ "CompanyName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's company name associated with the Opportunity.\n

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

Specifies the end Customer's company name associated with the\n Opportunity.

", "smithy.api#length": { "max": 120 }, @@ -516,18 +590,18 @@ "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

" + "smithy.api#documentation": "

Specifies the end customer's company website URL associated with the\n Opportunity. This value is crucial to map the customer within the\n Amazon Web Services CRM system.

" } }, "Address": { "target": "com.amazonaws.partnercentralselling#AddressSummary", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the\n Opportunity.

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

An object that contains an Account's subset of fields.\n

" + "smithy.api#documentation": "

An object that contains an Account's subset of fields.

" } }, "com.amazonaws.partnercentralselling#Address": { @@ -536,7 +610,7 @@ "City": { "target": "com.amazonaws.partnercentralselling#AddressPart", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's city associated with the Opportunity.\n

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

Specifies the end Customer's city associated with the\n Opportunity.

", "smithy.api#length": { "max": 255 } @@ -545,7 +619,7 @@ "PostalCode": { "target": "com.amazonaws.partnercentralselling#AddressPart", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's postal code associated with the Opportunity.\n

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

Specifies the end Customer's postal code associated with the\n Opportunity.

", "smithy.api#length": { "max": 20 } @@ -554,19 +628,19 @@ "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

" + "smithy.api#documentation": "

Specifies the end Customer's state or region associated with the\n Opportunity.

\n

Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas |\n California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated\n States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois |\n Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | Maryland\n | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | Montana | Nebraska\n | Nevada | New Hampshire | New Jersey | New Mexico | New York | North Carolina |\n North Dakota | Northern Mariana Islands | Ohio | Oklahoma | Oregon | Palau |\n Pennsylvania | Puerto Rico | Rhode Island | South Carolina | South Dakota |\n Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | Washington | West\n 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

" + "smithy.api#documentation": "

Specifies the end Customer's country associated with the\n Opportunity.

" } }, "StreetAddress": { "target": "com.amazonaws.partnercentralselling#AddressPart", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's street address associated with the Opportunity.\n

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

Specifies the end Customer's street address associated with the\n Opportunity.

", "smithy.api#length": { "max": 255 } @@ -574,7 +648,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the\n Opportunity.

" } }, "com.amazonaws.partnercentralselling#AddressPart": { @@ -589,7 +663,7 @@ "City": { "target": "com.amazonaws.partnercentralselling#AddressPart", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's city associated with the Opportunity.\n

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

Specifies the end Customer's city associated with the\n Opportunity.

", "smithy.api#length": { "max": 255 } @@ -598,7 +672,7 @@ "PostalCode": { "target": "com.amazonaws.partnercentralselling#AddressPart", "traits": { - "smithy.api#documentation": "

Specifies the end Customer's postal code associated with the Opportunity.\n

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

Specifies the end Customer's postal code associated with the\n Opportunity.

", "smithy.api#length": { "max": 20 } @@ -607,18 +681,18 @@ "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

" + "smithy.api#documentation": "

Specifies the end Customer's state or region associated with the\n Opportunity.

\n

Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas |\n California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated\n States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois |\n Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | Maryland\n | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | Montana | Nebraska\n | Nevada | New Hampshire | New Jersey | New Mexico | New York | North Carolina |\n North Dakota | Northern Mariana Islands | Ohio | Oklahoma | Oregon | Palau |\n Pennsylvania | Puerto Rico | Rhode Island | South Carolina | South Dakota |\n Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | Washington | West\n 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

" + "smithy.api#documentation": "

Specifies the end Customer's country associated with the\n Opportunity.

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

An object that contains an Address object's subset of fields.\n

" + "smithy.api#documentation": "

An object that contains an Address object's subset of fields.

" } }, "com.amazonaws.partnercentralselling#Alias": { @@ -669,7 +743,7 @@ "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#documentation": "

Enables you to reassign an existing Opportunity to another user within\n your Partner Central account. The specified user receives the opportunity, and it\n appears on their Partner Central dashboard, allowing them to take necessary actions or\n proceed with the opportunity.

\n

This is useful for distributing opportunities to the appropriate team members or\n departments within your organization, ensuring that each opportunity is handled by the\n right person. By default, the opportunity owner is the one who creates it. Currently,\n there's no API to enumerate the list of available users.

", "smithy.api#http": { "method": "POST", "uri": "/AssignOpportunity", @@ -683,14 +757,14 @@ "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 for testing in secure, isolated environments.\n

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

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity is assigned in. Use AWS to assign real\n opportunities in the Amazon Web Services catalog, and Sandbox for testing in\n secure, isolated environments.

", "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#documentation": "

Requires the Opportunity's unique identifier when you want to assign it\n to another user. Provide the correct identifier so the intended opportunity is\n reassigned.

", "smithy.api#required": {}, "smithy.api#resourceIdentifier": "Identifier" } @@ -698,7 +772,7 @@ "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#documentation": "

Specifies the user or team member responsible for managing the assigned opportunity.\n This field identifies the Assignee based on the partner's internal\n team structure. Ensure that the email address is associated with a registered user in\n your Partner Central account.

", "smithy.api#required": {} } } @@ -713,14 +787,14 @@ "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#documentation": "

Provides the email address of the assignee. This email is used for communications and\n 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. The system automatically retrieves this value from the user profile by referencing the associated email address.

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

Specifies the first name of the assignee managing the opportunity. The system\n automatically retrieves this value from the user profile by referencing the associated\n email address.

", "smithy.api#length": { "max": 80 }, @@ -730,7 +804,7 @@ "LastName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

Specifies the last name of the assignee managing the opportunity. The system automatically retrieves this value from the user profile by referencing the associated email address.

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

Specifies the last name of the assignee managing the opportunity. The system\n automatically retrieves this value from the user profile by referencing the associated\n email address.

", "smithy.api#length": { "max": 80 }, @@ -740,13 +814,13 @@ "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. Use the value PartnerAccountManager to update details of the opportunity owner.

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

Specifies the business title of the assignee managing the opportunity. This helps\n clarify the individual's role and responsibilities within the organization. Use the\n value PartnerAccountManager to update details of the opportunity\n owner.

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

Represents the contact details of the individual assigned to manage the opportunity within the partner organization. This helps to ensure that there is a point of contact for the opportunity's progress.

" + "smithy.api#documentation": "

Represents the contact details of the individual assigned to manage the opportunity\n within the partner organization. This helps to ensure that there is a point of contact\n for the opportunity's progress.

" } }, "com.amazonaws.partnercentralselling#AssociateOpportunity": { @@ -782,7 +856,7 @@ "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 entity types:\n

\n
    \n
  • \n

    \n Partner Solution:\n A software product or consulting practice created and delivered by Partners. Partner Solutions help customers address business challenges using Amazon Web Services services.\n

    \n
  • \n
  • \n

    \n Amazon Web Services Products:\n Amazon Web Services offers many products and services that provide scalable, reliable, and cost-effective infrastructure solutions. For the latest list of Amazon Web Services products, see 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, see 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, see Amazon Web Services products.\n

    \n
  • \n
  • \n

    \n Amazon Web Services Marketplace private offer: Use the Using the Amazon Web Services Marketplace Catalog API to list entities. Specifically, use the ListEntities operation to retrieve a list of private offers. The request returns the details of available private offers. For more information, see ListEntities.\n

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

Enables you to create a formal association between an Opportunity and\n various related entities, enriching the context and details of the opportunity for\n better collaboration and decision making. You can associate an opportunity with the\n following entity types:

\n
    \n
  • \n

    Partner Solution: A software product or consulting practice created and\n delivered by Partners. Partner Solutions help customers address\n business challenges using Amazon Web Services services.

    \n
  • \n
  • \n

    Amazon Web Services Products: Amazon Web Services offers many products and\n services that provide scalable, reliable, and cost-effective infrastructure\n solutions. For the latest list of Amazon Web Services products, see Amazon Web Services products.

    \n
  • \n
  • \n

    Amazon Web Services Marketplace private offer: Allows Amazon Web Services Marketplace sellers to extend\n custom pricing and terms to individual Amazon Web Services customers. Sellers can\n negotiate custom prices, payment schedules, and end user license terms through\n private offers, enabling Amazon Web Services customers to acquire software\n solutions tailored to their specific needs. For more information, see Private offers\n in Amazon Web Services Marketplace.

    \n
  • \n
\n

To obtain identifiers for these entities, use the following methods:

\n
    \n
  • \n

    Solution: Use the ListSolutions operation.

    \n
  • \n
  • \n

    AWS Products: For the latest list of Amazon Web Services products, see Amazon Web Services products.

    \n
  • \n
  • \n

    Amazon Web Services Marketplace private offer: Use the Using the Amazon Web Services Marketplace Catalog API to list entities. Specifically, use the\n ListEntities operation to retrieve a list of private offers.\n The request returns the details of available private offers. For more\n information, see ListEntities.

    \n
  • \n
", "smithy.api#http": { "method": "POST", "uri": "/AssociateOpportunity", @@ -796,14 +870,14 @@ "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 association is made in. Use AWS to associate opportunities in the Amazon Web Services catalog,\n and Sandbox for testing in secure, isolated environments.\n

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

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity association is made in. Use AWS to\n associate opportunities in the Amazon Web Services catalog, and Sandbox for\n testing in secure, isolated environments.

", "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#documentation": "

Requires the Opportunity's unique identifier when you want to associate\n it with a related entity. Provide the correct identifier so the intended opportunity is\n updated with the association.

", "smithy.api#required": {}, "smithy.api#resourceIdentifier": "Identifier" } @@ -811,14 +885,14 @@ "RelatedEntityType": { "target": "com.amazonaws.partnercentralselling#RelatedEntityType", "traits": { - "smithy.api#documentation": "

Specifies the entity type that you're associating with the \n Opportunity. This helps to categorize and properly process the association.\n

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

Specifies the entity type that you're associating with the Opportunity.\n This helps to categorize and properly process the association.

", "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#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\n Resource Name (ARN). Use the \n Amazon Web Services Marketplace API to obtain the ARN.

", "smithy.api#length": { "min": 1, "max": 255 @@ -834,15 +908,32 @@ "com.amazonaws.partnercentralselling#AwsAccount": { "type": "string", "traits": { - "smithy.api#pattern": "^[0-9]{12}$", + "smithy.api#pattern": "^([0-9]{12}|\\w{1,12})$", "smithy.api#sensitive": {} } }, - "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel": { - "type": "string", + "com.amazonaws.partnercentralselling#AwsAccountIdOrAliasList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#AwsAccount" + }, "traits": { - "smithy.api#pattern": "^(aws|[0-9]{12})$", - "smithy.api#sensitive": {} + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.partnercentralselling#AwsAccountList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#AwsAccount" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } } }, "com.amazonaws.partnercentralselling#AwsClosedLostReason": { @@ -1214,12 +1305,12 @@ "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 stakeholders within the customer's organization.

" + "smithy.api#documentation": "

Provides a list of customer contacts involved in the opportunity. These contacts may\n include decision makers, influencers, and other stakeholders within the customer's\n 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.

" + "smithy.api#documentation": "

Represents the customer associated with the AWS opportunity. This field captures key\n details about the customer that are necessary for managing the opportunity.

" } }, "com.amazonaws.partnercentralselling#AwsOpportunityInsights": { @@ -1228,18 +1319,18 @@ "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.

" + "smithy.api#documentation": "

Provides recommendations from AWS on the next best actions to take in order to move\n 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.

" + "smithy.api#documentation": "

Represents a score assigned by AWS to indicate the level of engagement and potential\n 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.

" + "smithy.api#documentation": "

Contains insights provided by AWS for the opportunity, offering recommendations and\n analysis that can help the partner optimize their engagement and strategy.

" } }, "com.amazonaws.partnercentralselling#AwsOpportunityLifeCycle": { @@ -1248,25 +1339,25 @@ "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.

" + "smithy.api#documentation": "

Indicates the expected date by which the opportunity is projected to close. This field\n 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.

" + "smithy.api#documentation": "

Indicates the reason why an opportunity was marked as Closed Lost. This\n helps in understanding the context behind the lost opportunity and aids in refining\n 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.

" + "smithy.api#documentation": "

Represents the current stage of the opportunity in its lifecycle, such as\n Qualification, Validation, or Closed Won.\n 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 guidance and the current stage of the opportunity.

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

Specifies the immediate next steps required to progress the opportunity. These steps\n are based on AWS guidance and the current stage of the opportunity.

", "smithy.api#length": { "max": 255 } @@ -1275,7 +1366,7 @@ "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#documentation": "

Provides a historical log of previous next steps that were taken to move the\n opportunity forward. This helps in tracking the decision-making process and identifying\n any delays or obstacles encountered.

", "smithy.api#length": { "max": 50 } @@ -1283,7 +1374,7 @@ } }, "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.

" + "smithy.api#documentation": "

Tracks the lifecycle of the AWS opportunity, including stages such as qualification,\n validation, and closure. This field helps partners understand the current status and\n progression of the opportunity.

" } }, "com.amazonaws.partnercentralselling#AwsOpportunityProject": { @@ -1292,12 +1383,12 @@ "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.

" + "smithy.api#documentation": "

Indicates the expected spending by the customer over the course of the project. This\n value helps partners and AWS estimate the financial impact of the opportunity. Use the\n AWS Pricing Calculator to create an\n estimate of the customer’s total spend. If only annual recurring revenue (ARR) is\n 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.

" + "smithy.api#documentation": "

Captures details about the project associated with the opportunity, including\n objectives, scope, and customer requirements.

" } }, "com.amazonaws.partnercentralselling#AwsOpportunityRelatedEntities": { @@ -1306,18 +1397,18 @@ "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.

" + "smithy.api#documentation": "

Specifies the AWS products associated with the opportunity. This field helps track the\n 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.

" + "smithy.api#documentation": "

Specifies the partner solutions related to the opportunity. These solutions represent\n the partner's offerings that are being positioned as part of the overall AWS\n 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.

" + "smithy.api#documentation": "

Represents other entities related to the AWS opportunity, such as AWS products,\n partner solutions, and marketplace offers. These associations help build a complete\n picture of the solution being sold.

" } }, "com.amazonaws.partnercentralselling#AwsOpportunityStage": { @@ -1490,19 +1581,19 @@ "InvolvementType": { "target": "com.amazonaws.partnercentralselling#SalesInvolvementType", "traits": { - "smithy.api#documentation": "

Specifies the type of AWS involvement in the opportunity, such as coselling, deal support, or technical consultation. This helps categorize the nature of AWS participation.

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

Specifies the type of AWS involvement in the opportunity, such as coselling, deal\n support, or technical consultation. This helps categorize the nature of AWS\n participation.

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

Determines who can view AWS 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.

" + "smithy.api#documentation": "

Determines who can view AWS involvement in the opportunity. Typically, this field is\n set to Full for most cases, but it may be restricted based on special\n program requirements or confidentiality needs.

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

Indicates the level of AWS involvement in the opportunity. This field helps track AWS participation throughout the engagement, such as providing technical support, deal assistance, and sales support.

" + "smithy.api#documentation": "

Indicates the level of AWS involvement in the opportunity. This field helps track AWS\n participation throughout the engagement, such as providing technical support, deal\n assistance, and sales support.

" } }, "com.amazonaws.partnercentralselling#AwsTeamMember": { @@ -1511,13 +1602,13 @@ "Email": { "target": "com.amazonaws.partnercentralselling#Email", "traits": { - "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's email address.\n

" + "smithy.api#documentation": "

Provides the Amazon Web Services team member's email address.

" } }, "FirstName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's first name.\n

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

Provides the Amazon Web Services team member's first name.

", "smithy.api#length": { "max": 80 } @@ -1526,7 +1617,7 @@ "LastName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's last name.\n

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

Provides the Amazon Web Services team member's last name.

", "smithy.api#length": { "max": 80 } @@ -1535,12 +1626,12 @@ "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

" + "smithy.api#documentation": "

Specifies the Amazon Web Services team member's business title and indicates their\n organizational role.

" } } }, "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

" + "smithy.api#documentation": "

Represents an Amazon Web Services team member for the engagement. This structure\n includes details such as name, email, and business title.

" } }, "com.amazonaws.partnercentralselling#CatalogIdentifier": { @@ -1863,7 +1954,7 @@ } }, "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#documentation": "

This error occurs when the request can’t be processed due to a conflict with the\n target resource's current state, which could result from updating or deleting the\n resource.

\n

Suggested action: Fetch the latest state of the resource, verify the state, and retry\n the request.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -1874,13 +1965,13 @@ "Email": { "target": "com.amazonaws.partnercentralselling#Email", "traits": { - "smithy.api#documentation": "

The contact's email address associated with the Opportunity.\n

" + "smithy.api#documentation": "

The contact's email address associated with the Opportunity.

" } }, "FirstName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

The contact's first name associated with the Opportunity.\n

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

The contact's first name associated with the Opportunity.

", "smithy.api#length": { "max": 80 } @@ -1889,7 +1980,7 @@ "LastName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

The contact's last name associated with the Opportunity.\n

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

The contact's last name associated with the Opportunity.

", "smithy.api#length": { "max": 80 } @@ -1898,18 +1989,18 @@ "BusinessTitle": { "target": "com.amazonaws.partnercentralselling#JobTitle", "traits": { - "smithy.api#documentation": "

The partner contact's title (job title or role) associated with the Opportunity. BusinessTitle supports either PartnerAccountManager or OpportunityOwner.\n

" + "smithy.api#documentation": "

The partner contact's title (job title or role) associated with the\n Opportunity. BusinessTitle supports either\n PartnerAccountManager or OpportunityOwner.

" } }, "Phone": { "target": "com.amazonaws.partnercentralselling#PhoneNumber", "traits": { - "smithy.api#documentation": "

The contact's phone number associated with the Opportunity.\n

" + "smithy.api#documentation": "

The contact's phone number associated with the Opportunity.

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

An object that contains a Customer Partner's contact details.\n

" + "smithy.api#documentation": "

An object that contains a Customer Partner's contact details.

" } }, "com.amazonaws.partnercentralselling#CountryCode": { @@ -3414,6 +3505,217 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.partnercentralselling#CreateEngagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#CreateEngagementRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#CreateEngagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "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": { + "documentation": "Grants permission to creating engagements in AWS Partner Central" + }, + "smithy.api#documentation": "

\n The CreateEngagement action allows you to create an Engagement, \n which serves as a collaborative space between different parties such as AWS Partners and AWS Sellers. \n This action automatically adds the caller's AWS account as an active member of the newly created Engagement.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateEngagement", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#CreateEngagementInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#CreateEngagementInvitationRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#CreateEngagementInvitationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "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": { + "documentation": "Grants permission to creating engagement invitations in AWS Partner Central" + }, + "smithy.api#documentation": "

\nThis action creates an invitation from a sender to a single receiver to join an engagement.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateEngagementInvitation", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#CreateEngagementInvitationRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the engagement. \n Accepted values are AWS and Sandbox, \n which determine the environment in which the engagement is managed.\n

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

\n Specifies a unique, client-generated UUID to ensure that the request is handled exactly once. \n This token helps prevent duplicate invitation creations.\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the Engagement associated with the invitation. \n This parameter ensures the invitation is created within the correct Engagement context.\n

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

\nThe Invitation object all information necessary to initiate an engagement invitation to a partner. \nIt contains a personalized message from the sender, the invitation's receiver, and a payload. The Payload can \nbe the OpportunityInvitation, which includes detailed structures for sender contacts, partner responsibilities, customer \ninformation, and project details.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#CreateEngagementInvitationResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier", + "traits": { + "smithy.api#documentation": "

\n Unique identifier assigned to the newly created engagement invitation.\n

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) that uniquely identifies the engagement\n invitation.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#CreateEngagementRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n The CreateEngagementRequest$Catalog parameter specifies the catalog related to the engagement. \n Accepted values are AWS and Sandbox, \n which determine the environment in which the engagement is managed.\n

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

\n The CreateEngagementRequest$ClientToken parameter specifies a unique, case-sensitive identifier to ensure that the request is handled exactly once. \n The value must not exceed sixty-four alphanumeric characters.\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#pattern": "^[!-~]{1,64}$", + "smithy.api#required": {} + } + }, + "Title": { + "target": "com.amazonaws.partnercentralselling#EngagementTitle", + "traits": { + "smithy.api#documentation": "

\nSpecifies the title of the Engagement.\n

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.partnercentralselling#EngagementDescription", + "traits": { + "smithy.api#documentation": "

\nProvides a description of the Engagement.\n

", + "smithy.api#required": {} + } + }, + "Contexts": { + "target": "com.amazonaws.partnercentralselling#EngagementContexts", + "traits": { + "smithy.api#documentation": "

\n The Contexts field is a required array of objects, with a maximum of 5 contexts allowed, \n specifying detailed information about customer projects associated with the Engagement. \n Each context object contains a Type field indicating the context type, \n which must be CustomerProject in this version, and a Payload field containing the CustomerProject details. The CustomerProject object is composed of two main components: Customer and Project. The Customer object includes information such as CompanyName, WebsiteUrl, Industry, and CountryCode, providing essential details about the customer. The Project object contains Title, BusinessProblem, and TargetCompletionDate, offering insights into the specific project associated with the customer. This structure allows comprehensive context to be included within the Engagement, \n facilitating effective collaboration between parties by providing relevant customer and project information.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#CreateEngagementResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\nUnique identifier assigned to the newly created engagement.\n

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

\nThe Amazon Resource Name (ARN) that identifies the engagement.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.partnercentralselling#CreateOpportunity": { "type": "operation", "input": { @@ -3449,7 +3751,7 @@ "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 for submission to Amazon Web Services. Creating an opportunity sets Lifecycle.ReviewStatus to\n Pending Submission.\n

\n

\n To 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 StartEngagementFromOpportunityTask.

    \n
  6. \n
\n

\n After submission, you can't edit the opportunity until the review is complete. But opportunities in the\n Pending Submission state must have complete details. You can update\n the opportunity while it's in the Pending Submission state.\n

\n

\n There's a set of mandatory fields to create opportunities, but consider providing optional fields to\n enrich the opportunity record.\n

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

Creates an Opportunity record in Partner Central. Use this operation to\n create a potential business opportunity for submission to Amazon Web Services. Creating\n an opportunity sets Lifecycle.ReviewStatus to Pending\n Submission.

\n

To submit an opportunity, follow these steps:

\n
    \n
  1. \n

    To create the opportunity, use CreateOpportunity.

    \n
  2. \n
  3. \n

    To associate a solution with the opportunity, use\n AssociateOpportunity.

    \n
  4. \n
  5. \n

    To submit the opportunity, use\n StartEngagementFromOpportunityTask.

    \n
  6. \n
\n

After submission, you can't edit the opportunity until the review is complete. But\n opportunities in the Pending Submission state must have complete details.\n You can update the opportunity while it's in the Pending Submission\n state.

\n

There's a set of mandatory fields to create opportunities, but consider providing\n optional fields to enrich the opportunity record.

", "smithy.api#http": { "method": "POST", "uri": "/CreateOpportunity", @@ -3464,26 +3766,26 @@ "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 for testing in secure, isolated environments.\n

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

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity is created in. Use AWS to create\n opportunities in the Amazon Web Services catalog, and Sandbox for testing in\n secure, isolated environments.

", "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 Cosell—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 Cosell—Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Cosell—Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Cosell—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 Cosell—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 Cosell—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 Cosell—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 Cosell—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 coselling support on these opportunities at any stage during their lifecycles. This is also known as a for-visibility-only (FVO) opportunity.\n

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

Identifies the type of support the partner needs from Amazon Web Services.

\n

Valid values:

\n
    \n
  • \n

    Cosell—Architectural Validation: Confirmation from Amazon Web Services that the\n partner's proposed solution architecture is aligned with Amazon Web Services best\n practices and poses minimal architectural risks.

    \n
  • \n
  • \n

    Cosell—Business Presentation: Request Amazon Web Services seller's\n participation in a joint customer presentation.

    \n
  • \n
  • \n

    Cosell—Competitive Information: Access to Amazon Web Services competitive\n resources and support for the partner's proposed solution.

    \n
  • \n
  • \n

    Cosell—Pricing Assistance: Connect with an Amazon Web Services seller for\n support situations where a partner may be receiving an upfront discount on a\n service (for example: EDP deals).

    \n
  • \n
  • \n

    Cosell—Technical Consultation: Connect with an Amazon Web Services Solutions\n Architect to address the partner's questions about the proposed solution.

    \n
  • \n
  • \n

    Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different\n cost savings of proposed solutions on Amazon Web Services versus on-premises or a\n traditional hosting environment.

    \n
  • \n
  • \n

    Cosell—Deal Support: Request Amazon Web Services seller's support to progress\n the opportunity (for example: joint customer call, strategic\n positioning).

    \n
  • \n
  • \n

    Cosell—Support for Public Tender/RFx: Opportunity related to the public sector\n where the partner needs Amazon Web Services RFx support.

    \n
  • \n
  • \n

    Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't need\n support from an Amazon Web Services sales representative, and the partner solely\n manages the opportunity. It's possible to request coselling support on these\n opportunities at any stage during their lifecycles. This is also known as a\n for-visibility-only (FVO) opportunity.

    \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.

" + "smithy.api#documentation": "

Indicates whether the Opportunity pertains to a national security\n project. This field must be set to true only when the customer's industry\n is Government. Additional privacy and security measures apply\n during the review and management process for opportunities marked as\n 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 to the partner.\n

\n

\n This field allows partners to link an opportunity to their CRM, which helps to ensure seamless integration and accurate synchronization between the Partner Central API and the partner's internal systems.\n

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

Specifies the opportunity's unique identifier in the partner's CRM system. This value\n is essential to track and reconcile because it's included in the outbound payload to the\n partner.

\n

This field allows partners to link an opportunity to their CRM, which helps to ensure\n seamless integration and accurate synchronization between the Partner Central API and\n the partner's internal systems.

", "smithy.api#length": { "max": 64 } @@ -3492,19 +3794,19 @@ "Customer": { "target": "com.amazonaws.partnercentralselling#Customer", "traits": { - "smithy.api#documentation": "

Specifies customer details associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies customer details associated with the Opportunity.

" } }, "Project": { "target": "com.amazonaws.partnercentralselling#Project", "traits": { - "smithy.api#documentation": "

An object that contains project details for the\n Opportunity.\n

" + "smithy.api#documentation": "

An object that contains project details for the Opportunity.

" } }, "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
" + "smithy.api#documentation": "

Specifies the opportunity type as a renewal, new, or expansion.

\n

Opportunity types:

\n
    \n
  • \n

    New opportunity: Represents a new business opportunity with a potential\n customer that's not previously engaged with your solutions or services.

    \n
  • \n
  • \n

    Renewal opportunity: Represents an opportunity to renew an existing contract\n or subscription with a current customer, ensuring continuity of service.

    \n
  • \n
  • \n

    Expansion opportunity: Represents an opportunity to expand the scope of an\n existing contract or subscription, either by adding new services or increasing\n the volume of existing services for a current customer.

    \n
  • \n
" } }, "Marketing": { @@ -3516,13 +3818,13 @@ "SoftwareRevenue": { "target": "com.amazonaws.partnercentralselling#SoftwareRevenue", "traits": { - "smithy.api#documentation": "

Specifies details of a customer's procurement terms. This is required only for partners in eligible programs.

" + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. This is required only for\n 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 help ensure uniqueness and avoid conflicts, use a Universally Unique Identifier (UUID) as the ClientToken. You can use standard libraries from most programming languages to generate this. If you use the same client token, the API returns the following error: \"Conflicting client token submitted for a new request body.\"\n

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

Required to be unique, and should be unchanging, it can be randomly generated or a\n meaningful string.

\n

Default: None

\n

Best practice: To help ensure uniqueness and avoid conflicts, use a Universally Unique\n Identifier (UUID) as the ClientToken. You can use standard libraries from\n most programming languages to generate this. If you use the same client token, the API\n returns the following error: \"Conflicting client token submitted for a new request\n body.\"

", "smithy.api#idempotencyToken": {}, "smithy.api#length": { "min": 1 @@ -3533,19 +3835,19 @@ "LifeCycle": { "target": "com.amazonaws.partnercentralselling#LifeCycle", "traits": { - "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.

" } }, "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

" + "smithy.api#documentation": "

Specifies the origin of the opportunity, indicating if it was sourced from Amazon Web Services or the partner. For all opportunities created with Catalog:\n AWS, this field must only be Partner Referral. However, when\n 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.

" } }, "OpportunityTeam": { "target": "com.amazonaws.partnercentralselling#PartnerOpportunityTeamMembersList", "traits": { - "smithy.api#documentation": "

Represents the internal team handling the opportunity. Specify collaborating members of this opportunity who are within the partner's organization.

" + "smithy.api#documentation": "

Represents the internal team handling the opportunity. Specify collaborating members\n of this opportunity who are within the partner's organization.

" } } }, @@ -3559,20 +3861,20 @@ "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 used for all subsequent opportunity actions, such as updates, associations, and submissions. It helps to ensure that each opportunity is accurately tracked and managed.\n

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

Read-only, system-generated Opportunity unique identifier. Amazon Web Services creates this identifier, and it's used for all subsequent opportunity\n actions, such as updates, associations, and submissions. It helps to ensure that each\n opportunity is accurately tracked and managed.

", "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

" + "smithy.api#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value\n is essential to track and reconcile because it's included in the outbound payload sent\n back to the partner.

" } }, "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 CreatedDate.\n

" + "smithy.api#documentation": "

\n DateTime when the opportunity was last modified. When the\n Opportunity is created, its value is CreatedDate.

" } } }, @@ -3580,13 +3882,242 @@ "smithy.api#output": {} } }, - "com.amazonaws.partnercentralselling#CurrencyCode": { - "type": "enum", - "members": { - "USD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "USD" + "com.amazonaws.partnercentralselling#CreateResourceSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshotResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "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": { + "documentation": "Grants permission to creating resource snapshots in AWS Partner Central" + }, + "smithy.api#documentation": "

\n This action allows you to create an immutable snapshot of a specific resource, such as an opportunity, \n within the context of an engagement. \n The snapshot captures a subset of the resource's data based on the schema defined by the provided template.

", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateResourceSnapshot", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#CreateResourceSnapshotJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshotJobRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshotJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to creating resource snapshot jobs in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use this action to create a job to generate a snapshot of the specified resource\n within an engagement. It initiates an asynchronous process to create a resource\n snapshot. The job creates a new snapshot only if the resource state has changed,\n adhering to the same access control and immutability rules as direct snapshot creation.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateResourceSnapshotJob", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#CreateResourceSnapshotJobRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog in which to create the snapshot job. Valid values are\n AWS and Sandbox.\n

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

\n Specifies a unique, client-generated UUID to ensure that the request is handled exactly once. \n This token helps prevent duplicate snapshot job creations.\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#pattern": "^[!-~]{1,64}$", + "smithy.api#required": {} + } + }, + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the identifier of the engagement associated with the resource to be\n snapshotted.\n

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

\n The type of resource for which the snapshot job is being created. Must be one of the\n supported resource types Opportunity.\n

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

\n Specifies the identifier of the specific resource to be snapshotted. The format\n depends on the ResourceType.\n

", + "smithy.api#required": {} + } + }, + "ResourceSnapshotTemplateIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", + "traits": { + "smithy.api#documentation": "

\n Specifies the name of the template that defines the schema for the snapshot.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#CreateResourceSnapshotJobResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the created snapshot job.\n

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

\n The Amazon Resource Name (ARN) of the created snapshot job.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#CreateResourceSnapshotRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog where the snapshot is created. Valid values are\n AWS and Sandbox.\n

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

\n The unique identifier of the engagement associated with this snapshot. This field\n links the snapshot to a specific engagement context.\n

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

\n Specifies the type of resource for which the snapshot is being created. This field\n determines the structure and content of the snapshot. Must be one of the supported\n resource types, such as: Opportunity.\n

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

\n The unique identifier of the specific resource to be snapshotted. The format and\n constraints of this identifier depend on the ResourceType specified. For example: For\n Opportunity type, it will be an opportunity ID.\n

", + "smithy.api#required": {} + } + }, + "ResourceSnapshotTemplateIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", + "traits": { + "smithy.api#documentation": "

\n The name of the template that defines the schema for the snapshot. This template\n determines which subset of the resource data will be included in the snapshot. Must\n correspond to an existing and valid template for the specified ResourceType.\n

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

\n Specifies a unique, client-generated UUID to ensure that the request is handled exactly once. \n This token helps prevent duplicate snapshot creations.\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#pattern": "^[!-~]{1,64}$", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#CreateResourceSnapshotResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.partnercentralselling#ResourceArn", + "traits": { + "smithy.api#documentation": "

\n Specifies the Amazon Resource Name (ARN) that uniquely identifies the snapshot\n created.\n

" + } + }, + "Revision": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotRevision", + "traits": { + "smithy.api#documentation": "

\n Specifies the revision number of the created snapshot. This field provides important\n information about the snapshot's place in the sequence of snapshots for the given\n resource.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#CurrencyCode": { + "type": "enum", + "members": { + "USD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USD" } }, "EUR": { @@ -4608,12 +5139,12 @@ "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.

" + "smithy.api#documentation": "

Represents the contact details for individuals associated with the customer of the\n Opportunity. This field captures relevant contacts, including\n decision-makers, influencers, and technical stakeholders within the customer\n organization. These contacts are key to progressing the opportunity.

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

An object that contains the customer's Account and Contact.\n

" + "smithy.api#documentation": "

An object that contains the customer's Account and\n Contact.

" } }, "com.amazonaws.partnercentralselling#CustomerContactsList": { @@ -4622,6 +5153,23 @@ "target": "com.amazonaws.partnercentralselling#Contact" } }, + "com.amazonaws.partnercentralselling#CustomerProjectsContext": { + "type": "structure", + "members": { + "Customer": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomer" + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomerProjectDetails", + "traits": { + "smithy.api#documentation": "

\n Information about the customer project associated with the Engagement.\n

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

\n The CustomerProjects structure in Engagements offers a flexible framework for managing\n customer-project relationships. It supports multiple customers per Engagement and\n multiple projects per customer, while also allowing for customers without projects and\n projects without specific customers.\n

\n

All Engagement members have full visibility of customers and their associated\n projects, enabling the capture of relevant context even when project details are not\n fully defined. This structure also facilitates targeted invitations, allowing partners\n to focus on specific customers and their business problems when sending Engagement\n invitations.

" + } + }, "com.amazonaws.partnercentralselling#CustomerSummary": { "type": "structure", "members": { @@ -4633,7 +5181,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object that contains a Customer object's subset of fields.\n

" + "smithy.api#documentation": "

An object that contains a Customer object's subset of fields.

" } }, "com.amazonaws.partnercentralselling#Date": { @@ -4648,6 +5196,64 @@ "smithy.api#timestampFormat": "date-time" } }, + "com.amazonaws.partnercentralselling#DeleteResourceSnapshotJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#DeleteResourceSnapshotJobRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to deleting resource snapshot jobs on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use this action to deletes a previously created resource snapshot job. The job must be\n in a stopped state before it can be deleted.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/DeleteResourceSnapshotJob", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#DeleteResourceSnapshotJobRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog from which to delete the snapshot job. Valid values are\n AWS and Sandbox. \n

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

\n The unique identifier of the resource snapshot job to be deleted.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.partnercentralselling#DeliveryModel": { "type": "enum", "members": { @@ -4728,7 +5334,7 @@ "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 entity that's required.\n

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

Allows you to remove an existing association between an Opportunity and\n related entities, such as a Partner Solution, Amazon Web Services product, or an Amazon Web Services Marketplace offer. This operation is the counterpart to\n AssociateOpportunity, and it provides flexibility to manage\n associations as business needs change.

\n

Use this operation to update the associations of an Opportunity due to\n changes in the related entities, or if an association was made in error. Ensuring\n accurate associations helps maintain clarity and accuracy to track and manage business\n opportunities. When you replace an entity, first attach the new entity and then\n disassociate the one to be removed, especially if it's the last remaining entity that's\n required.

", "smithy.api#http": { "method": "POST", "uri": "/DisassociateOpportunity", @@ -4742,14 +5348,14 @@ "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 for testing in secure, isolated environments.\n

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

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity disassociation is made in. Use AWS to\n disassociate opportunities in the Amazon Web Services catalog, and Sandbox\n for testing in secure, isolated environments.

", "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 helps to ensure that the correct opportunity is updated.\n

\n

Validation: Ensure that the provided identifier 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#documentation": "

The opportunity's unique identifier for when you want to disassociate it from related\n entities. This identifier helps to ensure that the correct opportunity is\n updated.

\n

Validation: Ensure that the provided identifier corresponds to an existing opportunity\n in the Amazon Web Services system because incorrect identifiers result in an error and no\n changes are made.

", "smithy.api#required": {}, "smithy.api#resourceIdentifier": "Identifier" } @@ -4757,14 +5363,14 @@ "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 to ensure that the right connections are removed.\n

\n

Examples of entity types include Partner Solution, Amazon Web Services product, and Amazon Web Services Marketplaceoffer. Ensure that the value matches one of the expected entity types.\n

\n

Validation: Provide a valid entity type to help ensure successful disassociation. An invalid or incorrect entity type results in an error.\n

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

The type of the entity that you're disassociating from the opportunity. When you\n specify the entity type, it helps the system correctly process the disassociation\n request to ensure that the right connections are removed.

\n

Examples of entity types include Partner Solution, Amazon Web Services product, and\n Amazon Web Services Marketplaceoffer. Ensure that the value matches one of the expected entity\n types.

\n

Validation: Provide a valid entity type to help ensure successful disassociation. An\n invalid or incorrect entity type results in an error.

", "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, see \n Amazon Web Services MarketplaceUsing the Amazon Web Services Marketplace Catalog API.\n

\n

Validation: Ensure the identifier or ARN is valid and corresponds to an existing entity.\n An incorrect or invalid identifier results in an error.\n

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

The related entity's identifier that you want to disassociate from the opportunity.\n Depending on the type of entity, this could be a simple identifier or an Amazon Resource\n Name (ARN) for entities managed through Amazon Web Services Marketplace.

\n

For Amazon Web Services Marketplace entities, use the Amazon Web Services Marketplace API to obtain the\n necessary ARNs. For guidance on retrieving these ARNs, see \n Amazon Web Services MarketplaceUsing the Amazon Web Services Marketplace Catalog API.

\n

Validation: Ensure the identifier or ARN is valid and corresponds to an existing\n entity. An incorrect or invalid identifier results in an error.

", "smithy.api#length": { "min": 1, "max": 255 @@ -4794,22 +5400,73 @@ "smithy.api#sensitive": {} } }, - "com.amazonaws.partnercentralselling#EngagementByAcceptingInvitationTask": { + "com.amazonaws.partnercentralselling#Engagement": { "type": "resource", "identifiers": { + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementArnOrIdentifier" + }, "Catalog": { "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" - }, - "TaskId": { - "target": "com.amazonaws.partnercentralselling#TaskIdentifier" } }, "create": { - "target": "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTask" + "target": "com.amazonaws.partnercentralselling#CreateEngagement" + }, + "read": { + "target": "com.amazonaws.partnercentralselling#GetEngagement" + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListEngagements" }, + "operations": [ + { + "target": "com.amazonaws.partnercentralselling#ListEngagementMembers" + } + ], "traits": { "aws.api#arn": { - "template": "catalog/{Catalog}/engagement-by-accepting-invitation-task/{TaskId}", + "template": "catalog/{Catalog}/engagement/{Identifier}", + "noAccount": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "/working-with-engagements.html" + }, + "smithy.api#documentation": "Represents an engagement in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#EngagementArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.partnercentralselling#EngagementArnOrIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(arn:.*|eng-[0-9a-z]{14})$" + } + }, + "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" + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasks" + }, + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/engagement-by-accepting-invitation-task/{TaskId}", "noAccount": true }, "aws.iam#disableConditionKeyInference": {}, @@ -4820,40 +5477,97 @@ "smithy.api#documentation": "Represents a task that starts an Engagement by accepting an Engagement Invitation in AWS Partner Central" } }, + "com.amazonaws.partnercentralselling#EngagementContextDetails": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.partnercentralselling#EngagementContextType", + "traits": { + "smithy.api#documentation": "

\n Specifies the type of Engagement context. Valid values are \"CustomerProject\" or\n \"Document\", indicating whether the context relates to a customer project or a document\n respectively. \n

", + "smithy.api#required": {} + } + }, + "Payload": { + "target": "com.amazonaws.partnercentralselling#EngagementContextPayload", + "traits": { + "smithy.api#documentation": "

\n Contains the specific details of the Engagement context. The structure of this payload\n varies depending on the Type field. \n

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

\n Provides detailed context information for an Engagement. This structure allows for\n specifying the type of context and its associated payload. \n

" + } + }, + "com.amazonaws.partnercentralselling#EngagementContextPayload": { + "type": "union", + "members": { + "CustomerProject": { + "target": "com.amazonaws.partnercentralselling#CustomerProjectsContext", + "traits": { + "smithy.api#documentation": "

\n Contains detailed information about a customer project when the context type is\n \"CustomerProject\". This field is present only when the Type in EngagementContextDetails\n is set to \"CustomerProject\".\n

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

\n Represents the payload of an Engagement context. The structure of this payload varies\n based on the context type specified in the EngagementContextDetails.\n

" + } + }, + "com.amazonaws.partnercentralselling#EngagementContextType": { + "type": "enum", + "members": { + "CUSTOMER_PROJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CustomerProject" + } + } + } + }, + "com.amazonaws.partnercentralselling#EngagementContexts": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementContextDetails" + }, + "traits": { + "smithy.api#length": { + "max": 5 + } + } + }, "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#documentation": "

Specifies the industry to which the customer’s company belongs. This field helps\n 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#documentation": "

Represents the name of the customer’s company associated with the Engagement\n 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#documentation": "

Provides the website URL of the customer’s company. This field helps partners verify\n 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#documentation": "

Indicates the country in which the customer’s company operates. This field is useful\n 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 company information and industry.

" + "smithy.api#documentation": "

Contains details about the customer associated with the Engagement Invitation,\n including company information and industry.

" } }, "com.amazonaws.partnercentralselling#EngagementCustomerBusinessProblem": { @@ -4866,6 +5580,53 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.partnercentralselling#EngagementCustomerProjectDetails": { + "type": "structure", + "members": { + "Title": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomerProjectTitle", + "traits": { + "smithy.api#documentation": "

\n The title of the project.\n

", + "smithy.api#required": {} + } + }, + "BusinessProblem": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomerBusinessProblem", + "traits": { + "smithy.api#documentation": "

\n A description of the business problem the project aims to solve.\n

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

\n The target completion date for the customer's project.\n

", + "smithy.api#pattern": "^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Provides comprehensive details about a customer project associated with an Engagement.\n This may include information such as project goals, timelines, and specific customer\n requirements.\n

" + } + }, + "com.amazonaws.partnercentralselling#EngagementCustomerProjectTitle": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.partnercentralselling#EngagementDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 255 + } + } + }, "com.amazonaws.partnercentralselling#EngagementFromOpportunityTask": { "type": "resource", "identifiers": { @@ -4879,6 +5640,9 @@ "create": { "target": "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTask" }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasks" + }, "traits": { "aws.api#arn": { "template": "catalog/{Catalog}/engagement-from-opportunity-task/{TaskId}", @@ -4892,6 +5656,24 @@ "smithy.api#documentation": "Represents a task that starts an Engagement from an Opportunity in AWS Partner Central" } }, + "com.amazonaws.partnercentralselling#EngagementIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^eng-[0-9a-z]{14}$" + } + }, + "com.amazonaws.partnercentralselling#EngagementIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementArnOrIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.partnercentralselling#EngagementInvitation": { "type": "resource", "identifiers": { @@ -4902,6 +5684,9 @@ "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" } }, + "create": { + "target": "com.amazonaws.partnercentralselling#CreateEngagementInvitation" + }, "read": { "target": "com.amazonaws.partnercentralselling#GetEngagementInvitation" }, @@ -4909,6 +5694,9 @@ "target": "com.amazonaws.partnercentralselling#ListEngagementInvitations" }, "operations": [ + { + "target": "com.amazonaws.partnercentralselling#AcceptEngagementInvitation" + }, { "target": "com.amazonaws.partnercentralselling#RejectEngagementInvitation" } @@ -4926,6 +5714,12 @@ "smithy.api#documentation": "Represents an Engagement Invitation that allows to join an Engagement on AWS Partner Central" } }, + "com.amazonaws.partnercentralselling#EngagementInvitationArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws:partnercentral::[0-9]{12}:[a-zA-Z]+/engagement-invitation/engi-[0-9,a-z]{13}$" + } + }, "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier": { "type": "string", "traits": { @@ -4945,6 +5739,18 @@ "smithy.api#pattern": "^engi-[0-9,a-z]{13}$" } }, + "com.amazonaws.partnercentralselling#EngagementInvitationIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType": { "type": "enum", "members": { @@ -4968,56 +5774,62 @@ "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.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Engagement Invitation. The ARN is a unique\n identifier that allows partners to reference the invitation in their system and manage\n 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.

" + "smithy.api#documentation": "

Describes the type of payload associated with the Engagement Invitation, such as\n Opportunity or MarketplaceOffer. This helps partners\n 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#documentation": "

Represents the unique identifier of the Engagement Invitation. This identifier is used\n to track the invitation and to manage responses like acceptance or rejection.

", "smithy.api#required": {} } }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the Engagement associated with this invitation. This links the\n invitation to its parent Engagement. \n

" + } + }, "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.

" + "smithy.api#documentation": "

Provides a short title or description of the Engagement Invitation. This title helps\n partners quickly identify and differentiate between multiple engagement\n 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.

" + "smithy.api#documentation": "

Represents the current status of the Engagement Invitation, such as\n Pending, Accepted, or Rejected. The status\n 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.

" + "smithy.api#documentation": "

Indicates the date when the Engagement Invitation was sent to the partner. This\n provides context for when the opportunity was shared and helps in tracking the timeline\n 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 be unavailable to the partner.

" + "smithy.api#documentation": "

Indicates the date and time when the Engagement Invitation will expire. After this\n date, the invitation can no longer be accepted, and the opportunity will be unavailable\n to the partner.

" } }, "SenderAwsAccountId": { - "target": "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel", + "target": "com.amazonaws.partnercentralselling#AwsAccount", "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.

" + "smithy.api#documentation": "

Specifies the AWS account ID of the sender who initiated the Engagement Invitation.\n This allows the partner to identify the AWS entity or representative responsible for\n 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#documentation": "

Indicates the name of the company or AWS division that sent the Engagement Invitation.\n This information is useful for partners to know which part of AWS is requesting\n engagement.

", "smithy.api#length": { "max": 120 } @@ -5026,19 +5838,25 @@ "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.

" + "smithy.api#documentation": "

Specifies the partner company or individual that received the Engagement Invitation.\n This field is important for tracking who the invitation was sent to within the partner\n 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#documentation": "

Specifies the catalog in which the Engagement Invitation resides. This can be either\n the AWS or Sandbox catalog, indicating whether the opportunity\n is live or being tested.

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

Identifies the role of the caller in the engagement invitation.

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

Provides a summarized view of the Engagement Invitation, including details like the identifier, status, and sender. This summary helps partners track and manage AWS originated opportunities.

" + "smithy.api#documentation": "

Provides a summarized view of the Engagement Invitation, including details like the\n identifier, status, and sender. This summary helps partners track and manage AWS\n originated opportunities.

" } }, "com.amazonaws.partnercentralselling#EngagementInvitationsPayloadType": { @@ -5047,118 +5865,325 @@ "target": "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType" } }, - "com.amazonaws.partnercentralselling#EngagementScore": { - "type": "enum", + "com.amazonaws.partnercentralselling#EngagementMember": { + "type": "structure", "members": { - "HIGH": { - "target": "smithy.api#Unit", + "CompanyName": { + "target": "com.amazonaws.partnercentralselling#MemberCompanyName", "traits": { - "smithy.api#enumValue": "High" + "smithy.api#documentation": "

\n The official name of the member's company or organization.\n

" } }, - "MEDIUM": { - "target": "smithy.api#Unit", + "WebsiteUrl": { + "target": "smithy.api#String", "traits": { - "smithy.api#enumValue": "Medium" + "smithy.api#documentation": "

\n The URL of the member company's website. This offers a way to find more information\n about the member organization and serves as an additional identifier.\n

" } }, - "LOW": { - "target": "smithy.api#Unit", + "AccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", "traits": { - "smithy.api#enumValue": "Low" + "smithy.api#documentation": "

\n This is the unique identifier for the AWS account associated with the member\n organization. It's used for AWS-related operations and identity verification. \n

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

Engagement members are the participants in an Engagement, which is likely a\n collaborative project or business opportunity within the AWS partner network. Members\n can be different partner organizations or AWS accounts that are working together on a\n specific engagement.

\n

Each member is represented by their AWS Account ID, Company Name, and associated\n details. Members have a status within the Engagement (PENDING, ACCEPTED, REJECTED, or\n WITHDRAWN), indicating their current state of participation. Only existing members of an\n Engagement can view the list of other members. This implies a level of privacy and\n access control within the Engagement structure.

" } }, - "com.amazonaws.partnercentralselling#EngagementTitle": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 40 - } + "com.amazonaws.partnercentralselling#EngagementMemberSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementMemberSummary" } }, - "com.amazonaws.partnercentralselling#ExpectedCustomerSpend": { + "com.amazonaws.partnercentralselling#EngagementMemberSummary": { "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#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", + "CompanyName": { + "target": "com.amazonaws.partnercentralselling#MemberCompanyName", "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": {} + "smithy.api#documentation": "

\n The official name of the member's company or organization.\n

" } }, - "TargetCompany": { + "WebsiteUrl": { "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": {} + "smithy.api#documentation": "

\n The URL of the member company's website. This offers a way to find more information\n about the member organization and serves as an additional identifier.\n

" } } }, "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.

" + "smithy.api#documentation": "

\n The EngagementMemberSummary provides a snapshot of essential information about\n participants in an AWS Partner Central Engagement. This compact data structure\n encapsulates key details of each member, facilitating efficient collaboration and\n management within the Engagement.\n

" } }, - "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList": { + "com.amazonaws.partnercentralselling#EngagementMembers": { "type": "list", "member": { - "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpend" + "target": "com.amazonaws.partnercentralselling#EngagementMember" }, "traits": { "smithy.api#length": { - "min": 1 + "max": 10 } } }, - "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#EngagementPageSize": { + "type": "integer", + "traits": { + "smithy.api#default": 20, + "smithy.api#range": { + "min": 1, + "max": 100 + } } }, - "com.amazonaws.partnercentralselling#FilterLifeCycleStage": { - "type": "list", - "member": { - "target": "com.amazonaws.partnercentralselling#Stage" + "com.amazonaws.partnercentralselling#EngagementResourceAssociationSummary": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Indicates the environment in which the resource and engagement exist.\n

", + "smithy.api#required": {} + } + }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for the engagement associated with the resource.\n

" + } + }, + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", + "traits": { + "smithy.api#documentation": "

\n Categorizes the type of resource associated with the engagement.\n

" + } + }, + "ResourceId": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for the specific resource. Varies depending on the resource\n type.\n

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

\n The AWS account ID of the entity that created the association.\n

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

\n This provide a streamlined view of the relationships between engagements and\n resources. These summaries offer a crucial link between collaborative engagements and\n the specific resources involved, such as opportunities.These summaries are particularly\n valuable for partners navigating complex engagements with multiple resources. They\n enable quick insights into resource distribution across engagements, support efficient\n resource management, and help maintain a clear overview of collaborative activities.\n

" } }, - "com.amazonaws.partnercentralselling#FilterStatus": { + "com.amazonaws.partnercentralselling#EngagementResourceAssociationSummaryList": { "type": "list", "member": { - "target": "com.amazonaws.partnercentralselling#SolutionStatus" + "target": "com.amazonaws.partnercentralselling#EngagementResourceAssociationSummary" } }, - "com.amazonaws.partnercentralselling#GetAwsOpportunitySummary": { - "type": "operation", - "input": { - "target": "com.amazonaws.partnercentralselling#GetAwsOpportunitySummaryRequest" + "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#EngagementSort": { + "type": "structure", + "members": { + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

\n The order in which to sort the results.\n

", + "smithy.api#required": {} + } + }, + "SortBy": { + "target": "com.amazonaws.partnercentralselling#EngagementSortName", + "traits": { + "smithy.api#documentation": "

\n The field by which to sort the results.\n

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

\n Specifies the sorting parameters for listing Engagements.\n

" + } + }, + "com.amazonaws.partnercentralselling#EngagementSortName": { + "type": "enum", + "members": { + "CreatedDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreatedDate" + } + } + } + }, + "com.amazonaws.partnercentralselling#EngagementSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.partnercentralselling#EngagementArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the created engagement.\n

" + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the engagement.\n

" + } + }, + "Title": { + "target": "com.amazonaws.partnercentralselling#EngagementTitle", + "traits": { + "smithy.api#documentation": "

\n The title of the engagement.\n

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n The date and time when the engagement was created.\n

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

\n The AWS account ID of the engagement creator.\n

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

\n The number of members in the engagement.\n

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

\n An object that contains an Engagement's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#EngagementSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementSummary" + } + }, + "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\n opportunity. This helps in forecasting financial returns.

", + "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\n 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\n can include values such as Monthly, Quarterly, or\n Annually. The default value is Monthly, representing\n 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\n the opportunity. This field helps track the partner’s involvement in the\n opportunity.

", + "smithy.api#length": { + "min": 1, + "max": 80 + }, + "smithy.api#required": {} + } + }, + "EstimationUrl": { + "target": "com.amazonaws.partnercentralselling#WebsiteUrl", + "traits": { + "smithy.api#documentation": "

\n A URL providing additional information or context about the spend estimation.\n

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

Provides an estimate of the revenue that the partner is expected to generate from the\n opportunity. This information helps partners assess the financial value of the\n 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" @@ -5187,7 +6212,7 @@ "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#documentation": "

Retrieves a summary of an AWS Opportunity. This summary includes high-level details\n about the opportunity sourced from AWS, such as lifecycle information, customer details,\n and involvement type. It is useful for tracking updates on the AWS opportunity\n corresponding to an opportunity in the partner's account.

", "smithy.api#http": { "method": "POST", "uri": "/GetAwsOpportunitySummary", @@ -5202,14 +6227,14 @@ "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#documentation": "

Specifies the catalog in which the AWS Opportunity is located. Accepted values include\n AWS for production opportunities or Sandbox for testing\n purposes. The catalog determines which environment the opportunity data is pulled\n from.

", "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.\n

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

The unique identifier for the related partner opportunity. Use this field to correlate\n an AWS opportunity with its corresponding partner opportunity.

", "smithy.api#required": {}, "smithy.api#resourceIdentifier": "Identifier" } @@ -5225,74 +6250,74 @@ "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#documentation": "

Specifies the catalog in which the AWS Opportunity exists. This is the environment\n (e.g., AWS or Sandbox) where the opportunity is being\n managed.

", "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

" + "smithy.api#documentation": "

Provides the unique identifier of the related partner opportunity, allowing partners\n to link the AWS Opportunity to their corresponding opportunity in their CRM\n system.

" } }, "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

" + "smithy.api#documentation": "

Specifies whether the AWS Opportunity originated from AWS or the partner. This helps\n distinguish between opportunities that were sourced by AWS and those referred by the\n partner.

" } }, "InvolvementType": { "target": "com.amazonaws.partnercentralselling#SalesInvolvementType", "traits": { - "smithy.api#documentation": "

\n Specifies the type of involvement AWS has in the opportunity, such as direct cosell or advisory support.\n This field helps partners understand the role AWS plays in advancing the opportunity.\n

" + "smithy.api#documentation": "

Specifies the type of involvement AWS has in the opportunity, such as direct cosell or\n advisory support. This field helps partners understand the role AWS plays in advancing\n the opportunity.

" } }, "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

" + "smithy.api#documentation": "

Defines the visibility level for the AWS Opportunity. Use Full visibility\n for most cases, while Limited visibility is reserved for special programs\n or sensitive opportunities.

" } }, "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

" + "smithy.api#documentation": "

Contains lifecycle information for the AWS Opportunity, including review status,\n stage, and target close date. This field is crucial for partners to monitor the\n progression of the opportunity.

" } }, "OpportunityTeam": { "target": "com.amazonaws.partnercentralselling#AwsOpportunityTeamMembersList", "traits": { - "smithy.api#documentation": "

\n Details the AWS opportunity team, including members involved. This information\n helps partners know who from AWS is engaged and what their role is.\n

" + "smithy.api#documentation": "

Details the AWS opportunity team, including members involved. This information helps\n partners know who from AWS is engaged and what their role is.

" } }, "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

" + "smithy.api#documentation": "

Provides insights into the AWS Opportunity, including engagement score and recommended\n actions that AWS suggests for the partner.

" } }, "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

" + "smithy.api#documentation": "

Provides a reason for any changes in the involvement type of AWS in the opportunity.\n This field is used to track why the level of AWS engagement has changed from For\n Visibility Only to Co-sell offering transparency into the\n partnership dynamics.

" } }, "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

" + "smithy.api#documentation": "

Lists related entity identifiers, such as AWS products or partner solutions,\n associated with the AWS Opportunity. These identifiers provide additional context and\n help partners understand which AWS services are involved.

" } }, "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 customer data. These details help partners understand the business context of the\n opportunity.\n

" + "smithy.api#documentation": "

Provides details about the customer associated with the AWS Opportunity, including\n account information, industry, and other customer data. These details help partners\n understand the business context of the opportunity.

" } }, "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

" + "smithy.api#documentation": "

Provides details about the project associated with the AWS Opportunity, including the\n customer’s business problem, expected outcomes, and project scope. This information is\n crucial for understanding the broader context of the opportunity.

" } } }, @@ -5300,6 +6325,44 @@ "smithy.api#output": {} } }, + "com.amazonaws.partnercentralselling#GetEngagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetEngagementRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetEngagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 retrieval of engagement details in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use this action to retrieve the engagement record for a given\n EngagementIdentifier.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetEngagement", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, "com.amazonaws.partnercentralselling#GetEngagementInvitation": { "type": "operation", "input": { @@ -5332,7 +6395,7 @@ "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 aspects such as customer, project details, and lifecycle information. To connect an engagement invitation with an opportunity, match the invitation’s Payload.Project.Title with opportunity Project.Title.

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

Retrieves the details of an engagement invitation shared by AWS with a partner. The\n information includes aspects such as customer, project details, and lifecycle\n information. To connect an engagement invitation with an opportunity, match the\n invitation’s Payload.Project.Title with opportunity\n Project.Title.

", "smithy.api#http": { "method": "POST", "uri": "/GetEngagementInvitation", @@ -5347,14 +6410,14 @@ "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#documentation": "

Specifies the catalog associated with the request. The field accepts values from the\n predefined set: AWS for live operations or Sandbox for testing\n environments.

", "smithy.api#required": {} } }, "Identifier": { "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", "traits": { - "smithy.api#documentation": "

Specifies the unique identifier for the retrieved engagement\n invitation.

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

Specifies the unique identifier for the retrieved engagement invitation.

", "smithy.api#required": {} } } @@ -5369,13 +6432,13 @@ "Arn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the engagement\n invitation.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that 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.

" + "smithy.api#documentation": "

The type of payload contained in the engagement invitation, indicating what data or\n context the payload covers.

" } }, "Id": { @@ -5385,10 +6448,16 @@ "smithy.api#required": {} } }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the engagement associated with this invitation.This ID links the\n invitation to its corresponding engagement.\n

" + } + }, "EngagementTitle": { "target": "com.amazonaws.partnercentralselling#EngagementTitle", "traits": { - "smithy.api#documentation": "

The title of the engagement invitation, summarizing the purpose or objectives of the opportunity shared by AWS.

" + "smithy.api#documentation": "

The title of the engagement invitation, summarizing the purpose or objectives of the\n opportunity shared by AWS.

" } }, "Status": { @@ -5406,13 +6475,13 @@ "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.

" + "smithy.api#documentation": "

Indicates the date on which the engagement invitation will expire if not accepted by\n the partner.

" } }, "SenderAwsAccountId": { - "target": "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel", + "target": "com.amazonaws.partnercentralselling#AwsAccount", "traits": { - "smithy.api#documentation": "

Specifies the AWS Account ID of the sender, which identifies the AWS team responsible for sharing the engagement invitation.

" + "smithy.api#documentation": "

Specifies the AWS Account ID of the sender, which identifies the AWS team responsible\n for sharing the engagement invitation.

" } }, "SenderCompanyName": { @@ -5427,88 +6496,184 @@ "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.

" + "smithy.api#documentation": "

Information about the partner organization or team that received the engagement\n 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#documentation": "

Indicates the catalog from which the engagement invitation details are retrieved. This\n field helps in identifying the appropriate catalog (e.g., AWS or\n 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.

" + "smithy.api#documentation": "

If the engagement invitation was rejected, this field specifies the reason provided by\n 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.

" + "smithy.api#documentation": "

Details of the engagement invitation payload, including specific data relevant to the\n 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" + "InvitationMessage": { + "target": "com.amazonaws.partnercentralselling#InvitationMessage", + "traits": { + "smithy.api#documentation": "

\n The message sent to the invited partner when the invitation was created.\n

" + } }, - { - "target": "com.amazonaws.partnercentralselling#ThrottlingException" + "EngagementDescription": { + "target": "com.amazonaws.partnercentralselling#EngagementDescription", + "traits": { + "smithy.api#documentation": "

\n The description of the engagement associated with this invitation.\n

" + } }, - { - "target": "com.amazonaws.partnercentralselling#ValidationException" + "ExistingMembers": { + "target": "com.amazonaws.partnercentralselling#EngagementMemberSummaries", + "traits": { + "smithy.api#documentation": "

\n A list of active members currently part of the Engagement. This array contains a\n maximum of 10 members, each represented by an object with the following\n properties.\n

\n
    \n
  • \n

    \n CompanyName: The name of the member's company. \n

    \n
  • \n
  • \n

    \n WebsiteUrl: The website URL of the member's company. \n

    \n
  • \n
" + } } - ], + }, "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": {} + "smithy.api#output": {} } }, - "com.amazonaws.partnercentralselling#GetOpportunityRequest": { + "com.amazonaws.partnercentralselling#GetEngagementRequest": { "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, isolated testing environment.\n

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

\n Specifies the catalog related to the engagement request. Valid values are\n AWS and Sandbox.\n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the identifier of the Engagement record to retrieve.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetEngagementResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique resource identifier of the engagement retrieved.\n

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

\n The Amazon Resource Name (ARN) of the engagement retrieved.\n

" + } + }, + "Title": { + "target": "com.amazonaws.partnercentralselling#EngagementTitle", + "traits": { + "smithy.api#documentation": "

\n The title of the engagement. It provides a brief, descriptive name for the engagement\n that is meaningful and easily recognizable.\n

" + } + }, + "Description": { + "target": "com.amazonaws.partnercentralselling#EngagementDescription", + "traits": { + "smithy.api#documentation": "

\n A more detailed description of the engagement. This provides additional context or\n information about the engagement's purpose or scope. \n

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n The date and time when the Engagement was created, presented in ISO 8601 format (UTC).\n For example: \"2023-05-01T20:37:46Z\". This timestamp helps track the lifecycle of the\n Engagement.\n

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

\n The AWS account ID of the user who originally created the engagement. This field helps\n in tracking the origin of the engagement.\n

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

\n Specifies the current count of members participating in the Engagement. This count\n includes all active members regardless of their roles or permissions within the\n Engagement.\n

" + } + }, + "Contexts": { + "target": "com.amazonaws.partnercentralselling#EngagementContexts", + "traits": { + "smithy.api#documentation": "

\n A list of context objects associated with the engagement. Each context provides\n additional information related to the Engagement, such as customer projects or\n documents.\n

" + } + } + }, + "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": "

Fetches the Opportunity record from Partner Central by a given\n Identifier.

\n

Use the ListOpportunities action or the event notification (from Amazon EventBridge) to obtain this identifier.

", + "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": "

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity is fetched from. Use AWS to retrieve\n opportunities in the Amazon Web Services catalog, and Sandbox to retrieve\n opportunities in a secure, isolated testing environment.

", "smithy.api#required": {} } }, "Identifier": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

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

Read-only, system generated Opportunity unique identifier.

", "smithy.api#required": {} } } @@ -5523,26 +6688,26 @@ "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#documentation": "

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity information is retrieved from. Use AWS to\n retrieve opportunities in the Amazon Web Services catalog, and Sandbox to\n retrieve opportunities in a secure and isolated testing environment.

", "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 Cosell—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 Cosell—Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Cosell—Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Cosell—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 Cosell—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 Cosell—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 Cosell—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 Cosell—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 coselling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.\n

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

Identifies the type of support the partner needs from Amazon Web Services.

\n

Valid values:

\n
    \n
  • \n

    Cosell—Architectural Validation: Confirmation from Amazon Web Services that the\n partner's proposed solution architecture is aligned with Amazon Web Services best\n practices and poses minimal architectural risks.

    \n
  • \n
  • \n

    Cosell—Business Presentation: Request Amazon Web Services seller's\n participation in a joint customer presentation.

    \n
  • \n
  • \n

    Cosell—Competitive Information: Access to Amazon Web Services competitive\n resources and support for the partner's proposed solution.

    \n
  • \n
  • \n

    Cosell—Pricing Assistance: Connect with an Amazon Web Services seller for\n support situations where a partner may be receiving an upfront discount on a\n service (for example: EDP deals).

    \n
  • \n
  • \n

    Cosell—Technical Consultation: Connect with an Amazon Web Services Solutions\n Architect to address the partner's questions about the proposed solution.

    \n
  • \n
  • \n

    Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different\n cost savings of proposed solutions on Amazon Web Services versus on-premises or a\n traditional hosting environment.

    \n
  • \n
  • \n

    Cosell—Deal Support: Request Amazon Web Services seller's support to progress\n the opportunity (for example: joint customer call, strategic\n positioning).

    \n
  • \n
  • \n

    Cosell—Support for Public Tender/RFx: Opportunity related to the public sector\n where the partner needs Amazon Web Services RFx support.

    \n
  • \n
  • \n

    Do Not Need Support from Amazon Web Services Sales Rep: Indicates that a\n partner doesn't need support from an Amazon Web Services sales representative,\n and the partner solely manages the opportunity. It's possible to request\n coselling support on these opportunities at any stage during their lifecycle.\n Also known as, for-visibility-only (FVO) opportunity.

    \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.

" + "smithy.api#documentation": "

Indicates whether the Opportunity pertains to a national security\n project. This field must be set to true only when the customer's industry\n is Government. Additional privacy and security measures apply\n during the review and management process for opportunities marked as\n 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#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value\n is essential to track and reconcile because it's included in the outbound payload sent\n back to the partner.

", "smithy.api#length": { "max": 64 } @@ -5551,71 +6716,77 @@ "Customer": { "target": "com.amazonaws.partnercentralselling#Customer", "traits": { - "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity.

" } }, "Project": { "target": "com.amazonaws.partnercentralselling#Project", "traits": { - "smithy.api#documentation": "

An object that contains project details summary for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains project details summary for the\n Opportunity.

" } }, "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, which helps to ensure service continuity.\n

    \n
  • \n
  • \n

    \n Expansion opportunity:\n Represents an opportunity to expand the scope of a customer's contract or subscription, either by adding new services or increasing the volume of existing services.\n

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

Specifies the opportunity type as renewal, new, or expansion.

\n

Opportunity types:

\n
    \n
  • \n

    New opportunity: Represents a new business opportunity with a potential\n customer that's not previously engaged with your solutions or services.

    \n
  • \n
  • \n

    Renewal opportunity: Represents an opportunity to renew an existing contract\n or subscription with a current customer, which helps to ensure service\n continuity.

    \n
  • \n
  • \n

    Expansion opportunity: Represents an opportunity to expand the scope of a\n customer's contract or subscription, either by adding new services or increasing\n the volume of existing services.

    \n
  • \n
" } }, "Marketing": { "target": "com.amazonaws.partnercentralselling#Marketing", "traits": { - "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains marketing details for the 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.

" + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. Required only for partners in\n eligible programs.

" } }, "Id": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

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

Read-only, system generated Opportunity unique identifier.

", "smithy.api#required": {} } }, + "Arn": { + "target": "com.amazonaws.partnercentralselling#OpportunityArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that uniquely identifies the opportunity.

" + } + }, "LastModifiedDate": { "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#documentation": "

\n DateTime\n when the opportunity was last modified.\n

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

\n DateTime when the opportunity was last modified.

", "smithy.api#required": {} } }, "CreatedDate": { "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#documentation": "

\n DateTime when the Opportunity was last created.\n

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

\n DateTime when the Opportunity was last created.

", "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#documentation": "

Provides information about the associations of other entities with the opportunity.\n These entities include identifiers for AWSProducts, Partner\n Solutions, and AWSMarketplaceOffers.

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

An object that contains lifecycle details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.

" } }, "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.

" + "smithy.api#documentation": "

Represents the internal team handling the opportunity. Specify the members involved in\n collaborating on this opportunity within the partner's organization.

" } } }, @@ -5623,112 +6794,481 @@ "smithy.api#output": {} } }, - "com.amazonaws.partnercentralselling#Industry": { - "type": "enum", + "com.amazonaws.partnercentralselling#GetResourceSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshotResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 retrieving resource snapshot details in AWS Partner Central" + }, + "smithy.api#documentation": "

Use this action to retrieve a specific snapshot record.

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetResourceSnapshot", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetResourceSnapshotJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshotJobRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshotJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 retrieving resource snapshot job details in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use this action to retrieves information about a specific resource snapshot\n job.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetResourceSnapshotJob", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetResourceSnapshotJobRequest": { + "type": "structure", "members": { - "AEROSPACE_SATELLITE": { - "target": "smithy.api#Unit", + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "traits": { - "smithy.api#enumValue": "Aerospace" + "smithy.api#documentation": "

\n Specifies the catalog related to the request. Valid values are:\n

\n
    \n
  • \n

    AWS: Retrieves the snapshot job from the production AWS environment.

    \n
  • \n
  • \n

    Sandbox: Retrieves the snapshot job from a sandbox environment used for\n testing or development purposes.

    \n
  • \n
", + "smithy.api#required": {} } }, - "AGRICULTURE": { - "target": "smithy.api#Unit", + "ResourceSnapshotJobIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", "traits": { - "smithy.api#enumValue": "Agriculture" + "smithy.api#documentation": "

\n The unique identifier of the resource snapshot job to be retrieved. This identifier is\n crucial for pinpointing the specific job you want to query.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" } - }, - "AUTOMOTIVE": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetResourceSnapshotJobResponse": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "traits": { - "smithy.api#enumValue": "Automotive" + "smithy.api#documentation": "

\n The catalog in which the snapshot job was created. This will match the catalog\n specified in the request.\n

", + "smithy.api#required": {} } }, - "COMPUTERS_ELECTRONICS": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", "traits": { - "smithy.api#enumValue": "Computers and Electronics" + "smithy.api#documentation": "

\n The unique identifier of the snapshot job. This matches the\n ResourceSnapshotJobIdentifier provided in the request. \n

" } }, - "CONSUMER_GOODS": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobArn", "traits": { - "smithy.api#enumValue": "Consumer Goods" + "smithy.api#documentation": "

\n he Amazon Resource Name (ARN) of the snapshot job. This globally unique identifier\n can be used for resource-specific operations across AWS services. \n

" } }, - "EDUCATION": { - "target": "smithy.api#Unit", + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", "traits": { - "smithy.api#enumValue": "Education" + "smithy.api#documentation": "

\n The identifier of the engagement associated with this snapshot job. This links the job\n to a specific engagement context. \n

" } }, - "ENERGY_OIL_GAS": { - "target": "smithy.api#Unit", + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", "traits": { - "smithy.api#enumValue": "Energy - Oil and Gas" + "smithy.api#documentation": "

\n The type of resource being snapshotted. This would have Opportunity as a value as it\n is dependent on the supported resource type. \n

" } }, - "ENERGY_POWER_UTILITIES": { - "target": "smithy.api#Unit", + "ResourceId": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", "traits": { - "smithy.api#enumValue": "Energy - Power and Utilities" + "smithy.api#documentation": "

\n The identifier of the specific resource being snapshotted. The format may vary\n depending on the ResourceType.\n

" } }, - "FINANCIAL_SERVICES": { - "target": "smithy.api#Unit", + "ResourceArn": { + "target": "com.amazonaws.partnercentralselling#ResourceArn", "traits": { - "smithy.api#enumValue": "Financial Services" + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the resource being snapshotted. This provides a\n globally unique identifier for the resource across AWS.\n

" } }, - "GAMING": { - "target": "smithy.api#Unit", + "ResourceSnapshotTemplateName": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", "traits": { - "smithy.api#enumValue": "Gaming" + "smithy.api#documentation": "

\n The name of the template used for creating the snapshot. This is the same as the\n template name. It defines the structure and content of the snapshot.\n

" } }, - "GOVERNMENT": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#enumValue": "Government" + "smithy.api#documentation": "

\n The date and time when the snapshot job was created, in ISO 8601 format (UTC).\n Example: \"2023-05-01T20:37:46Z\"\n

" } }, - "HEALTHCARE": { - "target": "smithy.api#Unit", + "Status": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobStatus", "traits": { - "smithy.api#enumValue": "Healthcare" + "smithy.api#documentation": "

\n The current status of the snapshot job. Valid values:\n

\n
    \n
  • \n

    STOPPED: The job is not currently running.

    \n
  • \n
  • \n

    RUNNING: The job is actively executing.

    \n
  • \n
" } }, - "HOSPITALITY": { - "target": "smithy.api#Unit", + "LastSuccessfulExecutionDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#enumValue": "Hospitality" + "smithy.api#documentation": "

\n The date and time of the last successful execution of the job, in ISO 8601 format\n (UTC). Example: \"2023-05-01T20:37:46Z\"\n

" } }, - "LIFE_SCIENCES": { - "target": "smithy.api#Unit", + "LastFailure": { + "target": "smithy.api#String", "traits": { - "smithy.api#enumValue": "Life Sciences" + "smithy.api#documentation": "

\n If the job has encountered any failures, this field contains the error message from\n the most recent failure. This can be useful for troubleshooting issues with the job.\n

" } - }, - "MANUFACTURING": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#GetResourceSnapshotRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "traits": { - "smithy.api#enumValue": "Manufacturing" + "smithy.api#documentation": "

Specifies the catalog related to the request. Valid values are:

\n
    \n
  • \n

    AWS: Retrieves the snapshot from the production AWS environment.

    \n
  • \n
  • \n

    Sandbox: Retrieves the snapshot from a sandbox environment used for testing or\n development purposes.

    \n
  • \n
", + "smithy.api#required": {} } }, - "MARKETING_ADVERTISING": { - "target": "smithy.api#Unit", + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", "traits": { - "smithy.api#enumValue": "Marketing and Advertising" + "smithy.api#documentation": "

The unique identifier of the engagement associated with the snapshot. This field links\n the snapshot to a specific engagement context.

", + "smithy.api#required": {} } }, - "MEDIA_ENTERTAINMENT": { - "target": "smithy.api#Unit", + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", "traits": { - "smithy.api#enumValue": "Media and Entertainment" + "smithy.api#documentation": "

Specifies the type of resource that was snapshotted. This field determines the\n structure and content of the snapshot payload. Valid value\n includes:Opportunity: For opportunity-related data.

", + "smithy.api#required": {} } }, - "MINING": { + "ResourceIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the specific resource that was snapshotted. The format and\n constraints of this identifier depend on the ResourceType specified. For\n Opportunity type, it will be an opportunity ID\n

", + "smithy.api#required": {} + } + }, + "ResourceSnapshotTemplateIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", + "traits": { + "smithy.api#documentation": "

he name of the template that defines the schema for the snapshot. This template\n determines which subset of the resource data is included in the snapshot and must\n correspond to an existing and valid template for the specified\n ResourceType.

", + "smithy.api#required": {} + } + }, + "Revision": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotRevision", + "traits": { + "smithy.api#documentation": "

Specifies which revision of the snapshot to retrieve. If omitted returns the latest\n revision.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetResourceSnapshotResponse": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

The catalog in which the snapshot was created. Matches the Catalog specified in the\n request.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.partnercentralselling#ResourceArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the snapshot. This globally unique identifier can be\n used for resource-specific operations across AWS services.\n

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

The AWS account ID of the principal (user or role) who created the snapshot. This\n helps in tracking the origin of the snapshot.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

The timestamp when the snapshot was created, in ISO 8601 format (e.g.,\n \"2023-06-01T14:30:00Z\"). This allows for precise tracking of when the snapshot was\n taken.

" + } + }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier of the engagement associated with this snapshot. Matches the\n EngagementIdentifier specified in the request.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", + "traits": { + "smithy.api#documentation": "

\n The type of the resource that was snapshotted. Matches the ResourceType specified in\n the request.\n

" + } + }, + "ResourceId": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the specific resource that was snapshotted. Matches the\n ResourceIdentifier specified in the request.\n

" + } + }, + "ResourceSnapshotTemplateName": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", + "traits": { + "smithy.api#documentation": "

\n The name of the view used for this snapshot. This is the same as the template\n name.\n

" + } + }, + "Revision": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotRevision", + "traits": { + "smithy.api#documentation": "

\n The revision number of this snapshot. This is a positive integer that is sequential\n and unique within the context of a resource view.\n

" + } + }, + "Payload": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotPayload" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#GetSellingSystemSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetSellingSystemSettingsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetSellingSystemSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 retrieving system settings settings in AWS Partner Central" + }, + "smithy.api#documentation": "

Retrieves the currently set system settings, which include the IAM Role used for resource snapshot jobs.

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetSellingSystemSettings", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetSellingSystemSettingsRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog in which the settings are defined. Acceptable values include\n AWS for production and Sandbox for testing\n environments.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetSellingSystemSettingsResponse": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog in which the settings are defined. Acceptable values include\n AWS for production and Sandbox for testing\n environments.

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

Specifies the ARN of the IAM Role used for resource snapshot job executions.

" + } + } + }, + "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" @@ -5804,11 +7344,47 @@ } }, "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#documentation": "

This error occurs when the specified resource can’t be found or doesn't exist.\n Resource ID and type might be incorrect.

\n

Suggested action: This is usually a transient error. Retry after the provided retry\n delay or a short interval. If the problem persists, contact AWS support.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } }, + "com.amazonaws.partnercentralselling#Invitation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.partnercentralselling#InvitationMessage", + "traits": { + "smithy.api#documentation": "

\n A message accompanying the invitation.\n

", + "smithy.api#required": {} + } + }, + "Receiver": { + "target": "com.amazonaws.partnercentralselling#Receiver", + "traits": { + "smithy.api#required": {} + } + }, + "Payload": { + "target": "com.amazonaws.partnercentralselling#Payload", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The Invitation structure represents an invitation exchanged between partners and AWS.\n It includes a message, receiver information, and a payload providing context for the\n invitation.\n

" + } + }, + "com.amazonaws.partnercentralselling#InvitationMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.partnercentralselling#InvitationStatus": { "type": "enum", "members": { @@ -5838,203 +7414,1269 @@ } } }, + "com.amazonaws.partnercentralselling#InvitationStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#InvitationStatus" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.partnercentralselling#InvolvementTypeChangeReason": { "type": "enum", "members": { "EXPANSION_OPPORTUNITY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "Expansion Opportunity" + "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\n 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\n 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\n 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": "

Specifies the current stage of the Opportunity's lifecycle as it maps to\n Amazon Web Services stages from the current stage in the partner CRM. This field\n provides a translated value of the stage, and offers insight into the\n Opportunity's progression in the sales cycle, according to Amazon Web Services definitions.

\n \n

A lead and a prospect must be further matured to a Qualified\n opportunity before submission. Opportunities that were closed/lost before submission\n aren't suitable for submission.

\n
\n

The descriptions of each sales stage are:

\n
    \n
  • \n

    Prospect: Amazon Web Services identifies the opportunity. It can be active\n (Comes directly from the end customer through a lead) or latent (Your account\n team believes it exists based on research, account plans, sales plays).

    \n
  • \n
  • \n

    Qualified: Your account team engaged with the customer to discuss viability\n and requirements. The customer agreed that the opportunity is real, of interest,\n and may solve business/technical needs.

    \n
  • \n
  • \n

    Technical Validation: All parties understand the implementation plan.

    \n
  • \n
  • \n

    Business Validation: Pricing was proposed, and all parties agree to the steps\n to close.

    \n
  • \n
  • \n

    Committed: The customer signed the contract, but Amazon Web Services hasn't\n started billing.

    \n
  • \n
  • \n

    Launched: The workload is complete, and Amazon Web Services has started\n billing.

    \n
  • \n
  • \n

    Closed Lost: The opportunity is lost, and there are no steps to move\n forward.

    \n
  • \n
" + } + }, + "ClosedLostReason": { + "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "traits": { + "smithy.api#documentation": "

Specifies the reason code when an opportunity is marked as Closed\n Lost. When you select an appropriate reason code, you communicate the\n context for closing the Opportunity, and aid in accurate reports and\n analysis of opportunity outcomes. The possible values are:

\n
    \n
  • \n

    Customer Deficiency: The customer lacked necessary resources or\n 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\n 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\n 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\n 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\n governance.

    \n
  • \n
  • \n

    Product/Technology: Issues related to the product or technology.

    \n
  • \n
  • \n

    Financial/Commercial: Financial or commercial issues impacted the\n decision.

    \n
  • \n
" + } + }, + "NextSteps": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the upcoming actions or tasks for the Opportunity. Use this\n field to communicate with Amazon Web Services about the next actions required for the\n Opportunity.

", + "smithy.api#length": { + "max": 255 + } + } + }, + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Specifies the date when Amazon Web Services expects to start significant billing, when\n 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

Ensure the Target Close Date isn't in the past.

" + } + }, + "ReviewStatus": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "traits": { + "smithy.api#documentation": "

Indicates the review status of an opportunity referred by a partner. This field is\n read-only and only applicable for partner referrals. The possible values are:

\n
    \n
  • \n

    Pending Submission: Not submitted for validation (editable).

    \n
  • \n
  • \n

    Submitted: Submitted for validation, and Amazon Web Services hasn't reviewed it\n (read-only).

    \n
  • \n
  • \n

    In Review: Amazon Web Services is validating (read-only).

    \n
  • \n
  • \n

    Action Required: Issues that Amazon Web Services highlights need to be\n addressed. Partners should use the UpdateOpportunity API action to\n update the opportunity and helps to ensure that all required changes are made.\n Only the following fields are editable when the\n Lifecycle.ReviewStatus is Action Required:

    \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

    After updates, the opportunity re-enters the validation phase. This process\n repeats until all issues are resolved, and the opportunity's\n Lifecycle.ReviewStatus is set to Approved or\n Rejected.

    \n
  • \n
  • \n

    Approved: Validated and converted into the Amazon Web Services seller's\n pipeline (editable).

    \n
  • \n
  • \n

    Rejected: Disqualified (read-only).

    \n
  • \n
" + } + }, + "ReviewComments": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates why an opportunity was sent back for further details. Partners must take\n corrective action based on the ReviewComments.

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

Indicates the reason a decision was made during the opportunity review process. This\n field combines the reasons for both disqualified and action required statuses, and\n provide clarity for why an opportunity was disqualified or requires further\n action.

" + } + }, + "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\n current opportunity, along with the timestamp.

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

An object that contains the Opportunity lifecycle's details.

" + } + }, + "com.amazonaws.partnercentralselling#LifeCycleForView": { + "type": "structure", + "members": { + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

\n The projected launch date of the opportunity shared through a snapshot.\n

" + } + }, + "ReviewStatus": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "traits": { + "smithy.api#documentation": "

\n Defines the approval status of the opportunity shared through a snapshot.\n

" + } + }, + "Stage": { + "target": "com.amazonaws.partnercentralselling#Stage", + "traits": { + "smithy.api#documentation": "

\n Defines the current stage of the opportunity shared through a snapshot.\n

" + } + }, + "NextSteps": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

\n Describes the next steps for the opportunity shared through a snapshot.\n

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

\n Provides the lifecycle view of an opportunity resource shared through a\n snapshot.\n

" + } + }, + "com.amazonaws.partnercentralselling#LifeCycleSummary": { + "type": "structure", + "members": { + "Stage": { + "target": "com.amazonaws.partnercentralselling#Stage", + "traits": { + "smithy.api#documentation": "

Specifies the current stage of the Opportunity's lifecycle as it maps to\n Amazon Web Services stages from the current stage in the partner CRM. This field\n provides a translated value of the stage, and offers insight into the\n Opportunity's progression in the sales cycle, according to Amazon Web Services definitions.

\n \n

A lead and a prospect must be further matured to a Qualified\n opportunity before submission. Opportunities that were closed/lost before submission\n aren't suitable for submission.

\n
\n

The descriptions of each sales stage are:

\n
    \n
  • \n

    Prospect: Amazon Web Services identifies the opportunity. It can be active\n (Comes directly from the end customer through a lead) or latent (Your account\n team believes it exists based on research, account plans, sales plays).

    \n
  • \n
  • \n

    Qualified: Your account team engaged with the customer to discuss viability\n and understand requirements. The customer agreed that the opportunity is real,\n of interest, and may solve business/technical needs.

    \n
  • \n
  • \n

    Technical Validation: All parties understand the implementation plan.

    \n
  • \n
  • \n

    Business Validation: Pricing was proposed, and all parties agree to the steps\n to close.

    \n
  • \n
  • \n

    Committed: The customer signed the contract, but Amazon Web Services hasn't\n started billing.

    \n
  • \n
  • \n

    Launched: The workload is complete, and Amazon Web Services has started\n billing.

    \n
  • \n
  • \n

    Closed Lost: The opportunity is lost, and there are no steps to move\n forward.

    \n
  • \n
" + } + }, + "ClosedLostReason": { + "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "traits": { + "smithy.api#documentation": "

Specifies the reason code when an opportunity is marked as Closed\n Lost. When you select an appropriate reason code, you communicate the\n context for closing the Opportunity, and aid in accurate reports and\n analysis of opportunity outcomes.

" + } + }, + "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\n Opportunity.

", + "smithy.api#length": { + "max": 255 + } + } + }, + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Specifies the date when Amazon Web Services expects to start significant billing, when\n 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

Ensure the Target Close Date isn't in the past.

" + } + }, + "ReviewStatus": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "traits": { + "smithy.api#documentation": "

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

    Pending Submission: Not submitted for validation (editable).

    \n
  • \n
  • \n

    Submitted: Submitted for validation and not yet Amazon Web Services reviewed\n (read-only).

    \n
  • \n
  • \n

    In Review: Undergoing Amazon Web Services validation (read-only).

    \n
  • \n
  • \n

    Action Required: Address any issues Amazon Web Services highlights. Use the\n UpdateOpportunity API action to update the opportunity, and\n ensure you make all required changes. Only these fields are editable when the\n Lifecycle.ReviewStatus is Action Required:

    \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

    After updates, the opportunity re-enters the validation phase. This process\n repeats until all issues are resolved, and the opportunity's\n Lifecycle.ReviewStatus is set to Approved or\n Rejected.

    \n
  • \n
  • \n

    Approved: Validated and converted into the Amazon Web Services seller's\n pipeline (editable).

    \n
  • \n
  • \n

    Rejected: Disqualified (read-only).

    \n
  • \n
" + } + }, + "ReviewComments": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates why an opportunity was sent back for further details. Partners must take\n corrective action based on the ReviewComments.

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

Indicates the reason a specific decision was taken during the opportunity review\n process. This field combines the reasons for both disqualified and action required\n statuses, and provides clarity for why an opportunity was disqualified or required\n further action.

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

An object that contains a LifeCycle object's subset of fields.

" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTaskSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTaskSummary" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTaskSummary": { + "type": "structure", + "members": { + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier", + "traits": { + "smithy.api#documentation": "

\n Unique identifier of the task.\n

" + } + }, + "TaskArn": { + "target": "com.amazonaws.partnercentralselling#TaskArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) that uniquely identifies the task.\n

" + } + }, + "StartTime": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n Task start timestamp.\n

" + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatus", + "traits": { + "smithy.api#documentation": "

\n Status of the task.\n

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

\n Detailed message describing the failure and possible recovery steps.\n

" + } + }, + "ReasonCode": { + "target": "com.amazonaws.partnercentralselling#ReasonCode", + "traits": { + "smithy.api#documentation": "

\n A code pointing to the specific reason for the failure.\n

" + } + }, + "OpportunityId": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n Unique identifier of opportunity that was created.\n

" + } + }, + "ResourceSnapshotJobId": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n Unique identifier of the resource snapshot job that was created.\n

" + } + }, + "EngagementInvitationId": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the engagement invitation that was accepted.\n

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

\n Specifies a subset of fields associated with tasks related to accepting an engagement\n invitation.\n

" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasksRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 listing engagements by accepting invitation tasks in AWS Partner\nCentral" + }, + "smithy.api#documentation": "

\n Lists all in-progress, completed, or failed StartEngagementByAcceptingInvitationTask\n tasks that were initiated by the caller's account. \n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagementByAcceptingInvitationTasks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "TaskSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasksRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

\n Use this parameter to control the number of items returned in each request, which can\n be useful for performance tuning and managing large result sets.\n

", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Use this parameter for pagination when the result set spans multiple pages. This value\n is obtained from the NextToken field in the response of a previous call to this API.\n

", + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "Sort": { + "target": "com.amazonaws.partnercentralselling#ListTasksSortBase", + "traits": { + "smithy.api#documentation": "

\n Specifies the sorting criteria for the returned results. This allows you to order the\n tasks based on specific attributes.\n

" + } + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request. Valid values are:\n

\n
    \n
  • \n

    AWS: Retrieves the request from the production AWS environment.

    \n
  • \n
  • \n

    Sandbox: Retrieves the request from a sandbox environment used for testing or\n development purposes.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatuses", + "traits": { + "smithy.api#documentation": "

\n Filters the tasks based on their current status. This allows you to focus on tasks in\n specific states.\n

" + } + }, + "OpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Filters tasks by the identifiers of the opportunities they created or are associated\n with.\n

" + } + }, + "EngagementInvitationIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Filters tasks by the identifiers of the engagement invitations they are\n processing.\n

" + } + }, + "TaskIdentifier": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Filters tasks by their unique identifiers. Use this when you want to retrieve\n information about specific tasks. \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTasksResponse": { + "type": "structure", + "members": { + "TaskSummaries": { + "target": "com.amazonaws.partnercentralselling#ListEngagementByAcceptingInvitationTaskSummaries", + "traits": { + "smithy.api#documentation": "

\n An array of EngagementByAcceptingInvitationTaskSummary objects, each representing a\n task that matches the specified filters. The array may be empty if no tasks match the\n criteria.\n

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

\n A token used for pagination to retrieve the next page of results.If there are more\n results available, this field will contain a token that can be used in a subsequent API\n call to retrieve the next page. If there are no more results, this field will be null or\n an empty string.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTaskSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTaskSummary" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTaskSummary": { + "type": "structure", + "members": { + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for a specific task.\n

" + } + }, + "TaskArn": { + "target": "com.amazonaws.partnercentralselling#TaskArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) uniquely identifying this task within AWS. This ARN can\n be used for referencing the task in other AWS services or APIs.\n

" + } + }, + "StartTime": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n The timestamp indicating when the task was initiated, in RFC 3339 5.6 date-time\n format.\n

" + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the task.\n

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

\n A detailed message providing additional information about the task, especially useful\n in case of failures. This field may contain error details or other relevant information\n about the task's execution\n

" + } + }, + "ReasonCode": { + "target": "com.amazonaws.partnercentralselling#ReasonCode", + "traits": { + "smithy.api#documentation": "

\n A code indicating the specific reason for a task failure. This field is populated when\n the task status is FAILED and provides a categorized reason for the failure.\n

" + } + }, + "OpportunityId": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the original Opportunity from which the Engagement is being\n created. This field helps track the source of the Engagement creation task. \n

" + } + }, + "ResourceSnapshotJobId": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource snapshot job associated with this task, if a snapshot\n was created as part of the Engagement creation process.\n

" + } + }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the engagement created as a result of the task. This field is\n populated when the task is completed successfully. \n

" + } + }, + "EngagementInvitationId": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the engagement identifier created as a result of the task. This field is\n populated when the task is completed successfully.\n

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

\n Provides a summary of a task related to creating an engagement from an opportunity.\n This structure contains key information about the task's status, associated identifiers,\n and any failure details.\n

" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasksRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 listing engagements from opportunity tasks in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Lists all in-progress, completed, or failed EngagementFromOpportunity tasks that were\n initiated by the caller's account.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagementFromOpportunityTasks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "TaskSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasksRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

\n Specifies the maximum number of results to return in a single page of the response.Use\n this parameter to control the number of items returned in each request, which can be\n useful for performance tuning and managing large result sets. \n

", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The token for requesting the next page of results. This value is obtained from the\n NextToken field in the response of a previous call to this API. Use this parameter for\n pagination when the result set spans multiple pages.\n

", + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "Sort": { + "target": "com.amazonaws.partnercentralselling#ListTasksSortBase", + "traits": { + "smithy.api#documentation": "

\n Specifies the sorting criteria for the returned results. This allows you to order the\n tasks based on specific attributes. \n

" + } + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request. Valid values are:\n

\n
    \n
  • \n

    AWS: Retrieves the request from the production AWS environment.

    \n
  • \n
  • \n

    Sandbox: Retrieves the request from a sandbox environment used for testing or\n development purposes.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatuses", + "traits": { + "smithy.api#documentation": "

\n Filters the tasks based on their current status. This allows you to focus on tasks in\n specific states.\n

" + } + }, + "TaskIdentifier": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Filters tasks by their unique identifiers. Use this when you want to retrieve\n information about specific tasks. \n

" + } + }, + "OpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifiers", + "traits": { + "smithy.api#documentation": "

\n The identifier of the original opportunity associated with this task.\n

" + } + }, + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Filters tasks by the identifiers of the engagements they created or are associated\n with.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTasksResponse": { + "type": "structure", + "members": { + "TaskSummaries": { + "target": "com.amazonaws.partnercentralselling#ListEngagementFromOpportunityTaskSummaries", + "traits": { + "smithy.api#documentation": "

\n TaskSummaries An array of TaskSummary objects containing details about each\n task.\n

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

\n A token used for pagination to retrieve the next page of results. If there are more\n results available, this field will contain a token that can be used in a subsequent API\n call to retrieve the next page. If there are no more results, this field will be null or\n an empty string.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "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\n to view all pending or past engagement invitations, helping them track opportunities\n 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\n AWS for production invitations or Sandbox for testing\n 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\n 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\n previous request was truncated. Pass this token to continue listing invitations from\n 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\n sorted by fields such as InvitationDate or Status to help\n 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.\n The attributes in this payload help decide on acceptance or rejection of the\n invitation.

" + } + }, + "ParticipantType": { + "target": "com.amazonaws.partnercentralselling#ParticipantType", + "traits": { + "smithy.api#documentation": "

Specifies the type of participant for which to list engagement invitations. Identifies\n the role of the participant.

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

\n Status values to filter the invitations.\n

" + } + }, + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Retrieves a list of engagement invitation summaries based on specified filters. The\n ListEngagementInvitations operation allows you to view all invitations that you have\n sent or received. You must specify the ParticipantType to filter invitations where you\n are either the SENDER or the RECEIVER. Invitations will automatically expire if not\n accepted within 15 days.\n

" + } + }, + "SenderAwsAccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccountIdOrAliasList", + "traits": { + "smithy.api#documentation": "

\n List of sender AWS account IDs to filter the invitations.\n

" + } + } + }, + "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\n information such as the invitation title, invitation date, and the current status of the\n invitation.

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

A pagination token returned when there are more results available than can be returned\n in a single call. Use this token to retrieve additional pages of engagement invitation\n summaries.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementMembers": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementMembersRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementMembersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 listing engagement members in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Retrieves the details of member partners in an engagement. This operation can only be\n invoked by members of the engagement. The ListEngagementMembers operation allows you to\n fetch information about the members of a specific engagement. This action is restricted\n to members of the engagement being queried.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagementMembers", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "EngagementMemberList" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementMembersRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n The catalog related to the request. \n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

\n Identifier of the engagement record to retrieve members from.\n

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#MemberPageSize", + "traits": { + "smithy.api#default": 5, + "smithy.api#documentation": "

\n The maximum number of results to return in a single call.\n

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

\n The token for the next set of results.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementMembersResponse": { + "type": "structure", + "members": { + "EngagementMemberList": { + "target": "com.amazonaws.partnercentralselling#EngagementMembers", + "traits": { + "smithy.api#documentation": "

\nProvides a list of engagement members.\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. If there are more results\n available than can be returned in a single response, this token will be present. Use\n this token in a subsequent request to retrieve the next page of results. If there are no\n more results, this value will be null.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementResourceAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementResourceAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementResourceAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 listing engagement resource associations in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Lists the associations between resources and engagements where the caller is a member\n and has at least one snapshot in the engagement. \n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagementResourceAssociations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "EngagementResourceAssociationSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementResourceAssociationsRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog in which to search for engagement-resource associations.\n

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#PageSize", + "traits": { + "smithy.api#default": 100, + "smithy.api#documentation": "

\n Limits the number of results returned in a single call. Use this to control the number\n of results returned, especially useful for pagination.\n

", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n A token used for pagination of results. Include this token in subsequent requests to\n retrieve the next set of results.\n

" + } + }, + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n Filters the results to include only associations related to the specified engagement.\n Use this when you want to find all resources associated with a specific engagement.\n

" + } + }, + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", + "traits": { + "smithy.api#documentation": "

\n Filters the results to include only associations with resources of the specified type.\n

" + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

\n Filters the results to include only associations with the specified resource. Varies\n depending on the resource type. Use this when you want to find all engagements\n associated with a specific resource.\n

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

\n Filters the results to include only associations with resources owned by the specified\n AWS account. Use this when you want to find associations related to resources owned by a\n particular account.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementResourceAssociationsResponse": { + "type": "structure", + "members": { + "EngagementResourceAssociationSummaries": { + "target": "com.amazonaws.partnercentralselling#EngagementResourceAssociationSummaryList", + "traits": { + "smithy.api#documentation": "

\n A list of engagement-resource association summaries.\n

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

\n A token to retrieve the next set of results. Use this token in a subsequent request to\n retrieve additional results if the response was truncated.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagements": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "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 listing engagements in AWS Partner Central" + }, + "smithy.api#documentation": "

\n This action allows users to retrieve a list of engagement records from Partner\n Central. This action can be used to manage and track various engagements across\n different stages of the partner selling process.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagements", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "EngagementSummaryList" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementsRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request.\n

", + "smithy.api#required": {} } }, - "CHANGE_IN_DEAL_INFORMATION": { - "target": "smithy.api#Unit", + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccountList", "traits": { - "smithy.api#enumValue": "Change in Deal Information" + "smithy.api#documentation": "

\n A list of AWS account IDs. When specified, the response includes engagements created\n by these accounts. This filter is useful for finding engagements created by specific\n team members.\n

" } }, - "CUSTOMER_REQUESTED": { - "target": "smithy.api#Unit", + "ExcludeCreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccountList", "traits": { - "smithy.api#enumValue": "Customer Requested" + "smithy.api#documentation": "

\n An array of strings representing AWS Account IDs. Use this to exclude engagements\n created by specific users.\n

" } }, - "TECHNICAL_COMPLEXITY": { - "target": "smithy.api#Unit", + "Sort": { + "target": "com.amazonaws.partnercentralselling#EngagementSort", "traits": { - "smithy.api#enumValue": "Technical Complexity" + "smithy.api#documentation": "

\n An object that specifies the sort order of the results.\n

" } }, - "RISK_MITIGATION": { - "target": "smithy.api#Unit", + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#EngagementPageSize", "traits": { - "smithy.api#enumValue": "Risk Mitigation" + "smithy.api#default": 20, + "smithy.api#documentation": "

\n The maximum number of results to return in a single call.\n

" } - } - } - }, - "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", + "NextToken": { + "target": "smithy.api#String", "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.

" + "smithy.api#documentation": "

\n The token for the next set of results. This value is returned from a previous\n call.\n

" } }, - "BeforeLastModifiedDate": { - "target": "com.amazonaws.partnercentralselling#DateTime", + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifiers", "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.

" + "smithy.api#documentation": "

\n An array of strings representing engagement identifiers to retrieve.\n

" } } }, "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.

" + "smithy.api#input": {} } }, - "com.amazonaws.partnercentralselling#LifeCycle": { + "com.amazonaws.partnercentralselling#ListEngagementsResponse": { "type": "structure", "members": { - "Stage": { - "target": "com.amazonaws.partnercentralselling#Stage", + "EngagementSummaryList": { + "target": "com.amazonaws.partnercentralselling#EngagementSummaryList", "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 customer to discuss viability and requirements. The customer agreed that the opportunity is real, of interest, and may solve 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
" + "smithy.api#documentation": "

\n An array of engagement summary objects.\n

", + "smithy.api#required": {} } }, - "ClosedLostReason": { - "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "NextToken": { + "target": "smithy.api#String", "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
" + "smithy.api#documentation": "

\n The token to retrieve the next set of results. This field will be null if there are no\n more results.\n

" } + } + }, + "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" }, - "NextSteps": { - "target": "com.amazonaws.partnercentralselling#PiiString", - "traits": { - "smithy.api#documentation": "

Specifies the upcoming actions or tasks for the Opportunity. Use this field\n to communicate with Amazon Web Services about the next actions required for the Opportunity.\n

", - "smithy.api#length": { - "max": 255 + { + "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 that retrieve opportunity subsets as well as\n sort options. This feature is available to partners from Partner Central using the\n ListOpportunities API action.

\n

To synchronize your system with Amazon Web Services, only list the opportunities that\n were newly created or updated. We recommend you rely on events emitted by the service\n into your Amazon Web Services account’s Amazon EventBridge default event bus, you can\n also use the ListOpportunities action.

\n

We recommend the following approach:

\n
    \n
  1. \n

    Find the latest LastModifiedDate that you stored, and only use\n the values that came from Amazon Web Services. Don’t use values generated by your\n system.

    \n
  2. \n
  3. \n

    When you send a ListOpportunities request, submit the date in ISO\n 8601 format in the AfterLastModifiedDate filter.

    \n
  4. \n
  5. \n

    Amazon Web Services only returns opportunities created or updated on or after\n that date and time. Use NextToken to iterate over all pages.

    \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" + } } } - }, - "TargetCloseDate": { - "target": "com.amazonaws.partnercentralselling#Date", + ] + } + }, + "com.amazonaws.partnercentralselling#ListOpportunitiesRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "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

" + "smithy.api#documentation": "

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunities are listed in. Use AWS for listing real\n opportunities in the Amazon Web Services catalog, and Sandbox for testing in\n secure, isolated environments.

", + "smithy.api#required": {} } }, - "ReviewStatus": { - "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#PageSize", "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 helps to ensure that all required changes are made.\n Only the following 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
" + "smithy.api#documentation": "

Specifies the maximum number of results to return in a single call. This limits the\n number of opportunities returned in the response to avoid providing too many results at\n once.

\n

Default: 20

" } }, - "ReviewComments": { + "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Indicates why an opportunity was sent back for further details. Partners must take corrective action based on the ReviewComments.

" + "smithy.api#documentation": "

A pagination token used to retrieve the next set of results in subsequent calls. This\n token is included in the response only if there are additional result pages\n available.

" } }, - "ReviewStatusReason": { - "target": "smithy.api#String", + "Sort": { + "target": "com.amazonaws.partnercentralselling#OpportunitySort", "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

" + "smithy.api#documentation": "

An object that specifies how the response is sorted. The default\n Sort.SortBy value is LastModifiedDate.

" } }, - "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", + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#LastModifiedDate", "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 customer to discuss viability and understand requirements. The customer agreed that the opportunity is real, of interest, and may solve 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
" + "smithy.api#documentation": "

Filters the opportunities based on their last modified date. This filter helps\n retrieve opportunities that were updated after the specified date, allowing partners to\n track recent changes or updates.

" } }, - "ClosedLostReason": { - "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "Identifier": { + "target": "com.amazonaws.partnercentralselling#FilterIdentifier", "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

" + "smithy.api#documentation": "

Filters the opportunities based on the opportunity identifier. This allows partners to\n retrieve specific opportunities by providing their unique identifiers, ensuring precise\n results.

", + "smithy.api#length": { + "max": 20 + } } }, - "NextSteps": { - "target": "com.amazonaws.partnercentralselling#PiiString", + "LifeCycleStage": { + "target": "com.amazonaws.partnercentralselling#FilterLifeCycleStage", "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#documentation": "

Filters the opportunities based on their lifecycle stage. This filter allows partners\n to retrieve opportunities at various stages in the sales cycle, such as\n Qualified, Technical Validation, Business\n Validation, or Closed Won.

", "smithy.api#length": { - "max": 255 + "max": 10 } } }, - "TargetCloseDate": { - "target": "com.amazonaws.partnercentralselling#Date", + "LifeCycleReviewStatus": { + "target": "com.amazonaws.partnercentralselling#FilterLifeCycleReviewStatus", "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

" + "smithy.api#documentation": "

Filters the opportunities based on their current lifecycle approval status. Use this\n filter to retrieve opportunities with statuses such as Pending Submission,\n In Review, Action Required, or\n Approved.

", + "smithy.api#length": { + "max": 10 + } } }, - "ReviewStatus": { - "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "CustomerCompanyName": { + "target": "com.amazonaws.partnercentralselling#StringList", "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
" + "smithy.api#documentation": "

Filters the opportunities based on the customer's company name. This allows partners\n to search for opportunities associated with a specific customer by matching the provided\n company name string.

", + "smithy.api#length": { + "max": 10 + } } - }, - "ReviewComments": { - "target": "smithy.api#String", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListOpportunitiesResponse": { + "type": "structure", + "members": { + "OpportunitySummaries": { + "target": "com.amazonaws.partnercentralselling#OpportunitySummaries", "traits": { - "smithy.api#documentation": "

Indicates why an opportunity was sent back for further details. Partners must take corrective action based on the ReviewComments.

" + "smithy.api#documentation": "

An array that contains minimal details for opportunities that match the request\n criteria. This summary view provides a quick overview of relevant opportunities.

", + "smithy.api#required": {} } }, - "ReviewStatusReason": { + "NextToken": { "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

" + "smithy.api#documentation": "

A pagination token used to retrieve the next set of results in subsequent calls. This\n token is included in the response only if there are additional result pages\n available.

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

An object that contains a LifeCycle object's subset of fields.\n

" + "smithy.api#output": {} } }, - "com.amazonaws.partnercentralselling#ListEngagementInvitations": { + "com.amazonaws.partnercentralselling#ListResourceSnapshotJobs": { "type": "operation", "input": { - "target": "com.amazonaws.partnercentralselling#ListEngagementInvitationsRequest" + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshotJobsRequest" }, "output": { - "target": "com.amazonaws.partnercentralselling#ListEngagementInvitationsResponse" + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshotJobsResponse" }, "errors": [ { "target": "com.amazonaws.partnercentralselling#AccessDeniedException" }, - { - "target": "com.amazonaws.partnercentralselling#InternalServerException" - }, - { - "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" - }, { "target": "com.amazonaws.partnercentralselling#ThrottlingException" }, @@ -6047,62 +8689,66 @@ "partnercentral:Catalog" ], "aws.iam#iamAction": { - "documentation": "Grants permission to list Engagement Invitations on AWS Partner Central" + "documentation": "Grants permission to listing resource snapshot jobs in 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#documentation": "

\n Lists resource snapshot jobs owned by the customer. This operation supports various\n filtering scenarios, including listing all jobs owned by the caller, jobs for a specific\n engagement, jobs with a specific status, or any combination of these filters.\n

", "smithy.api#http": { "method": "POST", - "uri": "/ListEngagementInvitations", + "uri": "/ListResourceSnapshotJobs", "code": 200 }, "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", "pageSize": "MaxResults", - "items": "EngagementInvitationSummaries" + "items": "ResourceSnapshotJobSummaries" }, "smithy.api#readonly": {} } }, - "com.amazonaws.partnercentralselling#ListEngagementInvitationsRequest": { + "com.amazonaws.partnercentralselling#ListResourceSnapshotJobsRequest": { "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#documentation": "

\n Specifies the catalog related to the request.\n

", "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.

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

\n The maximum number of results to return in a single call. If omitted, defaults to\n 50.\n

", + "smithy.api#range": { + "min": 1, + "max": 1000 + } } }, "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.

" + "smithy.api#documentation": "

\n The token for the next set of results.\n

" } }, - "Sort": { - "target": "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSort", + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", "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.

" + "smithy.api#documentation": "

\n The identifier of the engagement to filter the response.\n

" } }, - "PayloadType": { - "target": "com.amazonaws.partnercentralselling#EngagementInvitationsPayloadType", + "Status": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobStatus", "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.

" + "smithy.api#documentation": "

\n The status of the jobs to filter the response.\n

" } }, - "ParticipantType": { - "target": "com.amazonaws.partnercentralselling#ParticipantType", + "Sort": { + "target": "com.amazonaws.partnercentralselling#SortObject", "traits": { - "smithy.api#documentation": "

Specifies the type of participant for which to list engagement invitations. Identifies the role of the participant.

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

\n Configures the sorting of the response. If omitted, results are sorted by CreatedDate\n in descending order.\n

" } } }, @@ -6110,19 +8756,20 @@ "smithy.api#input": {} } }, - "com.amazonaws.partnercentralselling#ListEngagementInvitationsResponse": { + "com.amazonaws.partnercentralselling#ListResourceSnapshotJobsResponse": { "type": "structure", "members": { - "EngagementInvitationSummaries": { - "target": "com.amazonaws.partnercentralselling#EngagementInvitationSummaries", + "ResourceSnapshotJobSummaries": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobSummaryList", "traits": { - "smithy.api#documentation": "

An array containing summaries of engagement invitations. Each summary includes information such as the invitation title, invitation date, and the current status of the invitation.

" + "smithy.api#documentation": "

\n An array of resource snapshot job summary objects.\n

", + "smithy.api#required": {} } }, "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.

" + "smithy.api#documentation": "

\n The token to retrieve the next set of results. If there are no additional results,\n this value is null. \n

" } } }, @@ -6130,21 +8777,18 @@ "smithy.api#output": {} } }, - "com.amazonaws.partnercentralselling#ListOpportunities": { + "com.amazonaws.partnercentralselling#ListResourceSnapshots": { "type": "operation", "input": { - "target": "com.amazonaws.partnercentralselling#ListOpportunitiesRequest" + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshotsRequest" }, "output": { - "target": "com.amazonaws.partnercentralselling#ListOpportunitiesResponse" + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshotsResponse" }, "errors": [ { "target": "com.amazonaws.partnercentralselling#AccessDeniedException" }, - { - "target": "com.amazonaws.partnercentralselling#InternalServerException" - }, { "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" }, @@ -6160,104 +8804,79 @@ "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 that retrieve opportunity subsets 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" - } - } - } - ] + "documentation": "Grants permission to listing resource snapshots in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Retrieves a list of resource view snapshots based on specified criteria. \n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListResourceSnapshots", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "ResourceSnapshotSummaries" + }, + "smithy.api#readonly": {} } }, - "com.amazonaws.partnercentralselling#ListOpportunitiesRequest": { + "com.amazonaws.partnercentralselling#ListResourceSnapshotsRequest": { "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 testing in secure, isolated environments.\n

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

\n Specifies the catalog related to the request.\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 providing too many results at once.\n

\n

\n Default: 20\n

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

\n The maximum number of results to return in a single call.\n

", + "smithy.api#range": { + "min": 1, + "max": 1000 + } } }, "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

" + "smithy.api#documentation": "

\n The token for the next set of results.\n

" } }, - "LastModifiedDate": { - "target": "com.amazonaws.partnercentralselling#LastModifiedDate", + "EngagementIdentifier": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", "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.

" + "smithy.api#documentation": "

\n The unique identifier of the engagement associated with the snapshots.\n

", + "smithy.api#required": {} } }, - "Identifier": { - "target": "com.amazonaws.partnercentralselling#FilterIdentifier", + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", "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 - } + "smithy.api#documentation": "

\n Filters the response to include only snapshots of the specified resource type.\n

" } }, - "LifeCycleStage": { - "target": "com.amazonaws.partnercentralselling#FilterLifeCycleStage", + "ResourceIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", "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 - } + "smithy.api#documentation": "

\n Filters the response to include only snapshots of the specified resource.\n

" } }, - "LifeCycleReviewStatus": { - "target": "com.amazonaws.partnercentralselling#FilterLifeCycleReviewStatus", + "ResourceSnapshotTemplateIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", "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 - } + "smithy.api#documentation": "

\n Filters the response to include only snapshots created using the specified\n template.\n

" } }, - "CustomerCompanyName": { - "target": "com.amazonaws.partnercentralselling#StringList", + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", "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 - } + "smithy.api#documentation": "

\n Filters the response to include only snapshots of resources created by the specified AWS\n account.\n

" } } }, @@ -6265,20 +8884,20 @@ "smithy.api#input": {} } }, - "com.amazonaws.partnercentralselling#ListOpportunitiesResponse": { + "com.amazonaws.partnercentralselling#ListResourceSnapshotsResponse": { "type": "structure", "members": { - "OpportunitySummaries": { - "target": "com.amazonaws.partnercentralselling#OpportunitySummaries", + "ResourceSnapshotSummaries": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotSummaryList", "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#documentation": "

\n An array of resource snapshot summary objects.\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

" + "smithy.api#documentation": "

\n The token to retrieve the next set of results. If there are no additional results,\n this value is null. \n

" } } }, @@ -6315,7 +8934,7 @@ "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#documentation": "

Retrieves a list of Partner Solutions that the partner registered on Partner Central.\n This API is used to generate a list of solutions that an end user selects from for\n association with an opportunity.

", "smithy.api#http": { "method": "POST", "uri": "/ListSolutions", @@ -6336,32 +8955,32 @@ "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#documentation": "

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the solutions are listed in. Use AWS to list solutions in\n the Amazon Web Services catalog, and Sandbox to list solutions in a secure\n and isolated testing environment.

", "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

" + "smithy.api#documentation": "

The maximum number of results returned by a single call. This value must be provided\n in the next call to retrieve the next set of results.

\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

" + "smithy.api#documentation": "

A pagination token used to retrieve the next set of results in subsequent calls. This\n token is included in the response only if there are additional result pages\n available.

" } }, "Sort": { "target": "com.amazonaws.partnercentralselling#SolutionSort", "traits": { - "smithy.api#documentation": "

Object that configures sorting done on the response. Default Sort.SortBy is Identifier.\n

" + "smithy.api#documentation": "

Object that configures sorting done on the response. Default Sort.SortBy\n is Identifier.

" } }, "Status": { "target": "com.amazonaws.partnercentralselling#FilterStatus", "traits": { - "smithy.api#documentation": "

Filters solutions based on their status. This filter helps partners manage their solution portfolios effectively.

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

Filters solutions based on their status. This filter helps partners manage their\n solution portfolios effectively.

", "smithy.api#length": { "max": 10 } @@ -6370,7 +8989,7 @@ "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#documentation": "

Filters the solutions based on their unique identifier. Use this filter to retrieve\n specific solutions by providing the solution's identifier for accurate results.

", "smithy.api#length": { "max": 20 } @@ -6379,7 +8998,7 @@ "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#documentation": "

Filters the solutions based on the category to which they belong. This allows partners\n to search for solutions within specific categories, such as Software,\n Consulting, or Managed Services.

", "smithy.api#length": { "max": 10 } @@ -6403,7 +9022,7 @@ "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

" + "smithy.api#documentation": "

A pagination token used to retrieve the next set of results in subsequent calls. This\n token is included in the response only if there are additional result pages\n available.

" } } }, @@ -6411,42 +9030,75 @@ "smithy.api#output": {} } }, + "com.amazonaws.partnercentralselling#ListTasksSortBase": { + "type": "structure", + "members": { + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

\n Determines the order in which the sorted results are presented.\n

", + "smithy.api#required": {} + } + }, + "SortBy": { + "target": "com.amazonaws.partnercentralselling#ListTasksSortName", + "traits": { + "smithy.api#documentation": "

\n Specifies the field by which the task list should be sorted.\n

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

\n Defines the sorting parameters for listing tasks. This structure allows for specifying\n the field to sort by and the order of sorting.\n

" + } + }, + "com.amazonaws.partnercentralselling#ListTasksSortName": { + "type": "enum", + "members": { + "START_TIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StartTime" + } + } + } + }, "com.amazonaws.partnercentralselling#Marketing": { "type": "structure", "members": { "CampaignName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specifies the Opportunity marketing campaign code. The Amazon Web Services\n campaign code is a reference to specific marketing initiatives, promotions, or\n activities. This field captures the identifier used to track and\n categorize the Opportunity within marketing campaigns. If you don't have a campaign\n code, contact your Amazon Web Services point of contact to obtain one.\n

" + "smithy.api#documentation": "

Specifies the Opportunity marketing campaign code. The Amazon Web Services\n campaign code is a reference to specific marketing initiatives, promotions, or\n activities. This field captures the identifier used to track and categorize the\n Opportunity within marketing campaigns. If you don't have a campaign\n code, contact your Amazon Web Services point of contact to obtain one.

" } }, "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

" + "smithy.api#documentation": "

Indicates if the Opportunity was sourced from an Amazon Web Services\n marketing activity. Use the value Marketing Activity. Use None\n if it's not associated with an Amazon Web Services marketing activity. This field helps\n Amazon Web Services track the return on marketing investments and enables better\n distribution of marketing budgets among partners.

" } }, "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

" + "smithy.api#documentation": "

Specifies the marketing activity use case or purpose that led to the\n Opportunity's creation or contact. This field captures the context or\n marketing activity's execution's intention and the direct correlation to the generated\n opportunity or contact. Must be empty when Marketing.AWSFundingUsed =\n No.

\n

Valid values: AI/ML | Analytics | Application Integration | Blockchain |\n Business Applications | Cloud Financial Management | Compute | Containers | Customer\n Engagement | Databases | Developer Tools | End User Computing | Front End Web &\n Mobile | Game Tech | IoT | Management & Governance | Media Services | Migration\n & Transfer | Networking & Content Delivery | Quantum Technologies | Robotics\n | 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

" + "smithy.api#documentation": "

Specifies the Opportunity's channel that the marketing activity is\n associated with or was contacted through. This field provides information about the\n specific marketing channel that contributed to the generation of the lead or\n contact.

" } }, "AwsFundingUsed": { "target": "com.amazonaws.partnercentralselling#AwsFundingUsed", "traits": { - "smithy.api#documentation": "

Indicates if the Opportunity is a marketing development fund (MDF) funded\n activity.\n

" + "smithy.api#documentation": "

Indicates if the Opportunity is a marketing development fund (MDF) funded\n activity.

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

An object that contains marketing details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.

" } }, "com.amazonaws.partnercentralselling#MarketingSource": { @@ -6466,6 +9118,25 @@ } } }, + "com.amazonaws.partnercentralselling#MemberCompanyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 120 + } + } + }, + "com.amazonaws.partnercentralselling#MemberPageSize": { + "type": "integer", + "traits": { + "smithy.api#default": 5, + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.partnercentralselling#MonetaryValue": { "type": "structure", "members": { @@ -6540,7 +9211,7 @@ } }, "traits": { - "smithy.api#documentation": "

Read-only; shows the last 50 values and change dates for the NextSteps field.

" + "smithy.api#documentation": "

Read-only; shows the last 50 values and change dates for the NextSteps\n field.

" } }, "com.amazonaws.partnercentralselling#Opportunity": { @@ -6577,6 +9248,9 @@ }, { "target": "com.amazonaws.partnercentralselling#GetAwsOpportunitySummary" + }, + { + "target": "com.amazonaws.partnercentralselling#SubmitOpportunity" } ], "traits": { @@ -6590,26 +9264,32 @@ "smithy.api#documentation": "Represents an Opportunity that captures deal details in AWS Partner Central" } }, + "com.amazonaws.partnercentralselling#OpportunityArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*$" + } + }, "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#documentation": "

Defines the order in which the Engagement Invitations are sorted. The values can be\n 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#documentation": "

Specifies the field by which the Engagement Invitations are sorted. Common values\n 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.

" + "smithy.api#documentation": "

Defines sorting options for retrieving Engagement Invitations. Sorting can be done\n based on various criteria like the invitation date or status.

" } }, "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSortName": { @@ -6629,39 +9309,51 @@ "smithy.api#pattern": "^O[0-9]{1,19}$" } }, + "com.amazonaws.partnercentralselling#OpportunityIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "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 opportunity stakeholders.

" + "smithy.api#documentation": "

Represents the contact details of the AWS representatives involved in sending the\n Engagement Invitation. These contacts are opportunity stakeholders.

" } }, "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#documentation": "

Outlines the responsibilities or expectations of the receiver in the context of the\n 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#documentation": "

Contains information about the customer related to the opportunity in the Engagement\n Invitation. This data helps partners understand the customer’s profile and\n 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#documentation": "

Describes the project details associated with the opportunity, including the\n 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.

" + "smithy.api#documentation": "

Represents the data payload of an Engagement Invitation for a specific opportunity.\n This contains detailed information that partners use to evaluate the engagement.

" } }, "com.amazonaws.partnercentralselling#OpportunityOrigin": { @@ -6687,7 +9379,7 @@ "SortOrder": { "target": "com.amazonaws.partnercentralselling#SortOrder", "traits": { - "smithy.api#documentation": "

Sort order.

\n

Default:\n Descending\n

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

Sort order.

\n

Default: Descending\n

", "smithy.api#required": {} } }, @@ -6738,61 +9430,111 @@ "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#documentation": "

Specifies the catalog associated with the opportunity, either AWS or\n Sandbox. This indicates the environment in which the opportunity is\n managed.

", "smithy.api#required": {} } }, "Id": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Read-only, system-generated Opportunity unique identifier.\n

" + "smithy.api#documentation": "

Read-only, system-generated Opportunity unique identifier.

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

\n The Amazon Resource Name (ARN) for the opportunity. This globally unique identifier\n can be used for IAM policies and cross-service references. \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

" + "smithy.api#documentation": "

Specifies the Opportunity's unique identifier in the partner's CRM\n system. This value is essential to track and reconcile because it's included in the\n outbound payload sent back to the partner. It allows partners to link an opportunity to\n their CRM.

" } }, "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
" + "smithy.api#documentation": "

Specifies opportunity type as a renewal, new, or expansion.

\n

Opportunity types:

\n
    \n
  • \n

    New Opportunity: Represents a new business opportunity with a potential\n customer that's not previously engaged with your solutions or services.

    \n
  • \n
  • \n

    Renewal Opportunity: Represents an opportunity to renew an existing contract\n or subscription with a current customer, ensuring continuity of service.

    \n
  • \n
  • \n

    Expansion Opportunity: Represents an opportunity to expand the scope of an\n existing contract or subscription, either by adding new services or increasing\n the volume of existing services for a current customer.

    \n
  • \n
" } }, "LastModifiedDate": { "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#documentation": "

\n DateTime\n when the Opportunity was last modified.\n

" + "smithy.api#documentation": "

\n DateTime when the Opportunity was last modified.

" } }, "CreatedDate": { "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#documentation": "

\n DateTime\n when the Opportunity was last created.\n

" + "smithy.api#documentation": "

\n DateTime when the Opportunity was last created.

" } }, "LifeCycle": { "target": "com.amazonaws.partnercentralselling#LifeCycleSummary", "traits": { - "smithy.api#documentation": "

An object that contains the Opportunity's lifecycle details.\n

" + "smithy.api#documentation": "

An object that contains the Opportunity's lifecycle details.

" } }, "Customer": { "target": "com.amazonaws.partnercentralselling#CustomerSummary", "traits": { - "smithy.api#documentation": "

An object that contains the Opportunity's customer details.\n

" + "smithy.api#documentation": "

An object that contains the Opportunity's customer details.

" } }, "Project": { "target": "com.amazonaws.partnercentralselling#ProjectSummary", "traits": { - "smithy.api#documentation": "

An object that contains the Opportunity's project details summary.\n

" + "smithy.api#documentation": "

An object that contains the Opportunity's project details summary.

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

An object that contains an Opportunity's subset of fields.

" + } + }, + "com.amazonaws.partnercentralselling#OpportunitySummaryView": { + "type": "structure", + "members": { + "OpportunityType": { + "target": "com.amazonaws.partnercentralselling#OpportunityType", + "traits": { + "smithy.api#documentation": "

\n Specifies the opportunity type.\n

" + } + }, + "Lifecycle": { + "target": "com.amazonaws.partnercentralselling#LifeCycleForView", + "traits": { + "smithy.api#documentation": "

\n Contains information about the opportunity's lifecycle, including its current stage,\n status, and important dates such as creation and last modification times.\n

" + } + }, + "OpportunityTeam": { + "target": "com.amazonaws.partnercentralselling#PartnerOpportunityTeamMembersList", + "traits": { + "smithy.api#documentation": "

\n Represents the internal team handling the opportunity. Specify the members involved in\n collaborating on an opportunity within the partner's organization. \n

" + } + }, + "PrimaryNeedsFromAws": { + "target": "com.amazonaws.partnercentralselling#PrimaryNeedsFromAws", + "traits": { + "smithy.api#documentation": "

\n Identifies the type of support the partner needs from AWS.\n

" + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#Customer" + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#ProjectView", + "traits": { + "smithy.api#documentation": "

\n Contains summary information about the project associated with the opportunity,\n including project name, description, timeline, and other relevant details.\n

" } + }, + "RelatedEntityIdentifiers": { + "target": "com.amazonaws.partnercentralselling#RelatedEntityIdentifiers" } }, "traits": { - "smithy.api#documentation": "

An object that contains an Opportunity's subset of fields.\n

" + "smithy.api#documentation": "

\n Provides a comprehensive view of an opportunity summary, including lifecycle\n information, team details, opportunity type, primary needs from AWS, and associated\n project information.\n

" } }, "com.amazonaws.partnercentralselling#OpportunityType": { @@ -6830,6 +9572,12 @@ "com.amazonaws.partnercentralselling#ParticipantType": { "type": "enum", "members": { + "SENDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SENDER" + } + }, "RECEIVER": { "target": "smithy.api#Unit", "traits": { @@ -6855,12 +9603,12 @@ "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.

" + "smithy.api#documentation": "

Specifies the details of the opportunity invitation within the Engagement Invitation\n payload. This data helps partners understand the context, scope, and expected\n 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.

" + "smithy.api#documentation": "

Contains the data payload associated with the Engagement Invitation. This payload\n includes essential details related to the AWS opportunity and is used by partners to\n evaluate whether to accept or reject the engagement.

" } }, "com.amazonaws.partnercentralselling#PaymentFrequency": { @@ -6961,20 +9709,20 @@ "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#documentation": "

Represents the details of the next step recorded, such as follow-up actions or\n decisions made. This field helps in tracking progress and ensuring alignment with\n 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#documentation": "

Indicates the date and time when a particular next step was recorded or planned. This\n 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.

" + "smithy.api#documentation": "

Tracks the history of next steps associated with the opportunity. This field captures\n the actions planned for the future and their timeline.

" } }, "com.amazonaws.partnercentralselling#Project": { @@ -6983,19 +9731,19 @@ "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
" + "smithy.api#documentation": "

Specifies the deployment or consumption model for your solution or service in the\n Opportunity's context. You can select multiple options.

\n

Options' descriptions from the Delivery Model field are:

\n
    \n
  • \n

    SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS\n in your Amazon Web Services environment.

    \n
  • \n
  • \n

    BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in\n the end customer's Amazon Web Services environment.

    \n
  • \n
  • \n

    Managed Services: The end customer's Amazon Web Services business management\n (For example: Consulting, design, implementation, billing support, cost\n optimization, technical support).

    \n
  • \n
  • \n

    Professional Services: Offerings to help enterprise end customers achieve\n specific business outcomes for enterprise cloud adoption (For example: Advisory\n or transformation planning).

    \n
  • \n
  • \n

    Resell: Amazon Web Services accounts and billing management for your\n 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.

" + "smithy.api#documentation": "

Represents the estimated amount that the customer is expected to spend on AWS services\n related to the opportunity. This helps in evaluating the potential financial value of\n the opportunity for AWS.

" } }, "Title": { "target": "com.amazonaws.partnercentralselling#PiiString", "traits": { - "smithy.api#documentation": "

Specifies the Opportunity's title or name.\n

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

Specifies the Opportunity's title or name.

", "smithy.api#length": { "max": 255 } @@ -7004,13 +9752,13 @@ "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

" + "smithy.api#documentation": "

Specifies the Amazon Partner Network (APN) program that influenced the\n Opportunity. APN programs refer to specific partner programs or\n initiatives that can impact the Opportunity.

\n

Valid values: APN Immersion Days | APN Solution Space | ATO (Authority to\n Operate) | AWS Marketplace Campaign | IS Immersion Day SFID Program | ISV Workload\n Migration | Migration Acceleration Program | P3 | Partner Launch Initiative |\n Partner Opportunity Acceleration Funded | The Next Smart | VMware Cloud on AWS |\n Well-Architected | Windows | Workspaces/AppStream Accelerator Program | WWPS\n 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 concise narrative that outlines the customer's business challenge or\n issue.\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#documentation": "

Describes the problem the end customer has, and how the partner is helping. Utilize\n this field to provide a concise narrative that outlines the customer's business\n challenge or issue. Elaborate on how the partner's solution or offerings align to\n resolve the customer's business problem. Include relevant information about the\n 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\n value. Use concise language and precise descriptions to convey the context and\n significance of the Opportunity. 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.

", "smithy.api#length": { "min": 20, "max": 2000 @@ -7020,31 +9768,31 @@ "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

" + "smithy.api#documentation": "

Specifies the proposed solution focus or type of workload for the Opportunity. This\n field captures the primary use case or objective of the proposed solution, and provides\n context and clarity to the addressed workload.

\n

Valid values: AI Machine Learning and Analytics | Archiving | Big Data: Data\n Warehouse/Data Integration/ETL/Data Lake/BI | Blockchain | Business Applications:\n Mainframe Modernization | Business Applications & Contact Center | Business\n Applications & SAP Production | Centralized Operations Management | Cloud\n Management Tools | Cloud Management Tools & DevOps with Continuous Integration\n & Continuous Delivery (CICD) | Configuration, Compliance & Auditing |\n Connected Services | Containers & Serverless | Content Delivery & Edge\n Services | Database | Edge Computing/End User Computing | Energy | Enterprise\n Governance & Controls | Enterprise Resource Planning | Financial Services |\n Healthcare and Life Sciences | High Performance Computing | Hybrid Application\n Platform | Industrial Software | IOT | Manufacturing, Supply Chain and Operations |\n Media & High performance computing (HPC) | Migration/Database Migration |\n Monitoring, logging and performance | Monitoring & Observability | Networking |\n Outpost | SAP | Security & Compliance | Storage & Backup | Training | VMC |\n VMWare | Web development & DevOps\n

" } }, "RelatedOpportunityIdentifier": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Specifies the current opportunity's parent opportunity identifier.\n

" + "smithy.api#documentation": "

Specifies the current opportunity's parent opportunity identifier.

" } }, "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
" + "smithy.api#documentation": "

Specifies the Opportunity's sales activities conducted with the end\n customer. These activities help drive Amazon Web Services assignment priority.

\n

Valid values:

\n
    \n
  • \n

    Initialized discussions with customer: Initial conversations with the customer\n to understand their needs and introduce your solution.

    \n
  • \n
  • \n

    Customer has shown interest in solution: After initial discussions, the\n customer is interested in your solution.

    \n
  • \n
  • \n

    Conducted POC/demo: You conducted a proof of concept (POC) or demonstration of\n the solution for the customer.

    \n
  • \n
  • \n

    In evaluation/planning stage: The customer is evaluating the solution and\n planning potential implementation.

    \n
  • \n
  • \n

    Agreed on solution to Business Problem: Both parties agree on how the solution\n addresses the customer's business problem.

    \n
  • \n
  • \n

    Completed Action Plan: A detailed action plan is complete and outlines the\n steps for implementation.

    \n
  • \n
  • \n

    Finalized Deployment Need: Both parties agree with and finalized the\n deployment needs.

    \n
  • \n
  • \n

    SOW Signed: Both parties signed a statement of work (SOW), and formalize the\n agreement and detail the project scope and deliverables.

    \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

" + "smithy.api#documentation": "

Name of the Opportunity's competitor (if any). Use Other to\n submit a value not in the picklist.

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

Only allowed when CompetitorNames has Other selected.\n

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

Only allowed when CompetitorNames has Other selected.

", "smithy.api#length": { "max": 255 } @@ -7053,7 +9801,7 @@ "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#documentation": "

Specifies the offered solution for the customer's business problem when the \n RelatedEntityIdentifiers.Solutions field value is Other.

", "smithy.api#length": { "max": 255 } @@ -7062,76 +9810,194 @@ "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#documentation": "

Captures additional comments or information for the Opportunity that\n weren't captured in other fields.

", + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the Opportunity's project details.

" + } + }, + "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\n 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\n 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\n 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\n 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,\n including the business problem and expected outcomes.

" + } + }, + "com.amazonaws.partnercentralselling#ProjectSummary": { + "type": "structure", + "members": { + "DeliveryModels": { + "target": "com.amazonaws.partnercentralselling#DeliveryModels", + "traits": { + "smithy.api#documentation": "

Specifies your solution or service's deployment or consumption model in the\n Opportunity's context. You can select multiple options.

\n

Options' descriptions from the Delivery Model field are:

\n
    \n
  • \n

    SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS\n in your Amazon Web Services environment.

    \n
  • \n
  • \n

    BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in\n the end customer's Amazon Web Services environment.

    \n
  • \n
  • \n

    Managed Services: The end customer's Amazon Web Services business management\n (For example: Consulting, design, implementation, billing support, cost\n optimization, technical support).

    \n
  • \n
  • \n

    Professional Services: Offerings to help enterprise end customers achieve\n specific business outcomes for enterprise cloud adoption (For example: Advisory\n or transformation planning).

    \n
  • \n
  • \n

    Resell: Amazon Web Services accounts and billing management for your\n 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\n high-level view of the potential financial impact.

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

An object that contains a Project object's subset of fields.

" + } + }, + "com.amazonaws.partnercentralselling#ProjectView": { + "type": "structure", + "members": { + "DeliveryModels": { + "target": "com.amazonaws.partnercentralselling#DeliveryModels", + "traits": { + "smithy.api#documentation": "

\n Describes the deployment or consumption model for the partner solution or offering.\n This field indicates how the project's solution will be delivered or implemented for the\n customer.\n

" + } + }, + "ExpectedCustomerSpend": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "traits": { + "smithy.api#documentation": "

\n Provides information about the anticipated customer spend related to this project.\n This may include details such as amount, frequency, and currency of expected\n expenditure.\n

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

\n Specifies the proposed solution focus or type of workload for the project.\n

" + } + }, + "SalesActivities": { + "target": "com.amazonaws.partnercentralselling#SalesActivities", + "traits": { + "smithy.api#documentation": "

\n Lists the pre-sales activities that have occurred with the end-customer related to the\n opportunity. This field is conditionally mandatory when the project is qualified for\n Co-Sell and helps drive assignment priority on the AWS side. It provides insight into\n the engagement level with the customer. \n

" + } + }, + "OtherSolutionDescription": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

\n Offers a description of other solutions if the standard solutions do not adequately\n cover the project's scope.\n

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

An object that contains the\n Opportunity's project details.\n

" + "smithy.api#documentation": "

\n Provides the project view of an opportunity resource shared through a snapshot.\n

" + } + }, + "com.amazonaws.partnercentralselling#PutSellingSystemSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#PutSellingSystemSettingsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#PutSellingSystemSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to put system settings settings in AWS Partner Central" + }, + "smithy.api#documentation": "

Updates the currently set system settings, which include the IAM Role used for resource snapshot jobs.

", + "smithy.api#http": { + "method": "POST", + "uri": "/PutSellingSystemSettings", + "code": 200 + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.partnercentralselling#ProjectDetails": { + "com.amazonaws.partnercentralselling#PutSellingSystemSettingsRequest": { "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", + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "traits": { - "smithy.api#documentation": "

Specifies the estimated date of project completion. This field helps track the project timeline and manage expectations.

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

Specifies the catalog in which the settings will be updated. Acceptable values include\n AWS for production and Sandbox for testing\n environments.

", "smithy.api#required": {} } }, - "ExpectedCustomerSpend": { - "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "ResourceSnapshotJobRoleIdentifier": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobRoleIdentifier", "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": {} + "smithy.api#documentation": "

Specifies the ARN of the IAM Role used for resource snapshot job executions.

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

Contains details about the project associated with the Engagement Invitation, including the business problem and expected outcomes.

" + "smithy.api#input": {} } }, - "com.amazonaws.partnercentralselling#ProjectSummary": { + "com.amazonaws.partnercentralselling#PutSellingSystemSettingsResponse": { "type": "structure", "members": { - "DeliveryModels": { - "target": "com.amazonaws.partnercentralselling#DeliveryModels", + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "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
" + "smithy.api#documentation": "

Specifies the catalog in which the settings are defined. Acceptable values include\n AWS for production and Sandbox for testing\n environments.

", + "smithy.api#required": {} } }, - "ExpectedCustomerSpend": { - "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "ResourceSnapshotJobRoleArn": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobRoleArn", "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.

" + "smithy.api#documentation": "

Specifies the ARN of the IAM Role used for resource snapshot job executions.

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

An object that contains a Project object's subset of fields.\n

" + "smithy.api#output": {} } }, "com.amazonaws.partnercentralselling#ReasonCode": { @@ -7143,6 +10009,12 @@ "smithy.api#enumValue": "InvitationAccessDenied" } }, + "INVITATION_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvitationValidationFailed" + } + }, "ENGAGEMENT_ACCESS_DENIED": { "target": "smithy.api#Unit", "traits": { @@ -7161,28 +10033,40 @@ "smithy.api#enumValue": "ResourceSnapshotJobAccessDenied" } }, + "RESOURCE_SNAPSHOT_JOB_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceSnapshotJobValidationFailed" + } + }, + "RESOURCE_SNAPSHOT_JOB_CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceSnapshotJobConflict" + } + }, "ENGAGEMENT_VALIDATION_FAILED": { "target": "smithy.api#Unit", "traits": { "smithy.api#enumValue": "EngagementValidationFailed" } }, - "OPPORTUNITY_SUBMISSION_FAILED": { + "ENGAGEMENT_CONFLICT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "OpportunitySubmissionFailed" + "smithy.api#enumValue": "EngagementConflict" } }, - "ENGAGEMENT_INVITATION_CONFLICT": { + "OPPORTUNITY_SUBMISSION_FAILED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EngagementInvitationConflict" + "smithy.api#enumValue": "OpportunitySubmissionFailed" } }, - "INTERNAL_ERROR": { + "ENGAGEMENT_INVITATION_CONFLICT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "InternalError" + "smithy.api#enumValue": "EngagementInvitationConflict" } }, "OPPORTUNITY_VALIDATION_FAILED": { @@ -7202,6 +10086,36 @@ "traits": { "smithy.api#enumValue": "ResourceSnapshotAccessDenied" } + }, + "RESOURCE_SNAPSHOT_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceSnapshotValidationFailed" + } + }, + "RESOURCE_SNAPSHOT_CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceSnapshotConflict" + } + }, + "INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InternalError" + } + }, + "SERVICE_QUOTA_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceQuotaExceeded" + } + }, + "REQUEST_THROTTLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RequestThrottled" + } } } }, @@ -7211,12 +10125,12 @@ "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.

" + "smithy.api#documentation": "

Specifies the AWS account of the partner who received the Engagement Invitation. This\n 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.

" + "smithy.api#documentation": "

Represents the entity that received the Engagement Invitation, including account and\n company details. This field is essential for tracking the partner who is being invited\n to collaborate.

" } }, "com.amazonaws.partnercentralselling#ReceiverResponsibility": { @@ -7316,7 +10230,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to reject Engagement Invitations on AWS Partner Central" }, - "smithy.api#documentation": "

This action rejects an EngagementInvitation that AWS\n shared. Rejecting an invitation indicates that the partner doesn't want to\n pursue the opportunity, and all related data will become inaccessible\n thereafter.

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

This action rejects an EngagementInvitation that AWS shared. Rejecting an\n invitation indicates that the partner doesn't want to pursue the opportunity, and all\n related data will become inaccessible thereafter.

", "smithy.api#http": { "method": "POST", "uri": "/RejectEngagementInvitation", @@ -7330,21 +10244,21 @@ "Catalog": { "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", "traits": { - "smithy.api#documentation": "

This is the catalog that's associated with the engagement\n invitation. Acceptable values are AWS or\n Sandbox, and these values determine the environment in which\n the opportunity is managed.

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

This is the catalog that's associated with the engagement invitation. Acceptable\n values are AWS or Sandbox, and these values determine the\n environment in which the opportunity is managed.

", "smithy.api#required": {} } }, "Identifier": { "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", "traits": { - "smithy.api#documentation": "

This is the unique identifier of the rejected\n EngagementInvitation. Providing the correct identifier\n helps to ensure that the intended invitation is rejected.

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

This is the unique identifier of the rejected EngagementInvitation.\n Providing the correct identifier helps to ensure that the intended invitation is\n rejected.

", "smithy.api#required": {} } }, "RejectionReason": { "target": "com.amazonaws.partnercentralselling#RejectionReasonString", "traits": { - "smithy.api#documentation": "

This describes the reason for rejecting the engagement invitation,\n which helps AWS track usage patterns. Acceptable values include the\n following:

\n
    \n
  • \n

    \n Customer problem unclear: The\n customer's problem isn't understood.

    \n
  • \n
  • \n

    \n Next steps unclear: The next steps\n required to proceed aren't understood.

    \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\n opportunity is a duplicate of an existing referral.

    \n
  • \n
  • \n

    \n Other: Any reason not covered by\n other values.

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

This describes the reason for rejecting the engagement invitation, which helps AWS\n track usage patterns. Acceptable values include the following:

\n
    \n
  • \n

    \n Customer problem unclear: The customer's problem isn't\n understood.

    \n
  • \n
  • \n

    \n Next steps unclear: The next steps required to proceed\n aren't understood.

    \n
  • \n
  • \n

    \n Unable to support: The partner is unable to provide\n support due to resource or capability constraints.

    \n
  • \n
  • \n

    \n Duplicate of partner referral: The opportunity is a\n duplicate of an existing referral.

    \n
  • \n
  • \n

    \n Other: Any reason not covered by other values.

    \n
  • \n
" } } }, @@ -7364,24 +10278,24 @@ "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

" + "smithy.api#documentation": "

Takes one value per opportunity. Each value is an Amazon Resource Name (ARN), in this\n format: \"offers\":\n [\"arn:aws:aws-marketplace:us-east-1:999999999999:AWSMarketplace/Offer/offer-sampleOffer32\"].

\n

Use the ListEntities action in the Marketplace Catalog APIs for a list of offers in\n the associated Marketplace seller account.

" } }, "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. But when 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 communicate the offerings that are being considered or implemented to address the customer's business problem.\n

" + "smithy.api#documentation": "

Enables partner solutions or offerings' association with an opportunity. To associate\n a solution, provide the solution's unique identifier, which you can obtain with the\n ListSolutions operation.

\n

If the specific solution identifier is not available, you can use the value\n Other and provide details about the solution in the\n otherSolutionOffered field. But when the opportunity reaches the\n Committed stage or beyond, the Other value cannot be used,\n and a valid solution identifier must be provided.

\n

By associating the relevant solutions with the opportunity, you can communicate the\n offerings that are being considered or implemented to address the customer's business\n problem.

" } }, "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

" + "smithy.api#documentation": "

Enables the association of specific Amazon Web Services products with the\n Opportunity. Partners can indicate the relevant Amazon Web Services\n products for the Opportunity's solution and align with the customer's\n needs. Returns multiple values separated by commas. For example, \"AWSProducts\" :\n [\"AmazonRedshift\", \"AWSAppFabric\", \"AWSCleanRooms\"].

\n

Use the file with the list of Amazon Web Services products hosted on GitHub: \n Amazon Web Services products.

" } } }, "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

" + "smithy.api#documentation": "

This field provides the associations' information for other entities with the\n opportunity. These entities include identifiers for AWSProducts,\n Partner Solutions, and AWSMarketplaceOffers.

" } }, "com.amazonaws.partnercentralselling#RelatedEntityType": { @@ -7407,17 +10321,275 @@ } } }, + "com.amazonaws.partnercentralselling#ResourceArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.partnercentralselling#ResourceIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^O[0-9]{1,19}$" + } + }, "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 + }, + "traits": { + "smithy.api#documentation": "

This error occurs when the specified resource can't be found. The resource might not\n exist, or isn't visible with the current credentials.

\n

Suggested action: Verify that the resource ID is correct and the resource is in the\n expected AWS region. Check IAM permissions for accessing the resource.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshot": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshot" + }, + { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshot" + }, + { + "target": "com.amazonaws.partnercentralselling#ListEngagementResourceAssociations" + }, + { + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshots" + } + ], + "traits": { + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "page.html#my-resource" + }, + "smithy.api#documentation": "Represents snapshot of a resource in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJob": { + "type": "resource", + "identifiers": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier" + } + }, + "create": { + "target": "com.amazonaws.partnercentralselling#CreateResourceSnapshotJob" + }, + "read": { + "target": "com.amazonaws.partnercentralselling#GetResourceSnapshotJob" + }, + "delete": { + "target": "com.amazonaws.partnercentralselling#DeleteResourceSnapshotJob" + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListResourceSnapshotJobs" + }, + "operations": [ + { + "target": "com.amazonaws.partnercentralselling#StartResourceSnapshotJob" + }, + { + "target": "com.amazonaws.partnercentralselling#StopResourceSnapshotJob" + } + ], + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/resource-snapshot-job/{Identifier}" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "page.html#my-resource", + "name": "resource-snapshot-job" + }, + "smithy.api#documentation": "Represents a job of snapshot resource in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^job-[0-9a-z]{13}$" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobRoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws:iam::\\d{12}:role/([-+=,.@_a-zA-Z0-9]+/)*[-+=,.@_a-zA-Z0-9]{1,64}$" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobRoleIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^(arn:aws:iam::\\d{12}:role/([-+=,.@_a-zA-Z0-9]+/)*)?[-+=,.@_a-zA-Z0-9]{1,64}$" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobStatus": { + "type": "enum", + "members": { + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Running" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stopped" + } + } + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the resource snapshot job within the AWS Partner Central\n system. This ID is used for direct references to the job within the service.\n

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

\n The Amazon Resource Name (ARN) for the resource snapshot job.\n

" + } + }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the engagement within the AWS Partner Central\n system. This ID is used for direct references to the engagement within the service.\n

" + } + }, + "Status": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobStatus", + "traits": { + "smithy.api#documentation": "

\n Represents the current status of the resource snapshot job.\n

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

\n An object that contains a Resource Snapshot Job's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotJobSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobSummary" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotPayload": { + "type": "union", + "members": { + "OpportunitySummary": { + "target": "com.amazonaws.partnercentralselling#OpportunitySummaryView", + "traits": { + "smithy.api#documentation": "

\n An object that contains an opportunity's subset of fields. \n

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

\n Represents the payload of a resource snapshot. This structure is designed to\n accommodate different types of resource snapshots, currently supporting opportunity\n summaries.\n

" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotRevision": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the snapshot. This globally unique identifier can be\n used for cross-service references and in IAM policies.\n

" + } + }, + "Revision": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotRevision", + "traits": { + "smithy.api#documentation": "

\n The revision number of the snapshot. This integer value is incremented each time the\n snapshot is updated, allowing for version tracking of the resource snapshot.\n

" + } + }, + "ResourceType": { + "target": "com.amazonaws.partnercentralselling#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource snapshotted.

" + } + }, + "ResourceId": { + "target": "com.amazonaws.partnercentralselling#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier of the specific resource snapshotted. The format might vary depending\n on the ResourceType.

" + } + }, + "ResourceSnapshotTemplateName": { + "target": "com.amazonaws.partnercentralselling#ResourceTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the template used to create the snapshot.

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

The AWS account ID of the principal (user or role) who created the snapshot. This\n helps in tracking the origin of the snapshot.

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

\n Provides a concise summary of a resource snapshot, including its unique identifier and\n version information. This structure is used to quickly reference and identify specific\n versions of resource snapshots. \n

" + } + }, + "com.amazonaws.partnercentralselling#ResourceSnapshotSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotSummary" + } + }, + "com.amazonaws.partnercentralselling#ResourceTemplateName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9]{3,80}$" + } + }, + "com.amazonaws.partnercentralselling#ResourceType": { + "type": "enum", + "members": { + "OPPORTUNITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Opportunity" + } + } } }, "com.amazonaws.partnercentralselling#RevenueModel": { @@ -7560,43 +10732,68 @@ } } }, + "com.amazonaws.partnercentralselling#SellingSystemSettings": { + "type": "resource", + "identifiers": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + } + }, + "read": { + "target": "com.amazonaws.partnercentralselling#GetSellingSystemSettings" + }, + "update": { + "target": "com.amazonaws.partnercentralselling#PutSellingSystemSettings" + }, + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/selling-system-settings" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "page.html#my-resource", + "name": "selling-system-settings" + }, + "smithy.api#documentation": "Represents a partner selling system settings in AWS Partner Central" + } + }, "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#documentation": "

The sender-provided contact's email address associated with the\n EngagementInvitation.

", "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

" + "smithy.api#documentation": "

The sender-provided contact's last name associated with the\n EngagementInvitation.

" } }, "LastName": { "target": "com.amazonaws.partnercentralselling#Name", "traits": { - "smithy.api#documentation": "

The sender-provided contact's first name associated with the EngagementInvitation.\n

" + "smithy.api#documentation": "

The sender-provided contact's first name associated with the\n EngagementInvitation.

" } }, "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

" + "smithy.api#documentation": "

The sender-provided contact's title (job title or role) associated with the\n EngagementInvitation.

" } }, "Phone": { "target": "com.amazonaws.partnercentralselling#PhoneNumber", "traits": { - "smithy.api#documentation": "

The sender-provided contact's phone number associated with the EngagementInvitation.\n

" + "smithy.api#documentation": "

The sender-provided contact's phone number associated with the\n EngagementInvitation.

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

An object that contains the details of the sender-provided contact person for the EngagementInvitation.\n

" + "smithy.api#documentation": "

An object that contains the details of the sender-provided contact person for the\n EngagementInvitation.

" } }, "com.amazonaws.partnercentralselling#SenderContactEmail": { @@ -7629,7 +10826,7 @@ } }, "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 Quotas for the resource, and either reduce usage or request a quota increase.\n

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

This error occurs when the request would cause a service quota to be exceeded. Service\n quotas represent the maximum allowed use of a specific resource, and this error\n indicates that the request would surpass that limit.

\n

Suggested action: Review the Quotas for the\n resource, and either reduce usage or request a quota increase.

", "smithy.api#error": "client", "smithy.api#httpError": 402 } @@ -7640,7 +10837,7 @@ "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

" + "smithy.api#documentation": "

Specifies the customer's intended payment type agreement or procurement method to\n acquire the solution or service outlined in the Opportunity.

" } }, "Value": { @@ -7652,18 +10849,18 @@ "EffectiveDate": { "target": "com.amazonaws.partnercentralselling#Date", "traits": { - "smithy.api#documentation": "

Specifies the Opportunity's customer engagement start date for the contract's effectiveness.\n

" + "smithy.api#documentation": "

Specifies the Opportunity's customer engagement start date for the\n contract's effectiveness.

" } }, "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

" + "smithy.api#documentation": "

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\n period between both parties.

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

Specifies a customer's procurement terms details. Required only for partners in eligible programs.

" + "smithy.api#documentation": "

Specifies a customer's procurement terms details. Required only for partners in\n eligible programs.

" } }, "com.amazonaws.partnercentralselling#Solution": { @@ -7690,13 +10887,19 @@ "smithy.api#documentation": "Represents a Solution that is listed on AWS Partner Central" } }, + "com.amazonaws.partnercentralselling#SolutionArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^S-[0-9]{1,19}$" + } + }, "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#documentation": "

Specifies the catalog in which the solution is hosted, either AWS or\n Sandbox. This helps partners differentiate between live solutions and\n those in testing environments.

", "smithy.api#required": {} } }, @@ -7707,6 +10910,12 @@ "smithy.api#required": {} } }, + "Arn": { + "target": "com.amazonaws.partnercentralselling#SolutionArn", + "traits": { + "smithy.api#documentation": "

\n The SolutionBase structure provides essential information about a solution.\n

" + } + }, "Name": { "target": "smithy.api#String", "traits": { @@ -7717,14 +10926,14 @@ "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#documentation": "

Specifies the solution's current status, which indicates its state in the system.\n Valid values: Active | Inactive | Draft. The\n status helps partners and Amazon Web Services track the solution's lifecycle and\n availability. Filter for Active solutions for association to an\n opportunity.

", "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#documentation": "

Specifies the solution category, which helps to categorize and organize the solutions\n partners offer. Valid values: Software Product | Consulting\n Service | Hardware Product | Communications Product\n | Professional Service | Managed Service | Value-Added\n Resale Amazon Web Services Service | Distribution Service |\n Training Service | Merger and Acquisition Advising\n Service.

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

Specifies minimal information for the solution offered to solve the customer's business problem.

" + "smithy.api#documentation": "

Specifies minimal information for the solution offered to solve the customer's\n business problem.

" } }, "com.amazonaws.partnercentralselling#SolutionIdentifier": { @@ -7764,20 +10973,20 @@ "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#documentation": "

Specifies the sorting order, either Ascending or Descending.\n The default is Descending.

", "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#documentation": "

Specifies the attribute to sort by, such as Name,\n CreatedDate, or Status.

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

\n Configures the solutions' response sorting that enables partners to order solutions based on specified attributes.\n

" + "smithy.api#documentation": "

Configures the solutions' response sorting that enables partners to order solutions\n based on specified attributes.

" } }, "com.amazonaws.partnercentralselling#SolutionSortName": { @@ -7838,6 +11047,37 @@ } } }, + "com.amazonaws.partnercentralselling#SortBy": { + "type": "enum", + "members": { + "CREATED_DATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreatedDate" + } + } + } + }, + "com.amazonaws.partnercentralselling#SortObject": { + "type": "structure", + "members": { + "SortBy": { + "target": "com.amazonaws.partnercentralselling#SortBy", + "traits": { + "smithy.api#documentation": "

\n Specifies the field by which to sort the resource snapshot jobs.\n

" + } + }, + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

\n Determines the order in which the sorted results are presented.\n

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

\n Defines the sorting parameters for listing resource snapshot jobs. This structure\n allows you to specify the field to sort by and the order of sorting. \n

" + } + }, "com.amazonaws.partnercentralselling#SortOrder": { "type": "enum", "members": { @@ -7948,7 +11188,7 @@ ], "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 the following steps: accepting the invitation, creating an opportunity in the partner’s account from the AWS opportunity, and copying details for tracking. When completed, an Opportunity Created event is generated, indicating that the opportunity has been successfully created in the partner's account.

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

This action starts the engagement by accepting an EngagementInvitation.\n The task is asynchronous and involves the following steps: accepting the invitation,\n creating an opportunity in the partner’s account from the AWS opportunity, and copying\n details for tracking. When completed, an Opportunity Created event is\n generated, indicating that the opportunity has been successfully created in the\n partner's account.

", "smithy.api#http": { "method": "POST", "uri": "/StartEngagementByAcceptingInvitationTask", @@ -7962,14 +11202,14 @@ "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#documentation": "

Specifies the catalog related to the task. Use AWS for production\n engagements and Sandbox for testing scenarios.

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

A unique, case-sensitive identifier provided by the client that helps to ensure the idempotency of the request. This can be a random or meaningful string but must be unique for each request.

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

A unique, case-sensitive identifier provided by the client that helps to ensure the\n idempotency of the request. This can be a random or meaningful string but must be unique\n for each request.

", "smithy.api#idempotencyToken": {}, "smithy.api#length": { "min": 1 @@ -7980,7 +11220,7 @@ "Identifier": { "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", "traits": { - "smithy.api#documentation": "

Specifies the unique identifier of the EngagementInvitation to be accepted. Providing the correct identifier helps ensure that the correct engagement is processed.

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

Specifies the unique identifier of the EngagementInvitation to be\n accepted. Providing the correct identifier helps ensure that the correct engagement is\n processed.

", "smithy.api#required": {} } } @@ -8001,13 +11241,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.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task, used for tracking and managing the task\n 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.

" + "smithy.api#documentation": "

The timestamp indicating when the task was initiated. The format follows RFC 3339\n section 5.6.

" } }, "TaskStatus": { @@ -8019,7 +11259,7 @@ "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.

" + "smithy.api#documentation": "

If the task fails, this field contains a detailed message describing the failure and\n possible recovery steps.

" } }, "ReasonCode": { @@ -8031,13 +11271,19 @@ "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.

" + "smithy.api#documentation": "

Returns the original opportunity identifier passed in the request. This is the unique\n identifier for the opportunity.

" + } + }, + "ResourceSnapshotJobId": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource snapshot job created as part of this task.\n

" } }, "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.

" + "smithy.api#documentation": "

Returns the identifier of the engagement invitation that was accepted and used to\n create the opportunity.

" } } }, @@ -8091,7 +11337,7 @@ ], "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#documentation": "

This action initiates the engagement process from an existing opportunity by accepting\n the engagement invitation and creating a corresponding opportunity in the partner’s\n system. Similar to StartEngagementByAcceptingInvitationTask, this action is\n asynchronous and performs multiple steps before completion.

", "smithy.api#http": { "method": "POST", "uri": "/StartEngagementFromOpportunityTask", @@ -8105,14 +11351,14 @@ "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#documentation": "

Specifies the catalog in which the engagement is tracked. Acceptable values include\n AWS for production and Sandbox for testing\n environments.

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

A unique token provided by the client to help ensure the idempotency of the request. It helps prevent the same task from being performed multiple times.

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

A unique token provided by the client to help ensure the idempotency of the request.\n It helps prevent the same task from being performed multiple times.

", "smithy.api#idempotencyToken": {}, "smithy.api#length": { "min": 1 @@ -8123,7 +11369,7 @@ "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 helps ensure that the task is applied to the correct opportunity.

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

The unique identifier of the opportunity from which the engagement task is to be\n initiated. This helps ensure that the task is applied to the correct opportunity.

", "smithy.api#required": {} } }, @@ -8144,31 +11390,31 @@ "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}$.

" + "smithy.api#documentation": "

The unique identifier of the task, used to track the task’s progress. This value\n 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.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task, used for tracking and managing the task\n 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.

" + "smithy.api#documentation": "

The timestamp indicating when the task was initiated. The format follows RFC 3339\n 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.

" + "smithy.api#documentation": "

Indicates the current status of the task. Valid values include\n 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.

" + "smithy.api#documentation": "

If the task fails, this field contains a detailed message describing the failure and\n possible recovery steps.

" } }, "ReasonCode": { @@ -8180,7 +11426,25 @@ "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.

" + "smithy.api#documentation": "

Returns the original opportunity identifier passed in the request, which is the unique\n identifier for the opportunity created in the partner’s system.

" + } + }, + "ResourceSnapshotJobId": { + "target": "com.amazonaws.partnercentralselling#ResourceSnapshotJobIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource snapshot job created to add the opportunity resource\n snapshot to the Engagement. Only populated if TaskStatus is COMPLETE.\n

" + } + }, + "EngagementId": { + "target": "com.amazonaws.partnercentralselling#EngagementIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the newly created engagement. Only populated if TaskStatus is\n COMPLETE.\n

" + } + }, + "EngagementInvitationId": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the new engagement invitation. Only populated if TaskStatus is\n COMPLETE.\n

" } } }, @@ -8188,24 +11452,234 @@ "smithy.api#output": {} } }, + "com.amazonaws.partnercentralselling#StartResourceSnapshotJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#StartResourceSnapshotJobRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to starting resource snapshot jobs in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Starts a resource snapshot job that has been previously created.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/StartResourceSnapshotJob", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#StartResourceSnapshotJobRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request.\n

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

\n The identifier of the resource snapshot job to start.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#StopResourceSnapshotJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#StopResourceSnapshotJobRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to stopping resource snapshot jobs in AWS Partner Central" + }, + "smithy.api#documentation": "

\n Stops a resource snapshot job. The job must be started prior to being stopped.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/StopResourceSnapshotJob", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#StopResourceSnapshotJobRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request. \n

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

\n The identifier of the job to stop.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.partnercentralselling#StringList": { "type": "list", "member": { "target": "smithy.api#String" } }, + "com.amazonaws.partnercentralselling#SubmitOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#SubmitOpportunityRequest" + }, + "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 submit Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Use this action to submit an opportunity that was previously created by partner for\n AWS review. After you perform this action, the opportunity becomes non-editable until it\n is reviewed by AWS and has LifeCycle.ReviewStatus as either\n Approved or Action Required. \n

", + "smithy.api#http": { + "method": "POST", + "uri": "/SubmitOpportunity", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#SubmitOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog related to the request. \n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n The identifier of the opportunity previously created by partner and needs to be\n submitted.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + }, + "InvolvementType": { + "target": "com.amazonaws.partnercentralselling#SalesInvolvementType", + "traits": { + "smithy.api#documentation": "

\n Specifies the level of AWS sellers' involvement on the opportunity. \n

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

\n Determines whether to restrict visibility of the opportunity from AWS sales. Default\n value is Full. \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.partnercentralselling#TaskArn": { "type": "string", "traits": { "smithy.api#pattern": "^arn:.*" } }, + "com.amazonaws.partnercentralselling#TaskArnOrIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(arn:.*|task-[0-9a-z]{13})$" + } + }, "com.amazonaws.partnercentralselling#TaskIdentifier": { "type": "string", "traits": { "smithy.api#pattern": "task-[0-9a-z]{13}$" } }, + "com.amazonaws.partnercentralselling#TaskIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#TaskArnOrIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.partnercentralselling#TaskStatus": { "type": "enum", "members": { @@ -8229,6 +11703,18 @@ } } }, + "com.amazonaws.partnercentralselling#TaskStatuses": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#TaskStatus" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, "com.amazonaws.partnercentralselling#ThrottlingException": { "type": "structure", "members": { @@ -8237,7 +11723,7 @@ } }, "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#documentation": "

This error occurs when there are too many requests sent. Review the provided quotas\n and adapt your usage to avoid throttling.

\n

This error occurs when there are too many requests sent. Review the provided Quotas and retry after the provided delay.

", "smithy.api#error": "client", "smithy.api#httpError": 429 } @@ -8277,7 +11763,7 @@ "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#documentation": "

Updates the Opportunity record identified by a given\n Identifier. This operation allows you to modify the details of an\n existing opportunity to reflect the latest information and progress. Use this action to\n keep the opportunity record up-to-date and accurate.

\n

When you perform updates, include the entire payload with each request. If any field\n is omitted, the API assumes that the field is set to null. The best\n practice is to always perform a GetOpportunity to retrieve the latest\n values, then send the complete payload with the updated values to be changed.

", "smithy.api#http": { "method": "POST", "uri": "/UpdateOpportunity", @@ -8291,26 +11777,26 @@ "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 for testing in secure, isolated environments.\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#documentation": "

Specifies the catalog associated with the request. This field takes a string value\n from a predefined list: AWS or Sandbox. The catalog determines\n which environment the opportunity is updated in. Use AWS to update real\n opportunities in the production environment, and Sandbox for testing in\n secure, isolated environments. When you use the Sandbox catalog, it allows\n you to simulate and validate your interactions with Amazon Web Services services without\n affecting live data or operations.

", "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 Cosell—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 Cosell—Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Cosell—Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Cosell—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 Cosell—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 Cosell—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 Cosell—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 Cosell—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 coselling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.\n

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

Identifies the type of support the partner needs from Amazon Web Services.

\n

Valid values:

\n
    \n
  • \n

    Cosell—Architectural Validation: Confirmation from Amazon Web Services that the\n partner's proposed solution architecture is aligned with Amazon Web Services best\n practices and poses minimal architectural risks.

    \n
  • \n
  • \n

    Cosell—Business Presentation: Request Amazon Web Services seller's\n participation in a joint customer presentation.

    \n
  • \n
  • \n

    Cosell—Competitive Information: Access to Amazon Web Services competitive\n resources and support for the partner's proposed solution.

    \n
  • \n
  • \n

    Cosell—Pricing Assistance: Connect with an AWS seller for support situations\n where a partner may be receiving an upfront discount on a service (for example:\n EDP deals).

    \n
  • \n
  • \n

    Cosell—Technical Consultation: Connection with an Amazon Web Services Solutions\n Architect to address the partner's questions about the proposed solution.

    \n
  • \n
  • \n

    Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different\n cost savings of proposed solutions on Amazon Web Services versus on-premises or a\n traditional hosting environment.

    \n
  • \n
  • \n

    Cosell—Deal Support: Request Amazon Web Services seller's support to progress\n the opportunity (for example: joint customer call, strategic\n positioning).

    \n
  • \n
  • \n

    Cosell—Support for Public Tender/RFx: Opportunity related to the public sector\n where the partner needs RFx support from Amazon Web Services.

    \n
  • \n
  • \n

    Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't need\n support from an Amazon Web Services Sales representative. The opportunity is\n managed solely by the partner. It's possible to request coselling support on\n these opportunities at any stage during their lifecycle. Also known as,\n for-visibility-only (FVO) opportunity.

    \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, validation and compliance rules may apply, impacting the opportunity's visibility and processing.

" + "smithy.api#documentation": "

Specifies if the opportunity is associated with national security concerns. This flag\n is only applicable when the industry is Government. For\n national-security-related opportunities, validation and compliance rules may apply,\n 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#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value\n is essential to track and reconcile because it's included in the outbound payload sent\n back to the partner.

", "smithy.api#length": { "max": 64 } @@ -8319,51 +11805,51 @@ "Customer": { "target": "com.amazonaws.partnercentralselling#Customer", "traits": { - "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity.\n

" + "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity.

" } }, "Project": { "target": "com.amazonaws.partnercentralselling#Project", "traits": { - "smithy.api#documentation": "

An object that contains project details summary for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains project details summary for the\n Opportunity.

" } }, "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
" + "smithy.api#documentation": "

Specifies the opportunity type as a renewal, new, or expansion.

\n

Opportunity types:

\n
    \n
  • \n

    New opportunity: Represents a new business opportunity with a potential\n customer that's not previously engaged with your solutions or services.

    \n
  • \n
  • \n

    Renewal opportunity: Represents an opportunity to renew an existing contract\n or subscription with a current customer, ensuring continuity of service.

    \n
  • \n
  • \n

    Expansion opportunity: Represents an opportunity to expand the scope of an\n existing contract or subscription, either by adding new services or increasing\n the volume of existing services for a current customer.

    \n
  • \n
" } }, "Marketing": { "target": "com.amazonaws.partnercentralselling#Marketing", "traits": { - "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains marketing details for the 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.

" + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. Required only for partners in\n eligible programs.

" } }, "LastModifiedDate": { "target": "com.amazonaws.partnercentralselling#DateTime", "traits": { - "smithy.api#documentation": "

\n DateTime when the opportunity was last modified.\n

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

\n DateTime when the opportunity was last modified.

", "smithy.api#required": {} } }, "Identifier": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

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

Read-only, system generated Opportunity unique identifier.

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

An object that contains lifecycle details for the Opportunity.\n

" + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.

" } } }, @@ -8377,14 +11863,14 @@ "Id": { "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", "traits": { - "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

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

Read-only, system generated Opportunity unique identifier.

", "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#documentation": "

\n DateTime when the opportunity was last modified.

", "smithy.api#required": {} } } @@ -8411,19 +11897,19 @@ "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#documentation": "

The primary reason for this validation exception to occur.

\n
    \n
  • \n

    \n REQUEST_VALIDATION_FAILED: The request format is not\n valid.

    \n

    Fix: Verify your request payload includes all required fields, uses correct\n data types and string formats.

    \n
  • \n
  • \n

    \n BUSINESS_VALIDATION_FAILED: The requested change doesn't\n pass the business validation rules.

    \n

    Fix: Check that your change aligns with the business rules defined by AWS\n Partner Central.

    \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

" + "smithy.api#documentation": "

A list of issues that were discovered in the submitted request or the resource\n state.

" } } }, "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#documentation": "

The input fails to satisfy the constraints specified by the service or business\n validation rules.

\n

Suggested action: Review the error message, including the failed fields and reasons,\n to correct the request payload.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -8453,7 +11939,7 @@ } }, "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
" + "smithy.api#documentation": "

Indicates an invalid value for a field.

\n
    \n
  • \n

    \n REQUIRED_FIELD_MISSING: The request is missing a required\n field.

    \n

    Fix: Verify your request payload includes all required fields.

    \n
  • \n
  • \n

    \n INVALID_ENUM_VALUE: The enum field value isn't an\n accepted values.

    \n

    Fix: Check the documentation for the list of valid enum values, and update\n your request with a valid value.

    \n
  • \n
  • \n

    \n INVALID_STRING_FORMAT: The string format is\n invalid.

    \n

    Fix: Confirm that the string is in the expected format (For example: email\n address, date).

    \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\n allowable range or set.

    \n
  • \n
  • \n

    \n TOO_MANY_VALUES: There are too many values in a field\n that expects fewer entries.

    \n

    Fix: Reduce the number of values to match the expected limit.

    \n
  • \n
  • \n

    \n ACTION_NOT_PERMITTED: The action isn't permitted due to\n current state or permissions.

    \n

    Fix: Verify that the action is appropriate for the current state, and that you\n have the necessary permissions to perform it.

    \n
  • \n
  • \n

    \n DUPLICATE_KEY_VALUE: The value in a field duplicates a\n value that must be unique.

    \n

    Fix: Verify that the value is unique and doesn't duplicate an existing value\n in the system.

    \n
  • \n
" } }, "com.amazonaws.partnercentralselling#ValidationExceptionErrorCode": { diff --git a/codegen/sdk-codegen/aws-models/qbusiness.json b/codegen/sdk-codegen/aws-models/qbusiness.json index e8e96c4b431..f5cb62e77f0 100644 --- a/codegen/sdk-codegen/aws-models/qbusiness.json +++ b/codegen/sdk-codegen/aws-models/qbusiness.json @@ -12038,7 +12038,7 @@ } ], "traits": { - "smithy.api#documentation": "

Searches for relevant content in a Q Business application based on a query. This operation takes a \n search query text, the Q Business application identifier, and optional filters \n (such as user ID, user groups, content source, and maximum results) as input. It returns a list of \n relevant content items, where each item includes the content text, the unique document identifier, \n the document title, the document URI, any relevant document attributes, and score attributes \n indicating the confidence level of the relevance.

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

Searches for relevant content in a Q Business application based on a query. This operation takes a \n search query text, the Q Business application identifier, and optional filters \n (such as content source and maximum results) as input. It returns a list of \n relevant content items, where each item includes the content text, the unique document identifier, \n the document title, the document URI, any relevant document attributes, and score attributes \n indicating the confidence level of the relevance.

", "smithy.api#http": { "uri": "/applications/{applicationId}/relevant-content", "method": "POST" @@ -12062,20 +12062,6 @@ "smithy.api#required": {} } }, - "userId": { - "target": "com.amazonaws.qbusiness#UserId", - "traits": { - "smithy.api#documentation": "

The ID of the user performing the search. Used for access control.

", - "smithy.api#httpQuery": "userId" - } - }, - "userGroups": { - "target": "com.amazonaws.qbusiness#UserGroups", - "traits": { - "smithy.api#documentation": "

The groups the user belongs to. Used for access control.

", - "smithy.api#httpQuery": "userGroups" - } - }, "queryText": { "target": "com.amazonaws.qbusiness#QueryText", "traits": { From 892405199ed915c39f87554b69ba319e05896c2b Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 5 Dec 2024 01:37:16 +0000 Subject: [PATCH 05/21] Regenerated Clients --- .../3e9bb874b1754bca9c93a51eb1b7f79a.json | 8 + .../c87a598e71534020818990564c4d1605.json | 8 + .../api_op_AcceptEngagementInvitation.go | 165 + .../api_op_AssignOpportunity.go | 7 +- .../api_op_AssociateOpportunity.go | 5 +- .../api_op_CreateEngagement.go | 234 + .../api_op_CreateEngagementInvitation.go | 226 + .../api_op_CreateOpportunity.go | 21 +- .../api_op_CreateResourceSnapshot.go | 238 + .../api_op_CreateResourceSnapshotJob.go | 231 + .../api_op_DeleteResourceSnapshotJob.go | 160 + .../api_op_DisassociateOpportunity.go | 9 +- .../api_op_GetAwsOpportunitySummary.go | 31 +- .../api_op_GetEngagement.go | 196 + .../api_op_GetEngagementInvitation.go | 19 + .../api_op_GetOpportunity.go | 15 +- .../api_op_GetResourceSnapshot.go | 236 + .../api_op_GetResourceSnapshotJob.go | 222 + .../api_op_GetSellingSystemSettings.go | 164 + ...istEngagementByAcceptingInvitationTasks.go | 299 + ...i_op_ListEngagementFromOpportunityTasks.go | 300 + .../api_op_ListEngagementInvitations.go | 13 + .../api_op_ListEngagementMembers.go | 275 + ...i_op_ListEngagementResourceAssociations.go | 289 + .../api_op_ListEngagements.go | 281 + .../api_op_ListOpportunities.go | 25 +- .../api_op_ListResourceSnapshotJobs.go | 280 + .../api_op_ListResourceSnapshots.go | 282 + .../api_op_ListSolutions.go | 9 +- .../api_op_PutSellingSystemSettings.go | 167 + ...tartEngagementByAcceptingInvitationTask.go | 3 + ...i_op_StartEngagementFromOpportunityTask.go | 12 + .../api_op_StartResourceSnapshotJob.go | 157 + .../api_op_StopResourceSnapshotJob.go | 157 + .../api_op_SubmitOpportunity.go | 172 + .../api_op_UpdateOpportunity.go | 15 +- .../partnercentralselling/deserializers.go | 8737 +++++++++++++---- service/partnercentralselling/generated.json | 21 + service/partnercentralselling/serializers.go | 3436 ++++++- .../api_op_AcceptEngagementInvitation.go.snap | 41 + .../snapshot/api_op_CreateEngagement.go.snap | 42 + .../api_op_CreateEngagementInvitation.go.snap | 42 + .../api_op_CreateResourceSnapshot.go.snap | 42 + .../api_op_CreateResourceSnapshotJob.go.snap | 42 + .../api_op_DeleteResourceSnapshotJob.go.snap | 41 + .../snapshot/api_op_GetEngagement.go.snap | 41 + .../api_op_GetResourceSnapshot.go.snap | 41 + .../api_op_GetResourceSnapshotJob.go.snap | 41 + .../api_op_GetSellingSystemSettings.go.snap | 41 + ...gagementByAcceptingInvitationTasks.go.snap | 41 + ...ListEngagementFromOpportunityTasks.go.snap | 41 + .../api_op_ListEngagementMembers.go.snap | 41 + ...ListEngagementResourceAssociations.go.snap | 41 + .../snapshot/api_op_ListEngagements.go.snap | 41 + .../api_op_ListResourceSnapshotJobs.go.snap | 41 + .../api_op_ListResourceSnapshots.go.snap | 41 + .../api_op_PutSellingSystemSettings.go.snap | 41 + .../api_op_StartResourceSnapshotJob.go.snap | 41 + .../api_op_StopResourceSnapshotJob.go.snap | 41 + .../snapshot/api_op_SubmitOpportunity.go.snap | 41 + .../partnercentralselling/snapshot_test.go | 504 + service/partnercentralselling/types/enums.go | 146 +- service/partnercentralselling/types/types.go | 632 +- .../types/types_exported_test.go | 36 + service/partnercentralselling/validators.go | 1792 +++- .../qbusiness/api_op_SearchRelevantContent.go | 16 +- service/qbusiness/serializers.go | 10 - 67 files changed, 18307 insertions(+), 2819 deletions(-) create mode 100644 .changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json create mode 100644 .changelog/c87a598e71534020818990564c4d1605.json create mode 100644 service/partnercentralselling/api_op_AcceptEngagementInvitation.go create mode 100644 service/partnercentralselling/api_op_CreateEngagement.go create mode 100644 service/partnercentralselling/api_op_CreateEngagementInvitation.go create mode 100644 service/partnercentralselling/api_op_CreateResourceSnapshot.go create mode 100644 service/partnercentralselling/api_op_CreateResourceSnapshotJob.go create mode 100644 service/partnercentralselling/api_op_DeleteResourceSnapshotJob.go create mode 100644 service/partnercentralselling/api_op_GetEngagement.go create mode 100644 service/partnercentralselling/api_op_GetResourceSnapshot.go create mode 100644 service/partnercentralselling/api_op_GetResourceSnapshotJob.go create mode 100644 service/partnercentralselling/api_op_GetSellingSystemSettings.go create mode 100644 service/partnercentralselling/api_op_ListEngagementByAcceptingInvitationTasks.go create mode 100644 service/partnercentralselling/api_op_ListEngagementFromOpportunityTasks.go create mode 100644 service/partnercentralselling/api_op_ListEngagementMembers.go create mode 100644 service/partnercentralselling/api_op_ListEngagementResourceAssociations.go create mode 100644 service/partnercentralselling/api_op_ListEngagements.go create mode 100644 service/partnercentralselling/api_op_ListResourceSnapshotJobs.go create mode 100644 service/partnercentralselling/api_op_ListResourceSnapshots.go create mode 100644 service/partnercentralselling/api_op_PutSellingSystemSettings.go create mode 100644 service/partnercentralselling/api_op_StartResourceSnapshotJob.go create mode 100644 service/partnercentralselling/api_op_StopResourceSnapshotJob.go create mode 100644 service/partnercentralselling/api_op_SubmitOpportunity.go create mode 100644 service/partnercentralselling/snapshot/api_op_AcceptEngagementInvitation.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_CreateEngagement.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_CreateEngagementInvitation.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_CreateResourceSnapshot.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_CreateResourceSnapshotJob.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_DeleteResourceSnapshotJob.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetEngagement.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetResourceSnapshot.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetResourceSnapshotJob.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetSellingSystemSettings.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagementByAcceptingInvitationTasks.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagementFromOpportunityTasks.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagementMembers.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagementResourceAssociations.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagements.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListResourceSnapshotJobs.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListResourceSnapshots.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_PutSellingSystemSettings.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_StartResourceSnapshotJob.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_StopResourceSnapshotJob.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_SubmitOpportunity.go.snap diff --git a/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json b/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json new file mode 100644 index 00000000000..380564bd2f1 --- /dev/null +++ b/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json @@ -0,0 +1,8 @@ +{ + "id": "3e9bb874-b175-4bca-9c93-a51eb1b7f79a", + "type": "feature", + "description": "This release removes the deprecated UserId and UserGroups fields from SearchRelevantContent api's request parameters.", + "modules": [ + "service/qbusiness" + ] +} \ No newline at end of file diff --git a/.changelog/c87a598e71534020818990564c4d1605.json b/.changelog/c87a598e71534020818990564c4d1605.json new file mode 100644 index 00000000000..d73e3f83911 --- /dev/null +++ b/.changelog/c87a598e71534020818990564c4d1605.json @@ -0,0 +1,8 @@ +{ + "id": "c87a598e-7153-4020-8189-90564c4d1605", + "type": "feature", + "description": "Introducing the preview of new partner central selling APIs designed to transform how AWS partners collaborate and co-sell with multiple partners. This enables multiple partners to seamlessly engage and jointly pursue customer opportunities, fostering a new era of collaborative selling.", + "modules": [ + "service/partnercentralselling" + ] +} \ No newline at end of file diff --git a/service/partnercentralselling/api_op_AcceptEngagementInvitation.go b/service/partnercentralselling/api_op_AcceptEngagementInvitation.go new file mode 100644 index 00000000000..ecc33350815 --- /dev/null +++ b/service/partnercentralselling/api_op_AcceptEngagementInvitation.go @@ -0,0 +1,165 @@ +// 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 the AcceptEngagementInvitation action to accept an engagement invitation +// +// shared by AWS. Accepting the invitation indicates your willingness to +// participate in the engagement, granting you access to all engagement-related +// data. +func (c *Client) AcceptEngagementInvitation(ctx context.Context, params *AcceptEngagementInvitationInput, optFns ...func(*Options)) (*AcceptEngagementInvitationOutput, error) { + if params == nil { + params = &AcceptEngagementInvitationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AcceptEngagementInvitation", params, optFns, c.addOperationAcceptEngagementInvitationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AcceptEngagementInvitationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AcceptEngagementInvitationInput struct { + + // The CatalogType parameter specifies the catalog associated with the engagement + // invitation. Accepted values are AWS and Sandbox , which determine the + // environment in which the engagement invitation is managed. + // + // This member is required. + Catalog *string + + // The Identifier parameter in the AcceptEngagementInvitationRequest specifies + // the unique identifier of the EngagementInvitation to be accepted. Providing the + // correct identifier ensures that the intended invitation is accepted. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type AcceptEngagementInvitationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAcceptEngagementInvitationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpAcceptEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpAcceptEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AcceptEngagementInvitation"); 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 = addOpAcceptEngagementInvitationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAcceptEngagementInvitation(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_opAcceptEngagementInvitation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AcceptEngagementInvitation", + } +} diff --git a/service/partnercentralselling/api_op_AssignOpportunity.go b/service/partnercentralselling/api_op_AssignOpportunity.go index a836ae52ddb..a6b4bcd0ac3 100644 --- a/service/partnercentralselling/api_op_AssignOpportunity.go +++ b/service/partnercentralselling/api_op_AssignOpportunity.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables you to reassign an existing Opportunity to another user within your -// +// 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. @@ -46,7 +45,7 @@ type AssignOpportunityInput struct { // This member is required. Assignee *types.AssigneeContact - // Specifies the catalog associated with the request. This field takes a string + // 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 for testing in @@ -55,7 +54,7 @@ type AssignOpportunityInput struct { // This member is required. Catalog *string - // Requires the Opportunity 's unique identifier when you want to assign it to + // 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. // diff --git a/service/partnercentralselling/api_op_AssociateOpportunity.go b/service/partnercentralselling/api_op_AssociateOpportunity.go index 6a7698c7d7e..4fd9e5a8491 100644 --- a/service/partnercentralselling/api_op_AssociateOpportunity.go +++ b/service/partnercentralselling/api_op_AssociateOpportunity.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables you to create a formal association between an Opportunity and various -// +// 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 entity types: @@ -64,7 +63,7 @@ func (c *Client) AssociateOpportunity(ctx context.Context, params *AssociateOppo type AssociateOpportunityInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 association is made in. Use AWS to associate // opportunities in the Amazon Web Services catalog, and Sandbox for testing in diff --git a/service/partnercentralselling/api_op_CreateEngagement.go b/service/partnercentralselling/api_op_CreateEngagement.go new file mode 100644 index 00000000000..29b87163637 --- /dev/null +++ b/service/partnercentralselling/api_op_CreateEngagement.go @@ -0,0 +1,234 @@ +// 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" +) + +// The CreateEngagement action allows you to create an Engagement , which serves +// +// as a collaborative space between different parties such as AWS Partners and AWS +// Sellers. This action automatically adds the caller's AWS account as an active +// member of the newly created Engagement . +func (c *Client) CreateEngagement(ctx context.Context, params *CreateEngagementInput, optFns ...func(*Options)) (*CreateEngagementOutput, error) { + if params == nil { + params = &CreateEngagementInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateEngagement", params, optFns, c.addOperationCreateEngagementMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateEngagementOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateEngagementInput struct { + + // The CreateEngagementRequest$Catalog parameter specifies the catalog related to + // the engagement. Accepted values are AWS and Sandbox , which determine the + // environment in which the engagement is managed. + // + // This member is required. + Catalog *string + + // The CreateEngagementRequest$ClientToken parameter specifies a unique, + // case-sensitive identifier to ensure that the request is handled exactly once. + // The value must not exceed sixty-four alphanumeric characters. + // + // This member is required. + ClientToken *string + + // Provides a description of the Engagement . + // + // This member is required. + Description *string + + // Specifies the title of the Engagement . + // + // This member is required. + Title *string + + // The Contexts field is a required array of objects, with a maximum of 5 + // contexts allowed, specifying detailed information about customer projects + // associated with the Engagement. Each context object contains a Type field + // indicating the context type, which must be CustomerProject in this version, and + // a Payload field containing the CustomerProject details. The CustomerProject + // object is composed of two main components: Customer and Project . The Customer + // object includes information such as CompanyName , WebsiteUrl , Industry , and + // CountryCode , providing essential details about the customer. The Project + // object contains Title , BusinessProblem , and TargetCompletionDate , offering + // insights into the specific project associated with the customer. This structure + // allows comprehensive context to be included within the Engagement, facilitating + // effective collaboration between parties by providing relevant customer and + // project information. + Contexts []types.EngagementContextDetails + + noSmithyDocumentSerde +} + +type CreateEngagementOutput struct { + + // The Amazon Resource Name (ARN) that identifies the engagement. + Arn *string + + // Unique identifier assigned to the newly created engagement. + Id *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateEngagementMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateEngagement{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateEngagement{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateEngagement"); 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_opCreateEngagementMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateEngagementValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateEngagement(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_initializeOpCreateEngagement struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateEngagement) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateEngagement) 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.(*CreateEngagementInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateEngagementInput ") + } + + 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_opCreateEngagementMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateEngagement{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateEngagement(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateEngagement", + } +} diff --git a/service/partnercentralselling/api_op_CreateEngagementInvitation.go b/service/partnercentralselling/api_op_CreateEngagementInvitation.go new file mode 100644 index 00000000000..9ef5b7e125d --- /dev/null +++ b/service/partnercentralselling/api_op_CreateEngagementInvitation.go @@ -0,0 +1,226 @@ +// 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 action creates an invitation from a sender to a single receiver to join +// +// an engagement. +func (c *Client) CreateEngagementInvitation(ctx context.Context, params *CreateEngagementInvitationInput, optFns ...func(*Options)) (*CreateEngagementInvitationOutput, error) { + if params == nil { + params = &CreateEngagementInvitationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateEngagementInvitation", params, optFns, c.addOperationCreateEngagementInvitationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateEngagementInvitationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateEngagementInvitationInput struct { + + // Specifies the catalog related to the engagement. Accepted values are AWS and + // Sandbox , which determine the environment in which the engagement is managed. + // + // This member is required. + Catalog *string + + // Specifies a unique, client-generated UUID to ensure that the request is + // handled exactly once. This token helps prevent duplicate invitation creations. + // + // This member is required. + ClientToken *string + + // The unique identifier of the Engagement associated with the invitation. This + // parameter ensures the invitation is created within the correct Engagement + // context. + // + // This member is required. + EngagementIdentifier *string + + // The Invitation object all information necessary to initiate an engagement + // invitation to a partner. It contains a personalized message from the sender, the + // invitation's receiver, and a payload. The Payload can be the + // OpportunityInvitation , which includes detailed structures for sender contacts, + // partner responsibilities, customer information, and project details. + // + // This member is required. + Invitation *types.Invitation + + noSmithyDocumentSerde +} + +type CreateEngagementInvitationOutput struct { + + // The Amazon Resource Name (ARN) that uniquely identifies the engagement + // invitation. + // + // This member is required. + Arn *string + + // Unique identifier assigned to the newly created engagement invitation. + // + // This member is required. + Id *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateEngagementInvitationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateEngagementInvitation"); 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_opCreateEngagementInvitationMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateEngagementInvitationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateEngagementInvitation(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_initializeOpCreateEngagementInvitation struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateEngagementInvitation) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateEngagementInvitation) 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.(*CreateEngagementInvitationInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateEngagementInvitationInput ") + } + + 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_opCreateEngagementInvitationMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateEngagementInvitation{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateEngagementInvitation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateEngagementInvitation", + } +} diff --git a/service/partnercentralselling/api_op_CreateOpportunity.go b/service/partnercentralselling/api_op_CreateOpportunity.go index 34737f9131a..ea39cca3291 100644 --- a/service/partnercentralselling/api_op_CreateOpportunity.go +++ b/service/partnercentralselling/api_op_CreateOpportunity.go @@ -12,8 +12,7 @@ import ( "time" ) -// Creates an Opportunity record in Partner Central. Use this operation to create -// +// Creates an Opportunity record in Partner Central. Use this operation to create // a potential business opportunity for submission to Amazon Web Services. Creating // an opportunity sets Lifecycle.ReviewStatus to Pending Submission . // @@ -48,7 +47,7 @@ func (c *Client) CreateOpportunity(ctx context.Context, params *CreateOpportunit type CreateOpportunityInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 for testing in secure, isolated @@ -57,7 +56,7 @@ type CreateOpportunityInput struct { // This member is required. Catalog *string - // Required to be unique, and should be unchanging, it can be randomly generated + // Required to be unique, and should be unchanging, it can be randomly generated // or a meaningful string. // // Default: None @@ -90,7 +89,7 @@ type CreateOpportunityInput struct { // members of this opportunity who are within the partner's organization. OpportunityTeam []types.Contact - // Specifies the opportunity type as a renewal, new, or expansion. + // Specifies the opportunity type as a renewal, new, or expansion. // // Opportunity types: // @@ -106,7 +105,7 @@ type CreateOpportunityInput struct { // the volume of existing services for a current customer. OpportunityType types.OpportunityType - // Specifies the origin of the opportunity, indicating if it was sourced from + // 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 @@ -114,16 +113,16 @@ type CreateOpportunityInput struct { // 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 to the partner. + // 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 to the partner. // // This field allows partners to link an opportunity to their CRM, which helps 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. + // Identifies the type of support the partner needs from Amazon Web Services. // // Valid values: // @@ -175,7 +174,7 @@ type CreateOpportunityInput struct { type CreateOpportunityOutput struct { - // Read-only, system-generated Opportunity unique identifier. Amazon Web Services + // Read-only, system-generated Opportunity unique identifier. Amazon Web Services // creates this identifier, and it's used for all subsequent opportunity actions, // such as updates, associations, and submissions. It helps to ensure that each // opportunity is accurately tracked and managed. diff --git a/service/partnercentralselling/api_op_CreateResourceSnapshot.go b/service/partnercentralselling/api_op_CreateResourceSnapshot.go new file mode 100644 index 00000000000..30ff9eff151 --- /dev/null +++ b/service/partnercentralselling/api_op_CreateResourceSnapshot.go @@ -0,0 +1,238 @@ +// 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 action allows you to create an immutable snapshot of a specific resource, +// +// such as an opportunity, within the context of an engagement. The snapshot +// captures a subset of the resource's data based on the schema defined by the +// provided template. +func (c *Client) CreateResourceSnapshot(ctx context.Context, params *CreateResourceSnapshotInput, optFns ...func(*Options)) (*CreateResourceSnapshotOutput, error) { + if params == nil { + params = &CreateResourceSnapshotInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateResourceSnapshot", params, optFns, c.addOperationCreateResourceSnapshotMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateResourceSnapshotOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateResourceSnapshotInput struct { + + // Specifies the catalog where the snapshot is created. Valid values are AWS and + // Sandbox . + // + // This member is required. + Catalog *string + + // Specifies a unique, client-generated UUID to ensure that the request is + // handled exactly once. This token helps prevent duplicate snapshot creations. + // + // This member is required. + ClientToken *string + + // The unique identifier of the engagement associated with this snapshot. This + // field links the snapshot to a specific engagement context. + // + // This member is required. + EngagementIdentifier *string + + // The unique identifier of the specific resource to be snapshotted. The format + // and constraints of this identifier depend on the ResourceType specified. For + // example: For Opportunity type, it will be an opportunity ID. + // + // This member is required. + ResourceIdentifier *string + + // The name of the template that defines the schema for the snapshot. This + // template determines which subset of the resource data will be included in the + // snapshot. Must correspond to an existing and valid template for the specified + // ResourceType . + // + // This member is required. + ResourceSnapshotTemplateIdentifier *string + + // Specifies the type of resource for which the snapshot is being created. This + // field determines the structure and content of the snapshot. Must be one of the + // supported resource types, such as: Opportunity . + // + // This member is required. + ResourceType types.ResourceType + + noSmithyDocumentSerde +} + +type CreateResourceSnapshotOutput struct { + + // Specifies the Amazon Resource Name (ARN) that uniquely identifies the snapshot + // created. + Arn *string + + // Specifies the revision number of the created snapshot. This field provides + // important information about the snapshot's place in the sequence of snapshots + // for the given resource. + Revision *int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateResourceSnapshotMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateResourceSnapshot{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateResourceSnapshot{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateResourceSnapshot"); 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_opCreateResourceSnapshotMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateResourceSnapshotValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateResourceSnapshot(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_initializeOpCreateResourceSnapshot struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateResourceSnapshot) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateResourceSnapshot) 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.(*CreateResourceSnapshotInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateResourceSnapshotInput ") + } + + 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_opCreateResourceSnapshotMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateResourceSnapshot{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateResourceSnapshot(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateResourceSnapshot", + } +} diff --git a/service/partnercentralselling/api_op_CreateResourceSnapshotJob.go b/service/partnercentralselling/api_op_CreateResourceSnapshotJob.go new file mode 100644 index 00000000000..90860ffbbcb --- /dev/null +++ b/service/partnercentralselling/api_op_CreateResourceSnapshotJob.go @@ -0,0 +1,231 @@ +// 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" +) + +// Use this action to create a job to generate a snapshot of the specified +// +// resource within an engagement. It initiates an asynchronous process to create a +// resource snapshot. The job creates a new snapshot only if the resource state has +// changed, adhering to the same access control and immutability rules as direct +// snapshot creation. +func (c *Client) CreateResourceSnapshotJob(ctx context.Context, params *CreateResourceSnapshotJobInput, optFns ...func(*Options)) (*CreateResourceSnapshotJobOutput, error) { + if params == nil { + params = &CreateResourceSnapshotJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateResourceSnapshotJob", params, optFns, c.addOperationCreateResourceSnapshotJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateResourceSnapshotJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateResourceSnapshotJobInput struct { + + // Specifies the catalog in which to create the snapshot job. Valid values are AWS + // and Sandbox . + // + // This member is required. + Catalog *string + + // Specifies a unique, client-generated UUID to ensure that the request is + // handled exactly once. This token helps prevent duplicate snapshot job creations. + // + // This member is required. + ClientToken *string + + // Specifies the identifier of the engagement associated with the resource to be + // snapshotted. + // + // This member is required. + EngagementIdentifier *string + + // Specifies the identifier of the specific resource to be snapshotted. The + // format depends on the ResourceType . + // + // This member is required. + ResourceIdentifier *string + + // Specifies the name of the template that defines the schema for the snapshot. + // + // This member is required. + ResourceSnapshotTemplateIdentifier *string + + // The type of resource for which the snapshot job is being created. Must be one + // of the supported resource types Opportunity . + // + // This member is required. + ResourceType types.ResourceType + + noSmithyDocumentSerde +} + +type CreateResourceSnapshotJobOutput struct { + + // The Amazon Resource Name (ARN) of the created snapshot job. + Arn *string + + // The unique identifier for the created snapshot job. + Id *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateResourceSnapshotJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateResourceSnapshotJob"); 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_opCreateResourceSnapshotJobMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateResourceSnapshotJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateResourceSnapshotJob(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_initializeOpCreateResourceSnapshotJob struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateResourceSnapshotJob) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateResourceSnapshotJob) 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.(*CreateResourceSnapshotJobInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateResourceSnapshotJobInput ") + } + + 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_opCreateResourceSnapshotJobMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateResourceSnapshotJob{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateResourceSnapshotJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateResourceSnapshotJob", + } +} diff --git a/service/partnercentralselling/api_op_DeleteResourceSnapshotJob.go b/service/partnercentralselling/api_op_DeleteResourceSnapshotJob.go new file mode 100644 index 00000000000..957a47acf84 --- /dev/null +++ b/service/partnercentralselling/api_op_DeleteResourceSnapshotJob.go @@ -0,0 +1,160 @@ +// 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 deletes a previously created resource snapshot job. The job +// +// must be in a stopped state before it can be deleted. +func (c *Client) DeleteResourceSnapshotJob(ctx context.Context, params *DeleteResourceSnapshotJobInput, optFns ...func(*Options)) (*DeleteResourceSnapshotJobOutput, error) { + if params == nil { + params = &DeleteResourceSnapshotJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteResourceSnapshotJob", params, optFns, c.addOperationDeleteResourceSnapshotJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteResourceSnapshotJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteResourceSnapshotJobInput struct { + + // Specifies the catalog from which to delete the snapshot job. Valid values are + // AWS and Sandbox . + // + // This member is required. + Catalog *string + + // The unique identifier of the resource snapshot job to be deleted. + // + // This member is required. + ResourceSnapshotJobIdentifier *string + + noSmithyDocumentSerde +} + +type DeleteResourceSnapshotJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteResourceSnapshotJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpDeleteResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDeleteResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteResourceSnapshotJob"); 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 = addOpDeleteResourceSnapshotJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteResourceSnapshotJob(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_opDeleteResourceSnapshotJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteResourceSnapshotJob", + } +} diff --git a/service/partnercentralselling/api_op_DisassociateOpportunity.go b/service/partnercentralselling/api_op_DisassociateOpportunity.go index 19c642a9fd2..559d0cb3453 100644 --- a/service/partnercentralselling/api_op_DisassociateOpportunity.go +++ b/service/partnercentralselling/api_op_DisassociateOpportunity.go @@ -11,10 +11,9 @@ import ( 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 +// 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. // @@ -41,7 +40,7 @@ func (c *Client) DisassociateOpportunity(ctx context.Context, params *Disassocia type DisassociateOpportunityInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 for testing in diff --git a/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go index e8db72ece39..ccf41ed73ca 100644 --- a/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go +++ b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Retrieves a summary of an AWS Opportunity. This summary includes high-level -// +// 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. @@ -33,14 +32,14 @@ func (c *Client) GetAwsOpportunitySummary(ctx context.Context, params *GetAwsOpp type GetAwsOpportunitySummaryInput struct { - // Specifies the catalog in which the AWS Opportunity is located. Accepted values + // 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 + // The unique identifier for the related partner opportunity. Use this field to // correlate an AWS opportunity with its corresponding partner opportunity. // // This member is required. @@ -51,63 +50,63 @@ type GetAwsOpportunitySummaryInput struct { type GetAwsOpportunitySummaryOutput struct { - // Specifies the catalog in which the AWS Opportunity exists. This is the + // 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, + // Provides details about the customer associated with the AWS Opportunity, // including account information, industry, and other 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 + // 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 + // Specifies the type of involvement AWS has in the opportunity, such as direct // cosell or advisory support. This field helps partners understand the role AWS // plays in advancing the opportunity. InvolvementType types.SalesInvolvementType - // Provides a reason for any changes in the involvement type of AWS in the + // 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 + // 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 members involved. This information + // Details the AWS opportunity team, including members involved. This information // helps partners know who from AWS is engaged and what their role is. OpportunityTeam []types.AwsTeamMember - // Specifies whether the AWS Opportunity originated from AWS or the partner. This + // 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, + // 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, + // 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 + // 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 + // 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 diff --git a/service/partnercentralselling/api_op_GetEngagement.go b/service/partnercentralselling/api_op_GetEngagement.go new file mode 100644 index 00000000000..cd272d663c1 --- /dev/null +++ b/service/partnercentralselling/api_op_GetEngagement.go @@ -0,0 +1,196 @@ +// 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" +) + +// Use this action to retrieve the engagement record for a given +// +// EngagementIdentifier . +func (c *Client) GetEngagement(ctx context.Context, params *GetEngagementInput, optFns ...func(*Options)) (*GetEngagementOutput, error) { + if params == nil { + params = &GetEngagementInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetEngagement", params, optFns, c.addOperationGetEngagementMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetEngagementOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetEngagementInput struct { + + // Specifies the catalog related to the engagement request. Valid values are AWS + // and Sandbox . + // + // This member is required. + Catalog *string + + // Specifies the identifier of the Engagement record to retrieve. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type GetEngagementOutput struct { + + // The Amazon Resource Name (ARN) of the engagement retrieved. + Arn *string + + // A list of context objects associated with the engagement. Each context + // provides additional information related to the Engagement, such as customer + // projects or documents. + Contexts []types.EngagementContextDetails + + // The date and time when the Engagement was created, presented in ISO 8601 + // format (UTC). For example: "2023-05-01T20:37:46Z". This timestamp helps track + // the lifecycle of the Engagement. + CreatedAt *time.Time + + // The AWS account ID of the user who originally created the engagement. This + // field helps in tracking the origin of the engagement. + CreatedBy *string + + // A more detailed description of the engagement. This provides additional + // context or information about the engagement's purpose or scope. + Description *string + + // The unique resource identifier of the engagement retrieved. + Id *string + + // Specifies the current count of members participating in the Engagement. This + // count includes all active members regardless of their roles or permissions + // within the Engagement. + MemberCount *int32 + + // The title of the engagement. It provides a brief, descriptive name for the + // engagement that is meaningful and easily recognizable. + Title *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetEngagementMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetEngagement{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetEngagement{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetEngagement"); 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 = addOpGetEngagementValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetEngagement(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_opGetEngagement(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetEngagement", + } +} diff --git a/service/partnercentralselling/api_op_GetEngagementInvitation.go b/service/partnercentralselling/api_op_GetEngagementInvitation.go index b2d6b317e9f..2006844bfa3 100644 --- a/service/partnercentralselling/api_op_GetEngagementInvitation.go +++ b/service/partnercentralselling/api_op_GetEngagementInvitation.go @@ -65,10 +65,26 @@ type GetEngagementInvitationOutput struct { // The Amazon Resource Name (ARN) that identifies the engagement invitation. Arn *string + // The description of the engagement associated with this invitation. + EngagementDescription *string + + // The identifier of the engagement associated with this invitation.This ID links + // the invitation to its corresponding engagement. + EngagementId *string + // The title of the engagement invitation, summarizing the purpose or objectives // of the opportunity shared by AWS. EngagementTitle *string + // A list of active members currently part of the Engagement. This array contains + // a maximum of 10 members, each represented by an object with the following + // properties. + // + // - CompanyName: The name of the member's company. + // + // - WebsiteUrl: The website URL of the member's company. + ExistingMembers []types.EngagementMemberSummary + // Indicates the date on which the engagement invitation will expire if not // accepted by the partner. ExpirationDate *time.Time @@ -76,6 +92,9 @@ type GetEngagementInvitationOutput struct { // The date when the engagement invitation was sent to the partner. InvitationDate *time.Time + // The message sent to the invited partner when the invitation was created. + InvitationMessage *string + // Details of the engagement invitation payload, including specific data relevant // to the invitation's contents, such as customer information and opportunity // insights. diff --git a/service/partnercentralselling/api_op_GetOpportunity.go b/service/partnercentralselling/api_op_GetOpportunity.go index 8ad90bbf5ac..e8942fc1abd 100644 --- a/service/partnercentralselling/api_op_GetOpportunity.go +++ b/service/partnercentralselling/api_op_GetOpportunity.go @@ -12,7 +12,7 @@ import ( "time" ) -// Fetches the Opportunity record from Partner Central by a given Identifier . +// 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. @@ -33,7 +33,7 @@ func (c *Client) GetOpportunity(ctx context.Context, params *GetOpportunityInput type GetOpportunityInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 @@ -52,7 +52,7 @@ type GetOpportunityInput struct { type GetOpportunityOutput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 @@ -76,13 +76,16 @@ type GetOpportunityOutput struct { // This member is required. LastModifiedDate *time.Time - // Provides information about the associations of other entities with the + // 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 + // The Amazon Resource Name (ARN) that uniquely identifies the opportunity. + Arn *string + // Specifies details of the customer associated with the Opportunity . Customer *types.Customer @@ -102,7 +105,7 @@ type GetOpportunityOutput struct { // involved in collaborating on this opportunity within the partner's organization. OpportunityTeam []types.Contact - // Specifies the opportunity type as renewal, new, or expansion. + // Specifies the opportunity type as renewal, new, or expansion. // // Opportunity types: // @@ -123,7 +126,7 @@ type GetOpportunityOutput struct { // payload sent back to the partner. PartnerOpportunityIdentifier *string - // Identifies the type of support the partner needs from Amazon Web Services. + // Identifies the type of support the partner needs from Amazon Web Services. // // Valid values: // diff --git a/service/partnercentralselling/api_op_GetResourceSnapshot.go b/service/partnercentralselling/api_op_GetResourceSnapshot.go new file mode 100644 index 00000000000..d9f523033bd --- /dev/null +++ b/service/partnercentralselling/api_op_GetResourceSnapshot.go @@ -0,0 +1,236 @@ +// 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" +) + +// Use this action to retrieve a specific snapshot record. +func (c *Client) GetResourceSnapshot(ctx context.Context, params *GetResourceSnapshotInput, optFns ...func(*Options)) (*GetResourceSnapshotOutput, error) { + if params == nil { + params = &GetResourceSnapshotInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetResourceSnapshot", params, optFns, c.addOperationGetResourceSnapshotMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetResourceSnapshotOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetResourceSnapshotInput struct { + + // Specifies the catalog related to the request. Valid values are: + // + // - AWS: Retrieves the snapshot from the production AWS environment. + // + // - Sandbox: Retrieves the snapshot from a sandbox environment used for testing + // or development purposes. + // + // This member is required. + Catalog *string + + // The unique identifier of the engagement associated with the snapshot. This + // field links the snapshot to a specific engagement context. + // + // This member is required. + EngagementIdentifier *string + + // The unique identifier of the specific resource that was snapshotted. The format + // and constraints of this identifier depend on the ResourceType specified. For + // Opportunity type, it will be an opportunity ID + // + // This member is required. + ResourceIdentifier *string + + // he name of the template that defines the schema for the snapshot. This template + // determines which subset of the resource data is included in the snapshot and + // must correspond to an existing and valid template for the specified ResourceType + // . + // + // This member is required. + ResourceSnapshotTemplateIdentifier *string + + // Specifies the type of resource that was snapshotted. This field determines the + // structure and content of the snapshot payload. Valid value includes: Opportunity + // : For opportunity-related data. + // + // This member is required. + ResourceType types.ResourceType + + // Specifies which revision of the snapshot to retrieve. If omitted returns the + // latest revision. + Revision *int32 + + noSmithyDocumentSerde +} + +type GetResourceSnapshotOutput struct { + + // The catalog in which the snapshot was created. Matches the Catalog specified in + // the request. + // + // This member is required. + Catalog *string + + // The Amazon Resource Name (ARN) of the snapshot. This globally unique + // identifier can be used for resource-specific operations across AWS services. + Arn *string + + // The timestamp when the snapshot was created, in ISO 8601 format (e.g., + // "2023-06-01T14:30:00Z"). This allows for precise tracking of when the snapshot + // was taken. + CreatedAt *time.Time + + // The AWS account ID of the principal (user or role) who created the snapshot. + // This helps in tracking the origin of the snapshot. + CreatedBy *string + + // The identifier of the engagement associated with this snapshot. Matches the + // EngagementIdentifier specified in the request. + EngagementId *string + + // Represents the payload of a resource snapshot. This structure is designed to + // accommodate different types of resource snapshots, currently supporting + // opportunity summaries. + Payload types.ResourceSnapshotPayload + + // The identifier of the specific resource that was snapshotted. Matches the + // ResourceIdentifier specified in the request. + ResourceId *string + + // The name of the view used for this snapshot. This is the same as the template + // name. + ResourceSnapshotTemplateName *string + + // The type of the resource that was snapshotted. Matches the ResourceType + // specified in the request. + ResourceType types.ResourceType + + // The revision number of this snapshot. This is a positive integer that is + // sequential and unique within the context of a resource view. + Revision *int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetResourceSnapshotMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetResourceSnapshot{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetResourceSnapshot{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetResourceSnapshot"); 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 = addOpGetResourceSnapshotValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetResourceSnapshot(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_opGetResourceSnapshot(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetResourceSnapshot", + } +} diff --git a/service/partnercentralselling/api_op_GetResourceSnapshotJob.go b/service/partnercentralselling/api_op_GetResourceSnapshotJob.go new file mode 100644 index 00000000000..874eddd341c --- /dev/null +++ b/service/partnercentralselling/api_op_GetResourceSnapshotJob.go @@ -0,0 +1,222 @@ +// 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" +) + +// Use this action to retrieves information about a specific resource snapshot +// +// job. +func (c *Client) GetResourceSnapshotJob(ctx context.Context, params *GetResourceSnapshotJobInput, optFns ...func(*Options)) (*GetResourceSnapshotJobOutput, error) { + if params == nil { + params = &GetResourceSnapshotJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetResourceSnapshotJob", params, optFns, c.addOperationGetResourceSnapshotJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetResourceSnapshotJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetResourceSnapshotJobInput struct { + + // Specifies the catalog related to the request. Valid values are: + // + // - AWS: Retrieves the snapshot job from the production AWS environment. + // + // - Sandbox: Retrieves the snapshot job from a sandbox environment used for + // testing or development purposes. + // + // This member is required. + Catalog *string + + // The unique identifier of the resource snapshot job to be retrieved. This + // identifier is crucial for pinpointing the specific job you want to query. + // + // This member is required. + ResourceSnapshotJobIdentifier *string + + noSmithyDocumentSerde +} + +type GetResourceSnapshotJobOutput struct { + + // The catalog in which the snapshot job was created. This will match the catalog + // specified in the request. + // + // This member is required. + Catalog *string + + // he Amazon Resource Name (ARN) of the snapshot job. This globally unique + // identifier can be used for resource-specific operations across AWS services. + Arn *string + + // The date and time when the snapshot job was created, in ISO 8601 format (UTC). + // Example: "2023-05-01T20:37:46Z" + CreatedAt *time.Time + + // The identifier of the engagement associated with this snapshot job. This links + // the job to a specific engagement context. + EngagementId *string + + // The unique identifier of the snapshot job. This matches the + // ResourceSnapshotJobIdentifier provided in the request. + Id *string + + // If the job has encountered any failures, this field contains the error message + // from the most recent failure. This can be useful for troubleshooting issues with + // the job. + LastFailure *string + + // The date and time of the last successful execution of the job, in ISO 8601 + // format (UTC). Example: "2023-05-01T20:37:46Z" + LastSuccessfulExecutionDate *time.Time + + // The Amazon Resource Name (ARN) of the resource being snapshotted. This + // provides a globally unique identifier for the resource across AWS. + ResourceArn *string + + // The identifier of the specific resource being snapshotted. The format may vary + // depending on the ResourceType . + ResourceId *string + + // The name of the template used for creating the snapshot. This is the same as + // the template name. It defines the structure and content of the snapshot. + ResourceSnapshotTemplateName *string + + // The type of resource being snapshotted. This would have Opportunity as a value + // as it is dependent on the supported resource type. + ResourceType types.ResourceType + + // The current status of the snapshot job. Valid values: + // + // - STOPPED: The job is not currently running. + // + // - RUNNING: The job is actively executing. + Status types.ResourceSnapshotJobStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetResourceSnapshotJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetResourceSnapshotJob"); 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 = addOpGetResourceSnapshotJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetResourceSnapshotJob(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_opGetResourceSnapshotJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetResourceSnapshotJob", + } +} diff --git a/service/partnercentralselling/api_op_GetSellingSystemSettings.go b/service/partnercentralselling/api_op_GetSellingSystemSettings.go new file mode 100644 index 00000000000..e6bbf166536 --- /dev/null +++ b/service/partnercentralselling/api_op_GetSellingSystemSettings.go @@ -0,0 +1,164 @@ +// 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" +) + +// Retrieves the currently set system settings, which include the IAM Role used +// for resource snapshot jobs. +func (c *Client) GetSellingSystemSettings(ctx context.Context, params *GetSellingSystemSettingsInput, optFns ...func(*Options)) (*GetSellingSystemSettingsOutput, error) { + if params == nil { + params = &GetSellingSystemSettingsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetSellingSystemSettings", params, optFns, c.addOperationGetSellingSystemSettingsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetSellingSystemSettingsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetSellingSystemSettingsInput struct { + + // Specifies the catalog in which the settings are defined. Acceptable values + // include AWS for production and Sandbox for testing environments. + // + // This member is required. + Catalog *string + + noSmithyDocumentSerde +} + +type GetSellingSystemSettingsOutput struct { + + // Specifies the catalog in which the settings are defined. Acceptable values + // include AWS for production and Sandbox for testing environments. + // + // This member is required. + Catalog *string + + // Specifies the ARN of the IAM Role used for resource snapshot job executions. + ResourceSnapshotJobRoleArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetSellingSystemSettingsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetSellingSystemSettings{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetSellingSystemSettings{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetSellingSystemSettings"); 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 = addOpGetSellingSystemSettingsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSellingSystemSettings(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_opGetSellingSystemSettings(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetSellingSystemSettings", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagementByAcceptingInvitationTasks.go b/service/partnercentralselling/api_op_ListEngagementByAcceptingInvitationTasks.go new file mode 100644 index 00000000000..929f6c5a89d --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagementByAcceptingInvitationTasks.go @@ -0,0 +1,299 @@ +// 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" +) + +// Lists all in-progress, completed, or failed +// +// StartEngagementByAcceptingInvitationTask tasks that were initiated by the +// caller's account. +func (c *Client) ListEngagementByAcceptingInvitationTasks(ctx context.Context, params *ListEngagementByAcceptingInvitationTasksInput, optFns ...func(*Options)) (*ListEngagementByAcceptingInvitationTasksOutput, error) { + if params == nil { + params = &ListEngagementByAcceptingInvitationTasksInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagementByAcceptingInvitationTasks", params, optFns, c.addOperationListEngagementByAcceptingInvitationTasksMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementByAcceptingInvitationTasksOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementByAcceptingInvitationTasksInput struct { + + // Specifies the catalog related to the request. Valid values are: + // + // - AWS: Retrieves the request from the production AWS environment. + // + // - Sandbox: Retrieves the request from a sandbox environment used for testing + // or development purposes. + // + // This member is required. + Catalog *string + + // Filters tasks by the identifiers of the engagement invitations they are + // processing. + EngagementInvitationIdentifier []string + + // Use this parameter to control the number of items returned in each request, + // which can be useful for performance tuning and managing large result sets. + MaxResults *int32 + + // Use this parameter for pagination when the result set spans multiple pages. + // This value is obtained from the NextToken field in the response of a previous + // call to this API. + NextToken *string + + // Filters tasks by the identifiers of the opportunities they created or are + // associated with. + OpportunityIdentifier []string + + // Specifies the sorting criteria for the returned results. This allows you to + // order the tasks based on specific attributes. + Sort *types.ListTasksSortBase + + // Filters tasks by their unique identifiers. Use this when you want to retrieve + // information about specific tasks. + TaskIdentifier []string + + // Filters the tasks based on their current status. This allows you to focus on + // tasks in specific states. + TaskStatus []types.TaskStatus + + noSmithyDocumentSerde +} + +type ListEngagementByAcceptingInvitationTasksOutput struct { + + // A token used for pagination to retrieve the next page of results.If there are + // more results available, this field will contain a token that can be used in a + // subsequent API call to retrieve the next page. If there are no more results, + // this field will be null or an empty string. + NextToken *string + + // An array of EngagementByAcceptingInvitationTaskSummary objects, each + // representing a task that matches the specified filters. The array may be empty + // if no tasks match the criteria. + TaskSummaries []types.ListEngagementByAcceptingInvitationTaskSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementByAcceptingInvitationTasksMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagementByAcceptingInvitationTasks{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagementByAcceptingInvitationTasks{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagementByAcceptingInvitationTasks"); 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 = addOpListEngagementByAcceptingInvitationTasksValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagementByAcceptingInvitationTasks(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 +} + +// ListEngagementByAcceptingInvitationTasksPaginatorOptions is the paginator +// options for ListEngagementByAcceptingInvitationTasks +type ListEngagementByAcceptingInvitationTasksPaginatorOptions struct { + // Use this parameter to control the number of items returned in each request, + // which can be useful for performance tuning and managing large result sets. + 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 +} + +// ListEngagementByAcceptingInvitationTasksPaginator is a paginator for +// ListEngagementByAcceptingInvitationTasks +type ListEngagementByAcceptingInvitationTasksPaginator struct { + options ListEngagementByAcceptingInvitationTasksPaginatorOptions + client ListEngagementByAcceptingInvitationTasksAPIClient + params *ListEngagementByAcceptingInvitationTasksInput + nextToken *string + firstPage bool +} + +// NewListEngagementByAcceptingInvitationTasksPaginator returns a new +// ListEngagementByAcceptingInvitationTasksPaginator +func NewListEngagementByAcceptingInvitationTasksPaginator(client ListEngagementByAcceptingInvitationTasksAPIClient, params *ListEngagementByAcceptingInvitationTasksInput, optFns ...func(*ListEngagementByAcceptingInvitationTasksPaginatorOptions)) *ListEngagementByAcceptingInvitationTasksPaginator { + if params == nil { + params = &ListEngagementByAcceptingInvitationTasksInput{} + } + + options := ListEngagementByAcceptingInvitationTasksPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementByAcceptingInvitationTasksPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementByAcceptingInvitationTasksPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagementByAcceptingInvitationTasks page. +func (p *ListEngagementByAcceptingInvitationTasksPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementByAcceptingInvitationTasksOutput, 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.ListEngagementByAcceptingInvitationTasks(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 +} + +// ListEngagementByAcceptingInvitationTasksAPIClient is a client that implements +// the ListEngagementByAcceptingInvitationTasks operation. +type ListEngagementByAcceptingInvitationTasksAPIClient interface { + ListEngagementByAcceptingInvitationTasks(context.Context, *ListEngagementByAcceptingInvitationTasksInput, ...func(*Options)) (*ListEngagementByAcceptingInvitationTasksOutput, error) +} + +var _ ListEngagementByAcceptingInvitationTasksAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagementByAcceptingInvitationTasks(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagementByAcceptingInvitationTasks", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagementFromOpportunityTasks.go b/service/partnercentralselling/api_op_ListEngagementFromOpportunityTasks.go new file mode 100644 index 00000000000..6f63213497c --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagementFromOpportunityTasks.go @@ -0,0 +1,300 @@ +// 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" +) + +// Lists all in-progress, completed, or failed EngagementFromOpportunity tasks +// +// that were initiated by the caller's account. +func (c *Client) ListEngagementFromOpportunityTasks(ctx context.Context, params *ListEngagementFromOpportunityTasksInput, optFns ...func(*Options)) (*ListEngagementFromOpportunityTasksOutput, error) { + if params == nil { + params = &ListEngagementFromOpportunityTasksInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagementFromOpportunityTasks", params, optFns, c.addOperationListEngagementFromOpportunityTasksMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementFromOpportunityTasksOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementFromOpportunityTasksInput struct { + + // Specifies the catalog related to the request. Valid values are: + // + // - AWS: Retrieves the request from the production AWS environment. + // + // - Sandbox: Retrieves the request from a sandbox environment used for testing + // or development purposes. + // + // This member is required. + Catalog *string + + // Filters tasks by the identifiers of the engagements they created or are + // associated with. + EngagementIdentifier []string + + // Specifies the maximum number of results to return in a single page of the + // response.Use this parameter to control the number of items returned in each + // request, which can be useful for performance tuning and managing large result + // sets. + MaxResults *int32 + + // The token for requesting the next page of results. This value is obtained from + // the NextToken field in the response of a previous call to this API. Use this + // parameter for pagination when the result set spans multiple pages. + NextToken *string + + // The identifier of the original opportunity associated with this task. + OpportunityIdentifier []string + + // Specifies the sorting criteria for the returned results. This allows you to + // order the tasks based on specific attributes. + Sort *types.ListTasksSortBase + + // Filters tasks by their unique identifiers. Use this when you want to retrieve + // information about specific tasks. + TaskIdentifier []string + + // Filters the tasks based on their current status. This allows you to focus on + // tasks in specific states. + TaskStatus []types.TaskStatus + + noSmithyDocumentSerde +} + +type ListEngagementFromOpportunityTasksOutput struct { + + // A token used for pagination to retrieve the next page of results. If there are + // more results available, this field will contain a token that can be used in a + // subsequent API call to retrieve the next page. If there are no more results, + // this field will be null or an empty string. + NextToken *string + + // TaskSummaries An array of TaskSummary objects containing details about each + // task. + TaskSummaries []types.ListEngagementFromOpportunityTaskSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementFromOpportunityTasksMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagementFromOpportunityTasks{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagementFromOpportunityTasks{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagementFromOpportunityTasks"); 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 = addOpListEngagementFromOpportunityTasksValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagementFromOpportunityTasks(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 +} + +// ListEngagementFromOpportunityTasksPaginatorOptions is the paginator options for +// ListEngagementFromOpportunityTasks +type ListEngagementFromOpportunityTasksPaginatorOptions struct { + // Specifies the maximum number of results to return in a single page of the + // response.Use this parameter to control the number of items returned in each + // request, which can be useful for performance tuning and managing large result + // sets. + 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 +} + +// ListEngagementFromOpportunityTasksPaginator is a paginator for +// ListEngagementFromOpportunityTasks +type ListEngagementFromOpportunityTasksPaginator struct { + options ListEngagementFromOpportunityTasksPaginatorOptions + client ListEngagementFromOpportunityTasksAPIClient + params *ListEngagementFromOpportunityTasksInput + nextToken *string + firstPage bool +} + +// NewListEngagementFromOpportunityTasksPaginator returns a new +// ListEngagementFromOpportunityTasksPaginator +func NewListEngagementFromOpportunityTasksPaginator(client ListEngagementFromOpportunityTasksAPIClient, params *ListEngagementFromOpportunityTasksInput, optFns ...func(*ListEngagementFromOpportunityTasksPaginatorOptions)) *ListEngagementFromOpportunityTasksPaginator { + if params == nil { + params = &ListEngagementFromOpportunityTasksInput{} + } + + options := ListEngagementFromOpportunityTasksPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementFromOpportunityTasksPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementFromOpportunityTasksPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagementFromOpportunityTasks page. +func (p *ListEngagementFromOpportunityTasksPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementFromOpportunityTasksOutput, 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.ListEngagementFromOpportunityTasks(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 +} + +// ListEngagementFromOpportunityTasksAPIClient is a client that implements the +// ListEngagementFromOpportunityTasks operation. +type ListEngagementFromOpportunityTasksAPIClient interface { + ListEngagementFromOpportunityTasks(context.Context, *ListEngagementFromOpportunityTasksInput, ...func(*Options)) (*ListEngagementFromOpportunityTasksOutput, error) +} + +var _ ListEngagementFromOpportunityTasksAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagementFromOpportunityTasks(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagementFromOpportunityTasks", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagementInvitations.go b/service/partnercentralselling/api_op_ListEngagementInvitations.go index dd3f417467a..e188ec0aeb0 100644 --- a/service/partnercentralselling/api_op_ListEngagementInvitations.go +++ b/service/partnercentralselling/api_op_ListEngagementInvitations.go @@ -43,6 +43,13 @@ type ListEngagementInvitationsInput struct { // This member is required. ParticipantType types.ParticipantType + // Retrieves a list of engagement invitation summaries based on specified + // filters. The ListEngagementInvitations operation allows you to view all + // invitations that you have sent or received. You must specify the ParticipantType + // to filter invitations where you are either the SENDER or the RECEIVER. + // Invitations will automatically expire if not accepted within 15 days. + EngagementIdentifier []string + // 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 @@ -57,11 +64,17 @@ type ListEngagementInvitationsInput struct { // the invitation. PayloadType []types.EngagementInvitationPayloadType + // List of sender AWS account IDs to filter the invitations. + SenderAwsAccountId []string + // 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 + // Status values to filter the invitations. + Status []types.InvitationStatus + noSmithyDocumentSerde } diff --git a/service/partnercentralselling/api_op_ListEngagementMembers.go b/service/partnercentralselling/api_op_ListEngagementMembers.go new file mode 100644 index 00000000000..f9b3f80ef98 --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagementMembers.go @@ -0,0 +1,275 @@ +// 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 the details of member partners in an engagement. This operation can +// +// only be invoked by members of the engagement. The ListEngagementMembers +// operation allows you to fetch information about the members of a specific +// engagement. This action is restricted to members of the engagement being +// queried. +func (c *Client) ListEngagementMembers(ctx context.Context, params *ListEngagementMembersInput, optFns ...func(*Options)) (*ListEngagementMembersOutput, error) { + if params == nil { + params = &ListEngagementMembersInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagementMembers", params, optFns, c.addOperationListEngagementMembersMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementMembersOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementMembersInput struct { + + // The catalog related to the request. + // + // This member is required. + Catalog *string + + // Identifier of the engagement record to retrieve members from. + // + // This member is required. + Identifier *string + + // The maximum number of results to return in a single call. + MaxResults *int32 + + // The token for the next set of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListEngagementMembersOutput struct { + + // Provides a list of engagement members. + // + // This member is required. + EngagementMemberList []types.EngagementMember + + // A pagination token used to retrieve the next set of results. If there are more + // results available than can be returned in a single response, this token will be + // present. Use this token in a subsequent request to retrieve the next page of + // results. If there are no more results, this value will be null. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementMembersMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagementMembers{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagementMembers{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagementMembers"); 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 = addOpListEngagementMembersValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagementMembers(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 +} + +// ListEngagementMembersPaginatorOptions is the paginator options for +// ListEngagementMembers +type ListEngagementMembersPaginatorOptions struct { + // The maximum number of results to return in a single call. + 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 +} + +// ListEngagementMembersPaginator is a paginator for ListEngagementMembers +type ListEngagementMembersPaginator struct { + options ListEngagementMembersPaginatorOptions + client ListEngagementMembersAPIClient + params *ListEngagementMembersInput + nextToken *string + firstPage bool +} + +// NewListEngagementMembersPaginator returns a new ListEngagementMembersPaginator +func NewListEngagementMembersPaginator(client ListEngagementMembersAPIClient, params *ListEngagementMembersInput, optFns ...func(*ListEngagementMembersPaginatorOptions)) *ListEngagementMembersPaginator { + if params == nil { + params = &ListEngagementMembersInput{} + } + + options := ListEngagementMembersPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementMembersPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementMembersPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagementMembers page. +func (p *ListEngagementMembersPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementMembersOutput, 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.ListEngagementMembers(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 +} + +// ListEngagementMembersAPIClient is a client that implements the +// ListEngagementMembers operation. +type ListEngagementMembersAPIClient interface { + ListEngagementMembers(context.Context, *ListEngagementMembersInput, ...func(*Options)) (*ListEngagementMembersOutput, error) +} + +var _ ListEngagementMembersAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagementMembers(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagementMembers", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagementResourceAssociations.go b/service/partnercentralselling/api_op_ListEngagementResourceAssociations.go new file mode 100644 index 00000000000..4a8efa6f87f --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagementResourceAssociations.go @@ -0,0 +1,289 @@ +// 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" +) + +// Lists the associations between resources and engagements where the caller is a +// +// member and has at least one snapshot in the engagement. +func (c *Client) ListEngagementResourceAssociations(ctx context.Context, params *ListEngagementResourceAssociationsInput, optFns ...func(*Options)) (*ListEngagementResourceAssociationsOutput, error) { + if params == nil { + params = &ListEngagementResourceAssociationsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagementResourceAssociations", params, optFns, c.addOperationListEngagementResourceAssociationsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementResourceAssociationsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementResourceAssociationsInput struct { + + // Specifies the catalog in which to search for engagement-resource associations. + // + // This member is required. + Catalog *string + + // Filters the results to include only associations with resources owned by the + // specified AWS account. Use this when you want to find associations related to + // resources owned by a particular account. + CreatedBy *string + + // Filters the results to include only associations related to the specified + // engagement. Use this when you want to find all resources associated with a + // specific engagement. + EngagementIdentifier *string + + // Limits the number of results returned in a single call. Use this to control + // the number of results returned, especially useful for pagination. + MaxResults *int32 + + // A token used for pagination of results. Include this token in subsequent + // requests to retrieve the next set of results. + NextToken *string + + // Filters the results to include only associations with the specified resource. + // Varies depending on the resource type. Use this when you want to find all + // engagements associated with a specific resource. + ResourceIdentifier *string + + // Filters the results to include only associations with resources of the + // specified type. + ResourceType types.ResourceType + + noSmithyDocumentSerde +} + +type ListEngagementResourceAssociationsOutput struct { + + // A list of engagement-resource association summaries. + // + // This member is required. + EngagementResourceAssociationSummaries []types.EngagementResourceAssociationSummary + + // A token to retrieve the next set of results. Use this token in a subsequent + // request to retrieve additional results if the response was truncated. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementResourceAssociationsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagementResourceAssociations{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagementResourceAssociations{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagementResourceAssociations"); 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 = addOpListEngagementResourceAssociationsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagementResourceAssociations(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 +} + +// ListEngagementResourceAssociationsPaginatorOptions is the paginator options for +// ListEngagementResourceAssociations +type ListEngagementResourceAssociationsPaginatorOptions struct { + // Limits the number of results returned in a single call. Use this to control + // the number of results returned, especially useful for pagination. + 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 +} + +// ListEngagementResourceAssociationsPaginator is a paginator for +// ListEngagementResourceAssociations +type ListEngagementResourceAssociationsPaginator struct { + options ListEngagementResourceAssociationsPaginatorOptions + client ListEngagementResourceAssociationsAPIClient + params *ListEngagementResourceAssociationsInput + nextToken *string + firstPage bool +} + +// NewListEngagementResourceAssociationsPaginator returns a new +// ListEngagementResourceAssociationsPaginator +func NewListEngagementResourceAssociationsPaginator(client ListEngagementResourceAssociationsAPIClient, params *ListEngagementResourceAssociationsInput, optFns ...func(*ListEngagementResourceAssociationsPaginatorOptions)) *ListEngagementResourceAssociationsPaginator { + if params == nil { + params = &ListEngagementResourceAssociationsInput{} + } + + options := ListEngagementResourceAssociationsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementResourceAssociationsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementResourceAssociationsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagementResourceAssociations page. +func (p *ListEngagementResourceAssociationsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementResourceAssociationsOutput, 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.ListEngagementResourceAssociations(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 +} + +// ListEngagementResourceAssociationsAPIClient is a client that implements the +// ListEngagementResourceAssociations operation. +type ListEngagementResourceAssociationsAPIClient interface { + ListEngagementResourceAssociations(context.Context, *ListEngagementResourceAssociationsInput, ...func(*Options)) (*ListEngagementResourceAssociationsOutput, error) +} + +var _ ListEngagementResourceAssociationsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagementResourceAssociations(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagementResourceAssociations", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagements.go b/service/partnercentralselling/api_op_ListEngagements.go new file mode 100644 index 00000000000..3d39d87d6bc --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagements.go @@ -0,0 +1,281 @@ +// 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 action allows users to retrieve a list of engagement records from Partner +// +// Central. This action can be used to manage and track various engagements across +// different stages of the partner selling process. +func (c *Client) ListEngagements(ctx context.Context, params *ListEngagementsInput, optFns ...func(*Options)) (*ListEngagementsOutput, error) { + if params == nil { + params = &ListEngagementsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagements", params, optFns, c.addOperationListEngagementsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementsInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // A list of AWS account IDs. When specified, the response includes engagements + // created by these accounts. This filter is useful for finding engagements created + // by specific team members. + CreatedBy []string + + // An array of strings representing engagement identifiers to retrieve. + EngagementIdentifier []string + + // An array of strings representing AWS Account IDs. Use this to exclude + // engagements created by specific users. + ExcludeCreatedBy []string + + // The maximum number of results to return in a single call. + MaxResults *int32 + + // The token for the next set of results. This value is returned from a previous + // call. + NextToken *string + + // An object that specifies the sort order of the results. + Sort *types.EngagementSort + + noSmithyDocumentSerde +} + +type ListEngagementsOutput struct { + + // An array of engagement summary objects. + // + // This member is required. + EngagementSummaryList []types.EngagementSummary + + // The token to retrieve the next set of results. This field will be null if + // there are no more results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagements{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagements{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagements"); 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 = addOpListEngagementsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagements(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 +} + +// ListEngagementsPaginatorOptions is the paginator options for ListEngagements +type ListEngagementsPaginatorOptions struct { + // The maximum number of results to return in a single call. + 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 +} + +// ListEngagementsPaginator is a paginator for ListEngagements +type ListEngagementsPaginator struct { + options ListEngagementsPaginatorOptions + client ListEngagementsAPIClient + params *ListEngagementsInput + nextToken *string + firstPage bool +} + +// NewListEngagementsPaginator returns a new ListEngagementsPaginator +func NewListEngagementsPaginator(client ListEngagementsAPIClient, params *ListEngagementsInput, optFns ...func(*ListEngagementsPaginatorOptions)) *ListEngagementsPaginator { + if params == nil { + params = &ListEngagementsInput{} + } + + options := ListEngagementsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagements page. +func (p *ListEngagementsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementsOutput, 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.ListEngagements(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 +} + +// ListEngagementsAPIClient is a client that implements the ListEngagements +// operation. +type ListEngagementsAPIClient interface { + ListEngagements(context.Context, *ListEngagementsInput, ...func(*Options)) (*ListEngagementsOutput, error) +} + +var _ ListEngagementsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagements(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagements", + } +} diff --git a/service/partnercentralselling/api_op_ListOpportunities.go b/service/partnercentralselling/api_op_ListOpportunities.go index f17fabda449..f1937c844b8 100644 --- a/service/partnercentralselling/api_op_ListOpportunities.go +++ b/service/partnercentralselling/api_op_ListOpportunities.go @@ -49,7 +49,7 @@ func (c *Client) ListOpportunities(ctx context.Context, params *ListOpportunitie type ListOpportunitiesInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 testing in @@ -83,19 +83,19 @@ type ListOpportunitiesInput struct { // 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 providing - // too many results at once. + // Specifies the maximum number of results to return in a single call. This limits + // the number of opportunities returned in the response to avoid providing too many + // results at once. // // Default: 20 MaxResults *int32 - // A pagination token used to retrieve the next set of results in subsequent + // 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 + // An object that specifies how the response is sorted. The default Sort.SortBy // value is LastModifiedDate . Sort *types.OpportunitySort @@ -104,14 +104,13 @@ type ListOpportunitiesInput struct { 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. + // 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 + // 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 @@ -224,9 +223,9 @@ func (c *Client) addOperationListOpportunitiesMiddlewares(stack *middleware.Stac // 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 providing - // too many results at once. + // Specifies the maximum number of results to return in a single call. This limits + // the number of opportunities returned in the response to avoid providing too many + // results at once. // // Default: 20 Limit int32 diff --git a/service/partnercentralselling/api_op_ListResourceSnapshotJobs.go b/service/partnercentralselling/api_op_ListResourceSnapshotJobs.go new file mode 100644 index 00000000000..a3c4e7a4ad9 --- /dev/null +++ b/service/partnercentralselling/api_op_ListResourceSnapshotJobs.go @@ -0,0 +1,280 @@ +// 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" +) + +// Lists resource snapshot jobs owned by the customer. This operation supports +// +// various filtering scenarios, including listing all jobs owned by the caller, +// jobs for a specific engagement, jobs with a specific status, or any combination +// of these filters. +func (c *Client) ListResourceSnapshotJobs(ctx context.Context, params *ListResourceSnapshotJobsInput, optFns ...func(*Options)) (*ListResourceSnapshotJobsOutput, error) { + if params == nil { + params = &ListResourceSnapshotJobsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListResourceSnapshotJobs", params, optFns, c.addOperationListResourceSnapshotJobsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListResourceSnapshotJobsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListResourceSnapshotJobsInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // The identifier of the engagement to filter the response. + EngagementIdentifier *string + + // The maximum number of results to return in a single call. If omitted, defaults + // to 50. + MaxResults *int32 + + // The token for the next set of results. + NextToken *string + + // Configures the sorting of the response. If omitted, results are sorted by + // CreatedDate in descending order. + Sort *types.SortObject + + // The status of the jobs to filter the response. + Status types.ResourceSnapshotJobStatus + + noSmithyDocumentSerde +} + +type ListResourceSnapshotJobsOutput struct { + + // An array of resource snapshot job summary objects. + // + // This member is required. + ResourceSnapshotJobSummaries []types.ResourceSnapshotJobSummary + + // The token to retrieve the next set of results. If there are no additional + // results, this value is null. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListResourceSnapshotJobsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListResourceSnapshotJobs{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListResourceSnapshotJobs{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListResourceSnapshotJobs"); 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 = addOpListResourceSnapshotJobsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListResourceSnapshotJobs(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 +} + +// ListResourceSnapshotJobsPaginatorOptions is the paginator options for +// ListResourceSnapshotJobs +type ListResourceSnapshotJobsPaginatorOptions struct { + // The maximum number of results to return in a single call. If omitted, defaults + // to 50. + 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 +} + +// ListResourceSnapshotJobsPaginator is a paginator for ListResourceSnapshotJobs +type ListResourceSnapshotJobsPaginator struct { + options ListResourceSnapshotJobsPaginatorOptions + client ListResourceSnapshotJobsAPIClient + params *ListResourceSnapshotJobsInput + nextToken *string + firstPage bool +} + +// NewListResourceSnapshotJobsPaginator returns a new +// ListResourceSnapshotJobsPaginator +func NewListResourceSnapshotJobsPaginator(client ListResourceSnapshotJobsAPIClient, params *ListResourceSnapshotJobsInput, optFns ...func(*ListResourceSnapshotJobsPaginatorOptions)) *ListResourceSnapshotJobsPaginator { + if params == nil { + params = &ListResourceSnapshotJobsInput{} + } + + options := ListResourceSnapshotJobsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListResourceSnapshotJobsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListResourceSnapshotJobsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListResourceSnapshotJobs page. +func (p *ListResourceSnapshotJobsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListResourceSnapshotJobsOutput, 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.ListResourceSnapshotJobs(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 +} + +// ListResourceSnapshotJobsAPIClient is a client that implements the +// ListResourceSnapshotJobs operation. +type ListResourceSnapshotJobsAPIClient interface { + ListResourceSnapshotJobs(context.Context, *ListResourceSnapshotJobsInput, ...func(*Options)) (*ListResourceSnapshotJobsOutput, error) +} + +var _ ListResourceSnapshotJobsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListResourceSnapshotJobs(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListResourceSnapshotJobs", + } +} diff --git a/service/partnercentralselling/api_op_ListResourceSnapshots.go b/service/partnercentralselling/api_op_ListResourceSnapshots.go new file mode 100644 index 00000000000..278a62086e8 --- /dev/null +++ b/service/partnercentralselling/api_op_ListResourceSnapshots.go @@ -0,0 +1,282 @@ +// 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 resource view snapshots based on specified criteria. +func (c *Client) ListResourceSnapshots(ctx context.Context, params *ListResourceSnapshotsInput, optFns ...func(*Options)) (*ListResourceSnapshotsOutput, error) { + if params == nil { + params = &ListResourceSnapshotsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListResourceSnapshots", params, optFns, c.addOperationListResourceSnapshotsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListResourceSnapshotsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListResourceSnapshotsInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // The unique identifier of the engagement associated with the snapshots. + // + // This member is required. + EngagementIdentifier *string + + // Filters the response to include only snapshots of resources created by the + // specified AWS account. + CreatedBy *string + + // The maximum number of results to return in a single call. + MaxResults *int32 + + // The token for the next set of results. + NextToken *string + + // Filters the response to include only snapshots of the specified resource. + ResourceIdentifier *string + + // Filters the response to include only snapshots created using the specified + // template. + ResourceSnapshotTemplateIdentifier *string + + // Filters the response to include only snapshots of the specified resource type. + ResourceType types.ResourceType + + noSmithyDocumentSerde +} + +type ListResourceSnapshotsOutput struct { + + // An array of resource snapshot summary objects. + // + // This member is required. + ResourceSnapshotSummaries []types.ResourceSnapshotSummary + + // The token to retrieve the next set of results. If there are no additional + // results, this value is null. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListResourceSnapshotsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListResourceSnapshots{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListResourceSnapshots{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListResourceSnapshots"); 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 = addOpListResourceSnapshotsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListResourceSnapshots(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 +} + +// ListResourceSnapshotsPaginatorOptions is the paginator options for +// ListResourceSnapshots +type ListResourceSnapshotsPaginatorOptions struct { + // The maximum number of results to return in a single call. + 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 +} + +// ListResourceSnapshotsPaginator is a paginator for ListResourceSnapshots +type ListResourceSnapshotsPaginator struct { + options ListResourceSnapshotsPaginatorOptions + client ListResourceSnapshotsAPIClient + params *ListResourceSnapshotsInput + nextToken *string + firstPage bool +} + +// NewListResourceSnapshotsPaginator returns a new ListResourceSnapshotsPaginator +func NewListResourceSnapshotsPaginator(client ListResourceSnapshotsAPIClient, params *ListResourceSnapshotsInput, optFns ...func(*ListResourceSnapshotsPaginatorOptions)) *ListResourceSnapshotsPaginator { + if params == nil { + params = &ListResourceSnapshotsInput{} + } + + options := ListResourceSnapshotsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListResourceSnapshotsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListResourceSnapshotsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListResourceSnapshots page. +func (p *ListResourceSnapshotsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListResourceSnapshotsOutput, 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.ListResourceSnapshots(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 +} + +// ListResourceSnapshotsAPIClient is a client that implements the +// ListResourceSnapshots operation. +type ListResourceSnapshotsAPIClient interface { + ListResourceSnapshots(context.Context, *ListResourceSnapshotsInput, ...func(*Options)) (*ListResourceSnapshotsOutput, error) +} + +var _ ListResourceSnapshotsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListResourceSnapshots(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListResourceSnapshots", + } +} diff --git a/service/partnercentralselling/api_op_ListSolutions.go b/service/partnercentralselling/api_op_ListSolutions.go index fad9f31dac4..1beffc19cc6 100644 --- a/service/partnercentralselling/api_op_ListSolutions.go +++ b/service/partnercentralselling/api_op_ListSolutions.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Retrieves a list of Partner Solutions that the partner registered on Partner -// +// 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) { @@ -32,7 +31,7 @@ func (c *Client) ListSolutions(ctx context.Context, params *ListSolutionsInput, type ListSolutionsInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 @@ -57,7 +56,7 @@ type ListSolutionsInput struct { // Default: 20 MaxResults *int32 - // A pagination token used to retrieve the next set of results in subsequent + // 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 @@ -80,7 +79,7 @@ type ListSolutionsOutput struct { // This member is required. SolutionSummaries []types.SolutionBase - // A pagination token used to retrieve the next set of results in subsequent + // 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 diff --git a/service/partnercentralselling/api_op_PutSellingSystemSettings.go b/service/partnercentralselling/api_op_PutSellingSystemSettings.go new file mode 100644 index 00000000000..600db2e85f7 --- /dev/null +++ b/service/partnercentralselling/api_op_PutSellingSystemSettings.go @@ -0,0 +1,167 @@ +// 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" +) + +// Updates the currently set system settings, which include the IAM Role used for +// resource snapshot jobs. +func (c *Client) PutSellingSystemSettings(ctx context.Context, params *PutSellingSystemSettingsInput, optFns ...func(*Options)) (*PutSellingSystemSettingsOutput, error) { + if params == nil { + params = &PutSellingSystemSettingsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutSellingSystemSettings", params, optFns, c.addOperationPutSellingSystemSettingsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutSellingSystemSettingsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutSellingSystemSettingsInput struct { + + // Specifies the catalog in which the settings will be updated. Acceptable values + // include AWS for production and Sandbox for testing environments. + // + // This member is required. + Catalog *string + + // Specifies the ARN of the IAM Role used for resource snapshot job executions. + ResourceSnapshotJobRoleIdentifier *string + + noSmithyDocumentSerde +} + +type PutSellingSystemSettingsOutput struct { + + // Specifies the catalog in which the settings are defined. Acceptable values + // include AWS for production and Sandbox for testing environments. + // + // This member is required. + Catalog *string + + // Specifies the ARN of the IAM Role used for resource snapshot job executions. + ResourceSnapshotJobRoleArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutSellingSystemSettingsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpPutSellingSystemSettings{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpPutSellingSystemSettings{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "PutSellingSystemSettings"); 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 = addOpPutSellingSystemSettingsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutSellingSystemSettings(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_opPutSellingSystemSettings(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "PutSellingSystemSettings", + } +} diff --git a/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go index 1b4558cd723..77bba836742 100644 --- a/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go +++ b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go @@ -75,6 +75,9 @@ type StartEngagementByAcceptingInvitationTaskOutput struct { // Indicates the reason for task failure using an enumerated code. ReasonCode types.ReasonCode + // The identifier of the resource snapshot job created as part of this task. + ResourceSnapshotJobId *string + // The timestamp indicating when the task was initiated. The format follows RFC // 3339 section 5.6. StartTime *time.Time diff --git a/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go index e866e982ee4..fe02c7e0d41 100644 --- a/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go +++ b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go @@ -64,6 +64,14 @@ type StartEngagementFromOpportunityTaskInput struct { type StartEngagementFromOpportunityTaskOutput struct { + // The identifier of the newly created engagement. Only populated if TaskStatus + // is COMPLETE. + EngagementId *string + + // The identifier of the new engagement invitation. Only populated if TaskStatus + // is COMPLETE. + EngagementInvitationId *string + // If the task fails, this field contains a detailed message describing the // failure and possible recovery steps. Message *string @@ -75,6 +83,10 @@ type StartEngagementFromOpportunityTaskOutput struct { // Indicates the reason for task failure using an enumerated code. ReasonCode types.ReasonCode + // The identifier of the resource snapshot job created to add the opportunity + // resource snapshot to the Engagement. Only populated if TaskStatus is COMPLETE. + ResourceSnapshotJobId *string + // The timestamp indicating when the task was initiated. The format follows RFC // 3339 section 5.6. StartTime *time.Time diff --git a/service/partnercentralselling/api_op_StartResourceSnapshotJob.go b/service/partnercentralselling/api_op_StartResourceSnapshotJob.go new file mode 100644 index 00000000000..2d7d6e9d832 --- /dev/null +++ b/service/partnercentralselling/api_op_StartResourceSnapshotJob.go @@ -0,0 +1,157 @@ +// 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" +) + +// Starts a resource snapshot job that has been previously created. +func (c *Client) StartResourceSnapshotJob(ctx context.Context, params *StartResourceSnapshotJobInput, optFns ...func(*Options)) (*StartResourceSnapshotJobOutput, error) { + if params == nil { + params = &StartResourceSnapshotJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StartResourceSnapshotJob", params, optFns, c.addOperationStartResourceSnapshotJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StartResourceSnapshotJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StartResourceSnapshotJobInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // The identifier of the resource snapshot job to start. + // + // This member is required. + ResourceSnapshotJobIdentifier *string + + noSmithyDocumentSerde +} + +type StartResourceSnapshotJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStartResourceSnapshotJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpStartResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpStartResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "StartResourceSnapshotJob"); 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 = addOpStartResourceSnapshotJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartResourceSnapshotJob(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_opStartResourceSnapshotJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "StartResourceSnapshotJob", + } +} diff --git a/service/partnercentralselling/api_op_StopResourceSnapshotJob.go b/service/partnercentralselling/api_op_StopResourceSnapshotJob.go new file mode 100644 index 00000000000..f3f4e103bc9 --- /dev/null +++ b/service/partnercentralselling/api_op_StopResourceSnapshotJob.go @@ -0,0 +1,157 @@ +// 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" +) + +// Stops a resource snapshot job. The job must be started prior to being stopped. +func (c *Client) StopResourceSnapshotJob(ctx context.Context, params *StopResourceSnapshotJobInput, optFns ...func(*Options)) (*StopResourceSnapshotJobOutput, error) { + if params == nil { + params = &StopResourceSnapshotJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StopResourceSnapshotJob", params, optFns, c.addOperationStopResourceSnapshotJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StopResourceSnapshotJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StopResourceSnapshotJobInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // The identifier of the job to stop. + // + // This member is required. + ResourceSnapshotJobIdentifier *string + + noSmithyDocumentSerde +} + +type StopResourceSnapshotJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStopResourceSnapshotJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpStopResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpStopResourceSnapshotJob{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "StopResourceSnapshotJob"); 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 = addOpStopResourceSnapshotJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStopResourceSnapshotJob(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_opStopResourceSnapshotJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "StopResourceSnapshotJob", + } +} diff --git a/service/partnercentralselling/api_op_SubmitOpportunity.go b/service/partnercentralselling/api_op_SubmitOpportunity.go new file mode 100644 index 00000000000..982b3987a4a --- /dev/null +++ b/service/partnercentralselling/api_op_SubmitOpportunity.go @@ -0,0 +1,172 @@ +// 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" +) + +// Use this action to submit an opportunity that was previously created by +// +// partner for AWS review. After you perform this action, the opportunity becomes +// non-editable until it is reviewed by AWS and has LifeCycle.ReviewStatus as +// either Approved or Action Required . +func (c *Client) SubmitOpportunity(ctx context.Context, params *SubmitOpportunityInput, optFns ...func(*Options)) (*SubmitOpportunityOutput, error) { + if params == nil { + params = &SubmitOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SubmitOpportunity", params, optFns, c.addOperationSubmitOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SubmitOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SubmitOpportunityInput struct { + + // Specifies the catalog related to the request. + // + // This member is required. + Catalog *string + + // The identifier of the opportunity previously created by partner and needs to + // be submitted. + // + // This member is required. + Identifier *string + + // Specifies the level of AWS sellers' involvement on the opportunity. + // + // This member is required. + InvolvementType types.SalesInvolvementType + + // Determines whether to restrict visibility of the opportunity from AWS sales. + // Default value is Full. + Visibility types.Visibility + + noSmithyDocumentSerde +} + +type SubmitOpportunityOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSubmitOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpSubmitOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpSubmitOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "SubmitOpportunity"); 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 = addOpSubmitOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSubmitOpportunity(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_opSubmitOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "SubmitOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_UpdateOpportunity.go b/service/partnercentralselling/api_op_UpdateOpportunity.go index 9f195c97119..de252e76e7d 100644 --- a/service/partnercentralselling/api_op_UpdateOpportunity.go +++ b/service/partnercentralselling/api_op_UpdateOpportunity.go @@ -12,11 +12,10 @@ import ( "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. +// 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 @@ -39,7 +38,7 @@ func (c *Client) UpdateOpportunity(ctx context.Context, params *UpdateOpportunit type UpdateOpportunityInput struct { - // Specifies the catalog associated with the request. This field takes a string + // 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 for testing in secure, isolated @@ -75,7 +74,7 @@ type UpdateOpportunityInput struct { // apply, impacting the opportunity's visibility and processing. NationalSecurity types.NationalSecurity - // Specifies the opportunity type as a renewal, new, or expansion. + // Specifies the opportunity type as a renewal, new, or expansion. // // Opportunity types: // @@ -96,7 +95,7 @@ type UpdateOpportunityInput struct { // payload sent back to the partner. PartnerOpportunityIdentifier *string - // Identifies the type of support the partner needs from Amazon Web Services. + // Identifies the type of support the partner needs from Amazon Web Services. // // Valid values: // diff --git a/service/partnercentralselling/deserializers.go b/service/partnercentralselling/deserializers.go index 82802ef5f1a..efdcac83f98 100644 --- a/service/partnercentralselling/deserializers.go +++ b/service/partnercentralselling/deserializers.go @@ -30,14 +30,14 @@ func deserializeS3Expires(v string) (*time.Time, error) { return &t, nil } -type awsAwsjson10_deserializeOpAssignOpportunity struct { +type awsAwsjson10_deserializeOpAcceptEngagementInvitation struct { } -func (*awsAwsjson10_deserializeOpAssignOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpAcceptEngagementInvitation) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpAssignOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpAcceptEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -55,9 +55,9 @@ func (m *awsAwsjson10_deserializeOpAssignOpportunity) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorAssignOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorAcceptEngagementInvitation(response, &metadata) } - output := &AssignOpportunityOutput{} + output := &AcceptEngagementInvitationOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -69,7 +69,7 @@ func (m *awsAwsjson10_deserializeOpAssignOpportunity) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson10_deserializeOpErrorAssignOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorAcceptEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -131,14 +131,14 @@ func awsAwsjson10_deserializeOpErrorAssignOpportunity(response *smithyhttp.Respo } } -type awsAwsjson10_deserializeOpAssociateOpportunity struct { +type awsAwsjson10_deserializeOpAssignOpportunity struct { } -func (*awsAwsjson10_deserializeOpAssociateOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpAssignOpportunity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpAssociateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -156,9 +156,9 @@ func (m *awsAwsjson10_deserializeOpAssociateOpportunity) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorAssociateOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorAssignOpportunity(response, &metadata) } - output := &AssociateOpportunityOutput{} + output := &AssignOpportunityOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -170,7 +170,7 @@ func (m *awsAwsjson10_deserializeOpAssociateOpportunity) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson10_deserializeOpErrorAssociateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -232,14 +232,14 @@ func awsAwsjson10_deserializeOpErrorAssociateOpportunity(response *smithyhttp.Re } } -type awsAwsjson10_deserializeOpCreateOpportunity struct { +type awsAwsjson10_deserializeOpAssociateOpportunity struct { } -func (*awsAwsjson10_deserializeOpCreateOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpAssociateOpportunity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpCreateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -257,43 +257,21 @@ func (m *awsAwsjson10_deserializeOpCreateOpportunity) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorCreateOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorAssociateOpportunity(response, &metadata) } - output := &CreateOpportunityOutput{} + output := &AssociateOpportunityOutput{} 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(), + 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 awsAwsjson10_deserializeOpErrorCreateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -333,9 +311,6 @@ func awsAwsjson10_deserializeOpErrorCreateOpportunity(response *smithyhttp.Respo 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) @@ -358,14 +333,14 @@ func awsAwsjson10_deserializeOpErrorCreateOpportunity(response *smithyhttp.Respo } } -type awsAwsjson10_deserializeOpDisassociateOpportunity struct { +type awsAwsjson10_deserializeOpCreateEngagement struct { } -func (*awsAwsjson10_deserializeOpDisassociateOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpCreateEngagement) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpDisassociateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpCreateEngagement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -383,21 +358,43 @@ func (m *awsAwsjson10_deserializeOpDisassociateOpportunity) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorCreateEngagement(response, &metadata) } - output := &DisassociateOpportunityOutput{} + output := &CreateEngagementOutput{} 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 = awsAwsjson10_deserializeOpDocumentCreateEngagementOutput(&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_deserializeOpErrorDisassociateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorCreateEngagement(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -437,12 +434,15 @@ func awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response *smithyhttp case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(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) @@ -459,14 +459,14 @@ func awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response *smithyhttp } } -type awsAwsjson10_deserializeOpGetAwsOpportunitySummary struct { +type awsAwsjson10_deserializeOpCreateEngagementInvitation struct { } -func (*awsAwsjson10_deserializeOpGetAwsOpportunitySummary) ID() string { +func (*awsAwsjson10_deserializeOpCreateEngagementInvitation) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpGetAwsOpportunitySummary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpCreateEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -484,9 +484,9 @@ func (m *awsAwsjson10_deserializeOpGetAwsOpportunitySummary) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorCreateEngagementInvitation(response, &metadata) } - output := &GetAwsOpportunitySummaryOutput{} + output := &CreateEngagementInvitationOutput{} out.Result = output var buff [1024]byte @@ -506,7 +506,7 @@ func (m *awsAwsjson10_deserializeOpGetAwsOpportunitySummary) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentCreateEngagementInvitationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -520,7 +520,7 @@ func (m *awsAwsjson10_deserializeOpGetAwsOpportunitySummary) HandleDeserialize(c return out, metadata, err } -func awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorCreateEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -560,12 +560,15 @@ func awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response *smithyhtt case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(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) @@ -582,14 +585,14 @@ func awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response *smithyhtt } } -type awsAwsjson10_deserializeOpGetEngagementInvitation struct { +type awsAwsjson10_deserializeOpCreateOpportunity struct { } -func (*awsAwsjson10_deserializeOpGetEngagementInvitation) ID() string { +func (*awsAwsjson10_deserializeOpCreateOpportunity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpGetEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -607,9 +610,9 @@ func (m *awsAwsjson10_deserializeOpGetEngagementInvitation) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorCreateOpportunity(response, &metadata) } - output := &GetEngagementInvitationOutput{} + output := &CreateOpportunityOutput{} out.Result = output var buff [1024]byte @@ -629,7 +632,7 @@ func (m *awsAwsjson10_deserializeOpGetEngagementInvitation) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentCreateOpportunityOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -643,7 +646,7 @@ func (m *awsAwsjson10_deserializeOpGetEngagementInvitation) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -683,6 +686,9 @@ func awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response *smithyhttp 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) @@ -705,14 +711,14 @@ func awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response *smithyhttp } } -type awsAwsjson10_deserializeOpGetOpportunity struct { +type awsAwsjson10_deserializeOpCreateResourceSnapshot struct { } -func (*awsAwsjson10_deserializeOpGetOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpCreateResourceSnapshot) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpGetOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpCreateResourceSnapshot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -730,9 +736,9 @@ func (m *awsAwsjson10_deserializeOpGetOpportunity) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorGetOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorCreateResourceSnapshot(response, &metadata) } - output := &GetOpportunityOutput{} + output := &CreateResourceSnapshotOutput{} out.Result = output var buff [1024]byte @@ -752,7 +758,7 @@ func (m *awsAwsjson10_deserializeOpGetOpportunity) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentCreateResourceSnapshotOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -766,7 +772,7 @@ func (m *awsAwsjson10_deserializeOpGetOpportunity) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson10_deserializeOpErrorGetOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorCreateResourceSnapshot(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -806,12 +812,15 @@ func awsAwsjson10_deserializeOpErrorGetOpportunity(response *smithyhttp.Response case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(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) @@ -828,14 +837,14 @@ func awsAwsjson10_deserializeOpErrorGetOpportunity(response *smithyhttp.Response } } -type awsAwsjson10_deserializeOpListEngagementInvitations struct { +type awsAwsjson10_deserializeOpCreateResourceSnapshotJob struct { } -func (*awsAwsjson10_deserializeOpListEngagementInvitations) ID() string { +func (*awsAwsjson10_deserializeOpCreateResourceSnapshotJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpListEngagementInvitations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpCreateResourceSnapshotJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -853,9 +862,9 @@ func (m *awsAwsjson10_deserializeOpListEngagementInvitations) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorListEngagementInvitations(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorCreateResourceSnapshotJob(response, &metadata) } - output := &ListEngagementInvitationsOutput{} + output := &CreateResourceSnapshotJobOutput{} out.Result = output var buff [1024]byte @@ -875,7 +884,7 @@ func (m *awsAwsjson10_deserializeOpListEngagementInvitations) HandleDeserialize( return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentCreateResourceSnapshotJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -889,7 +898,7 @@ func (m *awsAwsjson10_deserializeOpListEngagementInvitations) HandleDeserialize( return out, metadata, err } -func awsAwsjson10_deserializeOpErrorListEngagementInvitations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorCreateResourceSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -929,12 +938,15 @@ func awsAwsjson10_deserializeOpErrorListEngagementInvitations(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(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) @@ -951,14 +963,14 @@ func awsAwsjson10_deserializeOpErrorListEngagementInvitations(response *smithyht } } -type awsAwsjson10_deserializeOpListOpportunities struct { +type awsAwsjson10_deserializeOpDeleteResourceSnapshotJob struct { } -func (*awsAwsjson10_deserializeOpListOpportunities) ID() string { +func (*awsAwsjson10_deserializeOpDeleteResourceSnapshotJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpListOpportunities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpDeleteResourceSnapshotJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -976,43 +988,21 @@ func (m *awsAwsjson10_deserializeOpListOpportunities) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorListOpportunities(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorDeleteResourceSnapshotJob(response, &metadata) } - output := &ListOpportunitiesOutput{} + output := &DeleteResourceSnapshotJobOutput{} 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(), + 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 awsAwsjson10_deserializeOpErrorListOpportunities(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorDeleteResourceSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1052,9 +1042,6 @@ func awsAwsjson10_deserializeOpErrorListOpportunities(response *smithyhttp.Respo 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) @@ -1074,14 +1061,14 @@ func awsAwsjson10_deserializeOpErrorListOpportunities(response *smithyhttp.Respo } } -type awsAwsjson10_deserializeOpListSolutions struct { +type awsAwsjson10_deserializeOpDisassociateOpportunity struct { } -func (*awsAwsjson10_deserializeOpListSolutions) ID() string { +func (*awsAwsjson10_deserializeOpDisassociateOpportunity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpListSolutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -1099,43 +1086,21 @@ func (m *awsAwsjson10_deserializeOpListSolutions) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorListSolutions(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response, &metadata) } - output := &ListSolutionsOutput{} + output := &DisassociateOpportunityOutput{} 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(), + 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 awsAwsjson10_deserializeOpErrorListSolutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -1181,6 +1146,9 @@ func awsAwsjson10_deserializeOpErrorListSolutions(response *smithyhttp.Response, 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) @@ -1194,14 +1162,14 @@ func awsAwsjson10_deserializeOpErrorListSolutions(response *smithyhttp.Response, } } -type awsAwsjson10_deserializeOpRejectEngagementInvitation struct { +type awsAwsjson10_deserializeOpGetAwsOpportunitySummary struct { } -func (*awsAwsjson10_deserializeOpRejectEngagementInvitation) ID() string { +func (*awsAwsjson10_deserializeOpGetAwsOpportunitySummary) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpRejectEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -1219,21 +1187,43 @@ func (m *awsAwsjson10_deserializeOpRejectEngagementInvitation) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorRejectEngagementInvitation(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response, &metadata) } - output := &RejectEngagementInvitationOutput{} + output := &GetAwsOpportunitySummaryOutput{} 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 = 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_deserializeOpErrorRejectEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -1295,14 +1285,14 @@ func awsAwsjson10_deserializeOpErrorRejectEngagementInvitation(response *smithyh } } -type awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask struct { +type awsAwsjson10_deserializeOpGetEngagement struct { } -func (*awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) ID() string { +func (*awsAwsjson10_deserializeOpGetEngagement) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson10_deserializeOpGetEngagement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1320,9 +1310,9 @@ func (m *awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) Han } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorGetEngagement(response, &metadata) } - output := &StartEngagementByAcceptingInvitationTaskOutput{} + output := &GetEngagementOutput{} out.Result = output var buff [1024]byte @@ -1342,7 +1332,7 @@ func (m *awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) Han return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentStartEngagementByAcceptingInvitationTaskOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentGetEngagementOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1356,7 +1346,7 @@ func (m *awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) Han return out, metadata, err } -func awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson10_deserializeOpErrorGetEngagement(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1396,18 +1386,9 @@ func awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(res 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) @@ -1424,14 +1405,14 @@ func awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(res } } -type awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask struct { +type awsAwsjson10_deserializeOpGetEngagementInvitation struct { } -func (*awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) ID() string { +func (*awsAwsjson10_deserializeOpGetEngagementInvitation) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -1449,9 +1430,9 @@ func (m *awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response, &metadata) } - output := &StartEngagementFromOpportunityTaskOutput{} + output := &GetEngagementInvitationOutput{} out.Result = output var buff [1024]byte @@ -1471,7 +1452,7 @@ func (m *awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) HandleDes return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentStartEngagementFromOpportunityTaskOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1485,7 +1466,7 @@ func (m *awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) HandleDes return out, metadata, err } -func awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -1525,18 +1506,12 @@ func awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response 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) @@ -1553,14 +1528,14 @@ func awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response } } -type awsAwsjson10_deserializeOpUpdateOpportunity struct { +type awsAwsjson10_deserializeOpGetOpportunity struct { } -func (*awsAwsjson10_deserializeOpUpdateOpportunity) ID() string { +func (*awsAwsjson10_deserializeOpGetOpportunity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson10_deserializeOpUpdateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -1578,9 +1553,9 @@ func (m *awsAwsjson10_deserializeOpUpdateOpportunity) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson10_deserializeOpErrorUpdateOpportunity(response, &metadata) + return out, metadata, awsAwsjson10_deserializeOpErrorGetOpportunity(response, &metadata) } - output := &UpdateOpportunityOutput{} + output := &GetOpportunityOutput{} out.Result = output var buff [1024]byte @@ -1600,7 +1575,7 @@ func (m *awsAwsjson10_deserializeOpUpdateOpportunity) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson10_deserializeOpDocumentUpdateOpportunityOutput(&output, shape) + err = awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1614,7 +1589,7 @@ func (m *awsAwsjson10_deserializeOpUpdateOpportunity) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson10_deserializeOpErrorUpdateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +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)} @@ -1654,9 +1629,6 @@ func awsAwsjson10_deserializeOpErrorUpdateOpportunity(response *smithyhttp.Respo 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) @@ -1679,46 +1651,40 @@ func awsAwsjson10_deserializeOpErrorUpdateOpportunity(response *smithyhttp.Respo } } -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 - } +type awsAwsjson10_deserializeOpGetResourceSnapshot struct { +} - output := &types.AccessDeniedException{} - err := awsAwsjson10_deserializeDocumentAccessDeniedException(&output, shape) +func (*awsAwsjson10_deserializeOpGetResourceSnapshot) ID() string { + return "OperationDeserializer" +} +func (m *awsAwsjson10_deserializeOpGetResourceSnapshot) HandleDeserialize(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 { - 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 out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output -} + _, 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_deserializeOpErrorGetResourceSnapshot(response, &metadata) + } + output := &GetResourceSnapshotOutput{} + out.Result = output -func awsAwsjson10_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { 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{} @@ -1729,12 +1695,10 @@ func awsAwsjson10_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 := awsAwsjson10_deserializeDocumentConflictException(&output, shape) - + err = awsAwsjson10_deserializeOpDocumentGetResourceSnapshotOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1742,22 +1706,32 @@ func awsAwsjson10_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 awsAwsjson10_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson10_deserializeOpErrorGetResourceSnapshot(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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{ @@ -1767,28 +1741,70 @@ func awsAwsjson10_deserializeErrorInternalServerException(response *smithyhttp.R return err } - output := &types.InternalServerException{} - err := awsAwsjson10_deserializeDocumentInternalServerException(&output, shape) + 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) - 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(), + 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 err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson10_deserializeOpGetResourceSnapshotJob struct { } -func awsAwsjson10_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson10_deserializeOpGetResourceSnapshotJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetResourceSnapshotJob) HandleDeserialize(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_deserializeOpErrorGetResourceSnapshotJob(response, &metadata) + } + output := &GetResourceSnapshotJobOutput{} + 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{} @@ -1799,12 +1815,10 @@ func awsAwsjson10_deserializeErrorResourceNotFoundException(response *smithyhttp Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ResourceNotFoundException{} - err := awsAwsjson10_deserializeDocumentResourceNotFoundException(&output, shape) - + err = awsAwsjson10_deserializeOpDocumentGetResourceSnapshotJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1812,22 +1826,32 @@ func awsAwsjson10_deserializeErrorResourceNotFoundException(response *smithyhttp 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 awsAwsjson10_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson10_deserializeOpErrorGetResourceSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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{ @@ -1837,28 +1861,70 @@ func awsAwsjson10_deserializeErrorServiceQuotaExceededException(response *smithy 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(), + 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("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 err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson10_deserializeOpGetSellingSystemSettings struct { } -func awsAwsjson10_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson10_deserializeOpGetSellingSystemSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetSellingSystemSettings) HandleDeserialize(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_deserializeOpErrorGetSellingSystemSettings(response, &metadata) + } + output := &GetSellingSystemSettingsOutput{} + 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{} @@ -1869,12 +1935,42 @@ func awsAwsjson10_deserializeErrorThrottlingException(response *smithyhttp.Respo Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ThrottlingException{} - err := awsAwsjson10_deserializeDocumentThrottlingException(&output, shape) + err = awsAwsjson10_deserializeOpDocumentGetSellingSystemSettingsOutput(&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_deserializeOpErrorGetSellingSystemSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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) @@ -1886,14 +1982,69 @@ func awsAwsjson10_deserializeErrorThrottlingException(response *smithyhttp.Respo } errorBody.Seek(0, io.SeekStart) - return output + 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("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_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson10_deserializeOpListEngagementByAcceptingInvitationTasks struct { +} + +func (*awsAwsjson10_deserializeOpListEngagementByAcceptingInvitationTasks) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagementByAcceptingInvitationTasks) HandleDeserialize(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_deserializeOpErrorListEngagementByAcceptingInvitationTasks(response, &metadata) + } + output := &ListEngagementByAcceptingInvitationTasksOutput{} + 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{} @@ -1904,12 +2055,42 @@ func awsAwsjson10_deserializeErrorValidationException(response *smithyhttp.Respo Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ValidationException{} - err := awsAwsjson10_deserializeDocumentValidationException(&output, shape) + err = awsAwsjson10_deserializeOpDocumentListEngagementByAcceptingInvitationTasksOutput(&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_deserializeOpErrorListEngagementByAcceptingInvitationTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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) @@ -1921,10 +2102,4395 @@ func awsAwsjson10_deserializeErrorValidationException(response *smithyhttp.Respo } errorBody.Seek(0, io.SeekStart) - return output + 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("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_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { +type awsAwsjson10_deserializeOpListEngagementFromOpportunityTasks struct { +} + +func (*awsAwsjson10_deserializeOpListEngagementFromOpportunityTasks) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagementFromOpportunityTasks) HandleDeserialize(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_deserializeOpErrorListEngagementFromOpportunityTasks(response, &metadata) + } + output := &ListEngagementFromOpportunityTasksOutput{} + 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_deserializeOpDocumentListEngagementFromOpportunityTasksOutput(&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_deserializeOpErrorListEngagementFromOpportunityTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpListEngagementMembers struct { +} + +func (*awsAwsjson10_deserializeOpListEngagementMembers) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagementMembers) HandleDeserialize(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_deserializeOpErrorListEngagementMembers(response, &metadata) + } + output := &ListEngagementMembersOutput{} + 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_deserializeOpDocumentListEngagementMembersOutput(&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_deserializeOpErrorListEngagementMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpListEngagementResourceAssociations struct { +} + +func (*awsAwsjson10_deserializeOpListEngagementResourceAssociations) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagementResourceAssociations) HandleDeserialize(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_deserializeOpErrorListEngagementResourceAssociations(response, &metadata) + } + output := &ListEngagementResourceAssociationsOutput{} + 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_deserializeOpDocumentListEngagementResourceAssociationsOutput(&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_deserializeOpErrorListEngagementResourceAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpListEngagements struct { +} + +func (*awsAwsjson10_deserializeOpListEngagements) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagements) HandleDeserialize(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_deserializeOpErrorListEngagements(response, &metadata) + } + output := &ListEngagementsOutput{} + 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_deserializeOpDocumentListEngagementsOutput(&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_deserializeOpErrorListEngagements(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpListResourceSnapshotJobs struct { +} + +func (*awsAwsjson10_deserializeOpListResourceSnapshotJobs) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListResourceSnapshotJobs) HandleDeserialize(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_deserializeOpErrorListResourceSnapshotJobs(response, &metadata) + } + output := &ListResourceSnapshotJobsOutput{} + 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_deserializeOpDocumentListResourceSnapshotJobsOutput(&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_deserializeOpErrorListResourceSnapshotJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpListResourceSnapshots struct { +} + +func (*awsAwsjson10_deserializeOpListResourceSnapshots) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListResourceSnapshots) HandleDeserialize(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_deserializeOpErrorListResourceSnapshots(response, &metadata) + } + output := &ListResourceSnapshotsOutput{} + 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_deserializeOpDocumentListResourceSnapshotsOutput(&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_deserializeOpErrorListResourceSnapshots(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpPutSellingSystemSettings struct { +} + +func (*awsAwsjson10_deserializeOpPutSellingSystemSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpPutSellingSystemSettings) HandleDeserialize(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_deserializeOpErrorPutSellingSystemSettings(response, &metadata) + } + output := &PutSellingSystemSettingsOutput{} + 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_deserializeOpDocumentPutSellingSystemSettingsOutput(&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_deserializeOpErrorPutSellingSystemSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_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_deserializeOpStartResourceSnapshotJob struct { +} + +func (*awsAwsjson10_deserializeOpStartResourceSnapshotJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpStartResourceSnapshotJob) HandleDeserialize(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_deserializeOpErrorStartResourceSnapshotJob(response, &metadata) + } + output := &StartResourceSnapshotJobOutput{} + 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_deserializeOpErrorStartResourceSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpStopResourceSnapshotJob struct { +} + +func (*awsAwsjson10_deserializeOpStopResourceSnapshotJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpStopResourceSnapshotJob) HandleDeserialize(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_deserializeOpErrorStopResourceSnapshotJob(response, &metadata) + } + output := &StopResourceSnapshotJobOutput{} + 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_deserializeOpErrorStopResourceSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpSubmitOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpSubmitOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpSubmitOpportunity) HandleDeserialize(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_deserializeOpErrorSubmitOpportunity(response, &metadata) + } + output := &SubmitOpportunityOutput{} + 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_deserializeOpErrorSubmitOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_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_deserializeDocumentCustomerProjectsContext(v **types.CustomerProjectsContext, 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.CustomerProjectsContext + if *v == nil { + sv = &types.CustomerProjectsContext{} + } 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_deserializeDocumentEngagementCustomerProjectDetails(&sv.Project, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + 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_deserializeDocumentEngagementContextDetails(v **types.EngagementContextDetails, 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.EngagementContextDetails + if *v == nil { + sv = &types.EngagementContextDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Payload": + if err := awsAwsjson10_deserializeDocumentEngagementContextPayload(&sv.Payload, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementContextType to be of type string, got %T instead", value) + } + sv.Type = types.EngagementContextType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementContextPayload(v *types.EngagementContextPayload, 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.EngagementContextPayload +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "CustomerProject": + var mv types.CustomerProjectsContext + destAddr := &mv + if err := awsAwsjson10_deserializeDocumentCustomerProjectsContext(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.EngagementContextPayloadMemberCustomerProject{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementContexts(v *[]types.EngagementContextDetails, 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.EngagementContextDetails + if *v == nil { + cv = []types.EngagementContextDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementContextDetails + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementContextDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + 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_deserializeDocumentEngagementCustomerProjectDetails(v **types.EngagementCustomerProjectDetails, 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.EngagementCustomerProjectDetails + if *v == nil { + sv = &types.EngagementCustomerProjectDetails{} + } 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 "TargetCompletionDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String 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 EngagementCustomerProjectTitle to be of type string, got %T instead", value) + } + sv.Title = 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 "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = 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 "ParticipantType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ParticipantType to be of type string, got %T instead", value) + } + sv.ParticipantType = types.ParticipantType(jtv) + } + + 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 AwsAccount 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_deserializeDocumentEngagementMember(v **types.EngagementMember, 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.EngagementMember + if *v == nil { + sv = &types.EngagementMember{} + } 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 AwsAccount to be of type string, got %T instead", value) + } + sv.AccountId = ptr.String(jtv) + } + + case "CompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MemberCompanyName to be of type string, got %T instead", value) + } + sv.CompanyName = ptr.String(jtv) + } + + case "WebsiteUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.WebsiteUrl = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementMembers(v *[]types.EngagementMember, 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.EngagementMember + if *v == nil { + cv = []types.EngagementMember{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementMember + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementMember(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementMemberSummaries(v *[]types.EngagementMemberSummary, 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.EngagementMemberSummary + if *v == nil { + cv = []types.EngagementMemberSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementMemberSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementMemberSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementMemberSummary(v **types.EngagementMemberSummary, 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.EngagementMemberSummary + if *v == nil { + sv = &types.EngagementMemberSummary{} + } 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 MemberCompanyName to be of type string, got %T instead", value) + } + sv.CompanyName = ptr.String(jtv) + } + + case "WebsiteUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.WebsiteUrl = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementResourceAssociationSummary(v **types.EngagementResourceAssociationSummary, 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.EngagementResourceAssociationSummary + if *v == nil { + sv = &types.EngagementResourceAssociationSummary{} + } 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 "CreatedBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.CreatedBy = ptr.String(jtv) + } + + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = ptr.String(jtv) + } + + case "ResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceIdentifier to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } + + case "ResourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = types.ResourceType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementResourceAssociationSummaryList(v *[]types.EngagementResourceAssociationSummary, 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.EngagementResourceAssociationSummary + if *v == nil { + cv = []types.EngagementResourceAssociationSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementResourceAssociationSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementResourceAssociationSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementSummary(v **types.EngagementSummary, 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.EngagementSummary + if *v == nil { + sv = &types.EngagementSummary{} + } 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 EngagementArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "CreatedAt": + 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.CreatedAt = ptr.Time(t) + } + + case "CreatedBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.CreatedBy = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "MemberCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MemberCount = ptr.Int32(int32(i64)) + } + + case "Title": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + } + sv.Title = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementSummaryList(v *[]types.EngagementSummary, 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.EngagementSummary + if *v == nil { + cv = []types.EngagementSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + 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 "EstimationUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WebsiteUrl to be of type string, got %T instead", value) + } + sv.EstimationUrl = ptr.String(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) } @@ -1937,9 +6503,9 @@ func awsAwsjson10_deserializeDocumentAccessDeniedException(v **types.AccessDenie return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccessDeniedException + var sv *types.InternalServerException if *v == nil { - sv = &types.AccessDeniedException{} + sv = &types.InternalServerException{} } else { sv = *v } @@ -1964,7 +6530,7 @@ func awsAwsjson10_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } -func awsAwsjson10_deserializeDocumentAccount(v **types.Account, value interface{}) error { +func awsAwsjson10_deserializeDocumentLifeCycle(v **types.LifeCycle, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1977,72 +6543,81 @@ func awsAwsjson10_deserializeDocumentAccount(v **types.Account, value interface{ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Account + var sv *types.LifeCycle if *v == nil { - sv = &types.Account{} + sv = &types.LifeCycle{} } else { sv = *v } for key, value := range shape { switch key { - case "Address": - if err := awsAwsjson10_deserializeDocumentAddress(&sv.Address, value); err != nil { - return err + 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 "AwsAccountId": + case "NextSteps": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) } - sv.AwsAccountId = ptr.String(jtv) + sv.NextSteps = ptr.String(jtv) } - case "CompanyName": + 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 Name to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.CompanyName = ptr.String(jtv) + sv.ReviewComments = ptr.String(jtv) } - case "Duns": + case "ReviewStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DunsNumber to be of type string, got %T instead", value) + return fmt.Errorf("expected ReviewStatus to be of type string, got %T instead", value) } - sv.Duns = ptr.String(jtv) + sv.ReviewStatus = types.ReviewStatus(jtv) } - case "Industry": + case "ReviewStatusReason": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Industry to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Industry = types.Industry(jtv) + sv.ReviewStatusReason = ptr.String(jtv) } - case "OtherIndustry": + case "Stage": 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 Stage to be of type string, got %T instead", value) } - sv.OtherIndustry = ptr.String(jtv) + sv.Stage = types.Stage(jtv) } - case "WebsiteUrl": + case "TargetCloseDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected WebsiteUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected Date to be of type string, got %T instead", value) } - sv.WebsiteUrl = ptr.String(jtv) + sv.TargetCloseDate = ptr.String(jtv) } default: @@ -2054,7 +6629,7 @@ func awsAwsjson10_deserializeDocumentAccount(v **types.Account, value interface{ return nil } -func awsAwsjson10_deserializeDocumentAccountReceiver(v **types.AccountReceiver, value interface{}) error { +func awsAwsjson10_deserializeDocumentLifeCycleForView(v **types.LifeCycleForView, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2067,31 +6642,49 @@ func awsAwsjson10_deserializeDocumentAccountReceiver(v **types.AccountReceiver, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccountReceiver + var sv *types.LifeCycleForView if *v == nil { - sv = &types.AccountReceiver{} + sv = &types.LifeCycleForView{} } else { sv = *v } for key, value := range shape { switch key { - case "Alias": + case "NextSteps": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Alias to be of type string, got %T instead", value) + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) } - sv.Alias = ptr.String(jtv) + sv.NextSteps = ptr.String(jtv) } - case "AwsAccountId": + case "ReviewStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + return fmt.Errorf("expected ReviewStatus to be of type string, got %T instead", value) } - sv.AwsAccountId = ptr.String(jtv) + sv.ReviewStatus = types.ReviewStatus(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: @@ -2103,7 +6696,7 @@ func awsAwsjson10_deserializeDocumentAccountReceiver(v **types.AccountReceiver, return nil } -func awsAwsjson10_deserializeDocumentAccountSummary(v **types.AccountSummary, value interface{}) error { +func awsAwsjson10_deserializeDocumentLifeCycleSummary(v **types.LifeCycleSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2116,54 +6709,76 @@ func awsAwsjson10_deserializeDocumentAccountSummary(v **types.AccountSummary, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccountSummary + var sv *types.LifeCycleSummary if *v == nil { - sv = &types.AccountSummary{} + sv = &types.LifeCycleSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "Address": - if err := awsAwsjson10_deserializeDocumentAddressSummary(&sv.Address, value); err != nil { - return err + 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 "CompanyName": + case "NextSteps": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Name to be of type string, got %T instead", value) + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) } - sv.CompanyName = ptr.String(jtv) + sv.NextSteps = ptr.String(jtv) } - case "Industry": + case "ReviewComments": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Industry to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Industry = types.Industry(jtv) + sv.ReviewComments = ptr.String(jtv) } - case "OtherIndustry": + 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.OtherIndustry = ptr.String(jtv) + sv.ReviewStatusReason = ptr.String(jtv) } - case "WebsiteUrl": + case "Stage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected WebsiteUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected Stage to be of type string, got %T instead", value) } - sv.WebsiteUrl = ptr.String(jtv) + 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: @@ -2175,7 +6790,41 @@ func awsAwsjson10_deserializeDocumentAccountSummary(v **types.AccountSummary, va return nil } -func awsAwsjson10_deserializeDocumentAddress(v **types.Address, value interface{}) error { +func awsAwsjson10_deserializeDocumentListEngagementByAcceptingInvitationTaskSummaries(v *[]types.ListEngagementByAcceptingInvitationTaskSummary, 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.ListEngagementByAcceptingInvitationTaskSummary + if *v == nil { + cv = []types.ListEngagementByAcceptingInvitationTaskSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListEngagementByAcceptingInvitationTaskSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentListEngagementByAcceptingInvitationTaskSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentListEngagementByAcceptingInvitationTaskSummary(v **types.ListEngagementByAcceptingInvitationTaskSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2188,125 +6837,98 @@ func awsAwsjson10_deserializeDocumentAddress(v **types.Address, value interface{ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Address + var sv *types.ListEngagementByAcceptingInvitationTaskSummary if *v == nil { - sv = &types.Address{} + sv = &types.ListEngagementByAcceptingInvitationTaskSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "City": + case "EngagementInvitationId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected EngagementInvitationIdentifier to be of type string, got %T instead", value) } - sv.City = ptr.String(jtv) + sv.EngagementInvitationId = ptr.String(jtv) } - case "CountryCode": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.CountryCode = types.CountryCode(jtv) + sv.Message = ptr.String(jtv) } - case "PostalCode": + case "OpportunityId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) } - sv.PostalCode = ptr.String(jtv) + sv.OpportunityId = ptr.String(jtv) } - case "StateOrRegion": + case "ReasonCode": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected ReasonCode to be of type string, got %T instead", value) } - sv.StateOrRegion = ptr.String(jtv) + sv.ReasonCode = types.ReasonCode(jtv) } - case "StreetAddress": + case "ResourceSnapshotJobId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) } - sv.StreetAddress = ptr.String(jtv) + sv.ResourceSnapshotJobId = 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": + case "StartTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.City = ptr.String(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.StartTime = ptr.Time(t) } - case "CountryCode": + case "TaskArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskArn to be of type string, got %T instead", value) } - sv.CountryCode = types.CountryCode(jtv) + sv.TaskArn = ptr.String(jtv) } - case "PostalCode": + case "TaskId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskIdentifier to be of type string, got %T instead", value) } - sv.PostalCode = ptr.String(jtv) + sv.TaskId = ptr.String(jtv) } - case "StateOrRegion": + case "TaskStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskStatus to be of type string, got %T instead", value) } - sv.StateOrRegion = ptr.String(jtv) + sv.TaskStatus = types.TaskStatus(jtv) } default: @@ -2318,43 +6940,7 @@ func awsAwsjson10_deserializeDocumentAddressSummary(v **types.AddressSummary, va 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 { +func awsAwsjson10_deserializeDocumentListEngagementFromOpportunityTaskSummaries(v *[]types.ListEngagementFromOpportunityTaskSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2367,22 +6953,20 @@ func awsAwsjson10_deserializeDocumentAwsMarketplaceOfferIdentifiers(v *[]string, return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.ListEngagementFromOpportunityTaskSummary if *v == nil { - cv = []string{} + cv = []types.ListEngagementFromOpportunityTaskSummary{} } 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 + var col types.ListEngagementFromOpportunityTaskSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentListEngagementFromOpportunityTaskSummary(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -2390,7 +6974,7 @@ func awsAwsjson10_deserializeDocumentAwsMarketplaceOfferIdentifiers(v *[]string, return nil } -func awsAwsjson10_deserializeDocumentAwsOpportunityCustomer(v **types.AwsOpportunityCustomer, value interface{}) error { +func awsAwsjson10_deserializeDocumentListEngagementFromOpportunityTaskSummary(v **types.ListEngagementFromOpportunityTaskSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2403,139 +6987,107 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityCustomer(v **types.AwsOpportu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpportunityCustomer + var sv *types.ListEngagementFromOpportunityTaskSummary if *v == nil { - sv = &types.AwsOpportunityCustomer{} + sv = &types.ListEngagementFromOpportunityTaskSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "Contacts": - if err := awsAwsjson10_deserializeDocumentCustomerContactsList(&sv.Contacts, value); err != nil { - return err + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = ptr.String(jtv) } - 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": + case "EngagementInvitationId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EngagementScore to be of type string, got %T instead", value) + return fmt.Errorf("expected EngagementInvitationIdentifier to be of type string, got %T instead", value) } - sv.EngagementScore = types.EngagementScore(jtv) + sv.EngagementInvitationId = ptr.String(jtv) } - case "NextBestActions": + 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.NextBestActions = ptr.String(jtv) + sv.Message = 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) - } + 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) + } - var sv *types.AwsOpportunityLifeCycle - if *v == nil { - sv = &types.AwsOpportunityLifeCycle{} - } else { - sv = *v - } + 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) + } - for key, value := range shape { - switch key { - case "ClosedLostReason": + case "ResourceSnapshotJobId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsClosedLostReason to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) } - sv.ClosedLostReason = types.AwsClosedLostReason(jtv) + sv.ResourceSnapshotJobId = ptr.String(jtv) } - case "NextSteps": + case "StartTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.NextSteps = ptr.String(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.StartTime = ptr.Time(t) } - case "NextStepsHistory": - if err := awsAwsjson10_deserializeDocumentProfileNextStepsHistories(&sv.NextStepsHistory, value); err != nil { - return err + 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 "Stage": + case "TaskId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsOpportunityStage to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskIdentifier to be of type string, got %T instead", value) } - sv.Stage = types.AwsOpportunityStage(jtv) + sv.TaskId = ptr.String(jtv) } - case "TargetCloseDate": + case "TaskStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Date to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskStatus to be of type string, got %T instead", value) } - sv.TargetCloseDate = ptr.String(jtv) + sv.TaskStatus = types.TaskStatus(jtv) } default: @@ -2547,7 +7099,7 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityLifeCycle(v **types.AwsOpport return nil } -func awsAwsjson10_deserializeDocumentAwsOpportunityProject(v **types.AwsOpportunityProject, value interface{}) error { +func awsAwsjson10_deserializeDocumentMarketing(v **types.Marketing, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2560,17 +7112,49 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityProject(v **types.AwsOpportun return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpportunityProject + var sv *types.Marketing if *v == nil { - sv = &types.AwsOpportunityProject{} + sv = &types.Marketing{} } else { sv = *v } for key, value := range shape { switch key { - case "ExpectedCustomerSpend": - if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + 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 } @@ -2583,7 +7167,7 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityProject(v **types.AwsOpportun return nil } -func awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(v **types.AwsOpportunityRelatedEntities, value interface{}) error { +func awsAwsjson10_deserializeDocumentMonetaryValue(v **types.MonetaryValue, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2596,23 +7180,31 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpportunityRelatedEntities + var sv *types.MonetaryValue if *v == nil { - sv = &types.AwsOpportunityRelatedEntities{} + sv = &types.MonetaryValue{} } else { sv = *v } for key, value := range shape { switch key { - case "AwsProducts": - if err := awsAwsjson10_deserializeDocumentAwsProductIdentifiers(&sv.AwsProducts, value); err != nil { - return err + 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 "Solutions": - if err := awsAwsjson10_deserializeDocumentSolutionIdentifiers(&sv.Solutions, value); err != nil { - return err + 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: @@ -2624,7 +7216,7 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(v **types.Aws return nil } -func awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(v *[]types.AwsTeamMember, value interface{}) error { +func awsAwsjson10_deserializeDocumentNextStepsHistories(v *[]types.NextStepsHistory, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2637,17 +7229,17 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(v *[]types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsTeamMember + var cv []types.NextStepsHistory if *v == nil { - cv = []types.AwsTeamMember{} + cv = []types.NextStepsHistory{} } else { cv = *v } for _, value := range shape { - var col types.AwsTeamMember + var col types.NextStepsHistory destAddr := &col - if err := awsAwsjson10_deserializeDocumentAwsTeamMember(&destAddr, value); err != nil { + if err := awsAwsjson10_deserializeDocumentNextStepsHistory(&destAddr, value); err != nil { return err } col = *destAddr @@ -2658,7 +7250,7 @@ func awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(v *[]types.Aw return nil } -func awsAwsjson10_deserializeDocumentAwsProductIdentifiers(v *[]string, value interface{}) error { +func awsAwsjson10_deserializeDocumentNextStepsHistory(v **types.NextStepsHistory, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2666,35 +7258,52 @@ func awsAwsjson10_deserializeDocumentAwsProductIdentifiers(v *[]string, value in return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.NextStepsHistory if *v == nil { - cv = []string{} + sv = &types.NextStepsHistory{} } else { - cv = *v + sv = *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) + 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) } - col = jtv - } - cv = append(cv, col) + 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 = cv + *v = sv return nil } -func awsAwsjson10_deserializeDocumentAwsTeamMember(v **types.AwsTeamMember, value interface{}) error { +func awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(v **types.OpportunityInvitationPayload, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2707,49 +7316,33 @@ func awsAwsjson10_deserializeDocumentAwsTeamMember(v **types.AwsTeamMember, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsTeamMember + var sv *types.OpportunityInvitationPayload if *v == nil { - sv = &types.AwsTeamMember{} + sv = &types.OpportunityInvitationPayload{} } 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 "Customer": + if err := awsAwsjson10_deserializeDocumentEngagementCustomer(&sv.Customer, value); err != nil { + return err } - 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 "Project": + if err := awsAwsjson10_deserializeDocumentProjectDetails(&sv.Project, value); err != nil { + return err } - 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 "ReceiverResponsibilities": + if err := awsAwsjson10_deserializeDocumentReceiverResponsibilityList(&sv.ReceiverResponsibilities, value); err != nil { + return err } - 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 "SenderContacts": + if err := awsAwsjson10_deserializeDocumentSenderContactList(&sv.SenderContacts, value); err != nil { + return err } default: @@ -2761,7 +7354,7 @@ func awsAwsjson10_deserializeDocumentAwsTeamMember(v **types.AwsTeamMember, valu return nil } -func awsAwsjson10_deserializeDocumentChannels(v *[]types.Channel, value interface{}) error { +func awsAwsjson10_deserializeDocumentOpportunitySummaries(v *[]types.OpportunitySummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2774,22 +7367,20 @@ func awsAwsjson10_deserializeDocumentChannels(v *[]types.Channel, value interfac return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Channel + var cv []types.OpportunitySummary if *v == nil { - cv = []types.Channel{} + cv = []types.OpportunitySummary{} } 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) + var col types.OpportunitySummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentOpportunitySummary(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -2797,7 +7388,7 @@ func awsAwsjson10_deserializeDocumentChannels(v *[]types.Channel, value interfac return nil } -func awsAwsjson10_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { +func awsAwsjson10_deserializeDocumentOpportunitySummary(v **types.OpportunitySummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2810,98 +7401,99 @@ func awsAwsjson10_deserializeDocumentConflictException(v **types.ConflictExcepti return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConflictException + var sv *types.OpportunitySummary if *v == nil { - sv = &types.ConflictException{} + sv = &types.OpportunitySummary{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + 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 OpportunityArn to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Arn = 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 - } + 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) + } - for key, value := range shape { - switch key { - case "BusinessTitle": + case "CreatedDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected JobTitle to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.BusinessTitle = ptr.String(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedDate = ptr.Time(t) } - case "Email": + 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 Email to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) } - sv.Email = ptr.String(jtv) + sv.Id = ptr.String(jtv) } - case "FirstName": + case "LastModifiedDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Name to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.FirstName = ptr.String(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(t) } - case "LastName": + 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 Name to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityType to be of type string, got %T instead", value) } - sv.LastName = ptr.String(jtv) + sv.OpportunityType = types.OpportunityType(jtv) } - case "Phone": + case "PartnerOpportunityIdentifier": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PhoneNumber to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Phone = ptr.String(jtv) + sv.PartnerOpportunityIdentifier = ptr.String(jtv) + } + + case "Project": + if err := awsAwsjson10_deserializeDocumentProjectSummary(&sv.Project, value); err != nil { + return err } default: @@ -2913,7 +7505,7 @@ func awsAwsjson10_deserializeDocumentContact(v **types.Contact, value interface{ return nil } -func awsAwsjson10_deserializeDocumentCustomer(v **types.Customer, value interface{}) error { +func awsAwsjson10_deserializeDocumentOpportunitySummaryView(v **types.OpportunitySummaryView, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2926,22 +7518,51 @@ func awsAwsjson10_deserializeDocumentCustomer(v **types.Customer, value interfac return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Customer + var sv *types.OpportunitySummaryView if *v == nil { - sv = &types.Customer{} + sv = &types.OpportunitySummaryView{} } else { sv = *v } for key, value := range shape { switch key { - case "Account": - if err := awsAwsjson10_deserializeDocumentAccount(&sv.Account, value); err != nil { + case "Customer": + if err := awsAwsjson10_deserializeDocumentCustomer(&sv.Customer, value); err != nil { + return err + } + + case "Lifecycle": + if err := awsAwsjson10_deserializeDocumentLifeCycleForView(&sv.Lifecycle, value); err != nil { + return err + } + + 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 "PrimaryNeedsFromAws": + if err := awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(&sv.PrimaryNeedsFromAws, value); err != nil { return err } - case "Contacts": - if err := awsAwsjson10_deserializeDocumentCustomerContactsList(&sv.Contacts, value); err != nil { + case "Project": + if err := awsAwsjson10_deserializeDocumentProjectView(&sv.Project, value); err != nil { + return err + } + + case "RelatedEntityIdentifiers": + if err := awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(&sv.RelatedEntityIdentifiers, value); err != nil { return err } @@ -2954,7 +7575,7 @@ func awsAwsjson10_deserializeDocumentCustomer(v **types.Customer, value interfac return nil } -func awsAwsjson10_deserializeDocumentCustomerContactsList(v *[]types.Contact, value interface{}) error { +func awsAwsjson10_deserializeDocumentPartnerOpportunityTeamMembersList(v *[]types.Contact, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2988,7 +7609,7 @@ func awsAwsjson10_deserializeDocumentCustomerContactsList(v *[]types.Contact, va return nil } -func awsAwsjson10_deserializeDocumentCustomerSummary(v **types.CustomerSummary, value interface{}) error { +func awsAwsjson10_deserializeDocumentPayload(v *types.Payload, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3001,30 +7622,34 @@ func awsAwsjson10_deserializeDocumentCustomerSummary(v **types.CustomerSummary, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.CustomerSummary - if *v == nil { - sv = &types.CustomerSummary{} - } else { - sv = *v - } - + var uv types.Payload +loop: for key, value := range shape { + if value == nil { + continue + } switch key { - case "Account": - if err := awsAwsjson10_deserializeDocumentAccountSummary(&sv.Account, value); err != nil { + 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: - _, _ = key, value + uv = &types.UnknownUnionMember{Tag: key} + break loop } } - *v = sv + *v = uv return nil } -func awsAwsjson10_deserializeDocumentDeliveryModels(v *[]types.DeliveryModel, value interface{}) error { +func awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(v *[]types.PrimaryNeedFromAws, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3037,21 +7662,21 @@ func awsAwsjson10_deserializeDocumentDeliveryModels(v *[]types.DeliveryModel, va return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.DeliveryModel + var cv []types.PrimaryNeedFromAws if *v == nil { - cv = []types.DeliveryModel{} + cv = []types.PrimaryNeedFromAws{} } else { cv = *v } for _, value := range shape { - var col types.DeliveryModel + var col types.PrimaryNeedFromAws if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DeliveryModel to be of type string, got %T instead", value) + return fmt.Errorf("expected PrimaryNeedFromAws to be of type string, got %T instead", value) } - col = types.DeliveryModel(jtv) + col = types.PrimaryNeedFromAws(jtv) } cv = append(cv, col) @@ -3060,7 +7685,41 @@ func awsAwsjson10_deserializeDocumentDeliveryModels(v *[]types.DeliveryModel, va return nil } -func awsAwsjson10_deserializeDocumentEngagementCustomer(v **types.EngagementCustomer, value interface{}) error { +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) } @@ -3073,49 +7732,35 @@ func awsAwsjson10_deserializeDocumentEngagementCustomer(v **types.EngagementCust return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.EngagementCustomer + var sv *types.ProfileNextStepsHistory if *v == nil { - sv = &types.EngagementCustomer{} + sv = &types.ProfileNextStepsHistory{} } 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": + case "Time": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime 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) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err } - sv.Industry = types.Industry(jtv) + sv.Time = ptr.Time(t) } - case "WebsiteUrl": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CompanyWebsiteUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.WebsiteUrl = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -3127,41 +7772,7 @@ func awsAwsjson10_deserializeDocumentEngagementCustomer(v **types.EngagementCust 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 { +func awsAwsjson10_deserializeDocumentProject(v **types.Project, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3174,116 +7785,209 @@ func awsAwsjson10_deserializeDocumentEngagementInvitationSummary(v **types.Engag return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.EngagementInvitationSummary + var sv *types.Project if *v == nil { - sv = &types.EngagementInvitationSummary{} + sv = &types.Project{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + 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.Arn = ptr.String(jtv) + sv.AdditionalComments = ptr.String(jtv) } - case "Catalog": + 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 CatalogIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected CompetitorName to be of type string, got %T instead", value) } - sv.Catalog = ptr.String(jtv) + sv.CompetitorName = types.CompetitorName(jtv) } - case "EngagementTitle": + case "CustomerBusinessProblem": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) } - sv.EngagementTitle = ptr.String(jtv) + sv.CustomerBusinessProblem = ptr.String(jtv) } - case "ExpirationDate": + case "CustomerUseCase": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + 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.ExpirationDate = ptr.Time(t) + sv.OtherCompetitorNames = ptr.String(jtv) } - case "Id": + case "OtherSolutionDescription": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EngagementInvitationArnOrIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.OtherSolutionDescription = ptr.String(jtv) } - case "InvitationDate": + case "RelatedOpportunityIdentifier": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + 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.InvitationDate = ptr.Time(t) + sv.Title = ptr.String(jtv) } - case "PayloadType": + 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 EngagementInvitationPayloadType to be of type string, got %T instead", value) + return fmt.Errorf("expected EngagementCustomerBusinessProblem to be of type string, got %T instead", value) } - sv.PayloadType = types.EngagementInvitationPayloadType(jtv) + sv.BusinessProblem = ptr.String(jtv) } - case "Receiver": - if err := awsAwsjson10_deserializeDocumentReceiver(&sv.Receiver, value); err != nil { + case "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { return err } - case "SenderAwsAccountId": + case "TargetCompletionDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsAccountIdOrLabel to be of type string, got %T instead", value) + return fmt.Errorf("expected Date to be of type string, got %T instead", value) } - sv.SenderAwsAccountId = ptr.String(jtv) + sv.TargetCompletionDate = ptr.String(jtv) } - case "SenderCompanyName": + 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.SenderCompanyName = ptr.String(jtv) + sv.Title = 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_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: @@ -3295,7 +7999,7 @@ func awsAwsjson10_deserializeDocumentEngagementInvitationSummary(v **types.Engag return nil } -func awsAwsjson10_deserializeDocumentExpectedCustomerSpend(v **types.ExpectedCustomerSpend, value interface{}) error { +func awsAwsjson10_deserializeDocumentProjectView(v **types.ProjectView, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3308,49 +8012,46 @@ func awsAwsjson10_deserializeDocumentExpectedCustomerSpend(v **types.ExpectedCus return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ExpectedCustomerSpend + var sv *types.ProjectView if *v == nil { - sv = &types.ExpectedCustomerSpend{} + sv = &types.ProjectView{} } else { sv = *v } for key, value := range shape { switch key { - case "Amount": + 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.Amount = ptr.String(jtv) + sv.CustomerUseCase = 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 "DeliveryModels": + if err := awsAwsjson10_deserializeDocumentDeliveryModels(&sv.DeliveryModels, value); err != nil { + return err } - 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 "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + return err } - case "TargetCompany": + case "OtherSolutionDescription": 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 PiiString to be of type string, got %T instead", value) } - sv.TargetCompany = ptr.String(jtv) + sv.OtherSolutionDescription = ptr.String(jtv) + } + + case "SalesActivities": + if err := awsAwsjson10_deserializeDocumentSalesActivities(&sv.SalesActivities, value); err != nil { + return err } default: @@ -3362,7 +8063,47 @@ func awsAwsjson10_deserializeDocumentExpectedCustomerSpend(v **types.ExpectedCus return nil } -func awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(v *[]types.ExpectedCustomerSpend, value interface{}) error { +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) } @@ -3375,20 +8116,22 @@ func awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(v *[]types.Expect return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ExpectedCustomerSpend + var cv []types.ReceiverResponsibility if *v == nil { - cv = []types.ExpectedCustomerSpend{} + cv = []types.ReceiverResponsibility{} } else { cv = *v } for _, value := range shape { - var col types.ExpectedCustomerSpend - destAddr := &col - if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpend(&destAddr, value); err != nil { - return err + 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) } - col = *destAddr cv = append(cv, col) } @@ -3396,7 +8139,7 @@ func awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(v *[]types.Expect return nil } -func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { +func awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(v **types.RelatedEntityIdentifiers, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3409,22 +8152,28 @@ func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalServerException + var sv *types.RelatedEntityIdentifiers if *v == nil { - sv = &types.InternalServerException{} + sv = &types.RelatedEntityIdentifiers{} } 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) + 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: @@ -3436,7 +8185,7 @@ func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalS return nil } -func awsAwsjson10_deserializeDocumentLifeCycle(v **types.LifeCycle, value interface{}) error { +func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3449,81 +8198,89 @@ func awsAwsjson10_deserializeDocumentLifeCycle(v **types.LifeCycle, value interf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LifeCycle + var sv *types.ResourceNotFoundException if *v == nil { - sv = &types.LifeCycle{} + sv = &types.ResourceNotFoundException{} } else { sv = *v } for key, value := range shape { switch key { - case "ClosedLostReason": + case "message", "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ClosedLostReason to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.ClosedLostReason = types.ClosedLostReason(jtv) + sv.Message = ptr.String(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) - } + default: + _, _ = key, value - case "NextStepsHistory": - if err := awsAwsjson10_deserializeDocumentNextStepsHistories(&sv.NextStepsHistory, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - 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) - } +func awsAwsjson10_deserializeDocumentResourceSnapshotJobSummary(v **types.ResourceSnapshotJobSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "ReviewStatus": + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceSnapshotJobSummary + if *v == nil { + sv = &types.ResourceSnapshotJobSummary{} + } 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 ReviewStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobArn to be of type string, got %T instead", value) } - sv.ReviewStatus = types.ReviewStatus(jtv) + sv.Arn = ptr.String(jtv) } - case "ReviewStatusReason": + case "EngagementId": 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 EngagementIdentifier to be of type string, got %T instead", value) } - sv.ReviewStatusReason = ptr.String(jtv) + sv.EngagementId = ptr.String(jtv) } - case "Stage": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Stage to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) } - sv.Stage = types.Stage(jtv) + sv.Id = ptr.String(jtv) } - case "TargetCloseDate": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Date to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobStatus to be of type string, got %T instead", value) } - sv.TargetCloseDate = ptr.String(jtv) + sv.Status = types.ResourceSnapshotJobStatus(jtv) } default: @@ -3535,7 +8292,41 @@ func awsAwsjson10_deserializeDocumentLifeCycle(v **types.LifeCycle, value interf return nil } -func awsAwsjson10_deserializeDocumentLifeCycleSummary(v **types.LifeCycleSummary, value interface{}) error { +func awsAwsjson10_deserializeDocumentResourceSnapshotJobSummaryList(v *[]types.ResourceSnapshotJobSummary, 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.ResourceSnapshotJobSummary + if *v == nil { + cv = []types.ResourceSnapshotJobSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ResourceSnapshotJobSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentResourceSnapshotJobSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentResourceSnapshotPayload(v *types.ResourceSnapshotPayload, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3548,76 +8339,111 @@ func awsAwsjson10_deserializeDocumentLifeCycleSummary(v **types.LifeCycleSummary return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LifeCycleSummary + var uv types.ResourceSnapshotPayload +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "OpportunitySummary": + var mv types.OpportunitySummaryView + destAddr := &mv + if err := awsAwsjson10_deserializeDocumentOpportunitySummaryView(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.ResourceSnapshotPayloadMemberOpportunitySummary{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsAwsjson10_deserializeDocumentResourceSnapshotSummary(v **types.ResourceSnapshotSummary, 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.ResourceSnapshotSummary if *v == nil { - sv = &types.LifeCycleSummary{} + sv = &types.ResourceSnapshotSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "ClosedLostReason": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ClosedLostReason to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotArn to be of type string, got %T instead", value) } - sv.ClosedLostReason = types.ClosedLostReason(jtv) + sv.Arn = ptr.String(jtv) } - case "NextSteps": + case "CreatedBy": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) } - sv.NextSteps = ptr.String(jtv) + sv.CreatedBy = ptr.String(jtv) } - case "ReviewComments": + case "ResourceId": 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 ResourceIdentifier to be of type string, got %T instead", value) } - sv.ReviewComments = ptr.String(jtv) + sv.ResourceId = ptr.String(jtv) } - case "ReviewStatus": + case "ResourceSnapshotTemplateName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ReviewStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceTemplateName to be of type string, got %T instead", value) } - sv.ReviewStatus = types.ReviewStatus(jtv) + sv.ResourceSnapshotTemplateName = ptr.String(jtv) } - case "ReviewStatusReason": + case "ResourceType": 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 ResourceType to be of type string, got %T instead", value) } - sv.ReviewStatusReason = ptr.String(jtv) + sv.ResourceType = types.ResourceType(jtv) } - case "Stage": + case "Revision": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Stage to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotRevision to be json.Number, 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) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.TargetCloseDate = ptr.String(jtv) + sv.Revision = ptr.Int32(int32(i64)) } default: @@ -3629,7 +8455,7 @@ func awsAwsjson10_deserializeDocumentLifeCycleSummary(v **types.LifeCycleSummary return nil } -func awsAwsjson10_deserializeDocumentMarketing(v **types.Marketing, value interface{}) error { +func awsAwsjson10_deserializeDocumentResourceSnapshotSummaryList(v *[]types.ResourceSnapshotSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3637,67 +8463,69 @@ func awsAwsjson10_deserializeDocumentMarketing(v **types.Marketing, value interf 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.Marketing + var cv []types.ResourceSnapshotSummary if *v == nil { - sv = &types.Marketing{} + cv = []types.ResourceSnapshotSummary{} } else { - sv = *v + cv = *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) - } + for _, value := range shape { + var col types.ResourceSnapshotSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentResourceSnapshotSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - case "Channels": - if err := awsAwsjson10_deserializeDocumentChannels(&sv.Channels, value); err != nil { - return err - } + } + *v = cv + return nil +} - 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) - } +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 + } - case "UseCases": - if err := awsAwsjson10_deserializeDocumentUseCases(&sv.UseCases, value); err != nil { - return err - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - default: - _, _ = key, 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 = sv + *v = cv return nil } -func awsAwsjson10_deserializeDocumentMonetaryValue(v **types.MonetaryValue, value interface{}) error { +func awsAwsjson10_deserializeDocumentSenderContact(v **types.SenderContact, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3710,31 +8538,58 @@ func awsAwsjson10_deserializeDocumentMonetaryValue(v **types.MonetaryValue, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.MonetaryValue + var sv *types.SenderContact if *v == nil { - sv = &types.MonetaryValue{} + sv = &types.SenderContact{} } else { sv = *v } for key, value := range shape { switch key { - case "Amount": + case "BusinessTitle": 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 JobTitle to be of type string, got %T instead", value) } - sv.Amount = ptr.String(jtv) + sv.BusinessTitle = ptr.String(jtv) } - case "CurrencyCode": + case "Email": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value) + return fmt.Errorf("expected SenderContactEmail to be of type string, got %T instead", value) } - sv.CurrencyCode = types.CurrencyCode(jtv) + 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: @@ -3746,7 +8601,7 @@ func awsAwsjson10_deserializeDocumentMonetaryValue(v **types.MonetaryValue, valu return nil } -func awsAwsjson10_deserializeDocumentNextStepsHistories(v *[]types.NextStepsHistory, value interface{}) error { +func awsAwsjson10_deserializeDocumentSenderContactList(v *[]types.SenderContact, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3759,17 +8614,17 @@ func awsAwsjson10_deserializeDocumentNextStepsHistories(v *[]types.NextStepsHist return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.NextStepsHistory + var cv []types.SenderContact if *v == nil { - cv = []types.NextStepsHistory{} + cv = []types.SenderContact{} } else { cv = *v } for _, value := range shape { - var col types.NextStepsHistory + var col types.SenderContact destAddr := &col - if err := awsAwsjson10_deserializeDocumentNextStepsHistory(&destAddr, value); err != nil { + if err := awsAwsjson10_deserializeDocumentSenderContact(&destAddr, value); err != nil { return err } col = *destAddr @@ -3780,7 +8635,7 @@ func awsAwsjson10_deserializeDocumentNextStepsHistories(v *[]types.NextStepsHist return nil } -func awsAwsjson10_deserializeDocumentNextStepsHistory(v **types.NextStepsHistory, value interface{}) error { +func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3793,35 +8648,22 @@ func awsAwsjson10_deserializeDocumentNextStepsHistory(v **types.NextStepsHistory return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.NextStepsHistory + var sv *types.ServiceQuotaExceededException if *v == nil { - sv = &types.NextStepsHistory{} + sv = &types.ServiceQuotaExceededException{} } 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": + 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.Value = ptr.String(jtv) + sv.Message = ptr.String(jtv) } default: @@ -3833,7 +8675,7 @@ func awsAwsjson10_deserializeDocumentNextStepsHistory(v **types.NextStepsHistory return nil } -func awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(v **types.OpportunityInvitationPayload, value interface{}) error { +func awsAwsjson10_deserializeDocumentSoftwareRevenue(v **types.SoftwareRevenue, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3846,32 +8688,44 @@ func awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(v **types.Oppo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.OpportunityInvitationPayload + var sv *types.SoftwareRevenue if *v == nil { - sv = &types.OpportunityInvitationPayload{} + sv = &types.SoftwareRevenue{} } else { sv = *v } for key, value := range shape { switch key { - case "Customer": - if err := awsAwsjson10_deserializeDocumentEngagementCustomer(&sv.Customer, value); err != nil { - return err + 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 "Project": - if err := awsAwsjson10_deserializeDocumentProjectDetails(&sv.Project, value); err != nil { - return err + 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 "ReceiverResponsibilities": - if err := awsAwsjson10_deserializeDocumentReceiverResponsibilityList(&sv.ReceiverResponsibilities, value); err != nil { - return err + 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 "SenderContacts": - if err := awsAwsjson10_deserializeDocumentSenderContactList(&sv.SenderContacts, value); err != nil { + case "Value": + if err := awsAwsjson10_deserializeDocumentMonetaryValue(&sv.Value, value); err != nil { return err } @@ -3884,41 +8738,7 @@ func awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(v **types.Oppo 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 { +func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3931,52 +8751,43 @@ func awsAwsjson10_deserializeDocumentOpportunitySummary(v **types.OpportunitySum return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.OpportunitySummary + var sv *types.SolutionBase if *v == nil { - sv = &types.OpportunitySummary{} + sv = &types.SolutionBase{} } else { sv = *v } for key, value := range shape { switch key { - case "Catalog": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected SolutionArn to be of type string, got %T instead", value) } - sv.Catalog = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "CreatedDate": + case "Catalog": 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 + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) } - sv.CreatedDate = ptr.Time(t) - } - - case "Customer": - if err := awsAwsjson10_deserializeDocumentCustomerSummary(&sv.Customer, value); err != nil { - return err + sv.Catalog = ptr.String(jtv) } - case "Id": + case "Category": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.Category = ptr.String(jtv) } - case "LastModifiedDate": + case "CreatedDate": if value != nil { jtv, ok := value.(string) if !ok { @@ -3986,35 +8797,34 @@ func awsAwsjson10_deserializeDocumentOpportunitySummary(v **types.OpportunitySum if err != nil { return err } - sv.LastModifiedDate = ptr.Time(t) - } - - case "LifeCycle": - if err := awsAwsjson10_deserializeDocumentLifeCycleSummary(&sv.LifeCycle, value); err != nil { - return err + sv.CreatedDate = ptr.Time(t) } - case "OpportunityType": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OpportunityType to be of type string, got %T instead", value) + return fmt.Errorf("expected SolutionIdentifier to be of type string, got %T instead", value) } - sv.OpportunityType = types.OpportunityType(jtv) + sv.Id = ptr.String(jtv) } - case "PartnerOpportunityIdentifier": + 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.PartnerOpportunityIdentifier = ptr.String(jtv) + sv.Name = ptr.String(jtv) } - case "Project": - if err := awsAwsjson10_deserializeDocumentProjectSummary(&sv.Project, value); err != nil { - return err + 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: @@ -4026,81 +8836,7 @@ func awsAwsjson10_deserializeDocumentOpportunitySummary(v **types.OpportunitySum 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 { +func awsAwsjson10_deserializeDocumentSolutionIdentifiers(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4113,21 +8849,21 @@ func awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(v *[]types.PrimaryNeedF return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.PrimaryNeedFromAws + var cv []string if *v == nil { - cv = []types.PrimaryNeedFromAws{} + cv = []string{} } else { cv = *v } for _, value := range shape { - var col types.PrimaryNeedFromAws + var col string if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PrimaryNeedFromAws to be of type string, got %T instead", value) + return fmt.Errorf("expected SolutionIdentifier to be of type string, got %T instead", value) } - col = types.PrimaryNeedFromAws(jtv) + col = jtv } cv = append(cv, col) @@ -4136,7 +8872,7 @@ func awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(v *[]types.PrimaryNeedF return nil } -func awsAwsjson10_deserializeDocumentProfileNextStepsHistories(v *[]types.ProfileNextStepsHistory, value interface{}) error { +func awsAwsjson10_deserializeDocumentSolutionList(v *[]types.SolutionBase, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4149,17 +8885,17 @@ func awsAwsjson10_deserializeDocumentProfileNextStepsHistories(v *[]types.Profil return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ProfileNextStepsHistory + var cv []types.SolutionBase if *v == nil { - cv = []types.ProfileNextStepsHistory{} + cv = []types.SolutionBase{} } else { cv = *v } for _, value := range shape { - var col types.ProfileNextStepsHistory + var col types.SolutionBase destAddr := &col - if err := awsAwsjson10_deserializeDocumentProfileNextStepsHistory(&destAddr, value); err != nil { + if err := awsAwsjson10_deserializeDocumentSolutionBase(&destAddr, value); err != nil { return err } col = *destAddr @@ -4170,7 +8906,7 @@ func awsAwsjson10_deserializeDocumentProfileNextStepsHistories(v *[]types.Profil return nil } -func awsAwsjson10_deserializeDocumentProfileNextStepsHistory(v **types.ProfileNextStepsHistory, value interface{}) error { +func awsAwsjson10_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4183,35 +8919,22 @@ func awsAwsjson10_deserializeDocumentProfileNextStepsHistory(v **types.ProfileNe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ProfileNextStepsHistory + var sv *types.ThrottlingException if *v == nil { - sv = &types.ProfileNextStepsHistory{} + sv = &types.ThrottlingException{} } 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": + 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.Value = ptr.String(jtv) + sv.Message = ptr.String(jtv) } default: @@ -4223,7 +8946,7 @@ func awsAwsjson10_deserializeDocumentProfileNextStepsHistory(v **types.ProfileNe return nil } -func awsAwsjson10_deserializeDocumentProject(v **types.Project, value interface{}) error { +func awsAwsjson10_deserializeDocumentUseCases(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4231,122 +8954,35 @@ func awsAwsjson10_deserializeDocumentProject(v **types.Project, value interface{ 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.Project + var cv []string if *v == nil { - sv = &types.Project{} + cv = []string{} } else { - sv = *v + cv = *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) + 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) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson10_deserializeDocumentProjectDetails(v **types.ProjectDetails, value interface{}) error { +func awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4359,45 +8995,36 @@ func awsAwsjson10_deserializeDocumentProjectDetails(v **types.ProjectDetails, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ProjectDetails + var sv *types.ValidationException if *v == nil { - sv = &types.ProjectDetails{} + sv = &types.ValidationException{} } 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 { + case "ErrorList": + if err := awsAwsjson10_deserializeDocumentValidationExceptionErrorList(&sv.ErrorList, value); err != nil { return err } - case "TargetCompletionDate": + case "message", "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Date to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.TargetCompletionDate = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "Title": + case "Reason": 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 ValidationExceptionReason to be of type string, got %T instead", value) } - sv.Title = ptr.String(jtv) + sv.Reason = types.ValidationExceptionReason(jtv) } default: @@ -4409,7 +9036,7 @@ func awsAwsjson10_deserializeDocumentProjectDetails(v **types.ProjectDetails, va return nil } -func awsAwsjson10_deserializeDocumentProjectSummary(v **types.ProjectSummary, value interface{}) error { +func awsAwsjson10_deserializeDocumentValidationExceptionError(v **types.ValidationExceptionError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4422,75 +9049,52 @@ func awsAwsjson10_deserializeDocumentProjectSummary(v **types.ProjectSummary, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ProjectSummary + var sv *types.ValidationExceptionError if *v == nil { - sv = &types.ProjectSummary{} + sv = &types.ValidationExceptionError{} } else { sv = *v } for key, value := range shape { switch key { - case "DeliveryModels": - if err := awsAwsjson10_deserializeDocumentDeliveryModels(&sv.DeliveryModels, value); err != nil { - return err + 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 "ExpectedCustomerSpend": - if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { - return err + 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) } - 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 + 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) } - mv = *destAddr - uv = &types.ReceiverMemberAccount{Value: mv} - break loop default: - uv = &types.UnknownUnionMember{Tag: key} - break loop + _, _ = key, value } } - *v = uv + *v = sv return nil } -func awsAwsjson10_deserializeDocumentReceiverResponsibilityList(v *[]types.ReceiverResponsibility, value interface{}) error { +func awsAwsjson10_deserializeDocumentValidationExceptionErrorList(v *[]types.ValidationExceptionError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4503,22 +9107,20 @@ func awsAwsjson10_deserializeDocumentReceiverResponsibilityList(v *[]types.Recei return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ReceiverResponsibility + var cv []types.ValidationExceptionError if *v == nil { - cv = []types.ReceiverResponsibility{} + cv = []types.ValidationExceptionError{} } 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) + 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) } @@ -4526,7 +9128,7 @@ func awsAwsjson10_deserializeDocumentReceiverResponsibilityList(v *[]types.Recei return nil } -func awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(v **types.RelatedEntityIdentifiers, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentCreateEngagementInvitationOutput(v **CreateEngagementInvitationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4539,28 +9141,31 @@ func awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(v **types.RelatedE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RelatedEntityIdentifiers + var sv *CreateEngagementInvitationOutput if *v == nil { - sv = &types.RelatedEntityIdentifiers{} + sv = &CreateEngagementInvitationOutput{} } 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 "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "Solutions": - if err := awsAwsjson10_deserializeDocumentSolutionIdentifiers(&sv.Solutions, value); err != nil { - return err + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) } default: @@ -4572,7 +9177,7 @@ func awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(v **types.RelatedE return nil } -func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentCreateEngagementOutput(v **CreateEngagementOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4585,22 +9190,31 @@ func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.Resourc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceNotFoundException + var sv *CreateEngagementOutput if *v == nil { - sv = &types.ResourceNotFoundException{} + sv = &CreateEngagementOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + 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 EngagementArn to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Arn = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) } default: @@ -4612,43 +9226,7 @@ func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.Resourc 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 { +func awsAwsjson10_deserializeOpDocumentCreateOpportunityOutput(v **CreateOpportunityOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4661,58 +9239,44 @@ func awsAwsjson10_deserializeDocumentSenderContact(v **types.SenderContact, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SenderContact + var sv *CreateOpportunityOutput if *v == nil { - sv = &types.SenderContact{} + sv = &CreateOpportunityOutput{} } 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": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SenderContactEmail to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) } - sv.Email = ptr.String(jtv) + sv.Id = ptr.String(jtv) } - case "FirstName": + case "LastModifiedDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Name to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime 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) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err } - sv.LastName = ptr.String(jtv) + sv.LastModifiedDate = ptr.Time(t) } - case "Phone": + case "PartnerOpportunityIdentifier": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PhoneNumber to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Phone = ptr.String(jtv) + sv.PartnerOpportunityIdentifier = ptr.String(jtv) } default: @@ -4724,7 +9288,7 @@ func awsAwsjson10_deserializeDocumentSenderContact(v **types.SenderContact, valu return nil } -func awsAwsjson10_deserializeDocumentSenderContactList(v *[]types.SenderContact, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentCreateResourceSnapshotJobOutput(v **CreateResourceSnapshotJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4732,33 +9296,48 @@ func awsAwsjson10_deserializeDocumentSenderContactList(v *[]types.SenderContact, 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.SenderContact + var sv *CreateResourceSnapshotJobOutput if *v == nil { - cv = []types.SenderContact{} + sv = &CreateResourceSnapshotJobOutput{} } else { - cv = *v + sv = *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) + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentCreateResourceSnapshotOutput(v **CreateResourceSnapshotOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4771,22 +9350,35 @@ func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.Ser return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ServiceQuotaExceededException + var sv *CreateResourceSnapshotOutput if *v == nil { - sv = &types.ServiceQuotaExceededException{} + sv = &CreateResourceSnapshotOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + 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 ResourceArn to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Arn = ptr.String(jtv) + } + + case "Revision": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ResourceSnapshotRevision to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Revision = ptr.Int32(int32(i64)) } default: @@ -4798,7 +9390,7 @@ func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.Ser return nil } -func awsAwsjson10_deserializeDocumentSoftwareRevenue(v **types.SoftwareRevenue, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAwsOpportunitySummaryOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4811,45 +9403,97 @@ func awsAwsjson10_deserializeDocumentSoftwareRevenue(v **types.SoftwareRevenue, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SoftwareRevenue + var sv *GetAwsOpportunitySummaryOutput if *v == nil { - sv = &types.SoftwareRevenue{} + sv = &GetAwsOpportunitySummaryOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DeliveryModel": + case "Catalog": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RevenueModel to be of type string, got %T instead", value) + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) } - sv.DeliveryModel = types.RevenueModel(jtv) + sv.Catalog = ptr.String(jtv) } - case "EffectiveDate": + 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 Date to be of type string, got %T instead", value) + 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.EffectiveDate = ptr.String(jtv) + sv.RelatedOpportunityId = ptr.String(jtv) } - case "ExpirationDate": + case "Visibility": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Date to be of type string, got %T instead", value) + return fmt.Errorf("expected Visibility 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 + sv.Visibility = types.Visibility(jtv) } default: @@ -4861,7 +9505,7 @@ func awsAwsjson10_deserializeDocumentSoftwareRevenue(v **types.SoftwareRevenue, return nil } -func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEngagementInvitationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4874,15 +9518,24 @@ func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SolutionBase + var sv *GetEngagementInvitationOutput if *v == nil { - sv = &types.SolutionBase{} + 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) @@ -4892,16 +9545,39 @@ func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, value sv.Catalog = ptr.String(jtv) } - case "Category": + case "EngagementDescription": 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 EngagementDescription to be of type string, got %T instead", value) } - sv.Category = ptr.String(jtv) + sv.EngagementDescription = ptr.String(jtv) } - case "CreatedDate": + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = 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 "ExistingMembers": + if err := awsAwsjson10_deserializeDocumentEngagementMemberSummaries(&sv.ExistingMembers, value); err != nil { + return err + } + + case "ExpirationDate": if value != nil { jtv, ok := value.(string) if !ok { @@ -4911,116 +9587,105 @@ func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, value if err != nil { return err } - sv.CreatedDate = ptr.Time(t) + sv.ExpirationDate = 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) + return fmt.Errorf("expected EngagementInvitationArnOrIdentifier to be of type string, got %T instead", value) } sv.Id = ptr.String(jtv) } - case "Name": + case "InvitationDate": 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 DateTime to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.InvitationDate = ptr.Time(t) } - case "Status": + case "InvitationMessage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SolutionStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected InvitationMessage to be of type string, got %T instead", value) } - sv.Status = types.SolutionStatus(jtv) + sv.InvitationMessage = ptr.String(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 - } + case "Payload": + if err := awsAwsjson10_deserializeDocumentPayload(&sv.Payload, value); err != nil { + return err + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + 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) + } - var cv []string - if *v == nil { - cv = []string{} - } else { - cv = *v - } + case "Receiver": + if err := awsAwsjson10_deserializeDocumentReceiver(&sv.Receiver, value); err != nil { + return err + } - 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) + 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) } - col = jtv - } - cv = append(cv, col) - } - *v = cv - return nil -} + case "SenderAwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.SenderAwsAccountId = ptr.String(jtv) + } -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 - } + 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) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + 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) + } - var cv []types.SolutionBase - if *v == nil { - cv = []types.SolutionBase{} - } else { - cv = *v - } + default: + _, _ = key, value - 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 + *v = sv return nil } -func awsAwsjson10_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetEngagementOutput(v **GetEngagementOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5033,70 +9698,101 @@ func awsAwsjson10_deserializeDocumentThrottlingException(v **types.ThrottlingExc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ThrottlingException + var sv *GetEngagementOutput if *v == nil { - sv = &types.ThrottlingException{} + sv = &GetEngagementOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + 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 EngagementArn to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - default: - _, _ = key, value + case "Contexts": + if err := awsAwsjson10_deserializeDocumentEngagementContexts(&sv.Contexts, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "CreatedAt": + 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.CreatedAt = ptr.Time(t) + } -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 - } + case "CreatedBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.CreatedBy = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "MemberCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MemberCount = ptr.Int32(int32(i64)) + } + + case "Title": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + } + sv.Title = ptr.String(jtv) + } - var cv []string - if *v == nil { - cv = []string{} - } else { - cv = *v - } + default: + _, _ = key, value - 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 + *v = sv return nil } -func awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(v **GetOpportunityOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5109,94 +9805,133 @@ func awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationExc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ValidationException + var sv *GetOpportunityOutput if *v == nil { - sv = &types.ValidationException{} + sv = &GetOpportunityOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ErrorList": - if err := awsAwsjson10_deserializeDocumentValidationExceptionErrorList(&sv.ErrorList, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "message", "Message": + case "Catalog": 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 CatalogIdentifier to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Catalog = ptr.String(jtv) } - case "Reason": + case "CreatedDate": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ValidationExceptionReason to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.Reason = types.ValidationExceptionReason(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedDate = ptr.Time(t) } - default: - _, _ = key, value + case "Customer": + if err := awsAwsjson10_deserializeDocumentCustomer(&sv.Customer, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + 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) + } -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 - } + 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) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "LifeCycle": + if err := awsAwsjson10_deserializeDocumentLifeCycle(&sv.LifeCycle, value); err != nil { + return err + } - var sv *types.ValidationExceptionError - if *v == nil { - sv = &types.ValidationExceptionError{} - } else { - sv = *v - } + case "Marketing": + if err := awsAwsjson10_deserializeDocumentMarketing(&sv.Marketing, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Code": + case "NationalSecurity": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ValidationExceptionErrorCode to be of type string, got %T instead", value) + return fmt.Errorf("expected NationalSecurity to be of type string, got %T instead", value) } - sv.Code = types.ValidationExceptionErrorCode(jtv) + sv.NationalSecurity = types.NationalSecurity(jtv) } - case "FieldName": + 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 String to be of type string, got %T instead", value) + return fmt.Errorf("expected OpportunityType to be of type string, got %T instead", value) } - sv.FieldName = ptr.String(jtv) + sv.OpportunityType = types.OpportunityType(jtv) } - case "Message": + 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.Message = ptr.String(jtv) + 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: @@ -5208,7 +9943,7 @@ func awsAwsjson10_deserializeDocumentValidationExceptionError(v **types.Validati return nil } -func awsAwsjson10_deserializeDocumentValidationExceptionErrorList(v *[]types.ValidationExceptionError, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetResourceSnapshotJobOutput(v **GetResourceSnapshotJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5216,83 +9951,134 @@ func awsAwsjson10_deserializeDocumentValidationExceptionErrorList(v *[]types.Val 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.ValidationExceptionError + var sv *GetResourceSnapshotJobOutput if *v == nil { - cv = []types.ValidationExceptionError{} + sv = &GetResourceSnapshotJobOutput{} } else { - cv = *v + sv = *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) + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } - } - *v = cv - return nil -} + 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) + } -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 - } + case "CreatedAt": + 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.CreatedAt = ptr.Time(t) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = ptr.String(jtv) + } - var sv *CreateOpportunityOutput - if *v == nil { - sv = &CreateOpportunityOutput{} - } else { - sv = *v - } + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LastFailure": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.LastFailure = ptr.String(jtv) + } + + case "LastSuccessfulExecutionDate": + 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.LastSuccessfulExecutionDate = ptr.Time(t) + } + + case "ResourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceArn to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + case "ResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceIdentifier to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "Id": + case "ResourceSnapshotTemplateName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceTemplateName to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.ResourceSnapshotTemplateName = ptr.String(jtv) } - case "LastModifiedDate": + case "ResourceType": 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 + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) } - sv.LastModifiedDate = ptr.Time(t) + sv.ResourceType = types.ResourceType(jtv) } - case "PartnerOpportunityIdentifier": + 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) + return fmt.Errorf("expected ResourceSnapshotJobStatus to be of type string, got %T instead", value) } - sv.PartnerOpportunityIdentifier = ptr.String(jtv) + sv.Status = types.ResourceSnapshotJobStatus(jtv) } default: @@ -5304,7 +10090,7 @@ func awsAwsjson10_deserializeOpDocumentCreateOpportunityOutput(v **CreateOpportu return nil } -func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAwsOpportunitySummaryOutput, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetResourceSnapshotOutput(v **GetResourceSnapshotOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5317,15 +10103,24 @@ func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetAwsOpportunitySummaryOutput + var sv *GetResourceSnapshotOutput if *v == nil { - sv = &GetAwsOpportunitySummaryOutput{} + sv = &GetResourceSnapshotOutput{} } 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 ResourceArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + case "Catalog": if value != nil { jtv, ok := value.(string) @@ -5335,79 +10130,80 @@ func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAws 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": + case "CreatedAt": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SalesInvolvementType to be of type string, got %T instead", value) + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) } - sv.InvolvementType = types.SalesInvolvementType(jtv) + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) } - case "InvolvementTypeChangeReason": + case "CreatedBy": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected InvolvementTypeChangeReason to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) } - sv.InvolvementTypeChangeReason = types.InvolvementTypeChangeReason(jtv) + sv.CreatedBy = ptr.String(jtv) } - case "LifeCycle": - if err := awsAwsjson10_deserializeDocumentAwsOpportunityLifeCycle(&sv.LifeCycle, value); err != nil { - return err + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = ptr.String(jtv) } - case "OpportunityTeam": - if err := awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(&sv.OpportunityTeam, value); err != nil { + case "Payload": + if err := awsAwsjson10_deserializeDocumentResourceSnapshotPayload(&sv.Payload, value); err != nil { return err } - case "Origin": + case "ResourceId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OpportunityOrigin to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceIdentifier 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 + sv.ResourceId = ptr.String(jtv) } - case "RelatedEntityIds": - if err := awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(&sv.RelatedEntityIds, value); err != nil { - return err + case "ResourceSnapshotTemplateName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceTemplateName to be of type string, got %T instead", value) + } + sv.ResourceSnapshotTemplateName = ptr.String(jtv) } - case "RelatedOpportunityId": + case "ResourceType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) } - sv.RelatedOpportunityId = ptr.String(jtv) + sv.ResourceType = types.ResourceType(jtv) } - case "Visibility": + case "Revision": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotRevision to be json.Number, got %T instead", value) } - sv.Visibility = types.Visibility(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Revision = ptr.Int32(int32(i64)) } default: @@ -5419,7 +10215,7 @@ func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAws return nil } -func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEngagementInvitationOutput, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentGetSellingSystemSettingsOutput(v **GetSellingSystemSettingsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5432,24 +10228,15 @@ func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEnga return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetEngagementInvitationOutput + var sv *GetSellingSystemSettingsOutput if *v == nil { - sv = &GetEngagementInvitationOutput{} + sv = &GetSellingSystemSettingsOutput{} } 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) @@ -5459,103 +10246,193 @@ func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEnga sv.Catalog = ptr.String(jtv) } - case "EngagementTitle": + case "ResourceSnapshotJobRoleArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceSnapshotJobRoleArn to be of type string, got %T instead", value) } - sv.EngagementTitle = ptr.String(jtv) + sv.ResourceSnapshotJobRoleArn = ptr.String(jtv) } - case "ExpirationDate": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListEngagementByAcceptingInvitationTasksOutput(v **ListEngagementByAcceptingInvitationTasksOutput, 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 *ListEngagementByAcceptingInvitationTasksOutput + if *v == nil { + sv = &ListEngagementByAcceptingInvitationTasksOutput{} + } 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 DateTime to be of type string, got %T instead", value) - } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.ExpirationDate = ptr.Time(t) + sv.NextToken = ptr.String(jtv) } - 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 "TaskSummaries": + if err := awsAwsjson10_deserializeDocumentListEngagementByAcceptingInvitationTaskSummaries(&sv.TaskSummaries, value); err != nil { + return err } - case "InvitationDate": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListEngagementFromOpportunityTasksOutput(v **ListEngagementFromOpportunityTasksOutput, 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 *ListEngagementFromOpportunityTasksOutput + if *v == nil { + sv = &ListEngagementFromOpportunityTasksOutput{} + } 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 DateTime to be of type string, got %T instead", value) - } - t, err := smithytime.ParseDateTime(jtv) - if err != nil { - return err + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.InvitationDate = ptr.Time(t) + sv.NextToken = ptr.String(jtv) } - case "Payload": - if err := awsAwsjson10_deserializeDocumentPayload(&sv.Payload, value); err != nil { + case "TaskSummaries": + if err := awsAwsjson10_deserializeDocumentListEngagementFromOpportunityTaskSummaries(&sv.TaskSummaries, 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) - } + default: + _, _ = key, value - case "Receiver": - if err := awsAwsjson10_deserializeDocumentReceiver(&sv.Receiver, value); err != nil { + } + } + *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 "RejectionReason": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RejectionReasonString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.RejectionReason = ptr.String(jtv) + sv.NextToken = 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) + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListEngagementMembersOutput(v **ListEngagementMembersOutput, 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 *ListEngagementMembersOutput + if *v == nil { + sv = &ListEngagementMembersOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EngagementMemberList": + if err := awsAwsjson10_deserializeDocumentEngagementMembers(&sv.EngagementMemberList, value); err != nil { + return err } - case "SenderCompanyName": + 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.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) + sv.NextToken = ptr.String(jtv) } default: @@ -5567,7 +10444,7 @@ func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEnga return nil } -func awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(v **GetOpportunityOutput, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentListEngagementResourceAssociationsOutput(v **ListEngagementResourceAssociationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5580,123 +10457,116 @@ func awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(v **GetOpportunityOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetOpportunityOutput + var sv *ListEngagementResourceAssociationsOutput if *v == nil { - sv = &GetOpportunityOutput{} + sv = &ListEngagementResourceAssociationsOutput{} } 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 "EngagementResourceAssociationSummaries": + if err := awsAwsjson10_deserializeDocumentEngagementResourceAssociationSummaryList(&sv.EngagementResourceAssociationSummaries, value); err != nil { + return err } - case "CreatedDate": + case "NextToken": 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 + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.CreatedDate = ptr.Time(t) + sv.NextToken = ptr.String(jtv) } - case "Customer": - if err := awsAwsjson10_deserializeDocumentCustomer(&sv.Customer, value); err != nil { - return err - } + default: + _, _ = key, value - 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) - } + } + } + *v = sv + return nil +} - 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) - } +func awsAwsjson10_deserializeOpDocumentListEngagementsOutput(v **ListEngagementsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "LifeCycle": - if err := awsAwsjson10_deserializeDocumentLifeCycle(&sv.LifeCycle, value); err != nil { - return err - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "Marketing": - if err := awsAwsjson10_deserializeDocumentMarketing(&sv.Marketing, value); err != nil { + var sv *ListEngagementsOutput + if *v == nil { + sv = &ListEngagementsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EngagementSummaryList": + if err := awsAwsjson10_deserializeDocumentEngagementSummaryList(&sv.EngagementSummaryList, value); err != nil { return err } - case "NationalSecurity": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NationalSecurity to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.NationalSecurity = types.NationalSecurity(jtv) + sv.NextToken = ptr.String(jtv) } - case "OpportunityTeam": - if err := awsAwsjson10_deserializeDocumentPartnerOpportunityTeamMembersList(&sv.OpportunityTeam, value); err != nil { - return err - } + default: + _, _ = key, value - 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) - } + } + } + *v = sv + return nil +} - case "PartnerOpportunityIdentifier": +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.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 + sv.NextToken = ptr.String(jtv) } - case "SoftwareRevenue": - if err := awsAwsjson10_deserializeDocumentSoftwareRevenue(&sv.SoftwareRevenue, value); err != nil { + case "OpportunitySummaries": + if err := awsAwsjson10_deserializeDocumentOpportunitySummaries(&sv.OpportunitySummaries, value); err != nil { return err } @@ -5709,7 +10579,7 @@ func awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(v **GetOpportunityOu return nil } -func awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(v **ListEngagementInvitationsOutput, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentListResourceSnapshotJobsOutput(v **ListResourceSnapshotJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5722,20 +10592,15 @@ func awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(v **ListE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListEngagementInvitationsOutput + var sv *ListResourceSnapshotJobsOutput if *v == nil { - sv = &ListEngagementInvitationsOutput{} + sv = &ListResourceSnapshotJobsOutput{} } 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) @@ -5745,6 +10610,11 @@ func awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(v **ListE sv.NextToken = ptr.String(jtv) } + case "ResourceSnapshotJobSummaries": + if err := awsAwsjson10_deserializeDocumentResourceSnapshotJobSummaryList(&sv.ResourceSnapshotJobSummaries, value); err != nil { + return err + } + default: _, _ = key, value @@ -5754,7 +10624,7 @@ func awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(v **ListE return nil } -func awsAwsjson10_deserializeOpDocumentListOpportunitiesOutput(v **ListOpportunitiesOutput, value interface{}) error { +func awsAwsjson10_deserializeOpDocumentListResourceSnapshotsOutput(v **ListResourceSnapshotsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5767,9 +10637,9 @@ func awsAwsjson10_deserializeOpDocumentListOpportunitiesOutput(v **ListOpportuni return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListOpportunitiesOutput + var sv *ListResourceSnapshotsOutput if *v == nil { - sv = &ListOpportunitiesOutput{} + sv = &ListResourceSnapshotsOutput{} } else { sv = *v } @@ -5785,8 +10655,8 @@ func awsAwsjson10_deserializeOpDocumentListOpportunitiesOutput(v **ListOpportuni sv.NextToken = ptr.String(jtv) } - case "OpportunitySummaries": - if err := awsAwsjson10_deserializeDocumentOpportunitySummaries(&sv.OpportunitySummaries, value); err != nil { + case "ResourceSnapshotSummaries": + if err := awsAwsjson10_deserializeDocumentResourceSnapshotSummaryList(&sv.ResourceSnapshotSummaries, value); err != nil { return err } @@ -5844,6 +10714,55 @@ func awsAwsjson10_deserializeOpDocumentListSolutionsOutput(v **ListSolutionsOutp return nil } +func awsAwsjson10_deserializeOpDocumentPutSellingSystemSettingsOutput(v **PutSellingSystemSettingsOutput, 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 *PutSellingSystemSettingsOutput + if *v == nil { + sv = &PutSellingSystemSettingsOutput{} + } 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 "ResourceSnapshotJobRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobRoleArn to be of type string, got %T instead", value) + } + sv.ResourceSnapshotJobRoleArn = ptr.String(jtv) + } + + 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) @@ -5902,6 +10821,15 @@ func awsAwsjson10_deserializeOpDocumentStartEngagementByAcceptingInvitationTaskO sv.ReasonCode = types.ReasonCode(jtv) } + case "ResourceSnapshotJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) + } + sv.ResourceSnapshotJobId = ptr.String(jtv) + } + case "StartTime": if value != nil { jtv, ok := value.(string) @@ -5973,6 +10901,24 @@ func awsAwsjson10_deserializeOpDocumentStartEngagementFromOpportunityTaskOutput( for key, value := range shape { switch key { + case "EngagementId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementIdentifier to be of type string, got %T instead", value) + } + sv.EngagementId = ptr.String(jtv) + } + + 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) @@ -6000,6 +10946,15 @@ func awsAwsjson10_deserializeOpDocumentStartEngagementFromOpportunityTaskOutput( sv.ReasonCode = types.ReasonCode(jtv) } + case "ResourceSnapshotJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSnapshotJobIdentifier to be of type string, got %T instead", value) + } + sv.ResourceSnapshotJobId = ptr.String(jtv) + } + case "StartTime": if value != nil { jtv, ok := value.(string) diff --git a/service/partnercentralselling/generated.json b/service/partnercentralselling/generated.json index df8b69c7af9..62f6f22cc93 100644 --- a/service/partnercentralselling/generated.json +++ b/service/partnercentralselling/generated.json @@ -8,19 +8,40 @@ "files": [ "api_client.go", "api_client_test.go", + "api_op_AcceptEngagementInvitation.go", "api_op_AssignOpportunity.go", "api_op_AssociateOpportunity.go", + "api_op_CreateEngagement.go", + "api_op_CreateEngagementInvitation.go", "api_op_CreateOpportunity.go", + "api_op_CreateResourceSnapshot.go", + "api_op_CreateResourceSnapshotJob.go", + "api_op_DeleteResourceSnapshotJob.go", "api_op_DisassociateOpportunity.go", "api_op_GetAwsOpportunitySummary.go", + "api_op_GetEngagement.go", "api_op_GetEngagementInvitation.go", "api_op_GetOpportunity.go", + "api_op_GetResourceSnapshot.go", + "api_op_GetResourceSnapshotJob.go", + "api_op_GetSellingSystemSettings.go", + "api_op_ListEngagementByAcceptingInvitationTasks.go", + "api_op_ListEngagementFromOpportunityTasks.go", "api_op_ListEngagementInvitations.go", + "api_op_ListEngagementMembers.go", + "api_op_ListEngagementResourceAssociations.go", + "api_op_ListEngagements.go", "api_op_ListOpportunities.go", + "api_op_ListResourceSnapshotJobs.go", + "api_op_ListResourceSnapshots.go", "api_op_ListSolutions.go", + "api_op_PutSellingSystemSettings.go", "api_op_RejectEngagementInvitation.go", "api_op_StartEngagementByAcceptingInvitationTask.go", "api_op_StartEngagementFromOpportunityTask.go", + "api_op_StartResourceSnapshotJob.go", + "api_op_StopResourceSnapshotJob.go", + "api_op_SubmitOpportunity.go", "api_op_UpdateOpportunity.go", "auth.go", "deserializers.go", diff --git a/service/partnercentralselling/serializers.go b/service/partnercentralselling/serializers.go index 24b19718ad6..825a9929057 100644 --- a/service/partnercentralselling/serializers.go +++ b/service/partnercentralselling/serializers.go @@ -17,6 +17,67 @@ import ( "path" ) +type awsAwsjson10_serializeOpAcceptEngagementInvitation struct { +} + +func (*awsAwsjson10_serializeOpAcceptEngagementInvitation) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpAcceptEngagementInvitation) 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.(*AcceptEngagementInvitationInput) + _ = 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.AcceptEngagementInvitation") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentAcceptEngagementInvitationInput(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_serializeOpAssignOpportunity struct { } @@ -139,14 +200,14 @@ func (m *awsAwsjson10_serializeOpAssociateOpportunity) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpCreateOpportunity struct { +type awsAwsjson10_serializeOpCreateEngagement struct { } -func (*awsAwsjson10_serializeOpCreateOpportunity) ID() string { +func (*awsAwsjson10_serializeOpCreateEngagement) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpCreateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpCreateEngagement) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -158,7 +219,7 @@ func (m *awsAwsjson10_serializeOpCreateOpportunity) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*CreateOpportunityInput) + input, ok := in.Parameters.(*CreateEngagementInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -179,10 +240,10 @@ func (m *awsAwsjson10_serializeOpCreateOpportunity) HandleSerialize(ctx context. 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateEngagement") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentCreateOpportunityInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentCreateEngagementInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -200,14 +261,14 @@ func (m *awsAwsjson10_serializeOpCreateOpportunity) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpDisassociateOpportunity struct { +type awsAwsjson10_serializeOpCreateEngagementInvitation struct { } -func (*awsAwsjson10_serializeOpDisassociateOpportunity) ID() string { +func (*awsAwsjson10_serializeOpCreateEngagementInvitation) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpDisassociateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpCreateEngagementInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -219,7 +280,7 @@ func (m *awsAwsjson10_serializeOpDisassociateOpportunity) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DisassociateOpportunityInput) + input, ok := in.Parameters.(*CreateEngagementInvitationInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -240,10 +301,10 @@ func (m *awsAwsjson10_serializeOpDisassociateOpportunity) HandleSerialize(ctx co 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateEngagementInvitation") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentCreateEngagementInvitationInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -261,14 +322,14 @@ func (m *awsAwsjson10_serializeOpDisassociateOpportunity) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpGetAwsOpportunitySummary struct { +type awsAwsjson10_serializeOpCreateOpportunity struct { } -func (*awsAwsjson10_serializeOpGetAwsOpportunitySummary) ID() string { +func (*awsAwsjson10_serializeOpCreateOpportunity) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpGetAwsOpportunitySummary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +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") @@ -280,7 +341,7 @@ func (m *awsAwsjson10_serializeOpGetAwsOpportunitySummary) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetAwsOpportunitySummaryInput) + input, ok := in.Parameters.(*CreateOpportunityInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -301,10 +362,10 @@ func (m *awsAwsjson10_serializeOpGetAwsOpportunitySummary) HandleSerialize(ctx c 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateOpportunity") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentCreateOpportunityInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -322,14 +383,14 @@ func (m *awsAwsjson10_serializeOpGetAwsOpportunitySummary) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpGetEngagementInvitation struct { +type awsAwsjson10_serializeOpCreateResourceSnapshot struct { } -func (*awsAwsjson10_serializeOpGetEngagementInvitation) ID() string { +func (*awsAwsjson10_serializeOpCreateResourceSnapshot) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpGetEngagementInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpCreateResourceSnapshot) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -341,7 +402,7 @@ func (m *awsAwsjson10_serializeOpGetEngagementInvitation) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetEngagementInvitationInput) + input, ok := in.Parameters.(*CreateResourceSnapshotInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -362,10 +423,10 @@ func (m *awsAwsjson10_serializeOpGetEngagementInvitation) HandleSerialize(ctx co 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateResourceSnapshot") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentCreateResourceSnapshotInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -383,14 +444,14 @@ func (m *awsAwsjson10_serializeOpGetEngagementInvitation) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpGetOpportunity struct { +type awsAwsjson10_serializeOpCreateResourceSnapshotJob struct { } -func (*awsAwsjson10_serializeOpGetOpportunity) ID() string { +func (*awsAwsjson10_serializeOpCreateResourceSnapshotJob) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpGetOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpCreateResourceSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -402,7 +463,7 @@ func (m *awsAwsjson10_serializeOpGetOpportunity) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetOpportunityInput) + input, ok := in.Parameters.(*CreateResourceSnapshotJobInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -423,10 +484,10 @@ func (m *awsAwsjson10_serializeOpGetOpportunity) HandleSerialize(ctx context.Con 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateResourceSnapshotJob") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentGetOpportunityInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentCreateResourceSnapshotJobInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -444,14 +505,14 @@ func (m *awsAwsjson10_serializeOpGetOpportunity) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpListEngagementInvitations struct { +type awsAwsjson10_serializeOpDeleteResourceSnapshotJob struct { } -func (*awsAwsjson10_serializeOpListEngagementInvitations) ID() string { +func (*awsAwsjson10_serializeOpDeleteResourceSnapshotJob) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpListEngagementInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpDeleteResourceSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -463,7 +524,7 @@ func (m *awsAwsjson10_serializeOpListEngagementInvitations) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListEngagementInvitationsInput) + input, ok := in.Parameters.(*DeleteResourceSnapshotJobInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -484,10 +545,10 @@ func (m *awsAwsjson10_serializeOpListEngagementInvitations) HandleSerialize(ctx 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.DeleteResourceSnapshotJob") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentDeleteResourceSnapshotJobInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -505,14 +566,14 @@ func (m *awsAwsjson10_serializeOpListEngagementInvitations) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpListOpportunities struct { +type awsAwsjson10_serializeOpDisassociateOpportunity struct { } -func (*awsAwsjson10_serializeOpListOpportunities) ID() string { +func (*awsAwsjson10_serializeOpDisassociateOpportunity) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpListOpportunities) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +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") @@ -524,7 +585,7 @@ func (m *awsAwsjson10_serializeOpListOpportunities) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListOpportunitiesInput) + input, ok := in.Parameters.(*DisassociateOpportunityInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -545,10 +606,10 @@ func (m *awsAwsjson10_serializeOpListOpportunities) HandleSerialize(ctx context. 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.DisassociateOpportunity") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentListOpportunitiesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -566,14 +627,14 @@ func (m *awsAwsjson10_serializeOpListOpportunities) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpListSolutions struct { +type awsAwsjson10_serializeOpGetAwsOpportunitySummary struct { } -func (*awsAwsjson10_serializeOpListSolutions) ID() string { +func (*awsAwsjson10_serializeOpGetAwsOpportunitySummary) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpListSolutions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +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") @@ -585,7 +646,7 @@ func (m *awsAwsjson10_serializeOpListSolutions) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListSolutionsInput) + input, ok := in.Parameters.(*GetAwsOpportunitySummaryInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -606,10 +667,10 @@ func (m *awsAwsjson10_serializeOpListSolutions) HandleSerialize(ctx context.Cont 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetAwsOpportunitySummary") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentListSolutionsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -627,14 +688,14 @@ func (m *awsAwsjson10_serializeOpListSolutions) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpRejectEngagementInvitation struct { +type awsAwsjson10_serializeOpGetEngagement struct { } -func (*awsAwsjson10_serializeOpRejectEngagementInvitation) ID() string { +func (*awsAwsjson10_serializeOpGetEngagement) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpRejectEngagementInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpGetEngagement) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -646,7 +707,7 @@ func (m *awsAwsjson10_serializeOpRejectEngagementInvitation) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*RejectEngagementInvitationInput) + input, ok := in.Parameters.(*GetEngagementInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -667,10 +728,10 @@ func (m *awsAwsjson10_serializeOpRejectEngagementInvitation) HandleSerialize(ctx 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetEngagement") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentRejectEngagementInvitationInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentGetEngagementInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -688,14 +749,14 @@ func (m *awsAwsjson10_serializeOpRejectEngagementInvitation) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask struct { +type awsAwsjson10_serializeOpGetEngagementInvitation struct { } -func (*awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) ID() string { +func (*awsAwsjson10_serializeOpGetEngagementInvitation) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +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") @@ -707,7 +768,7 @@ func (m *awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) Handl return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartEngagementByAcceptingInvitationTaskInput) + input, ok := in.Parameters.(*GetEngagementInvitationInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -728,10 +789,10 @@ func (m *awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) Handl 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetEngagementInvitation") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentStartEngagementByAcceptingInvitationTaskInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -749,14 +810,14 @@ func (m *awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) Handl return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpStartEngagementFromOpportunityTask struct { +type awsAwsjson10_serializeOpGetOpportunity struct { } -func (*awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) ID() string { +func (*awsAwsjson10_serializeOpGetOpportunity) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +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") @@ -768,7 +829,7 @@ func (m *awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) HandleSeria return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartEngagementFromOpportunityTaskInput) + input, ok := in.Parameters.(*GetOpportunityInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -789,10 +850,10 @@ func (m *awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) HandleSeria 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetOpportunity") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentStartEngagementFromOpportunityTaskInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentGetOpportunityInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -810,14 +871,14 @@ func (m *awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) HandleSeria return next.HandleSerialize(ctx, in) } -type awsAwsjson10_serializeOpUpdateOpportunity struct { +type awsAwsjson10_serializeOpGetResourceSnapshot struct { } -func (*awsAwsjson10_serializeOpUpdateOpportunity) ID() string { +func (*awsAwsjson10_serializeOpGetResourceSnapshot) ID() string { return "OperationSerializer" } -func (m *awsAwsjson10_serializeOpUpdateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson10_serializeOpGetResourceSnapshot) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -829,7 +890,7 @@ func (m *awsAwsjson10_serializeOpUpdateOpportunity) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateOpportunityInput) + input, ok := in.Parameters.(*GetResourceSnapshotInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -850,10 +911,10 @@ func (m *awsAwsjson10_serializeOpUpdateOpportunity) HandleSerialize(ctx context. 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") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetResourceSnapshot") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson10_serializeOpDocumentUpdateOpportunityInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson10_serializeOpDocumentGetResourceSnapshotInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -870,138 +931,2191 @@ func (m *awsAwsjson10_serializeOpUpdateOpportunity) HandleSerialize(ctx context. 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 - } - } +type awsAwsjson10_serializeOpGetResourceSnapshotJob struct { +} - if v.AwsAccountId != nil { - ok := object.Key("AwsAccountId") - ok.String(*v.AwsAccountId) +func (*awsAwsjson10_serializeOpGetResourceSnapshotJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetResourceSnapshotJob) 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.CompanyName != nil { - ok := object.Key("CompanyName") - ok.String(*v.CompanyName) + input, ok := in.Parameters.(*GetResourceSnapshotJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - if v.Duns != nil { - ok := object.Key("Duns") - ok.String(*v.Duns) + 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.GetResourceSnapshotJob") - if len(v.Industry) > 0 { - ok := object.Key("Industry") - ok.String(string(v.Industry)) + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetResourceSnapshotJobInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if v.OtherIndustry != nil { - ok := object.Key("OtherIndustry") - ok.String(*v.OtherIndustry) + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if v.WebsiteUrl != nil { - ok := object.Key("WebsiteUrl") - ok.String(*v.WebsiteUrl) + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + in.Request = request - return nil + endTimer() + span.End() + return next.HandleSerialize(ctx, in) } -func awsAwsjson10_serializeDocumentAddress(v *types.Address, value smithyjson.Value) error { - object := value.Object() - defer object.Close() +type awsAwsjson10_serializeOpGetSellingSystemSettings struct { +} - if v.City != nil { - ok := object.Key("City") - ok.String(*v.City) - } +func (*awsAwsjson10_serializeOpGetSellingSystemSettings) ID() string { + return "OperationSerializer" +} - if len(v.CountryCode) > 0 { - ok := object.Key("CountryCode") - ok.String(string(v.CountryCode)) +func (m *awsAwsjson10_serializeOpGetSellingSystemSettings) 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.PostalCode != nil { - ok := object.Key("PostalCode") - ok.String(*v.PostalCode) + input, ok := in.Parameters.(*GetSellingSystemSettingsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - if v.StateOrRegion != nil { - ok := object.Key("StateOrRegion") - ok.String(*v.StateOrRegion) + 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.GetSellingSystemSettings") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetSellingSystemSettingsInput(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_serializeOpListEngagementByAcceptingInvitationTasks struct { +} + +func (*awsAwsjson10_serializeOpListEngagementByAcceptingInvitationTasks) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagementByAcceptingInvitationTasks) 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.(*ListEngagementByAcceptingInvitationTasksInput) + _ = 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.ListEngagementByAcceptingInvitationTasks") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementByAcceptingInvitationTasksInput(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_serializeOpListEngagementFromOpportunityTasks struct { +} + +func (*awsAwsjson10_serializeOpListEngagementFromOpportunityTasks) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagementFromOpportunityTasks) 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.(*ListEngagementFromOpportunityTasksInput) + _ = 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.ListEngagementFromOpportunityTasks") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementFromOpportunityTasksInput(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_serializeOpListEngagementMembers struct { +} + +func (*awsAwsjson10_serializeOpListEngagementMembers) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagementMembers) 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.(*ListEngagementMembersInput) + _ = 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.ListEngagementMembers") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementMembersInput(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_serializeOpListEngagementResourceAssociations struct { +} + +func (*awsAwsjson10_serializeOpListEngagementResourceAssociations) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagementResourceAssociations) 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.(*ListEngagementResourceAssociationsInput) + _ = 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.ListEngagementResourceAssociations") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementResourceAssociationsInput(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_serializeOpListEngagements struct { +} + +func (*awsAwsjson10_serializeOpListEngagements) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagements) 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.(*ListEngagementsInput) + _ = 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.ListEngagements") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementsInput(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_serializeOpListResourceSnapshotJobs struct { +} + +func (*awsAwsjson10_serializeOpListResourceSnapshotJobs) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListResourceSnapshotJobs) 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.(*ListResourceSnapshotJobsInput) + _ = 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.ListResourceSnapshotJobs") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListResourceSnapshotJobsInput(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_serializeOpListResourceSnapshots struct { +} + +func (*awsAwsjson10_serializeOpListResourceSnapshots) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListResourceSnapshots) 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.(*ListResourceSnapshotsInput) + _ = 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.ListResourceSnapshots") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListResourceSnapshotsInput(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_serializeOpPutSellingSystemSettings struct { +} + +func (*awsAwsjson10_serializeOpPutSellingSystemSettings) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpPutSellingSystemSettings) 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.(*PutSellingSystemSettingsInput) + _ = 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.PutSellingSystemSettings") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentPutSellingSystemSettingsInput(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_serializeOpStartResourceSnapshotJob struct { +} + +func (*awsAwsjson10_serializeOpStartResourceSnapshotJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpStartResourceSnapshotJob) 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.(*StartResourceSnapshotJobInput) + _ = 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.StartResourceSnapshotJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentStartResourceSnapshotJobInput(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_serializeOpStopResourceSnapshotJob struct { +} + +func (*awsAwsjson10_serializeOpStopResourceSnapshotJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpStopResourceSnapshotJob) 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.(*StopResourceSnapshotJobInput) + _ = 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.StopResourceSnapshotJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentStopResourceSnapshotJobInput(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_serializeOpSubmitOpportunity struct { +} + +func (*awsAwsjson10_serializeOpSubmitOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpSubmitOpportunity) 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.(*SubmitOpportunityInput) + _ = 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.SubmitOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentSubmitOpportunityInput(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_serializeDocumentAccountReceiver(v *types.AccountReceiver, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Alias != nil { + ok := object.Key("Alias") + ok.String(*v.Alias) + } + + if v.AwsAccountId != nil { + ok := object.Key("AwsAccountId") + ok.String(*v.AwsAccountId) + } + + 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_serializeDocumentAwsAccountIdOrAliasList(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_serializeDocumentAwsAccountList(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_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_serializeDocumentCustomerProjectsContext(v *types.CustomerProjectsContext, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Customer != nil { + ok := object.Key("Customer") + if err := awsAwsjson10_serializeDocumentEngagementCustomer(v.Customer, ok); err != nil { + return err + } + } + + if v.Project != nil { + ok := object.Key("Project") + if err := awsAwsjson10_serializeDocumentEngagementCustomerProjectDetails(v.Project, ok); 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_serializeDocumentEngagementContextDetails(v *types.EngagementContextDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Payload != nil { + ok := object.Key("Payload") + if err := awsAwsjson10_serializeDocumentEngagementContextPayload(v.Payload, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentEngagementContextPayload(v types.EngagementContextPayload, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.EngagementContextPayloadMemberCustomerProject: + av := object.Key("CustomerProject") + if err := awsAwsjson10_serializeDocumentCustomerProjectsContext(&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 awsAwsjson10_serializeDocumentEngagementContexts(v []types.EngagementContextDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentEngagementContextDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentEngagementCustomer(v *types.EngagementCustomer, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CompanyName != nil { + ok := object.Key("CompanyName") + ok.String(*v.CompanyName) + } + + if len(v.CountryCode) > 0 { + ok := object.Key("CountryCode") + ok.String(string(v.CountryCode)) + } + + if len(v.Industry) > 0 { + ok := object.Key("Industry") + ok.String(string(v.Industry)) + } + + if v.WebsiteUrl != nil { + ok := object.Key("WebsiteUrl") + ok.String(*v.WebsiteUrl) + } + + return nil +} + +func awsAwsjson10_serializeDocumentEngagementCustomerProjectDetails(v *types.EngagementCustomerProjectDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BusinessProblem != nil { + ok := object.Key("BusinessProblem") + ok.String(*v.BusinessProblem) + } + + if v.TargetCompletionDate != nil { + ok := object.Key("TargetCompletionDate") + ok.String(*v.TargetCompletionDate) + } + + if v.Title != nil { + ok := object.Key("Title") + ok.String(*v.Title) + } + + return nil +} + +func awsAwsjson10_serializeDocumentEngagementIdentifiers(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_serializeDocumentEngagementInvitationIdentifiers(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_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_serializeDocumentEngagementSort(v *types.EngagementSort, 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_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 v.EstimationUrl != nil { + ok := object.Key("EstimationUrl") + ok.String(*v.EstimationUrl) + } + + 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_serializeDocumentInvitation(v *types.Invitation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Message != nil { + ok := object.Key("Message") + ok.String(*v.Message) + } + + if v.Payload != nil { + ok := object.Key("Payload") + if err := awsAwsjson10_serializeDocumentPayload(v.Payload, ok); err != nil { + return err + } + } + + if v.Receiver != nil { + ok := object.Key("Receiver") + if err := awsAwsjson10_serializeDocumentReceiver(v.Receiver, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeDocumentInvitationStatusList(v []types.InvitationStatus, 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_serializeDocumentListTasksSortBase(v *types.ListTasksSortBase, 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_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_serializeDocumentOpportunityIdentifiers(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_serializeDocumentOpportunityInvitationPayload(v *types.OpportunityInvitationPayload, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Customer != nil { + ok := object.Key("Customer") + if err := awsAwsjson10_serializeDocumentEngagementCustomer(v.Customer, ok); err != nil { + return err + } + } + + if v.Project != nil { + ok := object.Key("Project") + if err := awsAwsjson10_serializeDocumentProjectDetails(v.Project, ok); err != nil { + return err + } + } + + if v.ReceiverResponsibilities != nil { + ok := object.Key("ReceiverResponsibilities") + if err := awsAwsjson10_serializeDocumentReceiverResponsibilityList(v.ReceiverResponsibilities, ok); err != nil { + return err + } + } + + if v.SenderContacts != nil { + ok := object.Key("SenderContacts") + if err := awsAwsjson10_serializeDocumentSenderContactList(v.SenderContacts, ok); err != nil { + return err + } } - if v.StreetAddress != nil { - ok := object.Key("StreetAddress") - ok.String(*v.StreetAddress) + 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_serializeDocumentApnPrograms(v []string, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v []types.Contact, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - av.String(v[i]) + if err := awsAwsjson10_serializeDocumentContact(&v[i], av); err != nil { + return err + } } return nil } -func awsAwsjson10_serializeDocumentAssigneeContact(v *types.AssigneeContact, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentPayload(v types.Payload, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.BusinessTitle != nil { - ok := object.Key("BusinessTitle") - ok.String(*v.BusinessTitle) + switch uv := v.(type) { + case *types.PayloadMemberOpportunityInvitation: + av := object.Key("OpportunityInvitation") + if err := awsAwsjson10_serializeDocumentOpportunityInvitationPayload(&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 +} - if v.Email != nil { - ok := object.Key("Email") - ok.String(*v.Email) +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 +} - if v.FirstName != nil { - ok := object.Key("FirstName") - ok.String(*v.FirstName) +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.LastName != nil { - ok := object.Key("LastName") - ok.String(*v.LastName) + 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_serializeDocumentAwsSubmission(v *types.AwsSubmission, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentProjectDetails(v *types.ProjectDetails, 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 v.BusinessProblem != nil { + ok := object.Key("BusinessProblem") + ok.String(*v.BusinessProblem) } - if len(v.Visibility) > 0 { - ok := object.Key("Visibility") - ok.String(string(v.Visibility)) + if v.ExpectedCustomerSpend != nil { + ok := object.Key("ExpectedCustomerSpend") + if err := awsAwsjson10_serializeDocumentExpectedCustomerSpendList(v.ExpectedCustomerSpend, ok); err != nil { + return err + } + } + + if v.TargetCompletionDate != nil { + ok := object.Key("TargetCompletionDate") + ok.String(*v.TargetCompletionDate) + } + + if v.Title != nil { + ok := object.Key("Title") + ok.String(*v.Title) } return nil } -func awsAwsjson10_serializeDocumentChannels(v []types.Channel, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentReceiver(v types.Receiver, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.ReceiverMemberAccount: + av := object.Key("Account") + if err := awsAwsjson10_serializeDocumentAccountReceiver(&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 awsAwsjson10_serializeDocumentReceiverResponsibilityList(v []types.ReceiverResponsibility, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1012,7 +3126,18 @@ func awsAwsjson10_serializeDocumentChannels(v []types.Channel, value smithyjson. return nil } -func awsAwsjson10_serializeDocumentContact(v *types.Contact, value smithyjson.Value) error { +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_serializeDocumentSenderContact(v *types.SenderContact, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1044,103 +3169,94 @@ func awsAwsjson10_serializeDocumentContact(v *types.Contact, value smithyjson.Va 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 { +func awsAwsjson10_serializeDocumentSenderContactList(v []types.SenderContact, 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 { + if err := awsAwsjson10_serializeDocumentSenderContact(&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() +func awsAwsjson10_serializeDocumentSoftwareRevenue(v *types.SoftwareRevenue, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - av.String(string(v[i])) + 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_serializeDocumentEngagementInvitationsPayloadType(v []types.EngagementInvitationPayloadType, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentSolutionIdentifiers(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - av.String(string(v[i])) + av.String(v[i]) } return nil } -func awsAwsjson10_serializeDocumentExpectedCustomerSpend(v *types.ExpectedCustomerSpend, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentSolutionSort(v *types.SolutionSort, 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 len(v.SortBy) > 0 { + ok := object.Key("SortBy") + ok.String(string(v.SortBy)) } - if v.TargetCompany != nil { - ok := object.Key("TargetCompany") - ok.String(*v.TargetCompany) + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) } return nil } -func awsAwsjson10_serializeDocumentExpectedCustomerSpendList(v []types.ExpectedCustomerSpend, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func awsAwsjson10_serializeDocumentSortObject(v *types.SortObject, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - if err := awsAwsjson10_serializeDocumentExpectedCustomerSpend(&v[i], av); err != nil { - return err - } + 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_serializeDocumentFilterIdentifier(v []string, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentStringList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1151,18 +3267,18 @@ func awsAwsjson10_serializeDocumentFilterIdentifier(v []string, value smithyjson return nil } -func awsAwsjson10_serializeDocumentFilterLifeCycleReviewStatus(v []types.ReviewStatus, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentTaskIdentifiers(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - av.String(string(v[i])) + av.String(v[i]) } return nil } -func awsAwsjson10_serializeDocumentFilterLifeCycleStage(v []types.Stage, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentTaskStatuses(v []types.TaskStatus, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1173,400 +3289,407 @@ func awsAwsjson10_serializeDocumentFilterLifeCycleStage(v []types.Stage, value s return nil } -func awsAwsjson10_serializeDocumentFilterStatus(v []types.SolutionStatus, value smithyjson.Value) error { +func awsAwsjson10_serializeDocumentUseCases(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - av.String(string(v[i])) + av.String(v[i]) } return nil } -func awsAwsjson10_serializeDocumentLastModifiedDate(v *types.LastModifiedDate, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentAcceptEngagementInvitationInput(v *AcceptEngagementInvitationInput, 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.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.BeforeLastModifiedDate != nil { - ok := object.Key("BeforeLastModifiedDate") - ok.String(smithytime.FormatDateTime(*v.BeforeLastModifiedDate)) + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) } return nil } -func awsAwsjson10_serializeDocumentLifeCycle(v *types.LifeCycle, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentAssignOpportunityInput(v *AssignOpportunityInput, 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.Assignee != nil { + ok := object.Key("Assignee") + if err := awsAwsjson10_serializeDocumentAssigneeContact(v.Assignee, ok); err != nil { + return err + } } - if v.NextSteps != nil { - ok := object.Key("NextSteps") - ok.String(*v.NextSteps) + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.NextStepsHistory != nil { - ok := object.Key("NextStepsHistory") - if err := awsAwsjson10_serializeDocumentNextStepsHistories(v.NextStepsHistory, ok); err != nil { - return err - } + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) } - if v.ReviewComments != nil { - ok := object.Key("ReviewComments") - ok.String(*v.ReviewComments) - } + return nil +} - if len(v.ReviewStatus) > 0 { - ok := object.Key("ReviewStatus") - ok.String(string(v.ReviewStatus)) +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.ReviewStatusReason != nil { - ok := object.Key("ReviewStatusReason") - ok.String(*v.ReviewStatusReason) + if v.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + ok.String(*v.OpportunityIdentifier) } - if len(v.Stage) > 0 { - ok := object.Key("Stage") - ok.String(string(v.Stage)) + if v.RelatedEntityIdentifier != nil { + ok := object.Key("RelatedEntityIdentifier") + ok.String(*v.RelatedEntityIdentifier) } - if v.TargetCloseDate != nil { - ok := object.Key("TargetCloseDate") - ok.String(*v.TargetCloseDate) + if len(v.RelatedEntityType) > 0 { + ok := object.Key("RelatedEntityType") + ok.String(string(v.RelatedEntityType)) } return nil } -func awsAwsjson10_serializeDocumentMarketing(v *types.Marketing, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentCreateEngagementInput(v *CreateEngagementInput, 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.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.CampaignName != nil { - ok := object.Key("CampaignName") - ok.String(*v.CampaignName) + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) } - if v.Channels != nil { - ok := object.Key("Channels") - if err := awsAwsjson10_serializeDocumentChannels(v.Channels, ok); err != nil { + if v.Contexts != nil { + ok := object.Key("Contexts") + if err := awsAwsjson10_serializeDocumentEngagementContexts(v.Contexts, ok); err != nil { return err } } - if len(v.Source) > 0 { - ok := object.Key("Source") - ok.String(string(v.Source)) + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) } - if v.UseCases != nil { - ok := object.Key("UseCases") - if err := awsAwsjson10_serializeDocumentUseCases(v.UseCases, ok); err != nil { - return err - } + if v.Title != nil { + ok := object.Key("Title") + ok.String(*v.Title) } return nil } -func awsAwsjson10_serializeDocumentMonetaryValue(v *types.MonetaryValue, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentCreateEngagementInvitationInput(v *CreateEngagementInvitationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Amount != nil { - ok := object.Key("Amount") - ok.String(*v.Amount) + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if len(v.CurrencyCode) > 0 { - ok := object.Key("CurrencyCode") - ok.String(string(v.CurrencyCode)) + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) } - return nil -} - -func awsAwsjson10_serializeDocumentNextStepsHistories(v []types.NextStepsHistory, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) + } - for i := range v { - av := array.Value() - if err := awsAwsjson10_serializeDocumentNextStepsHistory(&v[i], av); err != nil { + if v.Invitation != nil { + ok := object.Key("Invitation") + if err := awsAwsjson10_serializeDocumentInvitation(v.Invitation, ok); err != nil { return err } } + return nil } -func awsAwsjson10_serializeDocumentNextStepsHistory(v *types.NextStepsHistory, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentCreateOpportunityInput(v *CreateOpportunityInput, 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.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.Value != nil { - ok := object.Key("Value") - ok.String(*v.Value) + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) } - 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 v.Customer != nil { + ok := object.Key("Customer") + if err := awsAwsjson10_serializeDocumentCustomer(v.Customer, ok); err != nil { + return err + } } - if len(v.SortOrder) > 0 { - ok := object.Key("SortOrder") - ok.String(string(v.SortOrder)) + if v.LifeCycle != nil { + ok := object.Key("LifeCycle") + if err := awsAwsjson10_serializeDocumentLifeCycle(v.LifeCycle, ok); err != nil { + return err + } } - return nil -} + if v.Marketing != nil { + ok := object.Key("Marketing") + if err := awsAwsjson10_serializeDocumentMarketing(v.Marketing, ok); err != nil { + return err + } + } -func awsAwsjson10_serializeDocumentOpportunitySort(v *types.OpportunitySort, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + if len(v.NationalSecurity) > 0 { + ok := object.Key("NationalSecurity") + ok.String(string(v.NationalSecurity)) + } - if len(v.SortBy) > 0 { - ok := object.Key("SortBy") - ok.String(string(v.SortBy)) + if v.OpportunityTeam != nil { + ok := object.Key("OpportunityTeam") + if err := awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v.OpportunityTeam, ok); err != nil { + return err + } } - if len(v.SortOrder) > 0 { - ok := object.Key("SortOrder") - ok.String(string(v.SortOrder)) + if len(v.OpportunityType) > 0 { + ok := object.Key("OpportunityType") + ok.String(string(v.OpportunityType)) } - return nil -} + if len(v.Origin) > 0 { + ok := object.Key("Origin") + ok.String(string(v.Origin)) + } -func awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v []types.Contact, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.PartnerOpportunityIdentifier != nil { + ok := object.Key("PartnerOpportunityIdentifier") + ok.String(*v.PartnerOpportunityIdentifier) + } - for i := range v { - av := array.Value() - if err := awsAwsjson10_serializeDocumentContact(&v[i], av); err != nil { + if v.PrimaryNeedsFromAws != nil { + ok := object.Key("PrimaryNeedsFromAws") + if err := awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v.PrimaryNeedsFromAws, ok); err != nil { return err } } - return nil -} -func awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v []types.PrimaryNeedFromAws, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.Project != nil { + ok := object.Key("Project") + if err := awsAwsjson10_serializeDocumentProject(v.Project, ok); err != nil { + return err + } + } - for i := range v { - av := array.Value() - av.String(string(v[i])) + if v.SoftwareRevenue != nil { + ok := object.Key("SoftwareRevenue") + if err := awsAwsjson10_serializeDocumentSoftwareRevenue(v.SoftwareRevenue, ok); err != nil { + return err + } } + return nil } -func awsAwsjson10_serializeDocumentProject(v *types.Project, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentCreateResourceSnapshotInput(v *CreateResourceSnapshotInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.AdditionalComments != nil { - ok := object.Key("AdditionalComments") - ok.String(*v.AdditionalComments) + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.ApnPrograms != nil { - ok := object.Key("ApnPrograms") - if err := awsAwsjson10_serializeDocumentApnPrograms(v.ApnPrograms, ok); err != nil { - return err - } + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) } - if len(v.CompetitorName) > 0 { - ok := object.Key("CompetitorName") - ok.String(string(v.CompetitorName)) + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) } - if v.CustomerBusinessProblem != nil { - ok := object.Key("CustomerBusinessProblem") - ok.String(*v.CustomerBusinessProblem) + if v.ResourceIdentifier != nil { + ok := object.Key("ResourceIdentifier") + ok.String(*v.ResourceIdentifier) } - if v.CustomerUseCase != nil { - ok := object.Key("CustomerUseCase") - ok.String(*v.CustomerUseCase) + if v.ResourceSnapshotTemplateIdentifier != nil { + ok := object.Key("ResourceSnapshotTemplateIdentifier") + ok.String(*v.ResourceSnapshotTemplateIdentifier) } - if v.DeliveryModels != nil { - ok := object.Key("DeliveryModels") - if err := awsAwsjson10_serializeDocumentDeliveryModels(v.DeliveryModels, ok); err != nil { - return err - } + if len(v.ResourceType) > 0 { + ok := object.Key("ResourceType") + ok.String(string(v.ResourceType)) } - if v.ExpectedCustomerSpend != nil { - ok := object.Key("ExpectedCustomerSpend") - if err := awsAwsjson10_serializeDocumentExpectedCustomerSpendList(v.ExpectedCustomerSpend, ok); err != nil { - return err - } + return nil +} + +func awsAwsjson10_serializeOpDocumentCreateResourceSnapshotJobInput(v *CreateResourceSnapshotJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.OtherCompetitorNames != nil { - ok := object.Key("OtherCompetitorNames") - ok.String(*v.OtherCompetitorNames) + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) } - if v.OtherSolutionDescription != nil { - ok := object.Key("OtherSolutionDescription") - ok.String(*v.OtherSolutionDescription) + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) } - if v.RelatedOpportunityIdentifier != nil { - ok := object.Key("RelatedOpportunityIdentifier") - ok.String(*v.RelatedOpportunityIdentifier) + if v.ResourceIdentifier != nil { + ok := object.Key("ResourceIdentifier") + ok.String(*v.ResourceIdentifier) } - if v.SalesActivities != nil { - ok := object.Key("SalesActivities") - if err := awsAwsjson10_serializeDocumentSalesActivities(v.SalesActivities, ok); err != nil { - return err - } + if v.ResourceSnapshotTemplateIdentifier != nil { + ok := object.Key("ResourceSnapshotTemplateIdentifier") + ok.String(*v.ResourceSnapshotTemplateIdentifier) } - if v.Title != nil { - ok := object.Key("Title") - ok.String(*v.Title) + if len(v.ResourceType) > 0 { + ok := object.Key("ResourceType") + ok.String(string(v.ResourceType)) } return nil } -func awsAwsjson10_serializeDocumentSalesActivities(v []types.SalesActivity, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func awsAwsjson10_serializeOpDocumentDeleteResourceSnapshotJobInput(v *DeleteResourceSnapshotJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - av.String(string(v[i])) + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ResourceSnapshotJobIdentifier != nil { + ok := object.Key("ResourceSnapshotJobIdentifier") + ok.String(*v.ResourceSnapshotJobIdentifier) } + return nil } -func awsAwsjson10_serializeDocumentSoftwareRevenue(v *types.SoftwareRevenue, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(v *DisassociateOpportunityInput, 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.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if v.EffectiveDate != nil { - ok := object.Key("EffectiveDate") - ok.String(*v.EffectiveDate) + if v.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + ok.String(*v.OpportunityIdentifier) } - if v.ExpirationDate != nil { - ok := object.Key("ExpirationDate") - ok.String(*v.ExpirationDate) + if v.RelatedEntityIdentifier != nil { + ok := object.Key("RelatedEntityIdentifier") + ok.String(*v.RelatedEntityIdentifier) } - if v.Value != nil { - ok := object.Key("Value") - if err := awsAwsjson10_serializeDocumentMonetaryValue(v.Value, ok); err != nil { - return err - } + if len(v.RelatedEntityType) > 0 { + ok := object.Key("RelatedEntityType") + ok.String(string(v.RelatedEntityType)) } return nil } -func awsAwsjson10_serializeDocumentSolutionIdentifiers(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - av.String(v[i]) + 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_serializeDocumentSolutionSort(v *types.SolutionSort, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentGetEngagementInput(v *GetEngagementInput, 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 v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if len(v.SortOrder) > 0 { - ok := object.Key("SortOrder") - ok.String(string(v.SortOrder)) + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) } return nil } -func awsAwsjson10_serializeDocumentStringList(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(v *GetEngagementInvitationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - av.String(v[i]) + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - 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]) + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) } + return nil } -func awsAwsjson10_serializeOpDocumentAssignOpportunityInput(v *AssignOpportunityInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentGetOpportunityInput(v *GetOpportunityInput, 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) @@ -1580,7 +3703,7 @@ func awsAwsjson10_serializeOpDocumentAssignOpportunityInput(v *AssignOpportunity return nil } -func awsAwsjson10_serializeOpDocumentAssociateOpportunityInput(v *AssociateOpportunityInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentGetResourceSnapshotInput(v *GetResourceSnapshotInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1589,25 +3712,35 @@ func awsAwsjson10_serializeOpDocumentAssociateOpportunityInput(v *AssociateOppor ok.String(*v.Catalog) } - if v.OpportunityIdentifier != nil { - ok := object.Key("OpportunityIdentifier") - ok.String(*v.OpportunityIdentifier) + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) } - if v.RelatedEntityIdentifier != nil { - ok := object.Key("RelatedEntityIdentifier") - ok.String(*v.RelatedEntityIdentifier) + if v.ResourceIdentifier != nil { + ok := object.Key("ResourceIdentifier") + ok.String(*v.ResourceIdentifier) } - if len(v.RelatedEntityType) > 0 { - ok := object.Key("RelatedEntityType") - ok.String(string(v.RelatedEntityType)) + if v.ResourceSnapshotTemplateIdentifier != nil { + ok := object.Key("ResourceSnapshotTemplateIdentifier") + ok.String(*v.ResourceSnapshotTemplateIdentifier) + } + + if len(v.ResourceType) > 0 { + ok := object.Key("ResourceType") + ok.String(string(v.ResourceType)) + } + + if v.Revision != nil { + ok := object.Key("Revision") + ok.Integer(*v.Revision) } return nil } -func awsAwsjson10_serializeOpDocumentCreateOpportunityInput(v *CreateOpportunityInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentGetResourceSnapshotJobInput(v *GetResourceSnapshotJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1616,76 +3749,133 @@ func awsAwsjson10_serializeOpDocumentCreateOpportunityInput(v *CreateOpportunity ok.String(*v.Catalog) } - if v.ClientToken != nil { - ok := object.Key("ClientToken") - ok.String(*v.ClientToken) + if v.ResourceSnapshotJobIdentifier != nil { + ok := object.Key("ResourceSnapshotJobIdentifier") + ok.String(*v.ResourceSnapshotJobIdentifier) } - if v.Customer != nil { - ok := object.Key("Customer") - if err := awsAwsjson10_serializeDocumentCustomer(v.Customer, ok); err != nil { + return nil +} + +func awsAwsjson10_serializeOpDocumentGetSellingSystemSettingsInput(v *GetSellingSystemSettingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListEngagementByAcceptingInvitationTasksInput(v *ListEngagementByAcceptingInvitationTasksInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.EngagementInvitationIdentifier != nil { + ok := object.Key("EngagementInvitationIdentifier") + if err := awsAwsjson10_serializeDocumentEngagementInvitationIdentifiers(v.EngagementInvitationIdentifier, ok); err != nil { return err } } - if v.LifeCycle != nil { - ok := object.Key("LifeCycle") - if err := awsAwsjson10_serializeDocumentLifeCycle(v.LifeCycle, ok); err != nil { + 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.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + if err := awsAwsjson10_serializeDocumentOpportunityIdentifiers(v.OpportunityIdentifier, ok); err != nil { return err } } - if v.Marketing != nil { - ok := object.Key("Marketing") - if err := awsAwsjson10_serializeDocumentMarketing(v.Marketing, ok); err != nil { + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentListTasksSortBase(v.Sort, ok); err != nil { return err } } - if len(v.NationalSecurity) > 0 { - ok := object.Key("NationalSecurity") - ok.String(string(v.NationalSecurity)) + if v.TaskIdentifier != nil { + ok := object.Key("TaskIdentifier") + if err := awsAwsjson10_serializeDocumentTaskIdentifiers(v.TaskIdentifier, ok); err != nil { + return err + } } - if v.OpportunityTeam != nil { - ok := object.Key("OpportunityTeam") - if err := awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v.OpportunityTeam, ok); err != nil { + if v.TaskStatus != nil { + ok := object.Key("TaskStatus") + if err := awsAwsjson10_serializeDocumentTaskStatuses(v.TaskStatus, ok); err != nil { return err } } - if len(v.OpportunityType) > 0 { - ok := object.Key("OpportunityType") - ok.String(string(v.OpportunityType)) + return nil +} + +func awsAwsjson10_serializeOpDocumentListEngagementFromOpportunityTasksInput(v *ListEngagementFromOpportunityTasksInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) } - if len(v.Origin) > 0 { - ok := object.Key("Origin") - ok.String(string(v.Origin)) + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + if err := awsAwsjson10_serializeDocumentEngagementIdentifiers(v.EngagementIdentifier, 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.PartnerOpportunityIdentifier != nil { - ok := object.Key("PartnerOpportunityIdentifier") - ok.String(*v.PartnerOpportunityIdentifier) + if v.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + if err := awsAwsjson10_serializeDocumentOpportunityIdentifiers(v.OpportunityIdentifier, ok); err != nil { + return err + } } - if v.PrimaryNeedsFromAws != nil { - ok := object.Key("PrimaryNeedsFromAws") - if err := awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v.PrimaryNeedsFromAws, ok); err != nil { + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentListTasksSortBase(v.Sort, ok); err != nil { return err } } - if v.Project != nil { - ok := object.Key("Project") - if err := awsAwsjson10_serializeDocumentProject(v.Project, ok); err != nil { + if v.TaskIdentifier != nil { + ok := object.Key("TaskIdentifier") + if err := awsAwsjson10_serializeDocumentTaskIdentifiers(v.TaskIdentifier, ok); err != nil { return err } } - if v.SoftwareRevenue != nil { - ok := object.Key("SoftwareRevenue") - if err := awsAwsjson10_serializeDocumentSoftwareRevenue(v.SoftwareRevenue, ok); err != nil { + if v.TaskStatus != nil { + ok := object.Key("TaskStatus") + if err := awsAwsjson10_serializeDocumentTaskStatuses(v.TaskStatus, ok); err != nil { return err } } @@ -1693,7 +3883,7 @@ func awsAwsjson10_serializeOpDocumentCreateOpportunityInput(v *CreateOpportunity return nil } -func awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(v *DisassociateOpportunityInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(v *ListEngagementInvitationsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1702,42 +3892,60 @@ func awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(v *Disassociat ok.String(*v.Catalog) } - if v.OpportunityIdentifier != nil { - ok := object.Key("OpportunityIdentifier") - ok.String(*v.OpportunityIdentifier) + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + if err := awsAwsjson10_serializeDocumentEngagementIdentifiers(v.EngagementIdentifier, ok); err != nil { + return err + } } - if v.RelatedEntityIdentifier != nil { - ok := object.Key("RelatedEntityIdentifier") - ok.String(*v.RelatedEntityIdentifier) + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) } - if len(v.RelatedEntityType) > 0 { - ok := object.Key("RelatedEntityType") - ok.String(string(v.RelatedEntityType)) + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) } - return nil -} + if len(v.ParticipantType) > 0 { + ok := object.Key("ParticipantType") + ok.String(string(v.ParticipantType)) + } -func awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + if v.PayloadType != nil { + ok := object.Key("PayloadType") + if err := awsAwsjson10_serializeDocumentEngagementInvitationsPayloadType(v.PayloadType, ok); err != nil { + return err + } + } - if v.Catalog != nil { - ok := object.Key("Catalog") - ok.String(*v.Catalog) + if v.SenderAwsAccountId != nil { + ok := object.Key("SenderAwsAccountId") + if err := awsAwsjson10_serializeDocumentAwsAccountIdOrAliasList(v.SenderAwsAccountId, ok); err != nil { + return err + } } - if v.RelatedOpportunityIdentifier != nil { - ok := object.Key("RelatedOpportunityIdentifier") - ok.String(*v.RelatedOpportunityIdentifier) + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentOpportunityEngagementInvitationSort(v.Sort, ok); err != nil { + return err + } + } + + if v.Status != nil { + ok := object.Key("Status") + if err := awsAwsjson10_serializeDocumentInvitationStatusList(v.Status, ok); err != nil { + return err + } } return nil } -func awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(v *GetEngagementInvitationInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentListEngagementMembersInput(v *ListEngagementMembersInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1751,10 +3959,20 @@ func awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(v *GetEngageme ok.String(*v.Identifier) } + 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 } -func awsAwsjson10_serializeOpDocumentGetOpportunityInput(v *GetOpportunityInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentListEngagementResourceAssociationsInput(v *ListEngagementResourceAssociationsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1763,15 +3981,40 @@ func awsAwsjson10_serializeOpDocumentGetOpportunityInput(v *GetOpportunityInput, ok.String(*v.Catalog) } - if v.Identifier != nil { - ok := object.Key("Identifier") - ok.String(*v.Identifier) + if v.CreatedBy != nil { + ok := object.Key("CreatedBy") + ok.String(*v.CreatedBy) + } + + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) + } + + 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.ResourceIdentifier != nil { + ok := object.Key("ResourceIdentifier") + ok.String(*v.ResourceIdentifier) + } + + if len(v.ResourceType) > 0 { + ok := object.Key("ResourceType") + ok.String(string(v.ResourceType)) } return nil } -func awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(v *ListEngagementInvitationsInput, value smithyjson.Value) error { +func awsAwsjson10_serializeOpDocumentListEngagementsInput(v *ListEngagementsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1780,6 +4023,27 @@ func awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(v *ListEngag ok.String(*v.Catalog) } + if v.CreatedBy != nil { + ok := object.Key("CreatedBy") + if err := awsAwsjson10_serializeDocumentAwsAccountList(v.CreatedBy, ok); err != nil { + return err + } + } + + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + if err := awsAwsjson10_serializeDocumentEngagementIdentifiers(v.EngagementIdentifier, ok); err != nil { + return err + } + } + + if v.ExcludeCreatedBy != nil { + ok := object.Key("ExcludeCreatedBy") + if err := awsAwsjson10_serializeDocumentAwsAccountList(v.ExcludeCreatedBy, ok); err != nil { + return err + } + } + if v.MaxResults != nil { ok := object.Key("MaxResults") ok.Integer(*v.MaxResults) @@ -1790,21 +4054,9 @@ func awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(v *ListEngag 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 { + if err := awsAwsjson10_serializeDocumentEngagementSort(v.Sort, ok); err != nil { return err } } @@ -1876,6 +4128,92 @@ func awsAwsjson10_serializeOpDocumentListOpportunitiesInput(v *ListOpportunities return nil } +func awsAwsjson10_serializeOpDocumentListResourceSnapshotJobsInput(v *ListResourceSnapshotJobsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) + } + + 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_serializeDocumentSortObject(v.Sort, ok); err != nil { + return err + } + } + + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListResourceSnapshotsInput(v *ListResourceSnapshotsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.CreatedBy != nil { + ok := object.Key("CreatedBy") + ok.String(*v.CreatedBy) + } + + if v.EngagementIdentifier != nil { + ok := object.Key("EngagementIdentifier") + ok.String(*v.EngagementIdentifier) + } + + 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.ResourceIdentifier != nil { + ok := object.Key("ResourceIdentifier") + ok.String(*v.ResourceIdentifier) + } + + if v.ResourceSnapshotTemplateIdentifier != nil { + ok := object.Key("ResourceSnapshotTemplateIdentifier") + ok.String(*v.ResourceSnapshotTemplateIdentifier) + } + + if len(v.ResourceType) > 0 { + ok := object.Key("ResourceType") + ok.String(string(v.ResourceType)) + } + + return nil +} + func awsAwsjson10_serializeOpDocumentListSolutionsInput(v *ListSolutionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1926,6 +4264,23 @@ func awsAwsjson10_serializeOpDocumentListSolutionsInput(v *ListSolutionsInput, v return nil } +func awsAwsjson10_serializeOpDocumentPutSellingSystemSettingsInput(v *PutSellingSystemSettingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ResourceSnapshotJobRoleIdentifier != nil { + ok := object.Key("ResourceSnapshotJobRoleIdentifier") + ok.String(*v.ResourceSnapshotJobRoleIdentifier) + } + + return nil +} + func awsAwsjson10_serializeOpDocumentRejectEngagementInvitationInput(v *RejectEngagementInvitationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1999,6 +4354,67 @@ func awsAwsjson10_serializeOpDocumentStartEngagementFromOpportunityTaskInput(v * return nil } +func awsAwsjson10_serializeOpDocumentStartResourceSnapshotJobInput(v *StartResourceSnapshotJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ResourceSnapshotJobIdentifier != nil { + ok := object.Key("ResourceSnapshotJobIdentifier") + ok.String(*v.ResourceSnapshotJobIdentifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentStopResourceSnapshotJobInput(v *StopResourceSnapshotJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ResourceSnapshotJobIdentifier != nil { + ok := object.Key("ResourceSnapshotJobIdentifier") + ok.String(*v.ResourceSnapshotJobIdentifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentSubmitOpportunityInput(v *SubmitOpportunityInput, 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 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_serializeOpDocumentUpdateOpportunityInput(v *UpdateOpportunityInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/partnercentralselling/snapshot/api_op_AcceptEngagementInvitation.go.snap b/service/partnercentralselling/snapshot/api_op_AcceptEngagementInvitation.go.snap new file mode 100644 index 00000000000..2d5e3b750c1 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_AcceptEngagementInvitation.go.snap @@ -0,0 +1,41 @@ +AcceptEngagementInvitation + 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_CreateEngagement.go.snap b/service/partnercentralselling/snapshot/api_op_CreateEngagement.go.snap new file mode 100644 index 00000000000..5300fba69bd --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_CreateEngagement.go.snap @@ -0,0 +1,42 @@ +CreateEngagement + 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_CreateEngagementInvitation.go.snap b/service/partnercentralselling/snapshot/api_op_CreateEngagementInvitation.go.snap new file mode 100644 index 00000000000..92be3628835 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_CreateEngagementInvitation.go.snap @@ -0,0 +1,42 @@ +CreateEngagementInvitation + 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_CreateResourceSnapshot.go.snap b/service/partnercentralselling/snapshot/api_op_CreateResourceSnapshot.go.snap new file mode 100644 index 00000000000..4a3149e2295 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_CreateResourceSnapshot.go.snap @@ -0,0 +1,42 @@ +CreateResourceSnapshot + 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_CreateResourceSnapshotJob.go.snap b/service/partnercentralselling/snapshot/api_op_CreateResourceSnapshotJob.go.snap new file mode 100644 index 00000000000..ee43ab7d419 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_CreateResourceSnapshotJob.go.snap @@ -0,0 +1,42 @@ +CreateResourceSnapshotJob + 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_DeleteResourceSnapshotJob.go.snap b/service/partnercentralselling/snapshot/api_op_DeleteResourceSnapshotJob.go.snap new file mode 100644 index 00000000000..db13ecfdcfa --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_DeleteResourceSnapshotJob.go.snap @@ -0,0 +1,41 @@ +DeleteResourceSnapshotJob + 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_GetEngagement.go.snap b/service/partnercentralselling/snapshot/api_op_GetEngagement.go.snap new file mode 100644 index 00000000000..c84c94be935 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetEngagement.go.snap @@ -0,0 +1,41 @@ +GetEngagement + 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_GetResourceSnapshot.go.snap b/service/partnercentralselling/snapshot/api_op_GetResourceSnapshot.go.snap new file mode 100644 index 00000000000..560789f141f --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetResourceSnapshot.go.snap @@ -0,0 +1,41 @@ +GetResourceSnapshot + 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_GetResourceSnapshotJob.go.snap b/service/partnercentralselling/snapshot/api_op_GetResourceSnapshotJob.go.snap new file mode 100644 index 00000000000..d6734a7d982 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetResourceSnapshotJob.go.snap @@ -0,0 +1,41 @@ +GetResourceSnapshotJob + 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_GetSellingSystemSettings.go.snap b/service/partnercentralselling/snapshot/api_op_GetSellingSystemSettings.go.snap new file mode 100644 index 00000000000..6532aa71eab --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetSellingSystemSettings.go.snap @@ -0,0 +1,41 @@ +GetSellingSystemSettings + 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_ListEngagementByAcceptingInvitationTasks.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagementByAcceptingInvitationTasks.go.snap new file mode 100644 index 00000000000..cba931e9005 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagementByAcceptingInvitationTasks.go.snap @@ -0,0 +1,41 @@ +ListEngagementByAcceptingInvitationTasks + 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_ListEngagementFromOpportunityTasks.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagementFromOpportunityTasks.go.snap new file mode 100644 index 00000000000..610f9f1b60b --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagementFromOpportunityTasks.go.snap @@ -0,0 +1,41 @@ +ListEngagementFromOpportunityTasks + 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_ListEngagementMembers.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagementMembers.go.snap new file mode 100644 index 00000000000..be4842b7b13 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagementMembers.go.snap @@ -0,0 +1,41 @@ +ListEngagementMembers + 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_ListEngagementResourceAssociations.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagementResourceAssociations.go.snap new file mode 100644 index 00000000000..5ada5f8a88d --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagementResourceAssociations.go.snap @@ -0,0 +1,41 @@ +ListEngagementResourceAssociations + 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_ListEngagements.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagements.go.snap new file mode 100644 index 00000000000..8456a02020b --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagements.go.snap @@ -0,0 +1,41 @@ +ListEngagements + 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_ListResourceSnapshotJobs.go.snap b/service/partnercentralselling/snapshot/api_op_ListResourceSnapshotJobs.go.snap new file mode 100644 index 00000000000..8de6ad75968 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListResourceSnapshotJobs.go.snap @@ -0,0 +1,41 @@ +ListResourceSnapshotJobs + 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_ListResourceSnapshots.go.snap b/service/partnercentralselling/snapshot/api_op_ListResourceSnapshots.go.snap new file mode 100644 index 00000000000..7da238d42c7 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListResourceSnapshots.go.snap @@ -0,0 +1,41 @@ +ListResourceSnapshots + 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_PutSellingSystemSettings.go.snap b/service/partnercentralselling/snapshot/api_op_PutSellingSystemSettings.go.snap new file mode 100644 index 00000000000..b246bccd0d1 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_PutSellingSystemSettings.go.snap @@ -0,0 +1,41 @@ +PutSellingSystemSettings + 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_StartResourceSnapshotJob.go.snap b/service/partnercentralselling/snapshot/api_op_StartResourceSnapshotJob.go.snap new file mode 100644 index 00000000000..268ad5da649 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_StartResourceSnapshotJob.go.snap @@ -0,0 +1,41 @@ +StartResourceSnapshotJob + 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_StopResourceSnapshotJob.go.snap b/service/partnercentralselling/snapshot/api_op_StopResourceSnapshotJob.go.snap new file mode 100644 index 00000000000..d956fa9fe1a --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_StopResourceSnapshotJob.go.snap @@ -0,0 +1,41 @@ +StopResourceSnapshotJob + 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_SubmitOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_SubmitOpportunity.go.snap new file mode 100644 index 00000000000..4f3c9e671ae --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_SubmitOpportunity.go.snap @@ -0,0 +1,41 @@ +SubmitOpportunity + 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 index 3f856528be4..94c7ad299f3 100644 --- a/service/partnercentralselling/snapshot_test.go +++ b/service/partnercentralselling/snapshot_test.go @@ -62,6 +62,18 @@ func testSnapshot(stack *middleware.Stack, operation string) error { } return snapshotOK{} } +func TestCheckSnapshot_AcceptEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.AcceptEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AcceptEngagementInvitation") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_AssignOpportunity(t *testing.T) { svc := New(Options{}) _, err := svc.AssignOpportunity(context.Background(), nil, func(o *Options) { @@ -86,6 +98,30 @@ func TestCheckSnapshot_AssociateOpportunity(t *testing.T) { } } +func TestCheckSnapshot_CreateEngagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateEngagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateEngagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateEngagementInvitation") + }) + }) + 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) { @@ -98,6 +134,42 @@ func TestCheckSnapshot_CreateOpportunity(t *testing.T) { } } +func TestCheckSnapshot_CreateResourceSnapshot(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateResourceSnapshot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateResourceSnapshot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteResourceSnapshotJob") + }) + }) + 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) { @@ -122,6 +194,18 @@ func TestCheckSnapshot_GetAwsOpportunitySummary(t *testing.T) { } } +func TestCheckSnapshot_GetEngagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEngagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetEngagement") + }) + }) + 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) { @@ -146,6 +230,66 @@ func TestCheckSnapshot_GetOpportunity(t *testing.T) { } } +func TestCheckSnapshot_GetResourceSnapshot(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetResourceSnapshot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetResourceSnapshot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetSellingSystemSettings(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetSellingSystemSettings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetSellingSystemSettings") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListEngagementByAcceptingInvitationTasks(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementByAcceptingInvitationTasks(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagementByAcceptingInvitationTasks") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListEngagementFromOpportunityTasks(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementFromOpportunityTasks(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagementFromOpportunityTasks") + }) + }) + 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) { @@ -158,6 +302,42 @@ func TestCheckSnapshot_ListEngagementInvitations(t *testing.T) { } } +func TestCheckSnapshot_ListEngagementMembers(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementMembers(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagementMembers") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListEngagementResourceAssociations(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementResourceAssociations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagementResourceAssociations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListEngagements(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagements(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagements") + }) + }) + 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) { @@ -170,6 +350,30 @@ func TestCheckSnapshot_ListOpportunities(t *testing.T) { } } +func TestCheckSnapshot_ListResourceSnapshotJobs(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListResourceSnapshotJobs(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListResourceSnapshotJobs") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListResourceSnapshots(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListResourceSnapshots(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListResourceSnapshots") + }) + }) + 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) { @@ -182,6 +386,18 @@ func TestCheckSnapshot_ListSolutions(t *testing.T) { } } +func TestCheckSnapshot_PutSellingSystemSettings(t *testing.T) { + svc := New(Options{}) + _, err := svc.PutSellingSystemSettings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "PutSellingSystemSettings") + }) + }) + 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) { @@ -218,6 +434,42 @@ func TestCheckSnapshot_StartEngagementFromOpportunityTask(t *testing.T) { } } +func TestCheckSnapshot_StartResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "StartResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_StopResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.StopResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "StopResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_SubmitOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.SubmitOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "SubmitOpportunity") + }) + }) + 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) { @@ -229,6 +481,18 @@ func TestCheckSnapshot_UpdateOpportunity(t *testing.T) { t.Fatal(err) } } +func TestUpdateSnapshot_AcceptEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.AcceptEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AcceptEngagementInvitation") + }) + }) + 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) { @@ -253,6 +517,30 @@ func TestUpdateSnapshot_AssociateOpportunity(t *testing.T) { } } +func TestUpdateSnapshot_CreateEngagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateEngagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateEngagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateEngagementInvitation") + }) + }) + 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) { @@ -265,6 +553,42 @@ func TestUpdateSnapshot_CreateOpportunity(t *testing.T) { } } +func TestUpdateSnapshot_CreateResourceSnapshot(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateResourceSnapshot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateResourceSnapshot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteResourceSnapshotJob") + }) + }) + 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) { @@ -289,6 +613,18 @@ func TestUpdateSnapshot_GetAwsOpportunitySummary(t *testing.T) { } } +func TestUpdateSnapshot_GetEngagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEngagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetEngagement") + }) + }) + 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) { @@ -313,6 +649,66 @@ func TestUpdateSnapshot_GetOpportunity(t *testing.T) { } } +func TestUpdateSnapshot_GetResourceSnapshot(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetResourceSnapshot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetResourceSnapshot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetSellingSystemSettings(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetSellingSystemSettings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetSellingSystemSettings") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListEngagementByAcceptingInvitationTasks(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementByAcceptingInvitationTasks(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagementByAcceptingInvitationTasks") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListEngagementFromOpportunityTasks(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementFromOpportunityTasks(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagementFromOpportunityTasks") + }) + }) + 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) { @@ -325,6 +721,42 @@ func TestUpdateSnapshot_ListEngagementInvitations(t *testing.T) { } } +func TestUpdateSnapshot_ListEngagementMembers(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementMembers(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagementMembers") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListEngagementResourceAssociations(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementResourceAssociations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagementResourceAssociations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListEngagements(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagements(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagements") + }) + }) + 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) { @@ -337,6 +769,30 @@ func TestUpdateSnapshot_ListOpportunities(t *testing.T) { } } +func TestUpdateSnapshot_ListResourceSnapshotJobs(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListResourceSnapshotJobs(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListResourceSnapshotJobs") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListResourceSnapshots(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListResourceSnapshots(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListResourceSnapshots") + }) + }) + 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) { @@ -349,6 +805,18 @@ func TestUpdateSnapshot_ListSolutions(t *testing.T) { } } +func TestUpdateSnapshot_PutSellingSystemSettings(t *testing.T) { + svc := New(Options{}) + _, err := svc.PutSellingSystemSettings(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "PutSellingSystemSettings") + }) + }) + 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) { @@ -385,6 +853,42 @@ func TestUpdateSnapshot_StartEngagementFromOpportunityTask(t *testing.T) { } } +func TestUpdateSnapshot_StartResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "StartResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_StopResourceSnapshotJob(t *testing.T) { + svc := New(Options{}) + _, err := svc.StopResourceSnapshotJob(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "StopResourceSnapshotJob") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_SubmitOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.SubmitOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "SubmitOpportunity") + }) + }) + 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) { diff --git a/service/partnercentralselling/types/enums.go b/service/partnercentralselling/types/enums.go index 0cd7845854a..d6d0723e0df 100644 --- a/service/partnercentralselling/types/enums.go +++ b/service/partnercentralselling/types/enums.go @@ -1244,6 +1244,23 @@ func (DeliveryModel) Values() []DeliveryModel { } } +type EngagementContextType string + +// Enum values for EngagementContextType +const ( + EngagementContextTypeCustomerProject EngagementContextType = "CustomerProject" +) + +// Values returns all known values for EngagementContextType. 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 (EngagementContextType) Values() []EngagementContextType { + return []EngagementContextType{ + "CustomerProject", + } +} + type EngagementInvitationPayloadType string // Enum values for EngagementInvitationPayloadType @@ -1283,6 +1300,23 @@ func (EngagementScore) Values() []EngagementScore { } } +type EngagementSortName string + +// Enum values for EngagementSortName +const ( + EngagementSortNameCreatedDate EngagementSortName = "CreatedDate" +) + +// Values returns all known values for EngagementSortName. 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 (EngagementSortName) Values() []EngagementSortName { + return []EngagementSortName{ + "CreatedDate", + } +} + type Industry string // Enum values for Industry @@ -1402,6 +1436,23 @@ func (InvolvementTypeChangeReason) Values() []InvolvementTypeChangeReason { } } +type ListTasksSortName string + +// Enum values for ListTasksSortName +const ( + ListTasksSortNameStartTime ListTasksSortName = "StartTime" +) + +// Values returns all known values for ListTasksSortName. 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 (ListTasksSortName) Values() []ListTasksSortName { + return []ListTasksSortName{ + "StartTime", + } +} + type MarketingSource string // Enum values for MarketingSource @@ -1523,6 +1574,7 @@ type ParticipantType string // Enum values for ParticipantType const ( + ParticipantTypeSender ParticipantType = "SENDER" ParticipantTypeReceiver ParticipantType = "RECEIVER" ) @@ -1532,6 +1584,7 @@ const ( // The ordering of this slice is not guaranteed to be stable across updates. func (ParticipantType) Values() []ParticipantType { return []ParticipantType{ + "SENDER", "RECEIVER", } } @@ -1588,17 +1641,25 @@ 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" - ReasonCodeResourceSnapshotAccessDenied ReasonCode = "ResourceSnapshotAccessDenied" + ReasonCodeInvitationAccessDenied ReasonCode = "InvitationAccessDenied" + ReasonCodeInvitationValidationFailed ReasonCode = "InvitationValidationFailed" + ReasonCodeEngagementAccessDenied ReasonCode = "EngagementAccessDenied" + ReasonCodeOpportunityAccessDenied ReasonCode = "OpportunityAccessDenied" + ReasonCodeResourceSnapshotJobAccessDenied ReasonCode = "ResourceSnapshotJobAccessDenied" + ReasonCodeResourceSnapshotJobValidationFailed ReasonCode = "ResourceSnapshotJobValidationFailed" + ReasonCodeResourceSnapshotJobConflict ReasonCode = "ResourceSnapshotJobConflict" + ReasonCodeEngagementValidationFailed ReasonCode = "EngagementValidationFailed" + ReasonCodeEngagementConflict ReasonCode = "EngagementConflict" + ReasonCodeOpportunitySubmissionFailed ReasonCode = "OpportunitySubmissionFailed" + ReasonCodeEngagementInvitationConflict ReasonCode = "EngagementInvitationConflict" + ReasonCodeOpportunityValidationFailed ReasonCode = "OpportunityValidationFailed" + ReasonCodeOpportunityConflict ReasonCode = "OpportunityConflict" + ReasonCodeResourceSnapshotAccessDenied ReasonCode = "ResourceSnapshotAccessDenied" + ReasonCodeResourceSnapshotValidationFailed ReasonCode = "ResourceSnapshotValidationFailed" + ReasonCodeResourceSnapshotConflict ReasonCode = "ResourceSnapshotConflict" + ReasonCodeInternalError ReasonCode = "InternalError" + ReasonCodeServiceQuotaExceeded ReasonCode = "ServiceQuotaExceeded" + ReasonCodeRequestThrottled ReasonCode = "RequestThrottled" ) // Values returns all known values for ReasonCode. Note that this can be expanded @@ -1608,16 +1669,24 @@ const ( func (ReasonCode) Values() []ReasonCode { return []ReasonCode{ "InvitationAccessDenied", + "InvitationValidationFailed", "EngagementAccessDenied", "OpportunityAccessDenied", "ResourceSnapshotJobAccessDenied", + "ResourceSnapshotJobValidationFailed", + "ResourceSnapshotJobConflict", "EngagementValidationFailed", + "EngagementConflict", "OpportunitySubmissionFailed", "EngagementInvitationConflict", - "InternalError", "OpportunityValidationFailed", "OpportunityConflict", "ResourceSnapshotAccessDenied", + "ResourceSnapshotValidationFailed", + "ResourceSnapshotConflict", + "InternalError", + "ServiceQuotaExceeded", + "RequestThrottled", } } @@ -1675,6 +1744,42 @@ func (RelatedEntityType) Values() []RelatedEntityType { } } +type ResourceSnapshotJobStatus string + +// Enum values for ResourceSnapshotJobStatus +const ( + ResourceSnapshotJobStatusRunning ResourceSnapshotJobStatus = "Running" + ResourceSnapshotJobStatusStopped ResourceSnapshotJobStatus = "Stopped" +) + +// Values returns all known values for ResourceSnapshotJobStatus. 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 (ResourceSnapshotJobStatus) Values() []ResourceSnapshotJobStatus { + return []ResourceSnapshotJobStatus{ + "Running", + "Stopped", + } +} + +type ResourceType string + +// Enum values for ResourceType +const ( + ResourceTypeOpportunity ResourceType = "Opportunity" +) + +// Values returns all known values for ResourceType. 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 (ResourceType) Values() []ResourceType { + return []ResourceType{ + "Opportunity", + } +} + type RevenueModel string // Enum values for RevenueModel @@ -1819,6 +1924,23 @@ func (SolutionStatus) Values() []SolutionStatus { } } +type SortBy string + +// Enum values for SortBy +const ( + SortByCreatedDate SortBy = "CreatedDate" +) + +// Values returns all known values for SortBy. 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 (SortBy) Values() []SortBy { + return []SortBy{ + "CreatedDate", + } +} + type SortOrder string // Enum values for SortOrder diff --git a/service/partnercentralselling/types/types.go b/service/partnercentralselling/types/types.go index 70006e2ea3f..381ba03b048 100644 --- a/service/partnercentralselling/types/types.go +++ b/service/partnercentralselling/types/types.go @@ -34,10 +34,10 @@ type Account struct { // 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. + // 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 @@ -307,22 +307,21 @@ type AwsSubmission struct { noSmithyDocumentSerde } -// Represents an Amazon Web Services team member for the engagement. This -// +// 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 + // 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. + // Provides the Amazon Web Services team member's email address. Email *string - // Provides the Amazon Web Services team member's first name. + // Provides the Amazon Web Services team member's first name. FirstName *string - // Provides the Amazon Web Services team member's last name. + // Provides the Amazon Web Services team member's last name. LastName *string noSmithyDocumentSerde @@ -365,6 +364,29 @@ type Customer struct { noSmithyDocumentSerde } +// The CustomerProjects structure in Engagements offers a flexible framework for +// +// managing customer-project relationships. It supports multiple customers per +// Engagement and multiple projects per customer, while also allowing for customers +// without projects and projects without specific customers. +// +// All Engagement members have full visibility of customers and their associated +// projects, enabling the capture of relevant context even when project details are +// not fully defined. This structure also facilitates targeted invitations, +// allowing partners to focus on specific customers and their business problems +// when sending Engagement invitations. +type CustomerProjectsContext struct { + + // Contains details about the customer associated with the Engagement Invitation, + // including company information and industry. + Customer *EngagementCustomer + + // Information about the customer project associated with the Engagement. + Project *EngagementCustomerProjectDetails + + noSmithyDocumentSerde +} + // An object that contains a Customer object's subset of fields. type CustomerSummary struct { @@ -374,6 +396,48 @@ type CustomerSummary struct { noSmithyDocumentSerde } +// Provides detailed context information for an Engagement. This structure allows +// +// for specifying the type of context and its associated payload. +type EngagementContextDetails struct { + + // Specifies the type of Engagement context. Valid values are "CustomerProject" + // or "Document", indicating whether the context relates to a customer project or a + // document respectively. + // + // This member is required. + Type EngagementContextType + + // Contains the specific details of the Engagement context. The structure of this + // payload varies depending on the Type field. + Payload EngagementContextPayload + + noSmithyDocumentSerde +} + +// Represents the payload of an Engagement context. The structure of this payload +// +// varies based on the context type specified in the EngagementContextDetails. +// +// The following types satisfy this interface: +// +// EngagementContextPayloadMemberCustomerProject +type EngagementContextPayload interface { + isEngagementContextPayload() +} + +// Contains detailed information about a customer project when the context type +// +// is "CustomerProject". This field is present only when the Type in +// EngagementContextDetails is set to "CustomerProject". +type EngagementContextPayloadMemberCustomerProject struct { + Value CustomerProjectsContext + + noSmithyDocumentSerde +} + +func (*EngagementContextPayloadMemberCustomerProject) isEngagementContextPayload() {} + // Contains details about the customer associated with the Engagement Invitation, // including company information and industry. type EngagementCustomer struct { @@ -405,6 +469,30 @@ type EngagementCustomer struct { noSmithyDocumentSerde } +// Provides comprehensive details about a customer project associated with an +// +// Engagement. This may include information such as project goals, timelines, and +// specific customer requirements. +type EngagementCustomerProjectDetails struct { + + // A description of the business problem the project aims to solve. + // + // This member is required. + BusinessProblem *string + + // The target completion date for the customer's project. + // + // This member is required. + TargetCompletionDate *string + + // The title of the project. + // + // This member is required. + Title *string + + noSmithyDocumentSerde +} + // Provides a summarized view of the Engagement Invitation, including details like // the identifier, status, and sender. This summary helps partners track and manage // AWS originated opportunities. @@ -429,6 +517,10 @@ type EngagementInvitationSummary struct { // system and manage its lifecycle. Arn *string + // The identifier of the Engagement associated with this invitation. This links + // the invitation to its parent Engagement. + EngagementId *string + // Provides a short title or description of the Engagement Invitation. This title // helps partners quickly identify and differentiate between multiple engagement // opportunities. @@ -444,6 +536,9 @@ type EngagementInvitationSummary struct { // timeline for engagement. InvitationDate *time.Time + // Identifies the role of the caller in the engagement invitation. + ParticipantType ParticipantType + // 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. @@ -472,6 +567,123 @@ type EngagementInvitationSummary struct { noSmithyDocumentSerde } +// Engagement members are the participants in an Engagement, which is likely a +// collaborative project or business opportunity within the AWS partner network. +// Members can be different partner organizations or AWS accounts that are working +// together on a specific engagement. +// +// Each member is represented by their AWS Account ID, Company Name, and +// associated details. Members have a status within the Engagement (PENDING, +// ACCEPTED, REJECTED, or WITHDRAWN), indicating their current state of +// participation. Only existing members of an Engagement can view the list of other +// members. This implies a level of privacy and access control within the +// Engagement structure. +type EngagementMember struct { + + // This is the unique identifier for the AWS account associated with the member + // organization. It's used for AWS-related operations and identity verification. + AccountId *string + + // The official name of the member's company or organization. + CompanyName *string + + // The URL of the member company's website. This offers a way to find more + // information about the member organization and serves as an additional + // identifier. + WebsiteUrl *string + + noSmithyDocumentSerde +} + +// The EngagementMemberSummary provides a snapshot of essential information about +// +// participants in an AWS Partner Central Engagement. This compact data structure +// encapsulates key details of each member, facilitating efficient collaboration +// and management within the Engagement. +type EngagementMemberSummary struct { + + // The official name of the member's company or organization. + CompanyName *string + + // The URL of the member company's website. This offers a way to find more + // information about the member organization and serves as an additional + // identifier. + WebsiteUrl *string + + noSmithyDocumentSerde +} + +// This provide a streamlined view of the relationships between engagements and +// +// resources. These summaries offer a crucial link between collaborative +// engagements and the specific resources involved, such as opportunities.These +// summaries are particularly valuable for partners navigating complex engagements +// with multiple resources. They enable quick insights into resource distribution +// across engagements, support efficient resource management, and help maintain a +// clear overview of collaborative activities. +type EngagementResourceAssociationSummary struct { + + // Indicates the environment in which the resource and engagement exist. + // + // This member is required. + Catalog *string + + // The AWS account ID of the entity that created the association. + CreatedBy *string + + // A unique identifier for the engagement associated with the resource. + EngagementId *string + + // A unique identifier for the specific resource. Varies depending on the + // resource type. + ResourceId *string + + // Categorizes the type of resource associated with the engagement. + ResourceType ResourceType + + noSmithyDocumentSerde +} + +// Specifies the sorting parameters for listing Engagements. +type EngagementSort struct { + + // The field by which to sort the results. + // + // This member is required. + SortBy EngagementSortName + + // The order in which to sort the results. + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + +// An object that contains an Engagement 's subset of fields. +type EngagementSummary struct { + + // The Amazon Resource Name (ARN) of the created engagement. + Arn *string + + // The date and time when the engagement was created. + CreatedAt *time.Time + + // The AWS account ID of the engagement creator. + CreatedBy *string + + // The unique identifier for the engagement. + Id *string + + // The number of members in the engagement. + MemberCount *int32 + + // The title of the engagement. + Title *string + + 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. @@ -503,6 +715,37 @@ type ExpectedCustomerSpend struct { // This member is required. TargetCompany *string + // A URL providing additional information or context about the spend estimation. + EstimationUrl *string + + noSmithyDocumentSerde +} + +// The Invitation structure represents an invitation exchanged between partners +// +// and AWS. It includes a message, receiver information, and a payload providing +// context for the invitation. +type Invitation struct { + + // A message accompanying the invitation. + // + // This member is required. + Message *string + + // 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. + // + // This member is required. + Payload Payload + + // 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. + // + // This member is required. + Receiver Receiver + noSmithyDocumentSerde } @@ -526,7 +769,7 @@ type LastModifiedDate struct { // 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 + // 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: @@ -587,9 +830,8 @@ type LifeCycle struct { // 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: + // 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). // @@ -636,14 +878,14 @@ type LifeCycle struct { // - 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. + // 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 + // 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. @@ -677,7 +919,7 @@ type LifeCycle struct { // forward. Stage Stage - // Specifies the date when Amazon Web Services expects to start significant + // 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. @@ -688,6 +930,26 @@ type LifeCycle struct { noSmithyDocumentSerde } +// Provides the lifecycle view of an opportunity resource shared through a +// +// snapshot. +type LifeCycleForView struct { + + // Describes the next steps for the opportunity shared through a snapshot. + NextSteps *string + + // Defines the approval status of the opportunity shared through a snapshot. + ReviewStatus ReviewStatus + + // Defines the current stage of the opportunity shared through a snapshot. + Stage Stage + + // The projected launch date of the opportunity shared through a snapshot. + TargetCloseDate *string + + noSmithyDocumentSerde +} + // An object that contains a LifeCycle object's subset of fields. type LifeCycleSummary struct { @@ -706,7 +968,7 @@ type LifeCycleSummary struct { // take corrective action based on the ReviewComments . ReviewComments *string - // Indicates the review status of a partner referred opportunity. This field is + // 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). @@ -753,14 +1015,14 @@ type LifeCycleSummary struct { // - Rejected: Disqualified (read-only). ReviewStatus ReviewStatus - // Indicates the reason a specific decision was taken during the opportunity + // 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 + // 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. @@ -794,7 +1056,7 @@ type LifeCycleSummary struct { // forward. Stage Stage - // Specifies the date when Amazon Web Services expects to start significant + // 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. @@ -805,6 +1067,109 @@ type LifeCycleSummary struct { noSmithyDocumentSerde } +// Specifies a subset of fields associated with tasks related to accepting an +// +// engagement invitation. +type ListEngagementByAcceptingInvitationTaskSummary struct { + + // The unique identifier of the engagement invitation that was accepted. + EngagementInvitationId *string + + // Detailed message describing the failure and possible recovery steps. + Message *string + + // Unique identifier of opportunity that was created. + OpportunityId *string + + // A code pointing to the specific reason for the failure. + ReasonCode ReasonCode + + // Unique identifier of the resource snapshot job that was created. + ResourceSnapshotJobId *string + + // Task start timestamp. + StartTime *time.Time + + // The Amazon Resource Name (ARN) that uniquely identifies the task. + TaskArn *string + + // Unique identifier of the task. + TaskId *string + + // Status of the task. + TaskStatus TaskStatus + + noSmithyDocumentSerde +} + +// Provides a summary of a task related to creating an engagement from an +// +// opportunity. This structure contains key information about the task's status, +// associated identifiers, and any failure details. +type ListEngagementFromOpportunityTaskSummary struct { + + // The unique identifier of the engagement created as a result of the task. This + // field is populated when the task is completed successfully. + EngagementId *string + + // The unique identifier of the engagement identifier created as a result of the + // task. This field is populated when the task is completed successfully. + EngagementInvitationId *string + + // A detailed message providing additional information about the task, especially + // useful in case of failures. This field may contain error details or other + // relevant information about the task's execution + Message *string + + // The unique identifier of the original Opportunity from which the Engagement is + // being created. This field helps track the source of the Engagement creation + // task. + OpportunityId *string + + // A code indicating the specific reason for a task failure. This field is + // populated when the task status is FAILED and provides a categorized reason for + // the failure. + ReasonCode ReasonCode + + // The identifier of the resource snapshot job associated with this task, if a + // snapshot was created as part of the Engagement creation process. + ResourceSnapshotJobId *string + + // The timestamp indicating when the task was initiated, in RFC 3339 5.6 + // date-time format. + StartTime *time.Time + + // The Amazon Resource Name (ARN) uniquely identifying this task within AWS. This + // ARN can be used for referencing the task in other AWS services or APIs. + TaskArn *string + + // A unique identifier for a specific task. + TaskId *string + + // The current status of the task. + TaskStatus TaskStatus + + noSmithyDocumentSerde +} + +// Defines the sorting parameters for listing tasks. This structure allows for +// +// specifying the field to sort by and the order of sorting. +type ListTasksSortBase struct { + + // Specifies the field by which the task list should be sorted. + // + // This member is required. + SortBy ListTasksSortName + + // Determines the order in which the sorted results are presented. + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + // An object that contains marketing details for the Opportunity . type Marketing struct { @@ -825,17 +1190,17 @@ type Marketing struct { // contact. Channels []Channel - // Indicates if the Opportunity was sourced from an Amazon Web Services marketing + // 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 . + // 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 | @@ -957,6 +1322,10 @@ type OpportunitySummary struct { // This member is required. Catalog *string + // The Amazon Resource Name (ARN) for the opportunity. This globally unique + // identifier can be used for IAM policies and cross-service references. + Arn *string + // DateTime when the Opportunity was last created. CreatedDate *time.Time @@ -972,7 +1341,7 @@ type OpportunitySummary struct { // An object that contains the Opportunity 's lifecycle details. LifeCycle *LifeCycleSummary - // Specifies opportunity type as a renewal, new, or expansion. + // Specifies opportunity type as a renewal, new, or expansion. // // Opportunity types: // @@ -1000,6 +1369,42 @@ type OpportunitySummary struct { noSmithyDocumentSerde } +// Provides a comprehensive view of an opportunity summary, including lifecycle +// +// information, team details, opportunity type, primary needs from AWS, and +// associated project information. +type OpportunitySummaryView struct { + + // An object that contains the customer's Account and Contact . + Customer *Customer + + // Contains information about the opportunity's lifecycle, including its current + // stage, status, and important dates such as creation and last modification times. + Lifecycle *LifeCycleForView + + // Represents the internal team handling the opportunity. Specify the members + // involved in collaborating on an opportunity within the partner's organization. + OpportunityTeam []Contact + + // Specifies the opportunity type. + OpportunityType OpportunityType + + // Identifies the type of support the partner needs from AWS. + PrimaryNeedsFromAws []PrimaryNeedFromAws + + // Contains summary information about the project associated with the + // opportunity, including project name, description, timeline, and other relevant + // details. + Project *ProjectView + + // This field provides the associations' information for other entities with the + // opportunity. These entities include identifiers for AWSProducts , Partner + // Solutions , and AWSMarketplaceOffers . + RelatedEntityIdentifiers *RelatedEntityIdentifiers + + 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. @@ -1049,7 +1454,7 @@ type Project struct { // captured in other fields. AdditionalComments *string - // Specifies the Amazon Partner Network (APN) program that influenced the + // 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 . // @@ -1077,7 +1482,7 @@ type Project struct { // Opportunity and the strategic fit of the partner's solution. CustomerBusinessProblem *string - // Specifies the proposed solution focus or type of workload for the Opportunity. + // 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. // @@ -1098,7 +1503,7 @@ type Project struct { // | VMC | VMWare | Web development & DevOps CustomerUseCase *string - // Specifies the deployment or consumption model for your solution or service in + // 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: @@ -1138,7 +1543,7 @@ type Project struct { // Specifies the current opportunity's parent opportunity identifier. RelatedOpportunityIdentifier *string - // Specifies the Opportunity 's sales activities conducted with the end customer. + // Specifies the Opportunity 's sales activities conducted with the end customer. // These activities help drive Amazon Web Services assignment priority. // // Valid values: @@ -1208,7 +1613,7 @@ type ProjectDetails struct { // 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 + // 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: @@ -1240,6 +1645,37 @@ type ProjectSummary struct { noSmithyDocumentSerde } +// Provides the project view of an opportunity resource shared through a +// +// snapshot. +type ProjectView struct { + + // Specifies the proposed solution focus or type of workload for the project. + CustomerUseCase *string + + // Describes the deployment or consumption model for the partner solution or + // offering. This field indicates how the project's solution will be delivered or + // implemented for the customer. + DeliveryModels []DeliveryModel + + // Provides information about the anticipated customer spend related to this + // project. This may include details such as amount, frequency, and currency of + // expected expenditure. + ExpectedCustomerSpend []ExpectedCustomerSpend + + // Offers a description of other solutions if the standard solutions do not + // adequately cover the project's scope. + OtherSolutionDescription *string + + // Lists the pre-sales activities that have occurred with the end-customer + // related to the opportunity. This field is conditionally mandatory when the + // project is qualified for Co-Sell and helps drive assignment priority on the AWS + // side. It provides insight into the engagement level with the customer. + SalesActivities []SalesActivity + + 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. @@ -1262,13 +1698,12 @@ type ReceiverMemberAccount struct { func (*ReceiverMemberAccount) isReceiver() {} -// This field provides the associations' information for other entities with the -// +// 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), + // 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"] // . @@ -1279,7 +1714,7 @@ type RelatedEntityIdentifiers struct { // [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 + // 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" : @@ -1290,7 +1725,7 @@ type RelatedEntityIdentifiers struct { // [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 + // 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. // @@ -1307,6 +1742,81 @@ type RelatedEntityIdentifiers struct { noSmithyDocumentSerde } +// An object that contains a Resource Snapshot Job 's subset of fields. +type ResourceSnapshotJobSummary struct { + + // The Amazon Resource Name (ARN) for the resource snapshot job. + Arn *string + + // The unique identifier for the engagement within the AWS Partner Central + // system. This ID is used for direct references to the engagement within the + // service. + EngagementId *string + + // The unique identifier for the resource snapshot job within the AWS Partner + // Central system. This ID is used for direct references to the job within the + // service. + Id *string + + // Represents the current status of the resource snapshot job. + Status ResourceSnapshotJobStatus + + noSmithyDocumentSerde +} + +// Represents the payload of a resource snapshot. This structure is designed to +// +// accommodate different types of resource snapshots, currently supporting +// opportunity summaries. +// +// The following types satisfy this interface: +// +// ResourceSnapshotPayloadMemberOpportunitySummary +type ResourceSnapshotPayload interface { + isResourceSnapshotPayload() +} + +// An object that contains an opportunity 's subset of fields. +type ResourceSnapshotPayloadMemberOpportunitySummary struct { + Value OpportunitySummaryView + + noSmithyDocumentSerde +} + +func (*ResourceSnapshotPayloadMemberOpportunitySummary) isResourceSnapshotPayload() {} + +// Provides a concise summary of a resource snapshot, including its unique +// +// identifier and version information. This structure is used to quickly reference +// and identify specific versions of resource snapshots. +type ResourceSnapshotSummary struct { + + // The Amazon Resource Name (ARN) of the snapshot. This globally unique + // identifier can be used for cross-service references and in IAM policies. + Arn *string + + // The AWS account ID of the principal (user or role) who created the snapshot. + // This helps in tracking the origin of the snapshot. + CreatedBy *string + + // The identifier of the specific resource snapshotted. The format might vary + // depending on the ResourceType. + ResourceId *string + + // The name of the template used to create the snapshot. + ResourceSnapshotTemplateName *string + + // The type of resource snapshotted. + ResourceType ResourceType + + // The revision number of the snapshot. This integer value is incremented each + // time the snapshot is updated, allowing for version tracking of the resource + // snapshot. + Revision *int32 + + noSmithyDocumentSerde +} + // An object that contains the details of the sender-provided contact person for // the EngagementInvitation . type SenderContact struct { @@ -1370,7 +1880,7 @@ type SolutionBase struct { // This member is required. Catalog *string - // Specifies the solution category, which helps to categorize and organize the + // 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 @@ -1394,7 +1904,7 @@ type SolutionBase struct { // This member is required. Name *string - // Specifies the solution's current status, which indicates its state in the + // 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. @@ -1402,20 +1912,22 @@ type SolutionBase struct { // This member is required. Status SolutionStatus + // The SolutionBase structure provides essential information about a solution. + Arn *string + noSmithyDocumentSerde } -// Configures the solutions' response sorting that enables partners to order -// +// 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 . + // 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 + // Specifies the sorting order, either Ascending or Descending . The default is // Descending . // // This member is required. @@ -1424,9 +1936,23 @@ type SolutionSort struct { noSmithyDocumentSerde } -// Indicates an invalid value for a field. +// Defines the sorting parameters for listing resource snapshot jobs. This +// +// structure allows you to specify the field to sort by and the order of sorting. +type SortObject struct { + + // Specifies the field by which to sort the resource snapshot jobs. + SortBy SortBy + + // Determines the order in which the sorted results are presented. + SortOrder SortOrder + + noSmithyDocumentSerde +} + +// Indicates an invalid value for a field. // -// - REQUIRED_FIELD_MISSING: The request is missing a required field. +// - REQUIRED_FIELD_MISSING: The request is missing a required field. // // Fix: Verify your request payload includes all required fields. // @@ -1495,5 +2021,7 @@ type UnknownUnionMember struct { noSmithyDocumentSerde } -func (*UnknownUnionMember) isPayload() {} -func (*UnknownUnionMember) isReceiver() {} +func (*UnknownUnionMember) isEngagementContextPayload() {} +func (*UnknownUnionMember) isPayload() {} +func (*UnknownUnionMember) isReceiver() {} +func (*UnknownUnionMember) isResourceSnapshotPayload() {} diff --git a/service/partnercentralselling/types/types_exported_test.go b/service/partnercentralselling/types/types_exported_test.go index 532e5ee2611..7a78e35140a 100644 --- a/service/partnercentralselling/types/types_exported_test.go +++ b/service/partnercentralselling/types/types_exported_test.go @@ -7,6 +7,24 @@ import ( "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" ) +func ExampleEngagementContextPayload_outputUsage() { + var union types.EngagementContextPayload + // type switches can be used to check the union value + switch v := union.(type) { + case *types.EngagementContextPayloadMemberCustomerProject: + _ = v.Value // Value is types.CustomerProjectsContext + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.CustomerProjectsContext + func ExamplePayload_outputUsage() { var union types.Payload // type switches can be used to check the union value @@ -42,3 +60,21 @@ func ExampleReceiver_outputUsage() { } var _ *types.AccountReceiver + +func ExampleResourceSnapshotPayload_outputUsage() { + var union types.ResourceSnapshotPayload + // type switches can be used to check the union value + switch v := union.(type) { + case *types.ResourceSnapshotPayloadMemberOpportunitySummary: + _ = v.Value // Value is types.OpportunitySummaryView + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.OpportunitySummaryView diff --git a/service/partnercentralselling/validators.go b/service/partnercentralselling/validators.go index 79d1cf86b2d..4854b9b4817 100644 --- a/service/partnercentralselling/validators.go +++ b/service/partnercentralselling/validators.go @@ -10,6 +10,26 @@ import ( "github.com/aws/smithy-go/middleware" ) +type validateOpAcceptEngagementInvitation struct { +} + +func (*validateOpAcceptEngagementInvitation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAcceptEngagementInvitation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AcceptEngagementInvitationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAcceptEngagementInvitationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpAssignOpportunity struct { } @@ -50,6 +70,46 @@ func (m *validateOpAssociateOpportunity) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpCreateEngagement struct { +} + +func (*validateOpCreateEngagement) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateEngagement) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateEngagementInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateEngagementInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateEngagementInvitation struct { +} + +func (*validateOpCreateEngagementInvitation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateEngagementInvitation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateEngagementInvitationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateEngagementInvitationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateOpportunity struct { } @@ -70,6 +130,66 @@ func (m *validateOpCreateOpportunity) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpCreateResourceSnapshot struct { +} + +func (*validateOpCreateResourceSnapshot) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateResourceSnapshot) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateResourceSnapshotInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateResourceSnapshotInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateResourceSnapshotJob struct { +} + +func (*validateOpCreateResourceSnapshotJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateResourceSnapshotJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateResourceSnapshotJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateResourceSnapshotJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteResourceSnapshotJob struct { +} + +func (*validateOpDeleteResourceSnapshotJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteResourceSnapshotJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteResourceSnapshotJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteResourceSnapshotJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDisassociateOpportunity struct { } @@ -110,6 +230,26 @@ func (m *validateOpGetAwsOpportunitySummary) HandleInitialize(ctx context.Contex return next.HandleInitialize(ctx, in) } +type validateOpGetEngagement struct { +} + +func (*validateOpGetEngagement) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetEngagement) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetEngagementInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetEngagementInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetEngagementInvitation struct { } @@ -150,248 +290,1096 @@ func (m *validateOpGetOpportunity) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } -type validateOpListEngagementInvitations struct { +type validateOpGetResourceSnapshot struct { } -func (*validateOpListEngagementInvitations) ID() string { +func (*validateOpGetResourceSnapshot) ID() string { return "OperationInputValidation" } -func (m *validateOpListEngagementInvitations) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpGetResourceSnapshot) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*ListEngagementInvitationsInput) + input, ok := in.Parameters.(*GetResourceSnapshotInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpListEngagementInvitationsInput(input); err != nil { + if err := validateOpGetResourceSnapshotInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpListOpportunities struct { +type validateOpGetResourceSnapshotJob struct { } -func (*validateOpListOpportunities) ID() string { +func (*validateOpGetResourceSnapshotJob) ID() string { return "OperationInputValidation" } -func (m *validateOpListOpportunities) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpGetResourceSnapshotJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*ListOpportunitiesInput) + input, ok := in.Parameters.(*GetResourceSnapshotJobInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpListOpportunitiesInput(input); err != nil { + if err := validateOpGetResourceSnapshotJobInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpListSolutions struct { +type validateOpGetSellingSystemSettings struct { } -func (*validateOpListSolutions) ID() string { +func (*validateOpGetSellingSystemSettings) ID() string { return "OperationInputValidation" } -func (m *validateOpListSolutions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpGetSellingSystemSettings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*ListSolutionsInput) + input, ok := in.Parameters.(*GetSellingSystemSettingsInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpListSolutionsInput(input); err != nil { + if err := validateOpGetSellingSystemSettingsInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpRejectEngagementInvitation struct { +type validateOpListEngagementByAcceptingInvitationTasks struct { } -func (*validateOpRejectEngagementInvitation) ID() string { +func (*validateOpListEngagementByAcceptingInvitationTasks) ID() string { return "OperationInputValidation" } -func (m *validateOpRejectEngagementInvitation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpListEngagementByAcceptingInvitationTasks) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*RejectEngagementInvitationInput) + input, ok := in.Parameters.(*ListEngagementByAcceptingInvitationTasksInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpRejectEngagementInvitationInput(input); err != nil { + if err := validateOpListEngagementByAcceptingInvitationTasksInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpStartEngagementByAcceptingInvitationTask struct { +type validateOpListEngagementFromOpportunityTasks struct { } -func (*validateOpStartEngagementByAcceptingInvitationTask) ID() string { +func (*validateOpListEngagementFromOpportunityTasks) ID() string { return "OperationInputValidation" } -func (m *validateOpStartEngagementByAcceptingInvitationTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpListEngagementFromOpportunityTasks) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*StartEngagementByAcceptingInvitationTaskInput) + input, ok := in.Parameters.(*ListEngagementFromOpportunityTasksInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpStartEngagementByAcceptingInvitationTaskInput(input); err != nil { + if err := validateOpListEngagementFromOpportunityTasksInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpStartEngagementFromOpportunityTask struct { +type validateOpListEngagementInvitations struct { } -func (*validateOpStartEngagementFromOpportunityTask) ID() string { +func (*validateOpListEngagementInvitations) ID() string { return "OperationInputValidation" } -func (m *validateOpStartEngagementFromOpportunityTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +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.(*StartEngagementFromOpportunityTaskInput) + input, ok := in.Parameters.(*ListEngagementInvitationsInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpStartEngagementFromOpportunityTaskInput(input); err != nil { + if err := validateOpListEngagementInvitationsInput(input); err != nil { return out, metadata, err } return next.HandleInitialize(ctx, in) } -type validateOpUpdateOpportunity struct { +type validateOpListEngagementMembers struct { } -func (*validateOpUpdateOpportunity) ID() string { +func (*validateOpListEngagementMembers) ID() string { return "OperationInputValidation" } -func (m *validateOpUpdateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( +func (m *validateOpListEngagementMembers) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( out middleware.InitializeOutput, metadata middleware.Metadata, err error, ) { - input, ok := in.Parameters.(*UpdateOpportunityInput) + input, ok := in.Parameters.(*ListEngagementMembersInput) if !ok { return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if err := validateOpUpdateOpportunityInput(input); err != nil { + if err := validateOpListEngagementMembersInput(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) +type validateOpListEngagementResourceAssociations struct { } -func addOpAssociateOpportunityValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpAssociateOpportunity{}, middleware.After) +func (*validateOpListEngagementResourceAssociations) ID() string { + return "OperationInputValidation" } -func addOpCreateOpportunityValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpCreateOpportunity{}, middleware.After) +func (m *validateOpListEngagementResourceAssociations) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListEngagementResourceAssociationsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListEngagementResourceAssociationsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) } -func addOpDisassociateOpportunityValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpDisassociateOpportunity{}, middleware.After) +type validateOpListEngagements struct { } -func addOpGetAwsOpportunitySummaryValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpGetAwsOpportunitySummary{}, middleware.After) +func (*validateOpListEngagements) ID() string { + return "OperationInputValidation" } -func addOpGetEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpGetEngagementInvitation{}, middleware.After) +func (m *validateOpListEngagements) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListEngagementsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListEngagementsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) } -func addOpGetOpportunityValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpGetOpportunity{}, middleware.After) +type validateOpListOpportunities struct { } -func addOpListEngagementInvitationsValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpListEngagementInvitations{}, middleware.After) +func (*validateOpListOpportunities) ID() string { + return "OperationInputValidation" } -func addOpListOpportunitiesValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpListOpportunities{}, middleware.After) +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) } -func addOpListSolutionsValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpListSolutions{}, middleware.After) +type validateOpListResourceSnapshotJobs struct { } -func addOpRejectEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpRejectEngagementInvitation{}, middleware.After) +func (*validateOpListResourceSnapshotJobs) ID() string { + return "OperationInputValidation" } -func addOpStartEngagementByAcceptingInvitationTaskValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpStartEngagementByAcceptingInvitationTask{}, middleware.After) +func (m *validateOpListResourceSnapshotJobs) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListResourceSnapshotJobsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListResourceSnapshotJobsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) } -func addOpStartEngagementFromOpportunityTaskValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpStartEngagementFromOpportunityTask{}, middleware.After) +type validateOpListResourceSnapshots struct { } -func addOpUpdateOpportunityValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpUpdateOpportunity{}, middleware.After) +func (*validateOpListResourceSnapshots) ID() string { + return "OperationInputValidation" } -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")) +func (m *validateOpListResourceSnapshots) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListResourceSnapshotsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil + if err := validateOpListResourceSnapshotsInput(input); err != nil { + return out, metadata, err } + return next.HandleInitialize(ctx, in) } -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 - } +type validateOpListSolutions struct { } -func validateAwsSubmission(v *types.AwsSubmission) error { +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 validateOpPutSellingSystemSettings struct { +} + +func (*validateOpPutSellingSystemSettings) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutSellingSystemSettings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutSellingSystemSettingsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutSellingSystemSettingsInput(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 validateOpStartResourceSnapshotJob struct { +} + +func (*validateOpStartResourceSnapshotJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStartResourceSnapshotJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StartResourceSnapshotJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStartResourceSnapshotJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpStopResourceSnapshotJob struct { +} + +func (*validateOpStopResourceSnapshotJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStopResourceSnapshotJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StopResourceSnapshotJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStopResourceSnapshotJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpSubmitOpportunity struct { +} + +func (*validateOpSubmitOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSubmitOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SubmitOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSubmitOpportunityInput(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 addOpAcceptEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAcceptEngagementInvitation{}, middleware.After) +} + +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 addOpCreateEngagementValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateEngagement{}, middleware.After) +} + +func addOpCreateEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateEngagementInvitation{}, middleware.After) +} + +func addOpCreateOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateOpportunity{}, middleware.After) +} + +func addOpCreateResourceSnapshotValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateResourceSnapshot{}, middleware.After) +} + +func addOpCreateResourceSnapshotJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateResourceSnapshotJob{}, middleware.After) +} + +func addOpDeleteResourceSnapshotJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteResourceSnapshotJob{}, 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 addOpGetEngagementValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetEngagement{}, 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 addOpGetResourceSnapshotValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetResourceSnapshot{}, middleware.After) +} + +func addOpGetResourceSnapshotJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetResourceSnapshotJob{}, middleware.After) +} + +func addOpGetSellingSystemSettingsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetSellingSystemSettings{}, middleware.After) +} + +func addOpListEngagementByAcceptingInvitationTasksValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementByAcceptingInvitationTasks{}, middleware.After) +} + +func addOpListEngagementFromOpportunityTasksValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementFromOpportunityTasks{}, middleware.After) +} + +func addOpListEngagementInvitationsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementInvitations{}, middleware.After) +} + +func addOpListEngagementMembersValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementMembers{}, middleware.After) +} + +func addOpListEngagementResourceAssociationsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementResourceAssociations{}, middleware.After) +} + +func addOpListEngagementsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagements{}, middleware.After) +} + +func addOpListOpportunitiesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListOpportunities{}, middleware.After) +} + +func addOpListResourceSnapshotJobsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListResourceSnapshotJobs{}, middleware.After) +} + +func addOpListResourceSnapshotsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListResourceSnapshots{}, middleware.After) +} + +func addOpListSolutionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListSolutions{}, middleware.After) +} + +func addOpPutSellingSystemSettingsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutSellingSystemSettings{}, 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 addOpStartResourceSnapshotJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStartResourceSnapshotJob{}, middleware.After) +} + +func addOpStopResourceSnapshotJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStopResourceSnapshotJob{}, middleware.After) +} + +func addOpSubmitOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSubmitOpportunity{}, 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 validateAccountReceiver(v *types.AccountReceiver) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AccountReceiver"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + 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 validateCustomerProjectsContext(v *types.CustomerProjectsContext) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CustomerProjectsContext"} + if v.Customer != nil { + if err := validateEngagementCustomer(v.Customer); err != nil { + invalidParams.AddNested("Customer", err.(smithy.InvalidParamsError)) + } + } + if v.Project != nil { + if err := validateEngagementCustomerProjectDetails(v.Project); err != nil { + invalidParams.AddNested("Project", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementContextDetails(v *types.EngagementContextDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementContextDetails"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.Payload != nil { + if err := validateEngagementContextPayload(v.Payload); err != nil { + invalidParams.AddNested("Payload", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementContextPayload(v types.EngagementContextPayload) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementContextPayload"} + switch uv := v.(type) { + case *types.EngagementContextPayloadMemberCustomerProject: + if err := validateCustomerProjectsContext(&uv.Value); err != nil { + invalidParams.AddNested("[CustomerProject]", err.(smithy.InvalidParamsError)) + } + + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementContexts(v []types.EngagementContextDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementContexts"} + for i := range v { + if err := validateEngagementContextDetails(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementCustomer(v *types.EngagementCustomer) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementCustomer"} + if len(v.Industry) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Industry")) + } + if v.CompanyName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CompanyName")) + } + if v.WebsiteUrl == nil { + invalidParams.Add(smithy.NewErrParamRequired("WebsiteUrl")) + } + if len(v.CountryCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("CountryCode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementCustomerProjectDetails(v *types.EngagementCustomerProjectDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementCustomerProjectDetails"} + if v.Title == nil { + invalidParams.Add(smithy.NewErrParamRequired("Title")) + } + if v.BusinessProblem == nil { + invalidParams.Add(smithy.NewErrParamRequired("BusinessProblem")) + } + if v.TargetCompletionDate == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetCompletionDate")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEngagementSort(v *types.EngagementSort) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EngagementSort"} + 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 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 validateInvitation(v *types.Invitation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Invitation"} + if v.Message == nil { + invalidParams.Add(smithy.NewErrParamRequired("Message")) + } + if v.Receiver == nil { + invalidParams.Add(smithy.NewErrParamRequired("Receiver")) + } else if v.Receiver != nil { + if err := validateReceiver(v.Receiver); err != nil { + invalidParams.AddNested("Receiver", err.(smithy.InvalidParamsError)) + } + } + if v.Payload == nil { + invalidParams.Add(smithy.NewErrParamRequired("Payload")) + } else if v.Payload != nil { + if err := validatePayload(v.Payload); err != nil { + invalidParams.AddNested("Payload", 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 validateListTasksSortBase(v *types.ListTasksSortBase) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTasksSortBase"} + 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 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 validateOpportunityInvitationPayload(v *types.OpportunityInvitationPayload) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OpportunityInvitationPayload"} + if v.SenderContacts != nil { + if err := validateSenderContactList(v.SenderContacts); err != nil { + invalidParams.AddNested("SenderContacts", err.(smithy.InvalidParamsError)) + } + } + if v.ReceiverResponsibilities == nil { + invalidParams.Add(smithy.NewErrParamRequired("ReceiverResponsibilities")) + } + if v.Customer == nil { + invalidParams.Add(smithy.NewErrParamRequired("Customer")) + } else if v.Customer != nil { + if err := validateEngagementCustomer(v.Customer); err != nil { + invalidParams.AddNested("Customer", err.(smithy.InvalidParamsError)) + } + } + if v.Project == nil { + invalidParams.Add(smithy.NewErrParamRequired("Project")) + } else if v.Project != nil { + if err := validateProjectDetails(v.Project); err != nil { + invalidParams.AddNested("Project", err.(smithy.InvalidParamsError)) + } + } + 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 validatePayload(v types.Payload) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Payload"} + switch uv := v.(type) { + case *types.PayloadMemberOpportunityInvitation: + if err := validateOpportunityInvitationPayload(&uv.Value); err != nil { + invalidParams.AddNested("[OpportunityInvitation]", err.(smithy.InvalidParamsError)) + } + + } + 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 validateProjectDetails(v *types.ProjectDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ProjectDetails"} + if v.BusinessProblem == nil { + invalidParams.Add(smithy.NewErrParamRequired("BusinessProblem")) + } + if v.Title == nil { + invalidParams.Add(smithy.NewErrParamRequired("Title")) + } + if v.TargetCompletionDate == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetCompletionDate")) + } + if v.ExpectedCustomerSpend == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExpectedCustomerSpend")) + } else 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 validateReceiver(v types.Receiver) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "AwsSubmission"} - if len(v.InvolvementType) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("InvolvementType")) + invalidParams := smithy.InvalidParamsError{Context: "Receiver"} + switch uv := v.(type) { + case *types.ReceiverMemberAccount: + if err := validateAccountReceiver(&uv.Value); err != nil { + invalidParams.AddNested("[Account]", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -400,14 +1388,29 @@ func validateAwsSubmission(v *types.AwsSubmission) error { } } -func validateCustomer(v *types.Customer) error { +func validateSenderContact(v *types.SenderContact) 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)) + invalidParams := smithy.InvalidParamsError{Context: "SenderContact"} + if v.Email == nil { + invalidParams.Add(smithy.NewErrParamRequired("Email")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSenderContactList(v []types.SenderContact) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SenderContactList"} + for i := range v { + if err := validateSenderContact(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) } } if invalidParams.Len() > 0 { @@ -417,22 +1420,33 @@ func validateCustomer(v *types.Customer) error { } } -func validateExpectedCustomerSpend(v *types.ExpectedCustomerSpend) error { +func validateSoftwareRevenue(v *types.SoftwareRevenue) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ExpectedCustomerSpend"} - if v.Amount == nil { - invalidParams.Add(smithy.NewErrParamRequired("Amount")) + invalidParams := smithy.InvalidParamsError{Context: "SoftwareRevenue"} + if v.Value != nil { + if err := validateMonetaryValue(v.Value); err != nil { + invalidParams.AddNested("Value", err.(smithy.InvalidParamsError)) + } } - if len(v.CurrencyCode) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("CurrencyCode")) + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil } - if len(v.Frequency) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("Frequency")) +} + +func validateSolutionSort(v *types.SolutionSort) error { + if v == nil { + return nil } - if v.TargetCompany == nil { - invalidParams.Add(smithy.NewErrParamRequired("TargetCompany")) + 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 @@ -441,14 +1455,40 @@ func validateExpectedCustomerSpend(v *types.ExpectedCustomerSpend) error { } } -func validateExpectedCustomerSpendList(v []types.ExpectedCustomerSpend) error { +func validateOpAcceptEngagementInvitationInput(v *AcceptEngagementInvitationInput) 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)) + invalidParams := smithy.InvalidParamsError{Context: "AcceptEngagementInvitationInput"} + 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 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 { @@ -458,15 +1498,219 @@ func validateExpectedCustomerSpendList(v []types.ExpectedCustomerSpend) error { } } -func validateLifeCycle(v *types.LifeCycle) error { +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 validateOpCreateEngagementInput(v *CreateEngagementInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateEngagementInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Title == nil { + invalidParams.Add(smithy.NewErrParamRequired("Title")) + } + if v.Description == nil { + invalidParams.Add(smithy.NewErrParamRequired("Description")) + } + if v.Contexts != nil { + if err := validateEngagementContexts(v.Contexts); err != nil { + invalidParams.AddNested("Contexts", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateEngagementInvitationInput(v *CreateEngagementInvitationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateEngagementInvitationInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.EngagementIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EngagementIdentifier")) + } + if v.Invitation == nil { + invalidParams.Add(smithy.NewErrParamRequired("Invitation")) + } else if v.Invitation != nil { + if err := validateInvitation(v.Invitation); err != nil { + invalidParams.AddNested("Invitation", err.(smithy.InvalidParamsError)) + } + } + 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 validateOpCreateResourceSnapshotInput(v *CreateResourceSnapshotInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateResourceSnapshotInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.EngagementIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EngagementIdentifier")) + } + if len(v.ResourceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ResourceType")) + } + if v.ResourceIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceIdentifier")) + } + if v.ResourceSnapshotTemplateIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotTemplateIdentifier")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateResourceSnapshotJobInput(v *CreateResourceSnapshotJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateResourceSnapshotJobInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.EngagementIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EngagementIdentifier")) + } + if len(v.ResourceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ResourceType")) + } + if v.ResourceIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceIdentifier")) + } + if v.ResourceSnapshotTemplateIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotTemplateIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteResourceSnapshotJobInput(v *DeleteResourceSnapshotJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteResourceSnapshotJobInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ResourceSnapshotJobIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotJobIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDisassociateOpportunityInput(v *DisassociateOpportunityInput) 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)) - } + 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 @@ -475,16 +1719,16 @@ func validateLifeCycle(v *types.LifeCycle) error { } } -func validateMonetaryValue(v *types.MonetaryValue) error { +func validateOpGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "MonetaryValue"} - if v.Amount == nil { - invalidParams.Add(smithy.NewErrParamRequired("Amount")) + invalidParams := smithy.InvalidParamsError{Context: "GetAwsOpportunitySummaryInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if len(v.CurrencyCode) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("CurrencyCode")) + if v.RelatedOpportunityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("RelatedOpportunityIdentifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -493,15 +1737,16 @@ func validateMonetaryValue(v *types.MonetaryValue) error { } } -func validateNextStepsHistories(v []types.NextStepsHistory) error { +func validateOpGetEngagementInput(v *GetEngagementInput) 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)) - } + invalidParams := smithy.InvalidParamsError{Context: "GetEngagementInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -510,16 +1755,16 @@ func validateNextStepsHistories(v []types.NextStepsHistory) error { } } -func validateNextStepsHistory(v *types.NextStepsHistory) error { +func validateOpGetEngagementInvitationInput(v *GetEngagementInvitationInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "NextStepsHistory"} - if v.Value == nil { - invalidParams.Add(smithy.NewErrParamRequired("Value")) + invalidParams := smithy.InvalidParamsError{Context: "GetEngagementInvitationInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if v.Time == nil { - invalidParams.Add(smithy.NewErrParamRequired("Time")) + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -528,16 +1773,16 @@ func validateNextStepsHistory(v *types.NextStepsHistory) error { } } -func validateOpportunityEngagementInvitationSort(v *types.OpportunityEngagementInvitationSort) error { +func validateOpGetOpportunityInput(v *GetOpportunityInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "OpportunityEngagementInvitationSort"} - if len(v.SortOrder) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + invalidParams := smithy.InvalidParamsError{Context: "GetOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if len(v.SortBy) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -546,16 +1791,25 @@ func validateOpportunityEngagementInvitationSort(v *types.OpportunityEngagementI } } -func validateOpportunitySort(v *types.OpportunitySort) error { +func validateOpGetResourceSnapshotInput(v *GetResourceSnapshotInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "OpportunitySort"} - if len(v.SortOrder) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + invalidParams := smithy.InvalidParamsError{Context: "GetResourceSnapshotInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if len(v.SortBy) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + if v.EngagementIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EngagementIdentifier")) + } + if len(v.ResourceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ResourceType")) + } + if v.ResourceIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceIdentifier")) + } + if v.ResourceSnapshotTemplateIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotTemplateIdentifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -564,15 +1818,16 @@ func validateOpportunitySort(v *types.OpportunitySort) error { } } -func validateProject(v *types.Project) error { +func validateOpGetResourceSnapshotJobInput(v *GetResourceSnapshotJobInput) 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)) - } + invalidParams := smithy.InvalidParamsError{Context: "GetResourceSnapshotJobInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ResourceSnapshotJobIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotJobIdentifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -581,15 +1836,13 @@ func validateProject(v *types.Project) error { } } -func validateSoftwareRevenue(v *types.SoftwareRevenue) error { +func validateOpGetSellingSystemSettingsInput(v *GetSellingSystemSettingsInput) 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)) - } + invalidParams := smithy.InvalidParamsError{Context: "GetSellingSystemSettingsInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } if invalidParams.Len() > 0 { return invalidParams @@ -598,16 +1851,18 @@ func validateSoftwareRevenue(v *types.SoftwareRevenue) error { } } -func validateSolutionSort(v *types.SolutionSort) error { +func validateOpListEngagementByAcceptingInvitationTasksInput(v *ListEngagementByAcceptingInvitationTasksInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "SolutionSort"} - if len(v.SortOrder) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementByAcceptingInvitationTasksInput"} + if v.Sort != nil { + if err := validateListTasksSortBase(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } } - if len(v.SortBy) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } if invalidParams.Len() > 0 { return invalidParams @@ -616,24 +1871,19 @@ func validateSolutionSort(v *types.SolutionSort) error { } } -func validateOpAssignOpportunityInput(v *AssignOpportunityInput) error { +func validateOpListEngagementFromOpportunityTasksInput(v *ListEngagementFromOpportunityTasksInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "AssignOpportunityInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementFromOpportunityTasksInput"} + if v.Sort != nil { + if err := validateListTasksSortBase(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } + } 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 { @@ -641,22 +1891,21 @@ func validateOpAssignOpportunityInput(v *AssignOpportunityInput) error { } } -func validateOpAssociateOpportunityInput(v *AssociateOpportunityInput) error { +func validateOpListEngagementInvitationsInput(v *ListEngagementInvitationsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "AssociateOpportunityInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementInvitationsInput"} 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.Sort != nil { + if err := validateOpportunityEngagementInvitationSort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } } - if v.RelatedEntityIdentifier == nil { - invalidParams.Add(smithy.NewErrParamRequired("RelatedEntityIdentifier")) + if len(v.ParticipantType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ParticipantType")) } if invalidParams.Len() > 0 { return invalidParams @@ -665,36 +1914,16 @@ func validateOpAssociateOpportunityInput(v *AssociateOpportunityInput) error { } } -func validateOpCreateOpportunityInput(v *CreateOpportunityInput) error { +func validateOpListEngagementMembersInput(v *ListEngagementMembersInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "CreateOpportunityInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementMembersInput"} 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 v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -703,23 +1932,14 @@ func validateOpCreateOpportunityInput(v *CreateOpportunityInput) error { } } -func validateOpDisassociateOpportunityInput(v *DisassociateOpportunityInput) error { +func validateOpListEngagementResourceAssociationsInput(v *ListEngagementResourceAssociationsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "DisassociateOpportunityInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementResourceAssociationsInput"} 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 { @@ -727,16 +1947,18 @@ func validateOpDisassociateOpportunityInput(v *DisassociateOpportunityInput) err } } -func validateOpGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput) error { +func validateOpListEngagementsInput(v *ListEngagementsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "GetAwsOpportunitySummaryInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementsInput"} if v.Catalog == nil { invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if v.RelatedOpportunityIdentifier == nil { - invalidParams.Add(smithy.NewErrParamRequired("RelatedOpportunityIdentifier")) + if v.Sort != nil { + if err := validateEngagementSort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -745,16 +1967,18 @@ func validateOpGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput) e } } -func validateOpGetEngagementInvitationInput(v *GetEngagementInvitationInput) error { +func validateOpListOpportunitiesInput(v *ListOpportunitiesInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "GetEngagementInvitationInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListOpportunitiesInput"} if v.Catalog == nil { invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } - if v.Identifier == nil { - invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + if v.Sort != nil { + if err := validateOpportunitySort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -763,17 +1987,14 @@ func validateOpGetEngagementInvitationInput(v *GetEngagementInvitationInput) err } } -func validateOpGetOpportunityInput(v *GetOpportunityInput) error { +func validateOpListResourceSnapshotJobsInput(v *ListResourceSnapshotJobsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "GetOpportunityInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListResourceSnapshotJobsInput"} 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 { @@ -781,21 +2002,16 @@ func validateOpGetOpportunityInput(v *GetOpportunityInput) error { } } -func validateOpListEngagementInvitationsInput(v *ListEngagementInvitationsInput) error { +func validateOpListResourceSnapshotsInput(v *ListResourceSnapshotsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ListEngagementInvitationsInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListResourceSnapshotsInput"} 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 v.EngagementIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EngagementIdentifier")) } if invalidParams.Len() > 0 { return invalidParams @@ -804,16 +2020,16 @@ func validateOpListEngagementInvitationsInput(v *ListEngagementInvitationsInput) } } -func validateOpListOpportunitiesInput(v *ListOpportunitiesInput) error { +func validateOpListSolutionsInput(v *ListSolutionsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ListOpportunitiesInput"} + invalidParams := smithy.InvalidParamsError{Context: "ListSolutionsInput"} if v.Catalog == nil { invalidParams.Add(smithy.NewErrParamRequired("Catalog")) } if v.Sort != nil { - if err := validateOpportunitySort(v.Sort); err != nil { + if err := validateSolutionSort(v.Sort); err != nil { invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) } } @@ -824,19 +2040,14 @@ func validateOpListOpportunitiesInput(v *ListOpportunitiesInput) error { } } -func validateOpListSolutionsInput(v *ListSolutionsInput) error { +func validateOpPutSellingSystemSettingsInput(v *PutSellingSystemSettingsInput) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ListSolutionsInput"} + invalidParams := smithy.InvalidParamsError{Context: "PutSellingSystemSettingsInput"} 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 { @@ -911,6 +2122,63 @@ func validateOpStartEngagementFromOpportunityTaskInput(v *StartEngagementFromOpp } } +func validateOpStartResourceSnapshotJobInput(v *StartResourceSnapshotJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StartResourceSnapshotJobInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ResourceSnapshotJobIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotJobIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpStopResourceSnapshotJobInput(v *StopResourceSnapshotJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StopResourceSnapshotJobInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ResourceSnapshotJobIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceSnapshotJobIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpSubmitOpportunityInput(v *SubmitOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SubmitOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if len(v.InvolvementType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("InvolvementType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateOpportunityInput(v *UpdateOpportunityInput) error { if v == nil { return nil diff --git a/service/qbusiness/api_op_SearchRelevantContent.go b/service/qbusiness/api_op_SearchRelevantContent.go index 4d28efd6048..bdc38214448 100644 --- a/service/qbusiness/api_op_SearchRelevantContent.go +++ b/service/qbusiness/api_op_SearchRelevantContent.go @@ -13,11 +13,11 @@ import ( // Searches for relevant content in a Q Business application based on a query. // This operation takes a search query text, the Q Business application identifier, -// and optional filters (such as user ID, user groups, content source, and maximum -// results) as input. It returns a list of relevant content items, where each item -// includes the content text, the unique document identifier, the document title, -// the document URI, any relevant document attributes, and score attributes -// indicating the confidence level of the relevance. +// and optional filters (such as content source and maximum results) as input. It +// returns a list of relevant content items, where each item includes the content +// text, the unique document identifier, the document title, the document URI, any +// relevant document attributes, and score attributes indicating the confidence +// level of the relevance. func (c *Client) SearchRelevantContent(ctx context.Context, params *SearchRelevantContentInput, optFns ...func(*Options)) (*SearchRelevantContentOutput, error) { if params == nil { params = &SearchRelevantContentInput{} @@ -60,12 +60,6 @@ type SearchRelevantContentInput struct { // call.) NextToken *string - // The groups the user belongs to. Used for access control. - UserGroups []string - - // The ID of the user performing the search. Used for access control. - UserId *string - noSmithyDocumentSerde } diff --git a/service/qbusiness/serializers.go b/service/qbusiness/serializers.go index 5ea9c19ab91..5a83696590c 100644 --- a/service/qbusiness/serializers.go +++ b/service/qbusiness/serializers.go @@ -5375,16 +5375,6 @@ func awsRestjson1_serializeOpHttpBindingsSearchRelevantContentInput(v *SearchRel } } - if v.UserGroups != nil { - for i := range v.UserGroups { - encoder.AddQuery("userGroups").String(v.UserGroups[i]) - } - } - - if v.UserId != nil { - encoder.SetQuery("userId").String(*v.UserId) - } - return nil } From ffbc1dff6cffb42e1a69a035313d716af97f039b Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 5 Dec 2024 01:37:29 +0000 Subject: [PATCH 06/21] Release 2024-12-05 --- .changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json | 8 -------- .changelog/c87a598e71534020818990564c4d1605.json | 8 -------- CHANGELOG.md | 8 ++++++++ service/partnercentralselling/CHANGELOG.md | 4 ++++ service/partnercentralselling/go_module_metadata.go | 2 +- service/qbusiness/CHANGELOG.md | 4 ++++ service/qbusiness/go_module_metadata.go | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 .changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json delete mode 100644 .changelog/c87a598e71534020818990564c4d1605.json diff --git a/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json b/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json deleted file mode 100644 index 380564bd2f1..00000000000 --- a/.changelog/3e9bb874b1754bca9c93a51eb1b7f79a.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "3e9bb874-b175-4bca-9c93-a51eb1b7f79a", - "type": "feature", - "description": "This release removes the deprecated UserId and UserGroups fields from SearchRelevantContent api's request parameters.", - "modules": [ - "service/qbusiness" - ] -} \ No newline at end of file diff --git a/.changelog/c87a598e71534020818990564c4d1605.json b/.changelog/c87a598e71534020818990564c4d1605.json deleted file mode 100644 index d73e3f83911..00000000000 --- a/.changelog/c87a598e71534020818990564c4d1605.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c87a598e-7153-4020-8189-90564c4d1605", - "type": "feature", - "description": "Introducing the preview of new partner central selling APIs designed to transform how AWS partners collaborate and co-sell with multiple partners. This enables multiple partners to seamlessly engage and jointly pursue customer opportunities, fostering a new era of collaborative selling.", - "modules": [ - "service/partnercentralselling" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 973090fb66e..7f696ca7a05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# Release (2024-12-05) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/partnercentralselling`: [v1.2.0](service/partnercentralselling/CHANGELOG.md#v120-2024-12-05) + * **Feature**: Introducing the preview of new partner central selling APIs designed to transform how AWS partners collaborate and co-sell with multiple partners. This enables multiple partners to seamlessly engage and jointly pursue customer opportunities, fostering a new era of collaborative selling. +* `github.com/aws/aws-sdk-go-v2/service/qbusiness`: [v1.19.0](service/qbusiness/CHANGELOG.md#v1190-2024-12-05) + * **Feature**: This release removes the deprecated UserId and UserGroups fields from SearchRelevantContent api's request parameters. + # Release (2024-12-04) ## Module Highlights diff --git a/service/partnercentralselling/CHANGELOG.md b/service/partnercentralselling/CHANGELOG.md index 08c51a98b58..7e63d987acd 100644 --- a/service/partnercentralselling/CHANGELOG.md +++ b/service/partnercentralselling/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.2.0 (2024-12-05) + +* **Feature**: Introducing the preview of new partner central selling APIs designed to transform how AWS partners collaborate and co-sell with multiple partners. This enables multiple partners to seamlessly engage and jointly pursue customer opportunities, fostering a new era of collaborative selling. + # v1.1.2 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/partnercentralselling/go_module_metadata.go b/service/partnercentralselling/go_module_metadata.go index 6b451f3c2ce..74a3709c079 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 = "1.1.2" +const goModuleVersion = "1.2.0" diff --git a/service/qbusiness/CHANGELOG.md b/service/qbusiness/CHANGELOG.md index dc35c69f9c7..d6abe6e12cb 100644 --- a/service/qbusiness/CHANGELOG.md +++ b/service/qbusiness/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.19.0 (2024-12-05) + +* **Feature**: This release removes the deprecated UserId and UserGroups fields from SearchRelevantContent api's request parameters. + # v1.18.0 (2024-12-03.2) * **Feature**: Amazon Q Business now supports customization options for your web experience, 11 new Plugins, and QuickSight support. Amazon Q index allows software providers to enrich their native generative AI experiences with their customer's enterprise knowledge and user context spanning multiple applications. diff --git a/service/qbusiness/go_module_metadata.go b/service/qbusiness/go_module_metadata.go index 5317b86d3f8..85bcd5174e8 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.18.0" +const goModuleVersion = "1.19.0" From 2c8f69732f75e2400d41a5599ee8b50a78ba1ff0 Mon Sep 17 00:00:00 2001 From: Luc Talatinian <102624213+lucix-aws@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:05:07 -0500 Subject: [PATCH 07/21] breakfix: revert bad feature/rds/auth api release (#2925) --- .../658fc1c50afd443fa803916695e3583e.json | 8 + CHANGELOG.md | 2 +- feature/rds/auth/CHANGELOG.md | 2 +- feature/rds/auth/connect.go | 82 ++-------- feature/rds/auth/connect_test.go | 148 +----------------- 5 files changed, 23 insertions(+), 219 deletions(-) create mode 100644 .changelog/658fc1c50afd443fa803916695e3583e.json diff --git a/.changelog/658fc1c50afd443fa803916695e3583e.json b/.changelog/658fc1c50afd443fa803916695e3583e.json new file mode 100644 index 00000000000..2b131b25142 --- /dev/null +++ b/.changelog/658fc1c50afd443fa803916695e3583e.json @@ -0,0 +1,8 @@ +{ + "id": "658fc1c5-0afd-443f-a803-916695e3583e", + "type": "bugfix", + "description": "**BREAKFIX**: Revert bad API release.", + "modules": [ + "feature/rds/auth" + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f696ca7a05..2e6e96fe64e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,7 @@ ## Module Highlights * `github.com/aws/aws-sdk-go-v2/feature/rds/auth`: [v1.5.0](feature/rds/auth/CHANGELOG.md#v150-2024-12-032) - * **Feature**: feat: Add Xanadu Auth Token Generator + * No change notes available for this release. * `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.49.0](service/athena/CHANGELOG.md#v1490-2024-12-032) * **Feature**: Add FEDERATED type to CreateDataCatalog. This creates Athena Data Catalog, AWS Lambda connector, and AWS Glue connection. Create/DeleteDataCatalog returns DataCatalog. Add Status, ConnectionType, and Error to DataCatalog and DataCatalogSummary. Add DeleteCatalogOnly to delete Athena Catalog only. * `github.com/aws/aws-sdk-go-v2/service/bedrock`: [v1.24.0](service/bedrock/CHANGELOG.md#v1240-2024-12-032) diff --git a/feature/rds/auth/CHANGELOG.md b/feature/rds/auth/CHANGELOG.md index e01f624e1de..dd00e073033 100644 --- a/feature/rds/auth/CHANGELOG.md +++ b/feature/rds/auth/CHANGELOG.md @@ -1,6 +1,6 @@ # v1.5.0 (2024-12-03.2) -* **Feature**: feat: Add Xanadu Auth Token Generator +* No change notes available for this release. # v1.4.25 (2024-12-02) diff --git a/feature/rds/auth/connect.go b/feature/rds/auth/connect.go index d6cb5042380..9a1406e7ed3 100644 --- a/feature/rds/auth/connect.go +++ b/feature/rds/auth/connect.go @@ -4,33 +4,26 @@ import ( "context" "fmt" "net/http" - "net/url" "strconv" "strings" "time" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" - "github.com/aws/aws-sdk-go-v2/internal/sdk" ) const ( - rdsAuthTokenID = "rds-db" - rdsClusterTokenID = "dsql" - emptyPayloadHash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - userAction = "DbConnect" - adminUserAction = "DbConnectAdmin" + signingID = "rds-db" + emptyPayloadHash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" ) // BuildAuthTokenOptions is the optional set of configuration properties for BuildAuthToken -type BuildAuthTokenOptions struct { - ExpiresIn time.Duration -} +type BuildAuthTokenOptions struct{} // BuildAuthToken will return an authorization token used as the password for a DB // connection. // -// * endpoint - Endpoint consists of the hostname and port needed to connect to the DB. : +// * endpoint - Endpoint consists of the port needed to connect to the DB. : // * region - Region is the location of where the DB is // * dbUser - User account within the database to sign in with // * creds - Credentials to be signed with @@ -57,64 +50,12 @@ func BuildAuthToken(ctx context.Context, endpoint, region, dbUser string, creds return "", fmt.Errorf("the provided endpoint is missing a port, or the provided port is invalid") } - values := url.Values{ - "Action": []string{"connect"}, - "DBUser": []string{dbUser}, - } - - return generateAuthToken(ctx, endpoint, region, values, rdsAuthTokenID, creds, optFns...) -} - -// GenerateDbConnectAuthToken will return an authorization token as the password for a -// DB connection. -// -// This is the regular user variant, see [GenerateDBConnectSuperUserAuthToken] for the superuser variant -// -// * endpoint - Endpoint is the hostname and optional port to connect to the DB -// * region - Region is the location of where the DB is -// * creds - Credentials to be signed with -func GenerateDbConnectAuthToken(ctx context.Context, endpoint, region string, creds aws.CredentialsProvider, optFns ...func(options *BuildAuthTokenOptions)) (string, error) { - values := url.Values{ - "Action": []string{userAction}, - } - return generateAuthToken(ctx, endpoint, region, values, rdsClusterTokenID, creds, optFns...) -} - -// GenerateDBConnectSuperUserAuthToken will return an authorization token as the password for a -// DB connection. -// -// This is the superuser user variant, see [GenerateDBConnectSuperUserAuthToken] for the regular user variant -// -// * endpoint - Endpoint is the hostname and optional port to connect to the DB -// * region - Region is the location of where the DB is -// * creds - Credentials to be signed with -func GenerateDBConnectSuperUserAuthToken(ctx context.Context, endpoint, region string, creds aws.CredentialsProvider, optFns ...func(options *BuildAuthTokenOptions)) (string, error) { - values := url.Values{ - "Action": []string{adminUserAction}, - } - return generateAuthToken(ctx, endpoint, region, values, rdsClusterTokenID, creds, optFns...) -} - -// All generate token functions are presigned URLs behind the scenes with the scheme stripped. -// This function abstracts generating this for all use cases -func generateAuthToken(ctx context.Context, endpoint, region string, values url.Values, signingID string, creds aws.CredentialsProvider, optFns ...func(options *BuildAuthTokenOptions)) (string, error) { - if len(region) == 0 { - return "", fmt.Errorf("region is required") - } - if len(endpoint) == 0 { - return "", fmt.Errorf("endpoint is required") - } - o := BuildAuthTokenOptions{} for _, fn := range optFns { fn(&o) } - if o.ExpiresIn == 0 { - o.ExpiresIn = 15 * time.Minute - } - if creds == nil { return "", fmt.Errorf("credetials provider must not ne nil") } @@ -128,7 +69,11 @@ func generateAuthToken(ctx context.Context, endpoint, region string, values url. if err != nil { return "", err } + values := req.URL.Query() + values.Set("Action", "connect") + values.Set("DBUser", dbUser) req.URL.RawQuery = values.Encode() + signer := v4.NewSigner() credentials, err := creds.Retrieve(ctx) @@ -136,17 +81,12 @@ func generateAuthToken(ctx context.Context, endpoint, region string, values url. return "", err } - expires := o.ExpiresIn - // if creds expire before expiresIn, set that as the expiration time - if credentials.CanExpire && !credentials.Expires.IsZero() { - credsExpireIn := credentials.Expires.Sub(sdk.NowTime()) - expires = min(o.ExpiresIn, credsExpireIn) - } + // Expire Time: 15 minute query := req.URL.Query() - query.Set("X-Amz-Expires", strconv.Itoa(int(expires.Seconds()))) + query.Set("X-Amz-Expires", "900") req.URL.RawQuery = query.Encode() - signedURI, _, err := signer.PresignHTTP(ctx, credentials, req, emptyPayloadHash, signingID, region, sdk.NowTime().UTC()) + signedURI, _, err := signer.PresignHTTP(ctx, credentials, req, emptyPayloadHash, signingID, region, time.Now().UTC()) if err != nil { return "", err } diff --git a/feature/rds/auth/connect_test.go b/feature/rds/auth/connect_test.go index cfa0185274a..7ccb2332f86 100644 --- a/feature/rds/auth/connect_test.go +++ b/feature/rds/auth/connect_test.go @@ -2,15 +2,12 @@ package auth_test import ( "context" - "net/url" "regexp" "strings" "testing" - "time" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/feature/rds/auth" - "github.com/aws/aws-sdk-go-v2/internal/sdk" ) func TestBuildAuthToken(t *testing.T) { @@ -70,155 +67,14 @@ func TestBuildAuthToken(t *testing.T) { } } -type dbAuthTestCase struct { - endpoint string - region string - expires time.Duration - credsExpireIn time.Duration - expectedHost string - expectedQueryParams []string - expectedError string -} - -type tokenGenFunc func(ctx context.Context, endpoint, region string, creds aws.CredentialsProvider, optFns ...func(options *auth.BuildAuthTokenOptions)) (string, error) - -func TestGenerateDbConnectAuthToken(t *testing.T) { - cases := map[string]dbAuthTestCase{ - "no region": { - endpoint: "https://prod-instance.us-east-1.rds.amazonaws.com:3306", - expectedError: "no region", - }, - "no endpoint": { - region: "us-west-2", - expectedError: "port", - }, - "endpoint with scheme": { - endpoint: "https://prod-instance.us-east-1.rds.amazonaws.com:3306", - region: "us-east-1", - expectedHost: "prod-instance.us-east-1.rds.amazonaws.com:3306", - expectedQueryParams: []string{"Action=DbConnect"}, - }, - "endpoint without scheme": { - endpoint: "prod-instance.us-east-1.rds.amazonaws.com:3306", - region: "us-east-1", - expectedHost: "prod-instance.us-east-1.rds.amazonaws.com:3306", - expectedQueryParams: []string{"Action=DbConnect"}, - }, - "endpoint without port": { - endpoint: "prod-instance.us-east-1.rds.amazonaws.com", - region: "us-east-1", - expectedHost: "prod-instance.us-east-1.rds.amazonaws.com", - expectedQueryParams: []string{"Action=DbConnect"}, - }, - "endpoint with region and expires": { - endpoint: "peccy.dsql.us-east-1.on.aws", - region: "us-east-1", - expires: time.Second * 450, - expectedHost: "peccy.dsql.us-east-1.on.aws", - expectedQueryParams: []string{ - "Action=DbConnect", - "X-Amz-Algorithm=AWS4-HMAC-SHA256", - "X-Amz-Credential=akid/20240827/us-east-1/dsql/aws4_request", - "X-Amz-Date=20240827T000000Z", - "X-Amz-Expires=450"}, - }, - "pick credential expires when less than expires": { - endpoint: "peccy.dsql.us-east-1.on.aws", - region: "us-east-1", - credsExpireIn: time.Second * 100, - expires: time.Second * 450, - expectedHost: "peccy.dsql.us-east-1.on.aws", - expectedQueryParams: []string{ - "Action=DbConnect", - "X-Amz-Algorithm=AWS4-HMAC-SHA256", - "X-Amz-Credential=akid/20240827/us-east-1/dsql/aws4_request", - "X-Amz-Date=20240827T000000Z", - "X-Amz-Expires=100"}, - }, - } - - for _, c := range cases { - creds := &staticCredentials{AccessKey: "akid", SecretKey: "secret", expiresIn: c.credsExpireIn} - defer withTempGlobalTime(time.Date(2024, time.August, 27, 0, 0, 0, 0, time.UTC))() - optFns := func(options *auth.BuildAuthTokenOptions) {} - if c.expires != 0 { - optFns = func(options *auth.BuildAuthTokenOptions) { - options.ExpiresIn = c.expires - } - } - verifyTestCase(auth.GenerateDbConnectAuthToken, c, creds, optFns, t) - - // Update the test case to use Superuser variant - updated := []string{} - for _, part := range c.expectedQueryParams { - if part == "Action=DbConnect" { - part = "Action=DbConnectAdmin" - } - updated = append(updated, part) - } - c.expectedQueryParams = updated - - verifyTestCase(auth.GenerateDBConnectSuperUserAuthToken, c, creds, optFns, t) - } -} - -func verifyTestCase(f tokenGenFunc, c dbAuthTestCase, creds aws.CredentialsProvider, optFns func(options *auth.BuildAuthTokenOptions), t *testing.T) { - token, err := f(context.Background(), c.endpoint, c.region, creds, optFns) - isErrorExpected := len(c.expectedError) > 0 - if err != nil && !isErrorExpected { - t.Fatalf("expect no err, got: %v", err) - } else if err == nil && isErrorExpected { - t.Fatalf("Expected error %v got none", c.expectedError) - } - // adding a scheme so we can parse it back as a URL. This is because comparing - // just direct string comparison was failing since "Action=DbConnect" is a substring or - // "Action=DBConnectSuperuser" - parsed, err := url.Parse("http://" + token) - if err != nil { - t.Fatalf("Couldn't parse the token %v to URL after adding a scheme, got: %v", token, err) - } - if parsed.Host != c.expectedHost { - t.Errorf("expect host %v, got %v", c.expectedHost, parsed.Host) - } - - q := parsed.Query() - queryValuePair := map[string]any{} - for k, v := range q { - pair := k + "=" + v[0] - queryValuePair[pair] = struct{}{} - } - - for _, part := range c.expectedQueryParams { - if _, ok := queryValuePair[part]; !ok { - t.Errorf("expect part %s to be present at token %s", part, token) - } - } - if token != "" && c.expires == 0 { - if !strings.Contains(token, "X-Amz-Expires=900") { - t.Errorf("expect token to contain default X-Amz-Expires value of 900, got %v", token) - } - } -} - type staticCredentials struct { AccessKey, SecretKey, Session string - expiresIn time.Duration } func (s *staticCredentials) Retrieve(ctx context.Context) (aws.Credentials, error) { - c := aws.Credentials{ + return aws.Credentials{ AccessKeyID: s.AccessKey, SecretAccessKey: s.SecretKey, SessionToken: s.Session, - } - if s.expiresIn != 0 { - c.CanExpire = true - c.Expires = sdk.NowTime().Add(s.expiresIn) - } - return c, nil -} - -func withTempGlobalTime(t time.Time) func() { - sdk.NowTime = func() time.Time { return t } - return func() { sdk.NowTime = time.Now } + }, nil } From b440cd3e30f26fe0d1459f75f91e80896b8d9c9e Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 6 Dec 2024 22:52:38 +0000 Subject: [PATCH 08/21] Release 2024-12-06 --- .changelog/658fc1c50afd443fa803916695e3583e.json | 8 -------- CHANGELOG.md | 6 ++++++ feature/rds/auth/CHANGELOG.md | 4 ++++ feature/rds/auth/go_module_metadata.go | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) delete mode 100644 .changelog/658fc1c50afd443fa803916695e3583e.json diff --git a/.changelog/658fc1c50afd443fa803916695e3583e.json b/.changelog/658fc1c50afd443fa803916695e3583e.json deleted file mode 100644 index 2b131b25142..00000000000 --- a/.changelog/658fc1c50afd443fa803916695e3583e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "658fc1c5-0afd-443f-a803-916695e3583e", - "type": "bugfix", - "description": "**BREAKFIX**: Revert bad API release.", - "modules": [ - "feature/rds/auth" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e6e96fe64e..cb7bc96a091 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# Release (2024-12-06) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/feature/rds/auth`: [v1.5.1](feature/rds/auth/CHANGELOG.md#v151-2024-12-06) + * **Bug Fix**: **BREAKFIX**: Revert bad API release. + # Release (2024-12-05) ## Module Highlights diff --git a/feature/rds/auth/CHANGELOG.md b/feature/rds/auth/CHANGELOG.md index dd00e073033..03301e3b1e3 100644 --- a/feature/rds/auth/CHANGELOG.md +++ b/feature/rds/auth/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.5.1 (2024-12-06) + +* **Bug Fix**: **BREAKFIX**: Revert bad API release. + # v1.5.0 (2024-12-03.2) * No change notes available for this release. diff --git a/feature/rds/auth/go_module_metadata.go b/feature/rds/auth/go_module_metadata.go index 17b32bf74e3..857735999fa 100644 --- a/feature/rds/auth/go_module_metadata.go +++ b/feature/rds/auth/go_module_metadata.go @@ -3,4 +3,4 @@ package auth // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.5.0" +const goModuleVersion = "1.5.1" From e8e85cfdcc0aa1fd3e837d0f36ae8acd6d914520 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 9 Dec 2024 19:29:33 +0000 Subject: [PATCH 09/21] Update API model --- codegen/sdk-codegen/aws-models/appsync.json | 2 +- .../aws-models/cognito-identity-provider.json | 3 +- codegen/sdk-codegen/aws-models/ec2.json | 228 ++- codegen/sdk-codegen/aws-models/ecs.json | 1442 ++++++++--------- codegen/sdk-codegen/aws-models/keyspaces.json | 2 +- codegen/sdk-codegen/aws-models/medialive.json | 31 + .../sdk-codegen/aws-models/workspaces.json | 2 +- 7 files changed, 980 insertions(+), 730 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/appsync.json b/codegen/sdk-codegen/aws-models/appsync.json index 96c95212674..728d9ec457a 100644 --- a/codegen/sdk-codegen/aws-models/appsync.json +++ b/codegen/sdk-codegen/aws-models/appsync.json @@ -3545,7 +3545,7 @@ "type": { "target": "com.amazonaws.appsync#DataSourceType", "traits": { - "smithy.api#documentation": "

The type of the data source.

\n
    \n
  • \n

    \n AWS_LAMBDA: The data source is an Lambda function.

    \n
  • \n
  • \n

    \n AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table.

    \n
  • \n
  • \n

    \n AMAZON_ELASTICSEARCH: The data source is an\n Amazon OpenSearch Service domain.

    \n
  • \n
  • \n

    \n AMAZON_OPENSEARCH_SERVICE: The data source is\n an Amazon OpenSearch Service domain.

    \n
  • \n
  • \n

    \n AMAZON_EVENTBRIDGE: The data source is an\n Amazon EventBridge configuration.

    \n
  • \n
  • \n

    \n NONE: There is no data source. Use this type\n when you want to invoke a GraphQL operation without connecting to a data source, such\n as when you're performing data transformation with resolvers or invoking a\n subscription from a mutation.

    \n
  • \n
  • \n

    \n HTTP: The data source is an HTTP\n endpoint.

    \n
  • \n
  • \n

    \n RELATIONAL_DATABASE: The data source is a\n relational database.

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

The type of the data source.

\n
    \n
  • \n

    \n AWS_LAMBDA: The data source is an Lambda function.

    \n
  • \n
  • \n

    \n AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table.

    \n
  • \n
  • \n

    \n AMAZON_ELASTICSEARCH: The data source is an\n Amazon OpenSearch Service domain.

    \n
  • \n
  • \n

    \n AMAZON_OPENSEARCH_SERVICE: The data source is\n an Amazon OpenSearch Service domain.

    \n
  • \n
  • \n

    \n AMAZON_EVENTBRIDGE: The data source is an\n Amazon EventBridge configuration.

    \n
  • \n
  • \n

    \n AMAZON_BEDROCK_RUNTIME: The data source is the Amazon Bedrock runtime.

    \n
  • \n
  • \n

    \n NONE: There is no data source. Use this type\n when you want to invoke a GraphQL operation without connecting to a data source, such\n as when you're performing data transformation with resolvers or invoking a\n subscription from a mutation.

    \n
  • \n
  • \n

    \n HTTP: The data source is an HTTP\n endpoint.

    \n
  • \n
  • \n

    \n RELATIONAL_DATABASE: The data source is a\n relational database.

    \n
  • \n
" } }, "serviceRoleArn": { diff --git a/codegen/sdk-codegen/aws-models/cognito-identity-provider.json b/codegen/sdk-codegen/aws-models/cognito-identity-provider.json index bcbe261af93..2854eda12ef 100644 --- a/codegen/sdk-codegen/aws-models/cognito-identity-provider.json +++ b/codegen/sdk-codegen/aws-models/cognito-identity-provider.json @@ -16268,8 +16268,7 @@ "CustomDomainConfig": { "target": "com.amazonaws.cognitoidentityprovider#CustomDomainConfigType", "traits": { - "smithy.api#documentation": "

The configuration for a custom domain that hosts the sign-up and sign-in pages for\n your application. Use this object to specify an SSL certificate that is managed by\n ACM.

\n

When you create a custom domain, the passkey RP ID defaults to the custom domain. If\n you had a prefix domain active, this will cause passkey integration for your prefix\n domain to stop working due to a mismatch in RP ID. To keep the prefix domain passkey\n integration working, you can explicitly set RP ID to the prefix domain. Update the RP ID\n in a SetUserPoolMfaConfig request.

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

The configuration for a custom domain that hosts the sign-up and sign-in pages for\n your application. Use this object to specify an SSL certificate that is managed by\n ACM.

\n

When you create a custom domain, the passkey RP ID defaults to the custom domain. If\n you had a prefix domain active, this will cause passkey integration for your prefix\n domain to stop working due to a mismatch in RP ID. To keep the prefix domain passkey\n integration working, you can explicitly set RP ID to the prefix domain. Update the RP ID\n in a SetUserPoolMfaConfig request.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/ec2.json b/codegen/sdk-codegen/aws-models/ec2.json index c84199fffc6..0d54e9f911e 100644 --- a/codegen/sdk-codegen/aws-models/ec2.json +++ b/codegen/sdk-codegen/aws-models/ec2.json @@ -3863,6 +3863,9 @@ { "target": "com.amazonaws.ec2#ModifyInstanceMetadataOptions" }, + { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceOptions" + }, { "target": "com.amazonaws.ec2#ModifyInstancePlacement" }, @@ -9330,6 +9333,38 @@ } } }, + "com.amazonaws.ec2#BandwidthWeightingType": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "VPC_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-1" + } + }, + "EBS_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs-1" + } + } + } + }, + "com.amazonaws.ec2#BandwidthWeightingTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BandwidthWeightingType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, "com.amazonaws.ec2#BareMetal": { "type": "enum", "members": { @@ -34090,7 +34125,7 @@ "target": "com.amazonaws.ec2#DescribeInstanceTopologyResult" }, "traits": { - "smithy.api#documentation": "

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

\n

\n Limitations\n

\n
    \n
  • \n

    Supported zones

    \n
      \n
    • \n

      Availability Zone

      \n
    • \n
    • \n

      Local Zone

      \n
    • \n
    \n
  • \n
  • \n

    Supported instance types

    \n
      \n
    • \n

      \n hpc6a.48xlarge | hpc6id.32xlarge |\n hpc7a.12xlarge | hpc7a.24xlarge |\n hpc7a.48xlarge | hpc7a.96xlarge |\n hpc7g.4xlarge | hpc7g.8xlarge |\n hpc7g.16xlarge\n

      \n
    • \n
    • \n

      \n p3dn.24xlarge | p4d.24xlarge |\n p4de.24xlarge | p5.48xlarge |\n p5e.48xlarge\n

      \n
    • \n
    • \n

      \n trn1.2xlarge | trn1.32xlarge |\n trn1n.32xlarge\n

      \n
    • \n
    \n
  • \n
\n

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

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

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

\n

\n Limitations\n

\n
    \n
  • \n

    Supported zones

    \n
      \n
    • \n

      Availability Zone

      \n
    • \n
    • \n

      Local Zone

      \n
    • \n
    \n
  • \n
  • \n

    Supported instance types

    \n
      \n
    • \n

      \n hpc6a.48xlarge | hpc6id.32xlarge |\n hpc7a.12xlarge | hpc7a.24xlarge |\n hpc7a.48xlarge | hpc7a.96xlarge |\n hpc7g.4xlarge | hpc7g.8xlarge |\n hpc7g.16xlarge\n

      \n
    • \n
    • \n

      \n p3dn.24xlarge | p4d.24xlarge |\n p4de.24xlarge | p5.48xlarge |\n p5e.48xlarge | p5en.48xlarge\n

      \n
    • \n
    • \n

      \n trn1.2xlarge | trn1.32xlarge |\n trn1n.32xlarge\n

      \n
    • \n
    \n
  • \n
\n

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

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -34309,7 +34344,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

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

\n
    \n
  • \n

    \n auto-recovery-supported - Indicates whether Amazon CloudWatch action\n based recovery is supported (true | false).

    \n
  • \n
  • \n

    \n bare-metal - Indicates whether it is a bare metal instance type\n (true | false).

    \n
  • \n
  • \n

    \n burstable-performance-supported - Indicates whether the instance type is a\n burstable performance T instance type (true | false).

    \n
  • \n
  • \n

    \n current-generation - Indicates whether this instance type is the latest\n generation instance type of an instance family (true | false).

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps - The baseline\n bandwidth performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-iops - The baseline input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps - The maximum bandwidth\n performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-iops - The maximum input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-support - Indicates whether the instance type is\n EBS-optimized (supported | unsupported |\n default).

    \n
  • \n
  • \n

    \n ebs-info.encryption-support - Indicates whether EBS encryption is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n ebs-info.nvme-support - Indicates whether non-volatile memory express (NVMe)\n is supported for EBS volumes (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n free-tier-eligible - Indicates whether the instance type is eligible to use\n in the free tier (true | false).

    \n
  • \n
  • \n

    \n hibernation-supported - Indicates whether On-Demand hibernation is supported\n (true | false).

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor (nitro | xen).

    \n
  • \n
  • \n

    \n instance-storage-info.disk.count - The number of local disks.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.size-in-gb - The storage size of each instance\n storage disk, in GB.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.type - The storage technology for the local\n instance storage disks (hdd | ssd).

    \n
  • \n
  • \n

    \n instance-storage-info.encryption-support - Indicates whether data is\n encrypted at rest (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.nvme-support - Indicates whether non-volatile memory\n express (NVMe) is supported for instance store (required | supported\n | unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.total-size-in-gb - The total amount of storage\n available from all local instance storage, in GB.

    \n
  • \n
  • \n

    \n instance-storage-supported - Indicates whether the instance type has local\n instance storage (true | false).

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example c5.2xlarge or\n c5*).

    \n
  • \n
  • \n

    \n memory-info.size-in-mib - The memory size.

    \n
  • \n
  • \n

    \n network-info.efa-info.maximum-efa-interfaces - The maximum number of Elastic\n Fabric Adapters (EFAs) per instance.

    \n
  • \n
  • \n

    \n network-info.efa-supported - Indicates whether the instance type supports\n Elastic Fabric Adapter (EFA) (true | false).

    \n
  • \n
  • \n

    \n network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is\n supported or required (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n network-info.encryption-in-transit-supported - Indicates whether the instance\n type automatically encrypts in-transit traffic between instances (true | false).

    \n
  • \n
  • \n

    \n network-info.ipv4-addresses-per-interface - The maximum number of private\n IPv4 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-addresses-per-interface - The maximum number of private\n IPv6 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-supported - Indicates whether the instance type supports\n IPv6 (true | false).

    \n
  • \n
  • \n

    \n network-info.maximum-network-cards - The maximum number of network cards per\n instance.

    \n
  • \n
  • \n

    \n network-info.maximum-network-interfaces - The maximum number of network\n interfaces per instance.

    \n
  • \n
  • \n

    \n network-info.network-performance - The network performance (for example, \"25\n Gigabit\").

    \n
  • \n
  • \n

    \n nitro-enclaves-support - Indicates whether Nitro Enclaves is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-support - Indicates whether NitroTPM is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-info.supported-versions - The supported NitroTPM version\n (2.0).

    \n
  • \n
  • \n

    \n processor-info.supported-architecture - The CPU architecture\n (arm64 | i386 | x86_64).

    \n
  • \n
  • \n

    \n processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in\n GHz.

    \n
  • \n
  • \n

    \n processor-info.supported-features - The supported CPU features\n (amd-sev-snp).

    \n
  • \n
  • \n

    \n supported-boot-mode - The boot mode (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n supported-root-device-type - The root device type (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n supported-usage-class - The usage class (on-demand | spot | \n capacity-block).

    \n
  • \n
  • \n

    \n supported-virtualization-type - The virtualization type (hvm |\n paravirtual).

    \n
  • \n
  • \n

    \n vcpu-info.default-cores - The default number of cores for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.default-threads-per-core - The default number of threads per core\n for the instance type.

    \n
  • \n
  • \n

    \n vcpu-info.default-vcpus - The default number of vCPUs for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-cores - The number of cores that can be configured for the\n instance type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-threads-per-core - The number of threads per core that can be\n configured for the instance type. For example, \"1\" or \"1,2\".

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

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

\n
    \n
  • \n

    \n auto-recovery-supported - Indicates whether Amazon CloudWatch action\n based recovery is supported (true | false).

    \n
  • \n
  • \n

    \n bare-metal - Indicates whether it is a bare metal instance type\n (true | false).

    \n
  • \n
  • \n

    \n burstable-performance-supported - Indicates whether the instance type is a\n burstable performance T instance type (true | false).

    \n
  • \n
  • \n

    \n current-generation - Indicates whether this instance type is the latest\n generation instance type of an instance family (true | false).

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps - The baseline\n bandwidth performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-iops - The baseline input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps - The maximum bandwidth\n performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-iops - The maximum input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-support - Indicates whether the instance type is\n EBS-optimized (supported | unsupported |\n default).

    \n
  • \n
  • \n

    \n ebs-info.encryption-support - Indicates whether EBS encryption is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n ebs-info.nvme-support - Indicates whether non-volatile memory express (NVMe)\n is supported for EBS volumes (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n free-tier-eligible - Indicates whether the instance type is eligible to use\n in the free tier (true | false).

    \n
  • \n
  • \n

    \n hibernation-supported - Indicates whether On-Demand hibernation is supported\n (true | false).

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor (nitro | xen).

    \n
  • \n
  • \n

    \n instance-storage-info.disk.count - The number of local disks.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.size-in-gb - The storage size of each instance\n storage disk, in GB.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.type - The storage technology for the local\n instance storage disks (hdd | ssd).

    \n
  • \n
  • \n

    \n instance-storage-info.encryption-support - Indicates whether data is\n encrypted at rest (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.nvme-support - Indicates whether non-volatile memory\n express (NVMe) is supported for instance store (required | supported\n | unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.total-size-in-gb - The total amount of storage\n available from all local instance storage, in GB.

    \n
  • \n
  • \n

    \n instance-storage-supported - Indicates whether the instance type has local\n instance storage (true | false).

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example c5.2xlarge or\n c5*).

    \n
  • \n
  • \n

    \n memory-info.size-in-mib - The memory size.

    \n
  • \n
  • \n

    \n network-info.bandwidth-weightings - For instances that support bandwidth \n weighting to boost performance (default, vpc-1, ebs-1).

    \n
  • \n
  • \n

    \n network-info.efa-info.maximum-efa-interfaces - The maximum number of Elastic\n Fabric Adapters (EFAs) per instance.

    \n
  • \n
  • \n

    \n network-info.efa-supported - Indicates whether the instance type supports\n Elastic Fabric Adapter (EFA) (true | false).

    \n
  • \n
  • \n

    \n network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is\n supported or required (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n network-info.encryption-in-transit-supported - Indicates whether the instance\n type automatically encrypts in-transit traffic between instances (true | false).

    \n
  • \n
  • \n

    \n network-info.ipv4-addresses-per-interface - The maximum number of private\n IPv4 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-addresses-per-interface - The maximum number of private\n IPv6 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-supported - Indicates whether the instance type supports\n IPv6 (true | false).

    \n
  • \n
  • \n

    \n network-info.maximum-network-cards - The maximum number of network cards per\n instance.

    \n
  • \n
  • \n

    \n network-info.maximum-network-interfaces - The maximum number of network\n interfaces per instance.

    \n
  • \n
  • \n

    \n network-info.network-performance - The network performance (for example, \"25\n Gigabit\").

    \n
  • \n
  • \n

    \n nitro-enclaves-support - Indicates whether Nitro Enclaves is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-support - Indicates whether NitroTPM is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-info.supported-versions - The supported NitroTPM version\n (2.0).

    \n
  • \n
  • \n

    \n processor-info.supported-architecture - The CPU architecture\n (arm64 | i386 | x86_64).

    \n
  • \n
  • \n

    \n processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in\n GHz.

    \n
  • \n
  • \n

    \n processor-info.supported-features - The supported CPU features\n (amd-sev-snp).

    \n
  • \n
  • \n

    \n supported-boot-mode - The boot mode (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n supported-root-device-type - The root device type (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n supported-usage-class - The usage class (on-demand | spot | \n capacity-block).

    \n
  • \n
  • \n

    \n supported-virtualization-type - The virtualization type (hvm |\n paravirtual).

    \n
  • \n
  • \n

    \n vcpu-info.default-cores - The default number of cores for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.default-threads-per-core - The default number of threads per core\n for the instance type.

    \n
  • \n
  • \n

    \n vcpu-info.default-vcpus - The default number of vCPUs for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-cores - The number of cores that can be configured for the\n instance type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-threads-per-core - The number of threads per core that can be\n configured for the instance type. For example, \"1\" or \"1,2\".

    \n
  • \n
", "smithy.api#xmlName": "Filter" } }, @@ -34599,7 +34634,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n affinity - The affinity setting for an instance running on a\n Dedicated Host (default | host).

    \n
  • \n
  • \n

    \n architecture - The instance architecture (i386 |\n x86_64 | arm64).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the instance.

    \n
  • \n
  • \n

    \n block-device-mapping.attach-time - The attach time for an EBS\n volume mapped to the instance, for example,\n 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean that\n indicates whether the EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in\n the block device mapping (for example, /dev/sdh or\n xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.status - The status for the EBS volume\n (attaching | attached | detaching |\n detached).

    \n
  • \n
  • \n

    \n block-device-mapping.volume-id - The volume ID of the EBS\n volume.

    \n
  • \n
  • \n

    \n boot-mode - The boot mode that was specified by the AMI\n (legacy-bios | uefi |\n uefi-preferred).

    \n
  • \n
  • \n

    \n capacity-reservation-id - The ID of the Capacity Reservation into which the\n instance was launched.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-preference\n - The instance's Capacity Reservation preference (open | none).

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id\n - The ID of the targeted Capacity Reservation.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn\n - The ARN of the targeted Capacity Reservation group.

    \n
  • \n
  • \n

    \n client-token - The idempotency token you provided when you\n launched the instance.

    \n
  • \n
  • \n

    \n current-instance-boot-mode - The boot mode that is used to launch\n the instance at launch or start (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n dns-name - The public DNS name of the instance.

    \n
  • \n
  • \n

    \n ebs-optimized - A Boolean that indicates whether the instance is\n optimized for Amazon EBS I/O.

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether the instance is\n enabled for enhanced networking with ENA.

    \n
  • \n
  • \n

    \n enclave-options.enabled - A Boolean that indicates whether the\n instance is enabled for Amazon Web Services Nitro Enclaves.

    \n
  • \n
  • \n

    \n hibernation-options.configured - A Boolean that indicates whether\n the instance is enabled for hibernation. A value of true means that\n the instance is enabled for hibernation.

    \n
  • \n
  • \n

    \n host-id - The ID of the Dedicated Host on which the instance is\n running, if applicable.

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type of the instance\n (ovm | xen). The value xen is used\n for both Xen and Nitro hypervisors.

    \n
  • \n
  • \n

    \n iam-instance-profile.arn - The instance profile associated with\n the instance. Specified as an ARN.

    \n
  • \n
  • \n

    \n iam-instance-profile.id - The instance profile associated with\n the instance. Specified as an ID.

    \n
  • \n
  • \n

    \n image-id - The ID of the image used to launch the\n instance.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n instance-lifecycle - Indicates whether this is a Spot Instance, a Scheduled Instance, or\n a Capacity Block (spot | scheduled | capacity-block).

    \n
  • \n
  • \n

    \n instance-state-code - The state of the instance, as a 16-bit\n unsigned integer. The high byte is used for internal purposes and should be\n ignored. The low byte is set based on the state represented. The valid values\n are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n (stopping), and 80 (stopped).

    \n
  • \n
  • \n

    \n instance-state-name - The state of the instance\n (pending | running | shutting-down |\n terminated | stopping |\n stopped).

    \n
  • \n
  • \n

    \n instance-type - The type of instance (for example,\n t2.micro).

    \n
  • \n
  • \n

    \n instance.group-id - The ID of the security group for the\n instance.

    \n
  • \n
  • \n

    \n instance.group-name - The name of the security group for the\n instance.

    \n
  • \n
  • \n

    \n ip-address - The public IPv4 address of the instance.

    \n
  • \n
  • \n

    \n ipv6-address - The IPv6 address of the instance.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n key-name - The name of the key pair used when the instance was\n launched.

    \n
  • \n
  • \n

    \n launch-index - When launching multiple instances, this is the\n index for the instance in the launch group (for example, 0, 1, 2, and so on).\n

    \n
  • \n
  • \n

    \n launch-time - The time when the instance was launched, in the ISO\n 8601 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\n (*), for example, 2021-09-29T*, which matches an\n entire day.

    \n
  • \n
  • \n

    \n maintenance-options.auto-recovery - The current automatic\n recovery behavior of the instance (disabled | default).

    \n
  • \n
  • \n

    \n metadata-options.http-endpoint - The status of access to the HTTP\n metadata endpoint on your instance (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv4 - Indicates whether the IPv4\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv6 - Indicates whether the IPv6\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-put-response-hop-limit - The HTTP metadata\n request put response hop limit (integer, possible values 1 to\n 64)

    \n
  • \n
  • \n

    \n metadata-options.http-tokens - The metadata request authorization\n state (optional | required)

    \n
  • \n
  • \n

    \n metadata-options.instance-metadata-tags - The status of access to\n instance tags from the instance metadata (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.state - The state of the metadata option changes\n (pending | applied).

    \n
  • \n
  • \n

    \n monitoring-state - Indicates whether detailed monitoring is\n enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n network-interface.addresses.association.allocation-id - The allocation ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.association-id - The association ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.carrier-ip - The carrier IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.ip-owner-id - The owner\n ID of the private IPv4 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-ip - The ID of the\n association of an Elastic IP address (IPv4) with a network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.primary - Specifies whether the IPv4\n address of the network interface is the primary private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-dns-name - The private DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-ip-address - The private IPv4\n address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.allocation-id - The allocation ID\n returned when you allocated the Elastic IP address (IPv4) for your network\n interface.

    \n
  • \n
  • \n

    \n network-interface.association.association-id - The association ID\n returned when the network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.association.carrier-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.ip-owner-id - The owner of the\n Elastic IP address (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.association.public-ip - The address of the\n Elastic IP address (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n network-interface.attachment.attach-time - The time that the\n network interface was attached to an instance.

    \n
  • \n
  • \n

    \n network-interface.attachment.attachment-id - The ID of the\n interface attachment.

    \n
  • \n
  • \n

    \n network-interface.attachment.delete-on-termination - Specifies\n whether the attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n network-interface.attachment.device-index - The device index to\n which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-id - The ID of the instance\n to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-owner-id - The owner ID of\n the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.network-card-index - The index of the network card.

    \n
  • \n
  • \n

    \n network-interface.attachment.status - The status of the\n attachment (attaching | attached |\n detaching | detached).

    \n
  • \n
  • \n

    \n network-interface.availability-zone - The Availability Zone for\n the network interface.

    \n
  • \n
  • \n

    \n network-interface.deny-all-igw-traffic - A Boolean that indicates whether \n a network interface with an IPv6 address is unreachable from the public internet.

    \n
  • \n
  • \n

    \n network-interface.description - The description of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.group-id - The ID of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.group-name - The name of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv4-prefixes.ipv4-prefix - The IPv4 prefixes that are assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-address - The IPv6 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.ipv6-address - The IPv6 address\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.is-primary-ipv6 - A Boolean that indicates whether this\n is the primary IPv6 address.

    \n
  • \n
  • \n

    \n network-interface.ipv6-native - A Boolean that indicates whether this is\n an IPv6 only network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-prefixes.ipv6-prefix - The IPv6 prefix assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.mac-address - The MAC address of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.network-interface-id - The ID of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.operator.managed - A Boolean that indicates\n whether the instance has a managed network interface.

    \n
  • \n
  • \n

    \n network-interface.operator.principal - The principal that manages\n the network interface. Only valid for instances with managed network interfaces,\n where managed is true.

    \n
  • \n
  • \n

    \n network-interface.outpost-arn - The ARN of the Outpost.

    \n
  • \n
  • \n

    \n network-interface.owner-id - The ID of the owner of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.private-dns-name - The private DNS name of the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.private-ip-address - The private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.requester-id - The requester ID for the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.requester-managed - Indicates whether the\n network interface is being managed by Amazon Web Services.

    \n
  • \n
  • \n

    \n network-interface.status - The status of the network interface\n (available) | in-use).

    \n
  • \n
  • \n

    \n network-interface.source-dest-check - Whether the network\n interface performs source/destination checking. A value of true\n means that checking is enabled, and false means that checking is\n disabled. The value must be false for the network interface to\n perform network address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n network-interface.subnet-id - The ID of the subnet for the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-key - The key of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-value - The value of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.vpc-id - The ID of the VPC for the network\n interface.

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed instance.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the instance.\n Only valid for managed instances, where managed is\n true.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the\n Outpost.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the instance\n owner.

    \n
  • \n
  • \n

    \n placement-group-name - The name of the placement group for the\n instance.

    \n
  • \n
  • \n

    \n placement-partition-number - The partition in which the instance is\n located.

    \n
  • \n
  • \n

    \n platform - The platform. To list only Windows instances, use\n windows.

    \n
  • \n
  • \n

    \n platform-details - The platform (Linux/UNIX |\n Red Hat BYOL Linux | Red Hat Enterprise Linux |\n Red Hat Enterprise Linux with HA | Red Hat Enterprise\n Linux with SQL Server Standard and HA | Red Hat Enterprise\n Linux with SQL Server Enterprise and HA | Red Hat Enterprise\n Linux with SQL Server Standard | Red Hat Enterprise Linux with\n SQL Server Web | Red Hat Enterprise Linux with SQL Server\n Enterprise | SQL Server Enterprise | SQL Server\n Standard | SQL Server Web | SUSE Linux |\n Ubuntu Pro | Windows | Windows BYOL |\n Windows with SQL Server Enterprise | Windows with SQL\n Server Standard | Windows with SQL Server Web).

    \n
  • \n
  • \n

    \n private-dns-name - The private IPv4 DNS name of the\n instance.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-a-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS A records.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-aaaa-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS AAAA records.

    \n
  • \n
  • \n

    \n private-dns-name-options.hostname-type - The type of hostname\n (ip-name | resource-name).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address of the instance.\n This can only be used to filter by the primary IP address of the network\n interface attached to the instance. To filter by additional IP addresses\n assigned to the network interface, use the filter\n network-interface.addresses.private-ip-address.

    \n
  • \n
  • \n

    \n product-code - The product code associated with the AMI used to\n launch the instance.

    \n
  • \n
  • \n

    \n product-code.type - The type of product code (devpay\n | marketplace).

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n reason - The reason for the current state of the instance (for\n example, shows \"User Initiated [date]\" when you stop or terminate the instance).\n Similar to the state-reason-code filter.

    \n
  • \n
  • \n

    \n requester-id - The ID of the entity that launched the instance on\n your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so\n on).

    \n
  • \n
  • \n

    \n reservation-id - The ID of the instance's reservation. A\n reservation ID is created any time you launch an instance. A reservation ID has\n a one-to-one relationship with an instance launch request, but can be associated\n with more than one instance if you launch multiple instances using the same\n launch request. For example, if you launch one instance, you get one reservation\n ID. If you launch ten instances using the same launch request, you also get one\n reservation ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for\n example, /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume\n (ebs | instance-store).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the instance performs\n source/destination checking. A value of true means that checking is\n enabled, and false means that checking is disabled. The value must\n be false for the instance to perform network address translation\n (NAT) in your VPC.

    \n
  • \n
  • \n

    \n spot-instance-request-id - The ID of the Spot Instance\n request.

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - A message that describes the state\n change.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the instance.

    \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 that have a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tenancy - The tenancy of an instance (dedicated |\n default | host).

    \n
  • \n
  • \n

    \n tpm-support - Indicates if the instance is configured for\n NitroTPM support (v2.0).

    \n
  • \n
  • \n

    \n usage-operation - The usage operation value for the instance\n (RunInstances | RunInstances:00g0 |\n RunInstances:0010 | RunInstances:1010 |\n RunInstances:1014 | RunInstances:1110 |\n RunInstances:0014 | RunInstances:0210 |\n RunInstances:0110 | RunInstances:0100 |\n RunInstances:0004 | RunInstances:0200 |\n RunInstances:000g | RunInstances:0g00 |\n RunInstances:0002 | RunInstances:0800 |\n RunInstances:0102 | RunInstances:0006 |\n RunInstances:0202).

    \n
  • \n
  • \n

    \n usage-operation-update-time - The time that the usage operation\n was last updated, for example, 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type of the instance\n (paravirtual | hvm).

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC that the instance is running in.

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

The filters.

\n
    \n
  • \n

    \n affinity - The affinity setting for an instance running on a\n Dedicated Host (default | host).

    \n
  • \n
  • \n

    \n architecture - The instance architecture (i386 |\n x86_64 | arm64).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the instance.

    \n
  • \n
  • \n

    \n block-device-mapping.attach-time - The attach time for an EBS\n volume mapped to the instance, for example,\n 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean that\n indicates whether the EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in\n the block device mapping (for example, /dev/sdh or\n xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.status - The status for the EBS volume\n (attaching | attached | detaching |\n detached).

    \n
  • \n
  • \n

    \n block-device-mapping.volume-id - The volume ID of the EBS\n volume.

    \n
  • \n
  • \n

    \n boot-mode - The boot mode that was specified by the AMI\n (legacy-bios | uefi |\n uefi-preferred).

    \n
  • \n
  • \n

    \n capacity-reservation-id - The ID of the Capacity Reservation into which the\n instance was launched.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-preference\n - The instance's Capacity Reservation preference (open | none).

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id\n - The ID of the targeted Capacity Reservation.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn\n - The ARN of the targeted Capacity Reservation group.

    \n
  • \n
  • \n

    \n client-token - The idempotency token you provided when you\n launched the instance.

    \n
  • \n
  • \n

    \n current-instance-boot-mode - The boot mode that is used to launch\n the instance at launch or start (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n dns-name - The public DNS name of the instance.

    \n
  • \n
  • \n

    \n ebs-optimized - A Boolean that indicates whether the instance is\n optimized for Amazon EBS I/O.

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether the instance is\n enabled for enhanced networking with ENA.

    \n
  • \n
  • \n

    \n enclave-options.enabled - A Boolean that indicates whether the\n instance is enabled for Amazon Web Services Nitro Enclaves.

    \n
  • \n
  • \n

    \n hibernation-options.configured - A Boolean that indicates whether\n the instance is enabled for hibernation. A value of true means that\n the instance is enabled for hibernation.

    \n
  • \n
  • \n

    \n host-id - The ID of the Dedicated Host on which the instance is\n running, if applicable.

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type of the instance\n (ovm | xen). The value xen is used\n for both Xen and Nitro hypervisors.

    \n
  • \n
  • \n

    \n iam-instance-profile.arn - The instance profile associated with\n the instance. Specified as an ARN.

    \n
  • \n
  • \n

    \n iam-instance-profile.id - The instance profile associated with\n the instance. Specified as an ID.

    \n
  • \n
  • \n

    \n image-id - The ID of the image used to launch the\n instance.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n instance-lifecycle - Indicates whether this is a Spot Instance, a Scheduled Instance, or\n a Capacity Block (spot | scheduled | capacity-block).

    \n
  • \n
  • \n

    \n instance-state-code - The state of the instance, as a 16-bit\n unsigned integer. The high byte is used for internal purposes and should be\n ignored. The low byte is set based on the state represented. The valid values\n are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n (stopping), and 80 (stopped).

    \n
  • \n
  • \n

    \n instance-state-name - The state of the instance\n (pending | running | shutting-down |\n terminated | stopping |\n stopped).

    \n
  • \n
  • \n

    \n instance-type - The type of instance (for example,\n t2.micro).

    \n
  • \n
  • \n

    \n instance.group-id - The ID of the security group for the\n instance.

    \n
  • \n
  • \n

    \n instance.group-name - The name of the security group for the\n instance.

    \n
  • \n
  • \n

    \n ip-address - The public IPv4 address of the instance.

    \n
  • \n
  • \n

    \n ipv6-address - The IPv6 address of the instance.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n key-name - The name of the key pair used when the instance was\n launched.

    \n
  • \n
  • \n

    \n launch-index - When launching multiple instances, this is the\n index for the instance in the launch group (for example, 0, 1, 2, and so on).\n

    \n
  • \n
  • \n

    \n launch-time - The time when the instance was launched, in the ISO\n 8601 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\n (*), for example, 2021-09-29T*, which matches an\n entire day.

    \n
  • \n
  • \n

    \n maintenance-options.auto-recovery - The current automatic\n recovery behavior of the instance (disabled | default).

    \n
  • \n
  • \n

    \n metadata-options.http-endpoint - The status of access to the HTTP\n metadata endpoint on your instance (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv4 - Indicates whether the IPv4\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv6 - Indicates whether the IPv6\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-put-response-hop-limit - The HTTP metadata\n request put response hop limit (integer, possible values 1 to\n 64)

    \n
  • \n
  • \n

    \n metadata-options.http-tokens - The metadata request authorization\n state (optional | required)

    \n
  • \n
  • \n

    \n metadata-options.instance-metadata-tags - The status of access to\n instance tags from the instance metadata (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.state - The state of the metadata option changes\n (pending | applied).

    \n
  • \n
  • \n

    \n monitoring-state - Indicates whether detailed monitoring is\n enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n network-interface.addresses.association.allocation-id - The allocation ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.association-id - The association ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.carrier-ip - The carrier IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.ip-owner-id - The owner\n ID of the private IPv4 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-ip - The ID of the\n association of an Elastic IP address (IPv4) with a network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.primary - Specifies whether the IPv4\n address of the network interface is the primary private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-dns-name - The private DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-ip-address - The private IPv4\n address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.allocation-id - The allocation ID\n returned when you allocated the Elastic IP address (IPv4) for your network\n interface.

    \n
  • \n
  • \n

    \n network-interface.association.association-id - The association ID\n returned when the network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.association.carrier-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.ip-owner-id - The owner of the\n Elastic IP address (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.association.public-ip - The address of the\n Elastic IP address (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n network-interface.attachment.attach-time - The time that the\n network interface was attached to an instance.

    \n
  • \n
  • \n

    \n network-interface.attachment.attachment-id - The ID of the\n interface attachment.

    \n
  • \n
  • \n

    \n network-interface.attachment.delete-on-termination - Specifies\n whether the attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n network-interface.attachment.device-index - The device index to\n which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-id - The ID of the instance\n to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-owner-id - The owner ID of\n the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.network-card-index - The index of the network card.

    \n
  • \n
  • \n

    \n network-interface.attachment.status - The status of the\n attachment (attaching | attached |\n detaching | detached).

    \n
  • \n
  • \n

    \n network-interface.availability-zone - The Availability Zone for\n the network interface.

    \n
  • \n
  • \n

    \n network-interface.deny-all-igw-traffic - A Boolean that indicates whether \n a network interface with an IPv6 address is unreachable from the public internet.

    \n
  • \n
  • \n

    \n network-interface.description - The description of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.group-id - The ID of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.group-name - The name of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv4-prefixes.ipv4-prefix - The IPv4 prefixes that are assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-address - The IPv6 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.ipv6-address - The IPv6 address\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.is-primary-ipv6 - A Boolean that indicates whether this\n is the primary IPv6 address.

    \n
  • \n
  • \n

    \n network-interface.ipv6-native - A Boolean that indicates whether this is\n an IPv6 only network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-prefixes.ipv6-prefix - The IPv6 prefix assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.mac-address - The MAC address of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.network-interface-id - The ID of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.operator.managed - A Boolean that indicates\n whether the instance has a managed network interface.

    \n
  • \n
  • \n

    \n network-interface.operator.principal - The principal that manages\n the network interface. Only valid for instances with managed network interfaces,\n where managed is true.

    \n
  • \n
  • \n

    \n network-interface.outpost-arn - The ARN of the Outpost.

    \n
  • \n
  • \n

    \n network-interface.owner-id - The ID of the owner of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.private-dns-name - The private DNS name of the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.private-ip-address - The private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.requester-id - The requester ID for the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.requester-managed - Indicates whether the\n network interface is being managed by Amazon Web Services.

    \n
  • \n
  • \n

    \n network-interface.status - The status of the network interface\n (available) | in-use).

    \n
  • \n
  • \n

    \n network-interface.source-dest-check - Whether the network\n interface performs source/destination checking. A value of true\n means that checking is enabled, and false means that checking is\n disabled. The value must be false for the network interface to\n perform network address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n network-interface.subnet-id - The ID of the subnet for the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-key - The key of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-value - The value of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.vpc-id - The ID of the VPC for the network\n interface.

    \n
  • \n
  • \n

    \n network-performance-options.bandwidth-weighting - Where the performance boost \n \t\t\tis applied, if applicable. Valid values: default, vpc-1, \n \t\t\tebs-1.

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed instance.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the instance.\n Only valid for managed instances, where managed is\n true.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the\n Outpost.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the instance\n owner.

    \n
  • \n
  • \n

    \n placement-group-name - The name of the placement group for the\n instance.

    \n
  • \n
  • \n

    \n placement-partition-number - The partition in which the instance is\n located.

    \n
  • \n
  • \n

    \n platform - The platform. To list only Windows instances, use\n windows.

    \n
  • \n
  • \n

    \n platform-details - The platform (Linux/UNIX |\n Red Hat BYOL Linux | Red Hat Enterprise Linux |\n Red Hat Enterprise Linux with HA | Red Hat Enterprise\n Linux with SQL Server Standard and HA | Red Hat Enterprise\n Linux with SQL Server Enterprise and HA | Red Hat Enterprise\n Linux with SQL Server Standard | Red Hat Enterprise Linux with\n SQL Server Web | Red Hat Enterprise Linux with SQL Server\n Enterprise | SQL Server Enterprise | SQL Server\n Standard | SQL Server Web | SUSE Linux |\n Ubuntu Pro | Windows | Windows BYOL |\n Windows with SQL Server Enterprise | Windows with SQL\n Server Standard | Windows with SQL Server Web).

    \n
  • \n
  • \n

    \n private-dns-name - The private IPv4 DNS name of the\n instance.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-a-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS A records.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-aaaa-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS AAAA records.

    \n
  • \n
  • \n

    \n private-dns-name-options.hostname-type - The type of hostname\n (ip-name | resource-name).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address of the instance.\n This can only be used to filter by the primary IP address of the network\n interface attached to the instance. To filter by additional IP addresses\n assigned to the network interface, use the filter\n network-interface.addresses.private-ip-address.

    \n
  • \n
  • \n

    \n product-code - The product code associated with the AMI used to\n launch the instance.

    \n
  • \n
  • \n

    \n product-code.type - The type of product code (devpay\n | marketplace).

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n reason - The reason for the current state of the instance (for\n example, shows \"User Initiated [date]\" when you stop or terminate the instance).\n Similar to the state-reason-code filter.

    \n
  • \n
  • \n

    \n requester-id - The ID of the entity that launched the instance on\n your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so\n on).

    \n
  • \n
  • \n

    \n reservation-id - The ID of the instance's reservation. A\n reservation ID is created any time you launch an instance. A reservation ID has\n a one-to-one relationship with an instance launch request, but can be associated\n with more than one instance if you launch multiple instances using the same\n launch request. For example, if you launch one instance, you get one reservation\n ID. If you launch ten instances using the same launch request, you also get one\n reservation ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for\n example, /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume\n (ebs | instance-store).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the instance performs\n source/destination checking. A value of true means that checking is\n enabled, and false means that checking is disabled. The value must\n be false for the instance to perform network address translation\n (NAT) in your VPC.

    \n
  • \n
  • \n

    \n spot-instance-request-id - The ID of the Spot Instance\n request.

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - A message that describes the state\n change.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the instance.

    \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 that have a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tenancy - The tenancy of an instance (dedicated |\n default | host).

    \n
  • \n
  • \n

    \n tpm-support - Indicates if the instance is configured for\n NitroTPM support (v2.0).

    \n
  • \n
  • \n

    \n usage-operation - The usage operation value for the instance\n (RunInstances | RunInstances:00g0 |\n RunInstances:0010 | RunInstances:1010 |\n RunInstances:1014 | RunInstances:1110 |\n RunInstances:0014 | RunInstances:0210 |\n RunInstances:0110 | RunInstances:0100 |\n RunInstances:0004 | RunInstances:0200 |\n RunInstances:000g | RunInstances:0g00 |\n RunInstances:0002 | RunInstances:0800 |\n RunInstances:0102 | RunInstances:0006 |\n RunInstances:0202).

    \n
  • \n
  • \n

    \n usage-operation-update-time - The time that the usage operation\n was last updated, for example, 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type of the instance\n (paravirtual | hvm).

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC that the instance is running in.

    \n
  • \n
", "smithy.api#xmlName": "Filter" } }, @@ -37815,7 +37850,7 @@ "target": "com.amazonaws.ec2#FilterList", "traits": { "aws.protocols#ec2QueryName": "Filter", - "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n association.allocation-id - The allocation ID returned when you\n\t\t allocated the Elastic IP address (IPv4) for your network interface.

    \n
  • \n
  • \n

    \n association.association-id - The association ID returned when the\n\t\t network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.association.public-ip - The association ID returned when\n\t\t the network interface was associated with the Elastic IP address\n\t\t (IPv4).

    \n
  • \n
  • \n

    \n addresses.primary - Whether the private IPv4 address is the primary\n IP address associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.private-ip-address - The private IPv4 addresses\n\t\t associated with the network interface.

    \n
  • \n
  • \n

    \n association.ip-owner-id - The owner of the Elastic IP address\n (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n association.public-ip - The address of the Elastic IP address\n (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n association.public-dns-name - The public DNS name for the network\n interface (IPv4).

    \n
  • \n
  • \n

    \n attachment.attach-time - The time that the network interface was attached to an instance.

    \n
  • \n
  • \n

    \n attachment.attachment-id - The ID of the interface attachment.

    \n
  • \n
  • \n

    \n attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n attachment.device-index - The device index to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-id - The ID of the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.status - The status of the attachment (attaching | attached | detaching | detached).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the network interface.

    \n
  • \n
  • \n

    \n description - The description of the network interface.

    \n
  • \n
  • \n

    \n group-id - The ID of a security group associated with the network interface.

    \n
  • \n
  • \n

    \n ipv6-addresses.ipv6-address - An IPv6 address associated with\n the network interface.

    \n
  • \n
  • \n

    \n interface-type - The type of network interface (api_gateway_managed | \n\t\t aws_codestar_connections_managed | branch | ec2_instance_connect_endpoint | \n\t\t efa | efa-only | efs | gateway_load_balancer | \n\t\t gateway_load_balancer_endpoint | global_accelerator_managed | interface | \n\t\t iot_rules_managed | lambda | load_balancer | nat_gateway | \n\t\t network_load_balancer | quicksight | transit_gateway | trunk | \n\t\t vpc_endpoint).

    \n
  • \n
  • \n

    \n mac-address - The MAC address of the network interface.

    \n
  • \n
  • \n

    \n network-interface-id - The ID of the network interface.

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed network interface.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the network\n interface. Only valid for managed network interfaces, where managed\n is true.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the network interface owner.

    \n
  • \n
  • \n

    \n private-dns-name - The private DNS name of the network interface (IPv4).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address or addresses of the\n network interface.

    \n
  • \n
  • \n

    \n requester-id - The alias or Amazon Web Services account ID of the principal or service that created the network interface.

    \n
  • \n
  • \n

    \n requester-managed - Indicates whether the network interface is being managed by an Amazon Web Services \n\t\t service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the network interface performs source/destination checking. \n\t\t A value of true means checking is enabled, and false means checking is disabled. \n\t\t The value must be false for the network interface to perform network address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n status - The status of the network interface. If the network interface is not attached to an instance, the status is available; \n\t\t if a network interface is attached to an instance the status is in-use.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the network interface.

    \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 vpc-id - The ID of the VPC for the network interface.

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

One or more filters.

\n
    \n
  • \n

    \n association.allocation-id - The allocation ID returned when you\n\t\t allocated the Elastic IP address (IPv4) for your network interface.

    \n
  • \n
  • \n

    \n association.association-id - The association ID returned when the\n\t\t network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.association.public-ip - The association ID returned when\n\t\t the network interface was associated with the Elastic IP address\n\t\t (IPv4).

    \n
  • \n
  • \n

    \n addresses.primary - Whether the private IPv4 address is the primary\n IP address associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.private-ip-address - The private IPv4 addresses\n\t\t associated with the network interface.

    \n
  • \n
  • \n

    \n association.ip-owner-id - The owner of the Elastic IP address\n (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n association.public-ip - The address of the Elastic IP address\n (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n association.public-dns-name - The public DNS name for the network\n interface (IPv4).

    \n
  • \n
  • \n

    \n attachment.attach-time - The time that the network interface was attached to an instance.

    \n
  • \n
  • \n

    \n attachment.attachment-id - The ID of the interface attachment.

    \n
  • \n
  • \n

    \n attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n attachment.device-index - The device index to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-id - The ID of the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.status - The status of the attachment (attaching | attached | detaching | detached).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the network interface.

    \n
  • \n
  • \n

    \n description - The description of the network interface.

    \n
  • \n
  • \n

    \n group-id - The ID of a security group associated with the network interface.

    \n
  • \n
  • \n

    \n ipv6-addresses.ipv6-address - An IPv6 address associated with\n the network interface.

    \n
  • \n
  • \n

    \n interface-type - The type of network interface (api_gateway_managed | \n\t\t aws_codestar_connections_managed | branch | ec2_instance_connect_endpoint | \n\t\t efa | efa-only | efs | gateway_load_balancer | \n\t\t gateway_load_balancer_endpoint | global_accelerator_managed | interface | \n\t\t iot_rules_managed | lambda | load_balancer | nat_gateway | \n\t\t network_load_balancer | quicksight | transit_gateway | trunk | \n\t\t vpc_endpoint).

    \n
  • \n
  • \n

    \n mac-address - The MAC address of the network interface.

    \n
  • \n
  • \n

    \n network-interface-id - The ID of the network interface.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the network interface owner.

    \n
  • \n
  • \n

    \n private-dns-name - The private DNS name of the network interface (IPv4).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address or addresses of the\n network interface.

    \n
  • \n
  • \n

    \n requester-id - The alias or Amazon Web Services account ID of the principal or service that created the network interface.

    \n
  • \n
  • \n

    \n requester-managed - Indicates whether the network interface is being managed by an Amazon Web Services \n\t\t service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the network interface performs source/destination checking. \n\t\t A value of true means checking is enabled, and false means checking is disabled. \n\t\t The value must be false for the network interface to perform network address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n status - The status of the network interface. If the network interface is not attached to an instance, the status is available; \n\t\t if a network interface is attached to an instance the status is in-use.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the network interface.

    \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 vpc-id - The ID of the VPC for the network interface.

    \n
  • \n
", "smithy.api#xmlName": "filter" } } @@ -61756,6 +61791,14 @@ "smithy.api#xmlName": "currentInstanceBootMode" } }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#InstanceNetworkPerformanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformanceOptions", + "smithy.api#documentation": "

Contains settings for the network performance options for your instance.

", + "smithy.api#xmlName": "networkPerformanceOptions" + } + }, "Operator": { "target": "com.amazonaws.ec2#OperatorResponse", "traits": { @@ -62231,6 +62274,29 @@ } } }, + "com.amazonaws.ec2#InstanceBandwidthWeighting": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "VPC_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-1" + } + }, + "EBS_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs-1" + } + } + } + }, "com.amazonaws.ec2#InstanceBlockDeviceMapping": { "type": "structure", "members": { @@ -63993,6 +64059,36 @@ } } }, + "com.amazonaws.ec2#InstanceNetworkPerformanceOptions": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

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

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

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

" + } + }, + "com.amazonaws.ec2#InstanceNetworkPerformanceOptionsRequest": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#documentation": "

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, \n \t\tas follows:

\n
\n
default
\n
\n

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

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS baseline \n \t\t\t\t\tbandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking baseline \n \t\t\t\t\tbandwidth.

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

Configure network performance options for your instance that are geared towards performance \n \t\timprovements based on the workload that it runs.

" + } + }, "com.amazonaws.ec2#InstancePrivateIpAddress": { "type": "structure", "members": { @@ -76062,6 +76158,36 @@ } } }, + "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptions": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

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

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

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

" + } + }, + "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptionsRequest": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#documentation": "

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

\n
\n
default
\n
\n

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

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS \n \t\t\t\t\tbaseline bandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking \n \t\t\t\t\tbaseline bandwidth.

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

When you configure network performance options in your launch template, your instance \n \t\tis geared for performance improvements based on the workload that it runs as soon as it's \n \t\tavailable.

" + } + }, "com.amazonaws.ec2#LaunchTemplateOverrides": { "type": "structure", "members": { @@ -80405,6 +80531,72 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceResult" + }, + "traits": { + "smithy.api#documentation": "

Change the configuration of the network performance options for an existing \n \tinstance.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to update.

", + "smithy.api#required": {} + } + }, + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

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

\n
\n
default
\n
\n

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

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS \n \t\t\t\t\tbaseline bandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking \n \t\t\t\t\tbaseline bandwidth.

\n
\n
", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

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

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The instance ID that was updated.

", + "smithy.api#xmlName": "instanceId" + } + }, + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

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

", + "smithy.api#xmlName": "bandwidthWeighting" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#ModifyInstancePlacement": { "type": "operation", "input": { @@ -85695,6 +85887,14 @@ "smithy.api#documentation": "

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

", "smithy.api#xmlName": "enaSrdSupported" } + }, + "BandwidthWeightings": { + "target": "com.amazonaws.ec2#BandwidthWeightingTypeList", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeightings", + "smithy.api#documentation": "

A list of valid settings for configurable bandwidth weighting for the instance\n \ttype, if supported.

", + "smithy.api#xmlName": "bandwidthWeightings" + } } }, "traits": { @@ -93600,6 +93800,12 @@ "traits": { "smithy.api#documentation": "

The entity that manages the launch template.

" } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

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

" + } } }, "traits": { @@ -96348,6 +96554,14 @@ "smithy.api#documentation": "

The entity that manages the launch template.

", "smithy.api#xmlName": "operator" } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformanceOptions", + "smithy.api#documentation": "

Contains the launch template settings for network performance options for \n \tyour instance.

", + "smithy.api#xmlName": "networkPerformanceOptions" + } } }, "traits": { @@ -98025,6 +98239,12 @@ "smithy.api#documentation": "

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

" } }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#InstanceNetworkPerformanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

Contains settings for the network performance options for the instance.

" + } + }, "Operator": { "target": "com.amazonaws.ec2#OperatorRequest", "traits": { diff --git a/codegen/sdk-codegen/aws-models/ecs.json b/codegen/sdk-codegen/aws-models/ecs.json index 81b6d754140..acd01dd3efe 100644 --- a/codegen/sdk-codegen/aws-models/ecs.json +++ b/codegen/sdk-codegen/aws-models/ecs.json @@ -279,7 +279,7 @@ "name": "ecs" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Amazon Elastic Container Service\n

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run,\n\t\t\tstop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's\n\t\t\tmanaged by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your\n\t\t\ttasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.

\n

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes\n\t\t\tit easy to get the state of your cluster from a centralized service, and gives you access to many\n\t\t\tfamiliar Amazon EC2 features.

\n

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource\n\t\t\tneeds, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your\n\t\t\town cluster management and configuration management systems. You also don't need to worry about scaling\n\t\t\tyour management infrastructure.

", + "smithy.api#documentation": "Amazon Elastic Container Service\n

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes\n\t\t\tit easy to run, stop, and manage Docker containers. You can host your cluster on a\n\t\t\tserverless infrastructure that's managed by Amazon ECS by launching your services or tasks on\n\t\t\tFargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2)\n\t\t\tor External (on-premises) instances that you manage.

\n

Amazon ECS makes it easy to launch and stop container-based applications with simple API\n\t\t\tcalls. This makes it easy to get the state of your cluster from a centralized service,\n\t\t\tand gives you access to many familiar Amazon EC2 features.

\n

You can use Amazon ECS to schedule the placement of containers across your cluster based on\n\t\t\tyour resource needs, isolation policies, and availability requirements. With Amazon ECS, you\n\t\t\tdon't need to operate your own cluster management and configuration management systems.\n\t\t\tYou also don't need to worry about scaling your management infrastructure.

", "smithy.api#title": "Amazon EC2 Container Service", "smithy.api#xmlNamespace": { "uri": "http://ecs.amazonaws.com/doc/2014-11-13/" @@ -1336,13 +1336,13 @@ "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the attachment. Valid values are PRECREATED, CREATED,\n\t\t\t\tATTACHING, ATTACHED, DETACHING, DETACHED,\n\t\t\t\tDELETED, and FAILED.

" + "smithy.api#documentation": "

The status of the attachment. Valid values are PRECREATED,\n\t\t\t\tCREATED, ATTACHING, ATTACHED,\n\t\t\t\tDETACHING, DETACHED, DELETED, and\n\t\t\t\tFAILED.

" } }, "details": { "target": "com.amazonaws.ecs#AttachmentDetails", "traits": { - "smithy.api#documentation": "

Details of the attachment.

\n

For elastic network interfaces, this includes the network interface ID, the MAC address, the subnet\n\t\t\tID, and the private IPv4 address.

\n

For Service Connect services, this includes portName, clientAliases,\n\t\t\t\tdiscoveryName, and ingressPortOverride.

\n

For Elastic Block Storage, this includes roleArn, deleteOnTermination,\n\t\t\t\tvolumeName, volumeId, and statusReason (only when the\n\t\t\tattachment fails to create or attach).

" + "smithy.api#documentation": "

Details of the attachment.

\n

For elastic network interfaces, this includes the network interface ID, the MAC\n\t\t\taddress, the subnet ID, and the private IPv4 address.

\n

For Service Connect services, this includes portName,\n\t\t\t\tclientAliases, discoveryName, and\n\t\t\t\tingressPortOverride.

\n

For Elastic Block Storage, this includes roleArn,\n\t\t\t\tdeleteOnTermination, volumeName, volumeId,\n\t\t\tand statusReason (only when the attachment fails to create or\n\t\t\tattach).

" } } }, @@ -1396,31 +1396,31 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the attribute. The name must contain between 1 and 128 characters. The name\n\t\t\tmay contain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), forward slashes\n\t\t\t(/), back slashes (\\), or periods (.).

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

The name of the attribute. The name must contain between 1 and 128\n\t\t\tcharacters. The name may contain letters (uppercase and lowercase), numbers, hyphens\n\t\t\t(-), underscores (_), forward slashes (/), back slashes (\\), or periods (.).

", "smithy.api#required": {} } }, "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value of the attribute. The value must contain between 1 and 128 characters. It can\n\t\t\tcontain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), periods (.), at signs\n\t\t\t(@), forward slashes (/), back slashes (\\), colons (:), or spaces. The value can't start or end with a\n\t\t\tspace.

" + "smithy.api#documentation": "

The value of the attribute. The value must contain between 1 and 128\n\t\t\tcharacters. It can contain letters (uppercase and lowercase), numbers, hyphens (-),\n\t\t\tunderscores (_), periods (.), at signs (@), forward slashes (/), back slashes (\\),\n\t\t\tcolons (:), or spaces. The value can't start or end with a space.

" } }, "targetType": { "target": "com.amazonaws.ecs#TargetType", "traits": { - "smithy.api#documentation": "

The type of the target to attach the attribute with. This parameter is required if you use the short\n\t\t\tform ID for a resource instead of the full ARN.

" + "smithy.api#documentation": "

The type of the target to attach the attribute with. This parameter is required if you\n\t\t\tuse the short form ID for a resource instead of the full ARN.

" } }, "targetId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).

" + "smithy.api#documentation": "

The ID of the target. You can specify the short form ID for a resource or the full\n\t\t\tAmazon Resource Name (ARN).

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

An attribute is a name-value pair that's associated with an Amazon ECS object. Use attributes to extend\n\t\t\tthe Amazon ECS data model by adding custom metadata to your resources. For more information, see Attributes\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

An attribute is a name-value pair that's associated with an Amazon ECS object. Use\n\t\t\tattributes to extend the Amazon ECS data model by adding custom metadata to your resources.\n\t\t\tFor more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#AttributeLimitExceededException": { @@ -1434,7 +1434,7 @@ } }, "traits": { - "smithy.api#documentation": "

You can apply up to 10 custom attributes for each resource. You can view the attributes of a resource\n\t\t\twith ListAttributes. You can remove existing attributes on a resource with DeleteAttributes.

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

You can apply up to 10 custom attributes for each resource. You can view the\n\t\t\tattributes of a resource with ListAttributes.\n\t\t\tYou can remove existing attributes on a resource with DeleteAttributes.

", "smithy.api#error": "client" } }, @@ -1450,7 +1450,7 @@ "autoScalingGroupArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the Auto Scaling group name.

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

The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the Auto Scaling group\n\t\t\tname.

", "smithy.api#required": {} } }, @@ -1463,7 +1463,7 @@ "managedTerminationProtection": { "target": "com.amazonaws.ecs#ManagedTerminationProtection", "traits": { - "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity provider. This\n\t\t\tdetermines whether the Auto Scaling group has managed termination protection. The default is\n\t\t\toff.

\n \n

When using managed termination protection, managed scaling must also be used otherwise managed\n\t\t\t\ttermination protection doesn't work.

\n
\n

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling\n\t\t\tgroup that contain tasks from being terminated during a scale-in action. The Auto Scaling group and\n\t\t\teach instance in the Auto Scaling group must have instance protection from scale-in actions on as well.\n\t\t\tFor more information, see Instance\n\t\t\t\tProtection in the Auto Scaling User Guide.

\n

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination\n\t\t\twhen the Auto Scaling group scales in.

" + "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity\n\t\t\tprovider. This determines whether the Auto Scaling group has managed termination\n\t\t\tprotection. The default is off.

\n \n

When using managed termination protection, managed scaling must also be used\n\t\t\t\totherwise managed termination protection doesn't work.

\n
\n

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an\n\t\t\tAuto Scaling group that contain tasks from being terminated during a scale-in action.\n\t\t\tThe Auto Scaling group and each instance in the Auto Scaling group must have instance\n\t\t\tprotection from scale-in actions on as well. For more information, see Instance Protection in the Auto Scaling User Guide.

\n

When managed termination protection is off, your Amazon EC2 instances aren't protected from\n\t\t\ttermination when the Auto Scaling group scales in.

" } }, "managedDraining": { @@ -1489,7 +1489,7 @@ "managedTerminationProtection": { "target": "com.amazonaws.ecs#ManagedTerminationProtection", "traits": { - "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity provider. This\n\t\t\tdetermines whether the Auto Scaling group has managed termination protection.

\n \n

When using managed termination protection, managed scaling must also be used otherwise managed\n\t\t\t\ttermination protection doesn't work.

\n
\n

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling\n\t\t\tgroup that contain tasks from being terminated during a scale-in action. The Auto Scaling group and\n\t\t\teach instance in the Auto Scaling group must have instance protection from scale-in actions on. For\n\t\t\tmore information, see Instance\n\t\t\t\tProtection in the Auto Scaling User Guide.

\n

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination\n\t\t\twhen the Auto Scaling group scales in.

" + "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity\n\t\t\tprovider. This determines whether the Auto Scaling group has managed termination\n\t\t\tprotection.

\n \n

When using managed termination protection, managed scaling must also be used\n\t\t\t\totherwise managed termination protection doesn't work.

\n
\n

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an\n\t\t\tAuto Scaling group that contain tasks from being terminated during a scale-in action.\n\t\t\tThe Auto Scaling group and each instance in the Auto Scaling group must have instance\n\t\t\tprotection from scale-in actions on. For more information, see Instance Protection in the Auto Scaling User Guide.

\n

When managed termination protection is off, your Amazon EC2 instances aren't protected from\n\t\t\ttermination when the Auto Scaling group scales in.

" } }, "managedDraining": { @@ -1526,20 +1526,20 @@ "subnets": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be\n\t\t\tspecified per awsvpcConfiguration.

\n \n

All specified subnets must be from the same VPC.

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

The IDs of the subnets associated with the task or service. There's a limit of 16\n\t\t\tsubnets that can be specified per awsvpcConfiguration.

\n \n

All specified subnets must be from the same VPC.

\n
", "smithy.api#required": {} } }, "securityGroups": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The IDs of the security groups associated with the task or service. If you don't specify a security\n\t\t\tgroup, the default security group for the VPC is used. There's a limit of 5 security groups that can be\n\t\t\tspecified per awsvpcConfiguration.

\n \n

All specified security groups must be from the same VPC.

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

The IDs of the security groups associated with the task or service. If you don't\n\t\t\tspecify a security group, the default security group for the VPC is used. There's a\n\t\t\tlimit of 5 security groups that can be specified per\n\t\t\tawsvpcConfiguration.

\n \n

All specified security groups must be from the same VPC.

\n
" } }, "assignPublicIp": { "target": "com.amazonaws.ecs#AssignPublicIp", "traits": { - "smithy.api#documentation": "

Whether the task's elastic network interface receives a public IP address. The default value is\n\t\t\t\tENABLED.

" + "smithy.api#documentation": "

Whether the task's elastic network interface receives a public IP address. The default\n\t\t\tvalue is ENABLED.

" } } }, @@ -1609,7 +1609,7 @@ "status": { "target": "com.amazonaws.ecs#CapacityProviderStatus", "traits": { - "smithy.api#documentation": "

The current status of the capacity provider. Only capacity providers in an ACTIVE state\n\t\t\tcan be used in a cluster. When a capacity provider is successfully deleted, it has an\n\t\t\t\tINACTIVE status.

" + "smithy.api#documentation": "

The current status of the capacity provider. Only capacity providers in an\n\t\t\t\tACTIVE state can be used in a cluster. When a capacity provider is\n\t\t\tsuccessfully deleted, it has an INACTIVE status.

" } }, "autoScalingGroupProvider": { @@ -1621,19 +1621,19 @@ "updateStatus": { "target": "com.amazonaws.ecs#CapacityProviderUpdateStatus", "traits": { - "smithy.api#documentation": "

The update status of the capacity provider. The following are the possible states that is\n\t\t\treturned.

\n
\n
DELETE_IN_PROGRESS
\n
\n

The capacity provider is in the process of being deleted.

\n
\n
DELETE_COMPLETE
\n
\n

The capacity provider was successfully deleted and has an INACTIVE\n\t\t\t\t\t\tstatus.

\n
\n
DELETE_FAILED
\n
\n

The capacity provider can't be deleted. The update status reason provides further details\n\t\t\t\t\t\tabout why the delete failed.

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

The update status of the capacity provider. The following are the possible states that\n\t\t\tis returned.

\n
\n
DELETE_IN_PROGRESS
\n
\n

The capacity provider is in the process of being deleted.

\n
\n
DELETE_COMPLETE
\n
\n

The capacity provider was successfully deleted and has an\n\t\t\t\t\t\t\tINACTIVE status.

\n
\n
DELETE_FAILED
\n
\n

The capacity provider can't be deleted. The update status reason provides\n\t\t\t\t\t\tfurther details about why the delete failed.

\n
\n
" } }, "updateStatusReason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The update status reason. This provides further details about the update status for the capacity\n\t\t\tprovider.

" + "smithy.api#documentation": "

The update status reason. This provides further details about the update status for\n\t\t\tthe capacity provider.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag\n\t\t\tconsists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the capacity provider to help you categorize and\n\t\t\torganize it. Each tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } } }, @@ -1695,19 +1695,19 @@ "target": "com.amazonaws.ecs#CapacityProviderStrategyItemWeight", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The weight value designates the relative percentage of the total number of tasks\n\t\t\tlaunched that should use the specified capacity provider. The weight value is taken into\n\t\t\tconsideration after the base value, if defined, is satisfied.

\n

If no weight value is specified, the default value of 0 is used. When\n\t\t\tmultiple capacity providers are specified within a capacity provider strategy, at least one of the\n\t\t\tcapacity providers must have a weight value greater than zero and any capacity providers with a weight\n\t\t\tof 0 can't be used to place tasks. If you specify multiple capacity providers in a\n\t\t\tstrategy that all have a weight of 0, any RunTask or\n\t\t\t\tCreateService actions using the capacity provider strategy will fail.

\n

An example scenario for using weights is defining a strategy that contains two capacity providers and\n\t\t\tboth have a weight of 1, then when the base is satisfied, the tasks will be\n\t\t\tsplit evenly across the two capacity providers. Using that same logic, if you specify a weight of\n\t\t\t\t1 for capacityProviderA and a weight of 4 for\n\t\t\t\tcapacityProviderB, then for every one task that's run using\n\t\t\t\tcapacityProviderA, four tasks would use\n\t\t\tcapacityProviderB.

" + "smithy.api#documentation": "

The weight value designates the relative percentage of the total\n\t\t\tnumber of tasks launched that should use the specified capacity provider. The\n\t\t\t\tweight value is taken into consideration after the base\n\t\t\tvalue, if defined, is satisfied.

\n

If no weight value is specified, the default value of 0 is\n\t\t\tused. When multiple capacity providers are specified within a capacity provider\n\t\t\tstrategy, at least one of the capacity providers must have a weight value greater than\n\t\t\tzero and any capacity providers with a weight of 0 can't be used to place\n\t\t\ttasks. If you specify multiple capacity providers in a strategy that all have a weight\n\t\t\tof 0, any RunTask or CreateService actions using\n\t\t\tthe capacity provider strategy will fail.

\n

An example scenario for using weights is defining a strategy that contains two\n\t\t\tcapacity providers and both have a weight of 1, then when the\n\t\t\t\tbase is satisfied, the tasks will be split evenly across the two\n\t\t\tcapacity providers. Using that same logic, if you specify a weight of 1 for\n\t\t\t\tcapacityProviderA and a weight of 4 for\n\t\t\t\tcapacityProviderB, then for every one task that's run using\n\t\t\t\tcapacityProviderA, four tasks would use\n\t\t\t\tcapacityProviderB.

" } }, "base": { "target": "com.amazonaws.ecs#CapacityProviderStrategyItemBase", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

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

" + "smithy.api#documentation": "

The base value designates how many tasks, at a minimum, to run on\n\t\t\tthe specified capacity provider. Only one capacity provider in a capacity provider\n\t\t\tstrategy can have a base defined. If no value is specified, the\n\t\t\tdefault value of 0 is used.

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

The details of a capacity provider strategy. A capacity provider strategy can be set when using the\n\t\t\t\tRunTaskor\n\t\t\t\tCreateCluster APIs or as the default capacity provider strategy for a cluster with the\n\t\t\t\tCreateCluster API.

\n

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

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used in a capacity provider\n\t\t\tstrategy.

\n

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

\n

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

" + "smithy.api#documentation": "

The details of a capacity provider strategy. A capacity provider strategy can be set\n\t\t\twhen using the RunTaskor CreateCluster APIs or as the default capacity provider strategy for a\n\t\t\tcluster with the CreateCluster API.

\n

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

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be used in a\n\t\t\tcapacity provider strategy.

\n

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

\n

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

" } }, "com.amazonaws.ecs#CapacityProviderStrategyItemBase": { @@ -1788,7 +1788,7 @@ } }, "traits": { - "smithy.api#documentation": "

These errors are usually caused by a client action. This client action might be using an action or\n\t\t\tresource on behalf of a user that doesn't have permissions to use the action or resource. Or, it might\n\t\t\tbe specifying an identifier that isn't valid.

\n

The following list includes additional causes for the error:

\n
    \n
  • \n

    The RunTask could not be processed because you use managed scaling and there is\n\t\t\t\t\ta capacity error because the quota of tasks in the PROVISIONING per cluster has\n\t\t\t\t\tbeen reached. For information about the service quotas, see Amazon ECS service\n\t\t\t\t\t\tquotas.

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

These errors are usually caused by a client action. This client action might be using\n\t\t\tan action or resource on behalf of a user that doesn't have permissions to use the\n\t\t\taction or resource. Or, it might be specifying an identifier that isn't valid.

\n

The following list includes additional causes for the error:

\n
    \n
  • \n

    The RunTask could not be processed because you use managed\n\t\t\t\t\tscaling and there is a capacity error because the quota of tasks in the\n\t\t\t\t\t\tPROVISIONING per cluster has been reached. For information\n\t\t\t\t\tabout the service quotas, see Amazon ECS\n\t\t\t\t\t\tservice quotas.

    \n
  • \n
", "smithy.api#error": "client" } }, @@ -1798,7 +1798,7 @@ "clusterArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN format, see Amazon Resource Name (ARN)\n\t\t\tin the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN\n\t\t\tformat, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" } }, "clusterName": { @@ -1816,14 +1816,14 @@ "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the cluster. The following are the possible states that are returned.

\n
\n
ACTIVE
\n
\n

The cluster is ready to accept tasks and if applicable you can register container\n\t\t\t\t\t\tinstances with the cluster.

\n
\n
PROVISIONING
\n
\n

The cluster has capacity providers that are associated with it and the resources needed\n\t\t\t\t\t\tfor the capacity provider are being created.

\n
\n
DEPROVISIONING
\n
\n

The cluster has capacity providers that are associated with it and the resources needed\n\t\t\t\t\t\tfor the capacity provider are being deleted.

\n
\n
FAILED
\n
\n

The cluster has capacity providers that are associated with it and the resources needed\n\t\t\t\t\t\tfor the capacity provider have failed to create.

\n
\n
INACTIVE
\n
\n

The cluster has been deleted. Clusters with an INACTIVE status may remain\n\t\t\t\t\t\tdiscoverable in your account for a period of time. However, this behavior is subject to\n\t\t\t\t\t\tchange in the future. We don't recommend that you rely on INACTIVE clusters\n\t\t\t\t\t\tpersisting.

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

The status of the cluster. The following are the possible states that are\n\t\t\treturned.

\n
\n
ACTIVE
\n
\n

The cluster is ready to accept tasks and if applicable you can register\n\t\t\t\t\t\tcontainer instances with the cluster.

\n
\n
PROVISIONING
\n
\n

The cluster has capacity providers that are associated with it and the\n\t\t\t\t\t\tresources needed for the capacity provider are being created.

\n
\n
DEPROVISIONING
\n
\n

The cluster has capacity providers that are associated with it and the\n\t\t\t\t\t\tresources needed for the capacity provider are being deleted.

\n
\n
FAILED
\n
\n

The cluster has capacity providers that are associated with it and the\n\t\t\t\t\t\tresources needed for the capacity provider have failed to create.

\n
\n
INACTIVE
\n
\n

The cluster has been deleted. Clusters with an INACTIVE\n\t\t\t\t\t\tstatus may remain discoverable in your account for a period of time.\n\t\t\t\t\t\tHowever, this behavior is subject to change in the future. We don't\n\t\t\t\t\t\trecommend that you rely on INACTIVE clusters persisting.

\n
\n
" } }, "registeredContainerInstancesCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of container instances registered into the cluster. This includes container instances in\n\t\t\tboth ACTIVE and DRAINING status.

" + "smithy.api#documentation": "

The number of container instances registered into the cluster. This includes container\n\t\t\tinstances in both ACTIVE and DRAINING status.

" } }, "runningTasksCount": { @@ -1844,25 +1844,25 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of services that are running on the cluster in an ACTIVE state. You can view\n\t\t\tthese services with PListServices.

" + "smithy.api#documentation": "

The number of services that are running on the cluster in an ACTIVE\n\t\t\tstate. You can view these services with PListServices.

" } }, "statistics": { "target": "com.amazonaws.ecs#Statistics", "traits": { - "smithy.api#documentation": "

Additional information about your clusters that are separated by launch type. They include the\n\t\t\tfollowing:

\n
    \n
  • \n

    runningEC2TasksCount

    \n
  • \n
  • \n

    RunningFargateTasksCount

    \n
  • \n
  • \n

    pendingEC2TasksCount

    \n
  • \n
  • \n

    pendingFargateTasksCount

    \n
  • \n
  • \n

    activeEC2ServiceCount

    \n
  • \n
  • \n

    activeFargateServiceCount

    \n
  • \n
  • \n

    drainingEC2ServiceCount

    \n
  • \n
  • \n

    drainingFargateServiceCount

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

Additional information about your clusters that are separated by launch type. They\n\t\t\tinclude the following:

\n
    \n
  • \n

    runningEC2TasksCount

    \n
  • \n
  • \n

    RunningFargateTasksCount

    \n
  • \n
  • \n

    pendingEC2TasksCount

    \n
  • \n
  • \n

    pendingFargateTasksCount

    \n
  • \n
  • \n

    activeEC2ServiceCount

    \n
  • \n
  • \n

    activeFargateServiceCount

    \n
  • \n
  • \n

    drainingEC2ServiceCount

    \n
  • \n
  • \n

    drainingFargateServiceCount

    \n
  • \n
" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the cluster to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the cluster to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "settings": { "target": "com.amazonaws.ecs#ClusterSettings", "traits": { - "smithy.api#documentation": "

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is on or off\n\t\t\tfor a cluster.

" + "smithy.api#documentation": "

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights\n\t\t\tis on or off for a cluster.

" } }, "capacityProviders": { @@ -1874,19 +1874,19 @@ "defaultCapacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The default capacity provider strategy for the cluster. When services or tasks are run in the cluster\n\t\t\twith no launch type or capacity provider strategy specified, the default capacity provider strategy is\n\t\t\tused.

" + "smithy.api#documentation": "

The default capacity provider strategy for the cluster. When services or tasks are run\n\t\t\tin the cluster with no launch type or capacity provider strategy specified, the default\n\t\t\tcapacity provider strategy is used.

" } }, "attachments": { "target": "com.amazonaws.ecs#Attachments", "traits": { - "smithy.api#documentation": "

The resources attached to a cluster. When using a capacity provider with a cluster, the capacity\n\t\t\tprovider and associated resources are returned as cluster attachments.

" + "smithy.api#documentation": "

The resources attached to a cluster. When using a capacity provider with a cluster,\n\t\t\tthe capacity provider and associated resources are returned as cluster\n\t\t\tattachments.

" } }, "attachmentsStatus": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the capacity providers associated with the cluster. The following are the states that\n\t\t\tare returned.

\n
\n
UPDATE_IN_PROGRESS
\n
\n

The available capacity providers for the cluster are updating.

\n
\n
UPDATE_COMPLETE
\n
\n

The capacity providers have successfully updated.

\n
\n
UPDATE_FAILED
\n
\n

The capacity provider updates failed.

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

The status of the capacity providers associated with the cluster. The following are\n\t\t\tthe states that are returned.

\n
\n
UPDATE_IN_PROGRESS
\n
\n

The available capacity providers for the cluster are updating.

\n
\n
UPDATE_COMPLETE
\n
\n

The capacity providers have successfully updated.

\n
\n
UPDATE_FAILED
\n
\n

The capacity provider updates failed.

\n
\n
" } }, "serviceConnectDefaults": { @@ -1897,7 +1897,7 @@ } }, "traits": { - "smithy.api#documentation": "

A regional grouping of one or more container instances where you can run task requests. Each account\n\t\t\treceives a default cluster the first time you use the Amazon ECS service, but you may also create other\n\t\t\tclusters. Clusters may contain more than one instance type simultaneously.

" + "smithy.api#documentation": "

A regional grouping of one or more container instances where you can run task\n\t\t\trequests. Each account receives a default cluster the first time you use the Amazon ECS\n\t\t\tservice, but you may also create other clusters. Clusters may contain more than one\n\t\t\tinstance type simultaneously.

" } }, "com.amazonaws.ecs#ClusterConfiguration": { @@ -1931,7 +1931,7 @@ } }, "traits": { - "smithy.api#documentation": "

You can't delete a cluster that has registered container instances. First, deregister the container\n\t\t\tinstances before you can delete the cluster. For more information, see DeregisterContainerInstance.

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

You can't delete a cluster that has registered container instances. First, deregister\n\t\t\tthe container instances before you can delete the cluster. For more information, see\n\t\t\t\tDeregisterContainerInstance.

", "smithy.api#error": "client" } }, @@ -1946,7 +1946,7 @@ } }, "traits": { - "smithy.api#documentation": "

You can't delete a cluster that contains services. First, update the service to reduce its desired\n\t\t\ttask count to 0, and then delete the service. For more information, see UpdateService and DeleteService.

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

You can't delete a cluster that contains services. First, update the service to reduce\n\t\t\tits desired task count to 0, and then delete the service. For more information, see\n\t\t\t\tUpdateService and\n\t\t\t\tDeleteService.

", "smithy.api#error": "client" } }, @@ -2027,7 +2027,7 @@ "namespace": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace. When you create a service and don't specify a Service Connect\n\t\t\tconfiguration, this namespace is used.

" + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace. When you create a service and don't specify a\n\t\t\tService Connect configuration, this namespace is used.

" } } }, @@ -2041,7 +2041,7 @@ "namespace": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a\n\t\t\tService Connect configuration. The namespace name can include up to 1024 characters. The name is\n\t\t\tcase-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<),\n\t\t\tor slash (/).

\n

If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace\n\t\t\ttype is supported. The namespace must be in this account and this Amazon Web Services Region.

\n

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a Cloud Map namespace\n\t\t\twith the \"API calls\" method of instance discovery only. This instance discovery method is the \"HTTP\"\n\t\t\tnamespace type in the Command Line Interface. Other types of instance discovery aren't used by\n\t\t\tService Connect.

\n

If you update the cluster with an empty string \"\" for the namespace name, the cluster\n\t\t\tconfiguration for Service Connect is removed. Note that the namespace will remain in Cloud Map and must\n\t\t\tbe deleted separately.

\n

For more information about Cloud Map, see Working with Services in the\n\t\t\tCloud Map Developer Guide.

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

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify\n\t\t\ta Service Connect configuration. The namespace name can include up to 1024 characters.\n\t\t\tThe name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than\n\t\t\t(>), less than (<), or slash (/).

\n

If you enter an existing namespace name or ARN, then that namespace will be used.\n\t\t\tAny namespace type is supported. The namespace must be in this account and this Amazon Web Services\n\t\t\tRegion.

\n

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a\n\t\t\tCloud Map namespace with the \"API calls\" method of instance discovery only. This instance\n\t\t\tdiscovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance\n\t\t\tdiscovery aren't used by Service Connect.

\n

If you update the cluster with an empty string \"\" for the namespace name,\n\t\t\tthe cluster configuration for Service Connect is removed. Note that the namespace will\n\t\t\tremain in Cloud Map and must be deleted separately.

\n

For more information about Cloud Map, see Working with Services\n\t\t\tin the Cloud Map Developer Guide.

", "smithy.api#required": {} } } @@ -2062,12 +2062,12 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value to set for the cluster setting. The supported values are enhanced,\n\t\t\t\tenabled, and disabled.

\n

To use Container Insights with enhanced observability, set the\n\t\t\t\tcontainerInsights account setting to enhanced.

\n

To use Container Insights, set the containerInsights account setting to\n\t\t\t\tenabled.

\n

If a cluster value is specified, it will override the containerInsights value\n\t\t\tset with PutAccountSetting or PutAccountSettingDefault.

" + "smithy.api#documentation": "

The value to set for the cluster setting. The supported values are\n\t\t\t\tenhanced, enabled, and disabled.

\n

To use Container Insights with enhanced observability, set the\n\t\t\t\tcontainerInsights account setting to enhanced.

\n

To use Container Insights, set the containerInsights account setting to\n\t\t\t\tenabled.

\n

If a cluster value is specified, it will override the containerInsights\n\t\t\tvalue set with PutAccountSetting or PutAccountSettingDefault.

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

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container\n\t\t\tInsights with enhanced observability or CloudWatch Container\n\t\t\tInsights for a cluster.

\n

Container Insights with enhanced observability provides all the Container Insights metrics,\n\t\t\tplus additional task and container metrics. This version supports enhanced observability\n\t\t\tfor Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure\n\t\t\tContainer Insights with enhanced observability on Amazon ECS, Container Insights\n\t\t\tauto-collects detailed infrastructure telemetry from the cluster level down to the container\n\t\t\tlevel in your environment and displays these critical performance data in curated\n\t\t\tdashboards removing the heavy lifting in observability set-up.

\n

For more information, see Monitor\n\t\t\t\tAmazon ECS containers using Container Insights with enhanced observability in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights with enhanced observability or CloudWatch Container Insights for a\n\t\t\tcluster.

\n

Container Insights with enhanced observability provides all the Container Insights\n\t\t\tmetrics, plus additional task and container metrics. This version supports enhanced\n\t\t\tobservability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you\n\t\t\tconfigure Container Insights with enhanced observability on Amazon ECS, Container Insights\n\t\t\tauto-collects detailed infrastructure telemetry from the cluster level down to the\n\t\t\tcontainer level in your environment and displays these critical performance data in\n\t\t\tcurated dashboards removing the heavy lifting in observability set-up.

\n

For more information, see Monitor\n\t\t\t\tAmazon ECS containers using Container Insights with enhanced observability in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#ClusterSettingName": { @@ -2128,7 +2128,7 @@ "resourceIds": { "target": "com.amazonaws.ecs#ResourceIds", "traits": { - "smithy.api#documentation": "

The existing task ARNs which are already associated with the clientToken.

" + "smithy.api#documentation": "

The existing task ARNs which are already associated with the\n\t\t\t\tclientToken.

" } }, "message": { @@ -2139,7 +2139,7 @@ } }, "traits": { - "smithy.api#documentation": "

The RunTask request could not be processed due to conflicts. The provided\n\t\t\t\tclientToken is already in use with a different RunTask request. The\n\t\t\t\tresourceIds are the existing task ARNs which are already associated with the\n\t\t\t\tclientToken.

\n

To fix this issue:

\n
    \n
  • \n

    Run RunTask with a unique clientToken.

    \n
  • \n
  • \n

    Run RunTask with the clientToken and the original set of\n\t\t\t\t\tparameters

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

The RunTask request could not be processed due to conflicts. The provided\n\t\t\t\tclientToken is already in use with a different RunTask\n\t\t\trequest. The resourceIds are the existing task ARNs which are already\n\t\t\tassociated with the clientToken.

\n

To fix this issue:

\n
    \n
  • \n

    Run RunTask with a unique clientToken.

    \n
  • \n
  • \n

    Run RunTask with the clientToken and the original\n\t\t\t\t\tset of parameters

    \n
  • \n
", "smithy.api#error": "client" } }, @@ -2214,7 +2214,7 @@ "reason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A short (255 max characters) human-readable string to provide additional details about a running or\n\t\t\tstopped container.

" + "smithy.api#documentation": "

A short (255 max characters) human-readable string to provide additional details about\n\t\t\ta running or stopped container.

" } }, "networkBindings": { @@ -2232,7 +2232,7 @@ "healthStatus": { "target": "com.amazonaws.ecs#HealthStatus", "traits": { - "smithy.api#documentation": "

The health status of the container. If health checks aren't configured for this container in its task\n\t\t\tdefinition, then it reports the health status as UNKNOWN.

" + "smithy.api#documentation": "

The health status of the container. If health checks aren't configured for this\n\t\t\tcontainer in its task definition, then it reports the health status as\n\t\t\t\tUNKNOWN.

" } }, "managedAgents": { @@ -2244,7 +2244,7 @@ "cpu": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The number of CPU units set for the container. The value is 0 if no value was specified\n\t\t\tin the container definition when the task definition was registered.

" + "smithy.api#documentation": "

The number of CPU units set for the container. The value is 0 if no value\n\t\t\twas specified in the container definition when the task definition was\n\t\t\tregistered.

" } }, "memory": { @@ -2305,13 +2305,13 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of a container. If you're linking multiple containers together in a task definition, the\n\t\t\t\tname of one container can be entered in the links of another container to\n\t\t\tconnect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to name in the docker\n\t\t\tcontainer create command and the --name option to docker run.

" + "smithy.api#documentation": "

The name of a container. If you're linking multiple containers together in a task\n\t\t\tdefinition, the name of one container can be entered in the\n\t\t\t\tlinks of another container to connect the containers.\n\t\t\tUp to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to name in the docker container\n\t\t\tcreate command and the --name option to docker run.

" } }, "image": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The image used to start a container. This string is passed directly to the Docker daemon. By default,\n\t\t\timages in the Docker Hub registry are available. Other repositories are specified with either \n repository-url/image:tag\n or \n repository-url/image@digest\n . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the docker container create\n\t\t\tcommand and the IMAGE parameter of docker run.

\n
    \n
  • \n

    When a new task starts, the Amazon ECS container agent pulls the latest version of the specified\n\t\t\t\t\timage and tag for the container to use. However, subsequent updates to a repository image\n\t\t\t\t\taren't propagated to already running tasks.

    \n
  • \n
  • \n

    Images in Amazon ECR repositories can be specified by either using the full\n\t\t\t\t\t\tregistry/repository:tag or registry/repository@digest. For\n\t\t\t\t\texample,\n\t\t\t\t\t\t012345678910.dkr.ecr..amazonaws.com/:latest\n\t\t\t\t\tor\n\t\t\t\t\t\t012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.\n\t\t\t\t

    \n
  • \n
  • \n

    Images in official repositories on Docker Hub use a single name (for example,\n\t\t\t\t\t\tubuntu or mongo).

    \n
  • \n
  • \n

    Images in other repositories on Docker Hub are qualified with an organization name (for\n\t\t\t\t\texample, amazon/amazon-ecs-agent).

    \n
  • \n
  • \n

    Images in other online repositories are qualified further by a domain name (for example,\n\t\t\t\t\t\tquay.io/assemblyline/ubuntu).

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

The image used to start a container. This string is passed directly to the Docker\n\t\t\tdaemon. By default, images in the Docker Hub registry are available. Other repositories\n\t\t\tare specified with either \n repository-url/image:tag\n or \n repository-url/image@digest\n . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the docker\n\t\t\tcontainer create command and the IMAGE parameter of docker run.

\n
    \n
  • \n

    When a new task starts, the Amazon ECS container agent pulls the latest version of\n\t\t\t\t\tthe specified image and tag for the container to use. However, subsequent\n\t\t\t\t\tupdates to a repository image aren't propagated to already running tasks.

    \n
  • \n
  • \n

    Images in Amazon ECR repositories can be specified by either using the full\n\t\t\t\t\t\tregistry/repository:tag or\n\t\t\t\t\t\tregistry/repository@digest. For example,\n\t\t\t\t\t\t012345678910.dkr.ecr..amazonaws.com/:latest\n\t\t\t\t\tor\n\t\t\t\t\t\t012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.\n\t\t\t\t

    \n
  • \n
  • \n

    Images in official repositories on Docker Hub use a single name (for example,\n\t\t\t\t\t\tubuntu or mongo).

    \n
  • \n
  • \n

    Images in other repositories on Docker Hub are qualified with an organization\n\t\t\t\t\tname (for example, amazon/amazon-ecs-agent).

    \n
  • \n
  • \n

    Images in other online repositories are qualified further by a domain name\n\t\t\t\t\t(for example, quay.io/assemblyline/ubuntu).

    \n
  • \n
" } }, "repositoryCredentials": { @@ -2324,240 +2324,240 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of cpu units reserved for the container. This parameter maps to\n\t\t\t\tCpuShares in the docker container create commandand the --cpu-shares\n\t\t\toption to docker run.

\n

This field is optional for tasks using the Fargate launch type, and the only\n\t\t\trequirement is that the total amount of CPU reserved for all containers within a task be lower than the\n\t\t\ttask-level cpu value.

\n \n

You can determine the number of CPU units that are available per EC2 instance type by multiplying\n\t\t\t\tthe vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

\n
\n

Linux containers share unallocated CPU units with other containers on the container instance with the\n\t\t\tsame ratio as their allocated amount. For example, if you run a single-container task on a single-core\n\t\t\tinstance type with 512 CPU units specified for that container, and that's the only task running on the\n\t\t\tcontainer instance, that container could use the full 1,024 CPU unit share at any given time. However,\n\t\t\tif you launched another copy of the same task on that container instance, each task is guaranteed a\n\t\t\tminimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the\n\t\t\tother container was not using it. If both tasks were 100% active all of the time, they would be limited\n\t\t\tto 512 CPU units.

\n

On Linux container instances, the Docker daemon on the container instance uses the CPU value to\n\t\t\tcalculate the relative CPU share ratios for running containers. The minimum valid CPU share value that\n\t\t\tthe Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is\n\t\t\t262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144\n\t\t\tin your container definitions. For CPU values below 2 (including null) or above 262144, the behavior\n\t\t\tvaries based on your Amazon ECS container agent version:

\n
    \n
  • \n

    \n Agent versions less than or equal to 1.1.0: Null and zero CPU\n\t\t\t\t\tvalues are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of\n\t\t\t\t\t1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.

    \n
  • \n
  • \n

    \n Agent versions greater than or equal to 1.2.0: Null, zero, and\n\t\t\t\t\tCPU values of 1 are passed to Docker as 2.

    \n
  • \n
  • \n

    \n Agent versions greater than or equal to 1.84.0: CPU values\n\t\t\t\t\tgreater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU\n\t\t\t\t\tshares.

    \n
  • \n
\n

On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows\n\t\t\tcontainers only have access to the specified amount of CPU that's described in the task definition. A\n\t\t\tnull or zero CPU value is passed to Docker as 0, which Windows interprets as 1% of one\n\t\t\tCPU.

" + "smithy.api#documentation": "

The number of cpu units reserved for the container. This parameter maps\n\t\t\tto CpuShares in the docker container create commandand the\n\t\t\t\t--cpu-shares option to docker run.

\n

This field is optional for tasks using the Fargate launch type, and the\n\t\t\tonly requirement is that the total amount of CPU reserved for all containers within a\n\t\t\ttask be lower than the task-level cpu value.

\n \n

You can determine the number of CPU units that are available per EC2 instance type\n\t\t\t\tby multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page\n\t\t\t\tby 1,024.

\n
\n

Linux containers share unallocated CPU units with other containers on the container\n\t\t\tinstance with the same ratio as their allocated amount. For example, if you run a\n\t\t\tsingle-container task on a single-core instance type with 512 CPU units specified for\n\t\t\tthat container, and that's the only task running on the container instance, that\n\t\t\tcontainer could use the full 1,024 CPU unit share at any given time. However, if you\n\t\t\tlaunched another copy of the same task on that container instance, each task is\n\t\t\tguaranteed a minimum of 512 CPU units when needed. Moreover, each container could float\n\t\t\tto higher CPU usage if the other container was not using it. If both tasks were 100%\n\t\t\tactive all of the time, they would be limited to 512 CPU units.

\n

On Linux container instances, the Docker daemon on the container instance uses the CPU\n\t\t\tvalue to calculate the relative CPU share ratios for running containers. The minimum\n\t\t\tvalid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share\n\t\t\tvalue that the Linux kernel allows is 262144. However, the CPU parameter isn't required,\n\t\t\tand you can use CPU values below 2 or above 262144 in your container definitions. For\n\t\t\tCPU values below 2 (including null) or above 262144, the behavior varies based on your\n\t\t\tAmazon ECS container agent version:

\n
    \n
  • \n

    \n Agent versions less than or equal to 1.1.0:\n\t\t\t\t\tNull and zero CPU values are passed to Docker as 0, which Docker then converts\n\t\t\t\t\tto 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux\n\t\t\t\t\tkernel converts to two CPU shares.

    \n
  • \n
  • \n

    \n Agent versions greater than or equal to 1.2.0:\n\t\t\t\t\tNull, zero, and CPU values of 1 are passed to Docker as 2.

    \n
  • \n
  • \n

    \n Agent versions greater than or equal to\n\t\t\t\t\t\t1.84.0: CPU values greater than 256 vCPU are passed to Docker as\n\t\t\t\t\t256, which is equivalent to 262144 CPU shares.

    \n
  • \n
\n

On Windows container instances, the CPU limit is enforced as an absolute limit, or a\n\t\t\tquota. Windows containers only have access to the specified amount of CPU that's\n\t\t\tdescribed in the task definition. A null or zero CPU value is passed to Docker as\n\t\t\t\t0, which Windows interprets as 1% of one CPU.

" } }, "memory": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The amount (in MiB) of memory to present to the container. If your container attempts to exceed the\n\t\t\tmemory specified here, the container is killed. The total amount of memory reserved for all containers\n\t\t\twithin a task must be lower than the task memory value, if one is specified. This\n\t\t\tparameter maps to Memory in the docker container create command and the\n\t\t\t\t--memory option to docker run.

\n

If using the Fargate launch type, this parameter is optional.

\n

If using the EC2 launch type, you must specify either a task-level memory value or a\n\t\t\tcontainer-level memory value. If you specify both a container-level memory and\n\t\t\t\tmemoryReservation value, memory must be greater than\n\t\t\t\tmemoryReservation. If you specify memoryReservation, then that value is\n\t\t\tsubtracted from the available memory resources for the container instance where the container is\n\t\t\tplaced. Otherwise, the value of memory is used.

\n

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't\n\t\t\tspecify less than 6 MiB of memory for your containers.

\n

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So,\n\t\t\tdon't specify less than 4 MiB of memory for your containers.

" + "smithy.api#documentation": "

The amount (in MiB) of memory to present to the container. If your container attempts\n\t\t\tto exceed the memory specified here, the container is killed. The total amount of memory\n\t\t\treserved for all containers within a task must be lower than the task\n\t\t\t\tmemory value, if one is specified. This parameter maps to\n\t\t\t\tMemory in the docker container create command and the\n\t\t\t\t--memory option to docker run.

\n

If using the Fargate launch type, this parameter is optional.

\n

If using the EC2 launch type, you must specify either a task-level\n\t\t\tmemory value or a container-level memory value. If you specify both a container-level\n\t\t\t\tmemory and memoryReservation value, memory\n\t\t\tmust be greater than memoryReservation. If you specify\n\t\t\t\tmemoryReservation, then that value is subtracted from the available\n\t\t\tmemory resources for the container instance where the container is placed. Otherwise,\n\t\t\tthe value of memory is used.

\n

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a\n\t\t\tcontainer. So, don't specify less than 6 MiB of memory for your containers.

\n

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a\n\t\t\tcontainer. So, don't specify less than 4 MiB of memory for your containers.

" } }, "memoryReservation": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy\n\t\t\tcontention, Docker attempts to keep the container memory to this soft limit. However, your container\n\t\t\tcan consume more memory when it needs to, up to either the hard limit specified with the\n\t\t\t\tmemory parameter (if applicable), or all of the available memory on the container\n\t\t\tinstance, whichever comes first. This parameter maps to MemoryReservation in the docker\n\t\t\tcontainer create command and the --memory-reservation option to docker run.

\n

If a task-level memory value is not specified, you must specify a non-zero integer for one or both of\n\t\t\t\tmemory or memoryReservation in a container definition. If you specify\n\t\t\tboth, memory must be greater than memoryReservation. If you specify\n\t\t\t\tmemoryReservation, then that value is subtracted from the available memory resources\n\t\t\tfor the container instance where the container is placed. Otherwise, the value of memory\n\t\t\tis used.

\n

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of\n\t\t\tmemory for short periods of time, you can set a memoryReservation of 128 MiB, and a\n\t\t\t\tmemory hard limit of 300 MiB. This configuration would allow the container to only\n\t\t\treserve 128 MiB of memory from the remaining resources on the container instance, but also allow the\n\t\t\tcontainer to consume more memory resources when needed.

\n

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't\n\t\t\tspecify less than 6 MiB of memory for your containers.

\n

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So,\n\t\t\tdon't specify less than 4 MiB of memory for your containers.

" + "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container. When system memory is\n\t\t\tunder heavy contention, Docker attempts to keep the container memory to this soft limit.\n\t\t\tHowever, your container can consume more memory when it needs to, up to either the hard\n\t\t\tlimit specified with the memory parameter (if applicable), or all of the\n\t\t\tavailable memory on the container instance, whichever comes first. This parameter maps\n\t\t\tto MemoryReservation in the docker container create command and the\n\t\t\t\t--memory-reservation option to docker run.

\n

If a task-level memory value is not specified, you must specify a non-zero integer for\n\t\t\tone or both of memory or memoryReservation in a container\n\t\t\tdefinition. If you specify both, memory must be greater than\n\t\t\t\tmemoryReservation. If you specify memoryReservation, then\n\t\t\tthat value is subtracted from the available memory resources for the container instance\n\t\t\twhere the container is placed. Otherwise, the value of memory is\n\t\t\tused.

\n

For example, if your container normally uses 128 MiB of memory, but occasionally\n\t\t\tbursts to 256 MiB of memory for short periods of time, you can set a\n\t\t\t\tmemoryReservation of 128 MiB, and a memory hard limit of\n\t\t\t300 MiB. This configuration would allow the container to only reserve 128 MiB of memory\n\t\t\tfrom the remaining resources on the container instance, but also allow the container to\n\t\t\tconsume more memory resources when needed.

\n

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a\n\t\t\tcontainer. So, don't specify less than 6 MiB of memory for your containers.

\n

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a\n\t\t\tcontainer. So, don't specify less than 4 MiB of memory for your containers.

" } }, "links": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The links parameter allows containers to communicate with each other without the need\n\t\t\tfor port mappings. This parameter is only supported if the network mode of a task definition is\n\t\t\t\tbridge. The name:internalName construct is analogous to\n\t\t\t\tname:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.. This parameter maps to\n\t\t\t\tLinks in the docker container create command and the --link option to\n\t\t\tdocker run.

\n \n

This parameter is not supported for Windows containers.

\n
\n \n

Containers that are collocated on a single container instance may be able to communicate with\n\t\t\t\teach other without requiring links or host port mappings. Network isolation is achieved on the\n\t\t\t\tcontainer instance using security groups and VPC settings.

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

The links parameter allows containers to communicate with each other\n\t\t\twithout the need for port mappings. This parameter is only supported if the network mode\n\t\t\tof a task definition is bridge. The name:internalName\n\t\t\tconstruct is analogous to name:alias in Docker links.\n\t\t\tUp to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.. This parameter maps to Links in the docker\n\t\t\tcontainer create command and the --link option to docker run.

\n \n

This parameter is not supported for Windows containers.

\n
\n \n

Containers that are collocated on a single container instance may be able to\n\t\t\t\tcommunicate with each other without requiring links or host port mappings. Network\n\t\t\t\tisolation is achieved on the container instance using security groups and VPC\n\t\t\t\tsettings.

\n
" } }, "portMappings": { "target": "com.amazonaws.ecs#PortMappingList", "traits": { - "smithy.api#documentation": "

The list of port mappings for the container. Port mappings allow containers to access ports on the\n\t\t\thost container instance to send or receive traffic.

\n

For task definitions that use the awsvpc network mode, only specify the\n\t\t\t\tcontainerPort. The hostPort can be left blank or it must be the same\n\t\t\tvalue as the containerPort.

\n

Port mappings on Windows use the NetNAT gateway address rather than\n\t\t\t\tlocalhost. There's no loopback for port mappings on Windows, so you can't access a\n\t\t\tcontainer's mapped port from the host itself.

\n

This parameter maps to PortBindings in the the docker container create command and the\n\t\t\t\t--publish option to docker run. If the network mode of a task definition is set to\n\t\t\t\tnone, then you can't specify port mappings. If the network mode of a task definition\n\t\t\tis set to host, then host ports must either be undefined or they must match the container\n\t\t\tport in the port mapping.

\n \n

After a task reaches the RUNNING status, manual and automatic host and container\n\t\t\t\tport assignments are visible in the Network Bindings section of a\n\t\t\t\tcontainer description for a selected task in the Amazon ECS console. The assignments are also visible in\n\t\t\t\tthe networkBindings section DescribeTasks\n\t\t\t\tresponses.

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

The list of port mappings for the container. Port mappings allow containers to access\n\t\t\tports on the host container instance to send or receive traffic.

\n

For task definitions that use the awsvpc network mode, only specify the\n\t\t\t\tcontainerPort. The hostPort can be left blank or it must\n\t\t\tbe the same value as the containerPort.

\n

Port mappings on Windows use the NetNAT gateway address rather than\n\t\t\t\tlocalhost. There's no loopback for port mappings on Windows, so you\n\t\t\tcan't access a container's mapped port from the host itself.

\n

This parameter maps to PortBindings in the the docker container create\n\t\t\tcommand and the --publish option to docker run. If the network mode of a\n\t\t\ttask definition is set to none, then you can't specify port mappings. If\n\t\t\tthe network mode of a task definition is set to host, then host ports must\n\t\t\teither be undefined or they must match the container port in the port mapping.

\n \n

After a task reaches the RUNNING status, manual and automatic host\n\t\t\t\tand container port assignments are visible in the Network\n\t\t\t\t\tBindings section of a container description for a selected task in\n\t\t\t\tthe Amazon ECS console. The assignments are also visible in the\n\t\t\t\t\tnetworkBindings section DescribeTasks\n\t\t\t\tresponses.

\n
" } }, "essential": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If the essential parameter of a container is marked as true, and that\n\t\t\tcontainer fails or stops for any reason, all other containers that are part of the task are stopped. If\n\t\t\tthe essential parameter of a container is marked as false, its failure\n\t\t\tdoesn't affect the rest of the containers in a task. If this parameter is omitted, a container is\n\t\t\tassumed to be essential.

\n

All tasks must have at least one essential container. If you have an application that's composed of\n\t\t\tmultiple containers, group containers that are used for a common purpose into components, and separate\n\t\t\tthe different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

If the essential parameter of a container is marked as true,\n\t\t\tand that container fails or stops for any reason, all other containers that are part of\n\t\t\tthe task are stopped. If the essential parameter of a container is marked\n\t\t\tas false, its failure doesn't affect the rest of the containers in a task.\n\t\t\tIf this parameter is omitted, a container is assumed to be essential.

\n

All tasks must have at least one essential container. If you have an application\n\t\t\tthat's composed of multiple containers, group containers that are used for a common\n\t\t\tpurpose into components, and separate the different components into multiple task\n\t\t\tdefinitions. For more information, see Application\n\t\t\t\tArchitecture in the Amazon Elastic Container Service Developer Guide.

" } }, "restartPolicy": { "target": "com.amazonaws.ecs#ContainerRestartPolicy", "traits": { - "smithy.api#documentation": "

The restart policy for a container. When you set up a restart policy, Amazon ECS can restart the container\n\t\t\twithout needing to replace the task. For more information, see Restart individual containers\n\t\t\t\tin Amazon ECS tasks with container restart policies in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The restart policy for a container. When you set up a restart policy, Amazon ECS can\n\t\t\trestart the container without needing to replace the task. For more information, see\n\t\t\t\tRestart\n\t\t\t\tindividual containers in Amazon ECS tasks with container restart policies in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "entryPoint": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "\n

Early versions of the Amazon ECS container agent don't properly handle entryPoint\n\t\t\t\tparameters. If you have problems using entryPoint, update your container agent or\n\t\t\t\tenter your commands and arguments as command array items instead.

\n
\n

The entry point that's passed to the container. This parameter maps to Entrypoint in the\n\t\t\tdocker container create command and the --entrypoint option to docker run.

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

Early versions of the Amazon ECS container agent don't properly handle\n\t\t\t\t\tentryPoint parameters. If you have problems using\n\t\t\t\t\tentryPoint, update your container agent or enter your commands and\n\t\t\t\targuments as command array items instead.

\n
\n

The entry point that's passed to the container. This parameter maps to\n\t\t\t\tEntrypoint in the docker container create command and the\n\t\t\t\t--entrypoint option to docker run.

" } }, "command": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The command that's passed to the container. This parameter maps to Cmd in the docker\n\t\t\tcontainer create command and the COMMAND parameter to docker run. If there are multiple\n\t\t\targuments, each argument is a separated string in the array.

" + "smithy.api#documentation": "

The command that's passed to the container. This parameter maps to Cmd in\n\t\t\tthe docker container create command and the COMMAND parameter to docker\n\t\t\trun. If there are multiple arguments, each argument is a separated string in the\n\t\t\tarray.

" } }, "environment": { "target": "com.amazonaws.ecs#EnvironmentVariables", "traits": { - "smithy.api#documentation": "

The environment variables to pass to a container. This parameter maps to Env in the\n\t\t\tdocker container create command and the --env option to docker run.

\n \n

We don't recommend that you use plaintext environment variables for sensitive information, such\n\t\t\t\tas credential data.

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

The environment variables to pass to a container. This parameter maps to\n\t\t\t\tEnv in the docker container create command and the --env\n\t\t\toption to docker run.

\n \n

We don't recommend that you use plaintext environment variables for sensitive\n\t\t\t\tinformation, such as credential data.

\n
" } }, "environmentFiles": { "target": "com.amazonaws.ecs#EnvironmentFiles", "traits": { - "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container. This parameter maps to\n\t\t\tthe --env-file option to docker run.

\n

You can specify up to ten environment files. The file must have a .env file extension.\n\t\t\tEach line in an environment file contains an environment variable in VARIABLE=VALUE\n\t\t\tformat. Lines beginning with # are treated as comments and are ignored.

\n

If there are environment variables specified using the environment parameter in a\n\t\t\tcontainer definition, they take precedence over the variables contained within an environment file. If\n\t\t\tmultiple environment files are specified that contain the same variable, they're processed from the top\n\t\t\tdown. We recommend that you use unique variable names. For more information, see Specifying\n\t\t\t\tEnvironment Variables in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container. This\n\t\t\tparameter maps to the --env-file option to docker run.

\n

You can specify up to ten environment files. The file must have a .env\n\t\t\tfile extension. Each line in an environment file contains an environment variable in\n\t\t\t\tVARIABLE=VALUE format. Lines beginning with # are treated\n\t\t\tas comments and are ignored.

\n

If there are environment variables specified using the environment\n\t\t\tparameter in a container definition, they take precedence over the variables contained\n\t\t\twithin an environment file. If multiple environment files are specified that contain the\n\t\t\tsame variable, they're processed from the top down. We recommend that you use unique\n\t\t\tvariable names. For more information, see Specifying Environment\n\t\t\t\tVariables in the Amazon Elastic Container Service Developer Guide.

" } }, "mountPoints": { "target": "com.amazonaws.ecs#MountPointList", "traits": { - "smithy.api#documentation": "

The mount points for data volumes in your container.

\n

This parameter maps to Volumes in the docker container create command and the\n\t\t\t\t--volume option to docker run.

\n

Windows containers can mount whole directories on the same drive as $env:ProgramData.\n\t\t\tWindows containers can't mount directories on a different drive, and mount point can't be across\n\t\t\tdrives.

" + "smithy.api#documentation": "

The mount points for data volumes in your container.

\n

This parameter maps to Volumes in the docker container create command and\n\t\t\tthe --volume option to docker run.

\n

Windows containers can mount whole directories on the same drive as\n\t\t\t\t$env:ProgramData. Windows containers can't mount directories on a\n\t\t\tdifferent drive, and mount point can't be across drives.

" } }, "volumesFrom": { "target": "com.amazonaws.ecs#VolumeFromList", "traits": { - "smithy.api#documentation": "

Data volumes to mount from another container. This parameter maps to VolumesFrom in the\n\t\t\tdocker container create command and the --volumes-from option to docker run.

" + "smithy.api#documentation": "

Data volumes to mount from another container. This parameter maps to\n\t\t\t\tVolumesFrom in the docker container create command and the\n\t\t\t\t--volumes-from option to docker run.

" } }, "linuxParameters": { "target": "com.amazonaws.ecs#LinuxParameters", "traits": { - "smithy.api#documentation": "

Linux-specific modifications that are applied to the container, such as Linux kernel capabilities.\n\t\t\tFor more information see KernelCapabilities.

\n \n

This parameter is not supported for Windows containers.

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

Linux-specific modifications that are applied to the container, such as Linux kernel\n\t\t\tcapabilities. For more information see KernelCapabilities.

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "secrets": { "target": "com.amazonaws.ecs#SecretList", "traits": { - "smithy.api#documentation": "

The secrets to pass to the container. For more information, see Specifying Sensitive\n\t\t\t\tData in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The secrets to pass to the container. For more information, see Specifying\n\t\t\t\tSensitive Data in the Amazon Elastic Container Service Developer Guide.

" } }, "dependsOn": { "target": "com.amazonaws.ecs#ContainerDependencies", "traits": { - "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain multiple\n\t\t\tdependencies on other containers in a task definition. When a dependency is defined for container\n\t\t\tstartup, for container shutdown it is reversed.

\n

For tasks using the EC2 launch type, the container instances require at least version\n\t\t\t1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest\n\t\t\tcontainer agent version. For information about checking your agent version and updating to the latest\n\t\t\tversion, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an\n\t\t\tAmazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If\n\t\t\tyour container instances are launched from version 20190301 or later, then they contain\n\t\t\tthe required versions of the container agent and ecs-init. For more information, see\n\t\t\t\tAmazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n

For tasks using the Fargate launch type, the task or service requires the following\n\t\t\tplatforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

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

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies on other containers in a task definition. When a dependency is\n\t\t\tdefined for container startup, for container shutdown it is reversed.

\n

For tasks using the EC2 launch type, the container instances require at\n\t\t\tleast version 1.26.0 of the container agent to turn on container dependencies. However,\n\t\t\twe recommend using the latest container agent version. For information about checking\n\t\t\tyour agent version and updating to the latest version, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version 1.26.0-1 of the ecs-init package. If\n\t\t\tyour container instances are launched from version 20190301 or later, then\n\t\t\tthey contain the required versions of the container agent and ecs-init. For\n\t\t\tmore information, see Amazon ECS-optimized Linux AMI\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
" } }, "startTimeout": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For\n\t\t\texample, you specify two containers in a task definition with containerA having a dependency on\n\t\t\tcontainerB reaching a COMPLETE, SUCCESS, or HEALTHY status. If a\n\t\t\t\tstartTimeout value is specified for containerB and it doesn't reach the desired status\n\t\t\twithin that time then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\tSTOPPED state.

\n \n

When the ECS_CONTAINER_START_TIMEOUT container agent configuration variable is used,\n\t\t\t\tit's enforced independently from this start timeout value.

\n
\n

For tasks using the Fargate launch type, the task or service requires the following\n\t\t\tplatforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

For tasks using the EC2 launch type, your container instances require at least version\n\t\t\t\t1.26.0 of the container agent to use a container start timeout value. However, we\n\t\t\trecommend using the latest container agent version. For information about checking your agent version\n\t\t\tand updating to the latest version, see Updating the Amazon ECS Container\n\t\t\t\tAgent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at\n\t\t\tleast version 1.26.0-1 of the ecs-init package. If your container instances\n\t\t\tare launched from version 20190301 or later, then they contain the required versions of\n\t\t\tthe container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n

The valid values for Fargate are 2-120 seconds.

" + "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a\n\t\t\tcontainer. For example, you specify two containers in a task definition with containerA\n\t\t\thaving a dependency on containerB reaching a COMPLETE,\n\t\t\tSUCCESS, or HEALTHY status. If a startTimeout\n\t\t\tvalue is specified for containerB and it doesn't reach the desired status within that\n\t\t\ttime then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\tSTOPPED state.

\n \n

When the ECS_CONTAINER_START_TIMEOUT container agent configuration\n\t\t\t\tvariable is used, it's enforced independently from this start timeout value.

\n
\n

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

For tasks using the EC2 launch type, your container instances require at\n\t\t\tleast version 1.26.0 of the container agent to use a container start\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\tUpdating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version 1.26.0-1 of the ecs-init\n\t\t\tpackage. If your container instances are launched from version 20190301 or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\tecs-init. For more information, see Amazon ECS-optimized Linux AMI\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n

The valid values for Fargate are 2-120 seconds.

" } }, "stopTimeout": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit\n\t\t\tnormally on its own.

\n

For tasks using the Fargate launch type, the task or service requires the following\n\t\t\tplatforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

For tasks that use the Fargate launch type, the max stop timeout value is 120 seconds and if the\n\t\t\tparameter is not specified, the default value of 30 seconds is used.

\n

For tasks that use the EC2 launch type, if the stopTimeout parameter isn't\n\t\t\tspecified, the value set for the Amazon ECS container agent configuration variable\n\t\t\t\tECS_CONTAINER_STOP_TIMEOUT is used. If neither the stopTimeout parameter\n\t\t\tor the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, then the default\n\t\t\tvalues of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container\n\t\t\tinstances require at least version 1.26.0 of the container agent to use a container stop timeout value.\n\t\t\tHowever, we recommend using the latest container agent version. For information about checking your\n\t\t\tagent version and updating to the latest version, see Updating the Amazon ECS Container\n\t\t\t\tAgent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at\n\t\t\tleast version 1.26.0-1 of the ecs-init package. If your container instances are launched\n\t\t\tfrom version 20190301 or later, then they contain the required versions of the container\n\t\t\tagent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n

The valid values for Fargate are 2-120 seconds.

" + "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it\n\t\t\tdoesn't exit normally on its own.

\n

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

For tasks that use the Fargate launch type, the max stop timeout value is 120\n\t\t\tseconds and if the parameter is not specified, the default value of 30 seconds is\n\t\t\tused.

\n

For tasks that use the EC2 launch type, if the stopTimeout\n\t\t\tparameter isn't specified, the value set for the Amazon ECS container agent configuration\n\t\t\tvariable ECS_CONTAINER_STOP_TIMEOUT is used. If neither the\n\t\t\t\tstopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT\n\t\t\tagent configuration variable are set, then the default values of 30 seconds for Linux\n\t\t\tcontainers and 30 seconds on Windows containers are used. Your container instances\n\t\t\trequire at least version 1.26.0 of the container agent to use a container stop timeout\n\t\t\tvalue. However, we recommend using the latest container agent version. For information\n\t\t\tabout checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n

The valid values for Fargate are 2-120 seconds.

" } }, "versionConsistency": { "target": "com.amazonaws.ecs#VersionConsistency", "traits": { - "smithy.api#documentation": "

Specifies whether Amazon ECS will resolve the container image tag\n\t\t\tprovided in the container definition to an image digest. By default, the\n\t\t\tvalue is enabled. If you set the value for a container as\n\t\t\tdisabled, Amazon ECS will not resolve the provided container image tag\n\t\t\tto a digest and will use the original image URI specified in the container definition for deployment.\n\t\t\tFor more information about container image resolution, see Container image resolution in the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

Specifies whether Amazon ECS will resolve the container image tag provided in the container\n\t\t\tdefinition to an image digest. By default, the value is enabled. If you set\n\t\t\tthe value for a container as disabled, Amazon ECS will not resolve the provided\n\t\t\tcontainer image tag to a digest and will use the original image URI specified in the\n\t\t\tcontainer definition for deployment. For more information about container image\n\t\t\tresolution, see Container image resolution in the Amazon ECS Developer\n\t\t\t\tGuide.

" } }, "hostname": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The hostname to use for your container. This parameter maps to Hostname in the docker\n\t\t\tcontainer create command and the --hostname option to docker run.

\n \n

The hostname parameter is not supported if you're using the awsvpc\n\t\t\t\tnetwork mode.

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

The hostname to use for your container. This parameter maps to Hostname\n\t\t\tin the docker container create command and the --hostname option to docker\n\t\t\trun.

\n \n

The hostname parameter is not supported if you're using the\n\t\t\t\t\tawsvpc network mode.

\n
" } }, "user": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The user to use inside the container. This parameter maps to User in the docker\n\t\t\tcontainer create command and the --user option to docker run.

\n \n

When running tasks using the host network mode, don't run containers using the\n\t\t\t\troot user (UID 0). We recommend using a non-root user for better security.

\n
\n

You can specify the user using the following formats. If specifying a UID or GID, you\n\t\t\tmust specify it as a positive integer.

\n
    \n
  • \n

    \n user\n

    \n
  • \n
  • \n

    \n user:group\n

    \n
  • \n
  • \n

    \n uid\n

    \n
  • \n
  • \n

    \n uid:gid\n

    \n
  • \n
  • \n

    \n user:gid\n

    \n
  • \n
  • \n

    \n uid:group\n

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

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

The user to use inside the container. This parameter maps to User in the\n\t\t\tdocker container create command and the --user option to docker run.

\n \n

When running tasks using the host network mode, don't run containers\n\t\t\t\tusing the root user (UID 0). We recommend using a non-root user for better\n\t\t\t\tsecurity.

\n
\n

You can specify the user using the following formats. If specifying a UID\n\t\t\tor GID, you must specify it as a positive integer.

\n
    \n
  • \n

    \n user\n

    \n
  • \n
  • \n

    \n user:group\n

    \n
  • \n
  • \n

    \n uid\n

    \n
  • \n
  • \n

    \n uid:gid\n

    \n
  • \n
  • \n

    \n user:gid\n

    \n
  • \n
  • \n

    \n uid:group\n

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

\n
" } }, "workingDirectory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The working directory to run commands inside the container in. This parameter maps to\n\t\t\t\tWorkingDir in the docker container create command and the --workdir\n\t\t\toption to docker run.

" + "smithy.api#documentation": "

The working directory to run commands inside the container in. This parameter maps to\n\t\t\t\tWorkingDir in the docker container create command and the\n\t\t\t\t--workdir option to docker run.

" } }, "disableNetworking": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

When this parameter is true, networking is off within the container. This parameter maps to\n\t\t\t\tNetworkDisabled in the docker container create command.

\n \n

This parameter is not supported for Windows containers.

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

When this parameter is true, networking is off within the container. This parameter\n\t\t\tmaps to NetworkDisabled in the docker container create command.

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "privileged": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

When this parameter is true, the container is given elevated privileges on the host container\n\t\t\tinstance (similar to the root user). This parameter maps to Privileged in the\n\t\t\tdocker container create command and the --privileged option to docker run

\n \n

This parameter is not supported for Windows containers or tasks run on Fargate.

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

When this parameter is true, the container is given elevated privileges on the host\n\t\t\tcontainer instance (similar to the root user). This parameter maps to\n\t\t\t\tPrivileged in the docker container create command and the\n\t\t\t\t--privileged option to docker run

\n \n

This parameter is not supported for Windows containers or tasks run on Fargate.

\n
" } }, "readonlyRootFilesystem": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

When this parameter is true, the container is given read-only access to its root file system. This\n\t\t\tparameter maps to ReadonlyRootfs in the docker container create command and the\n\t\t\t\t--read-only option to docker run.

\n \n

This parameter is not supported for Windows containers.

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

When this parameter is true, the container is given read-only access to its root file\n\t\t\tsystem. This parameter maps to ReadonlyRootfs in the docker container\n\t\t\tcreate command and the --read-only option to docker run.

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "dnsServers": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of DNS servers that are presented to the container. This parameter maps to Dns in\n\t\t\tthe docker container create command and the --dns option to docker run.

\n \n

This parameter is not supported for Windows containers.

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

A list of DNS servers that are presented to the container. This parameter maps to\n\t\t\t\tDns in the docker container create command and the --dns\n\t\t\toption to docker run.

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "dnsSearchDomains": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of DNS search domains that are presented to the container. This parameter maps to\n\t\t\t\tDnsSearch in the docker container create command and the --dns-search\n\t\t\toption to docker run.

\n \n

This parameter is not supported for Windows containers.

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

A list of DNS search domains that are presented to the container. This parameter maps\n\t\t\tto DnsSearch in the docker container create command and the\n\t\t\t\t--dns-search option to docker run.

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "extraHosts": { "target": "com.amazonaws.ecs#HostEntryList", "traits": { - "smithy.api#documentation": "

A list of hostnames and IP address mappings to append to the /etc/hosts file on the\n\t\t\tcontainer. This parameter maps to ExtraHosts in the docker container create command and\n\t\t\tthe --add-host option to docker run.

\n \n

This parameter isn't supported for Windows containers or tasks that use the awsvpc\n\t\t\t\tnetwork mode.

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

A list of hostnames and IP address mappings to append to the /etc/hosts\n\t\t\tfile on the container. This parameter maps to ExtraHosts in the docker\n\t\t\tcontainer create command and the --add-host option to docker run.

\n \n

This parameter isn't supported for Windows containers or tasks that use the\n\t\t\t\t\tawsvpc network mode.

\n
" } }, "dockerSecurityOptions": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of strings to provide custom configuration for multiple security systems. This field isn't\n\t\t\tvalid for containers in tasks using the Fargate launch type.

\n

For Linux tasks on EC2, this parameter can be used to reference custom labels for\n\t\t\tSELinux and AppArmor multi-level security systems.

\n

For any tasks on EC2, this parameter can be used to reference a credential spec file\n\t\t\tthat configures a container for Active Directory authentication. For more information, see Using gMSAs for\n\t\t\t\tWindows Containers and Using gMSAs for Linux Containers in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

\n

This parameter maps to SecurityOpt in the docker container create command and the\n\t\t\t\t--security-opt option to docker run.

\n \n

The Amazon ECS container agent running on a container instance must register with the\n\t\t\t\t\tECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment\n\t\t\t\tvariables before containers placed on that instance can use these security options. For more\n\t\t\t\tinformation, see Amazon ECS Container Agent\n\t\t\t\t\tConfiguration in the Amazon Elastic Container Service Developer Guide.

\n
\n

Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" |\n\t\t\t\"credentialspec:CredentialSpecFilePath\"

" + "smithy.api#documentation": "

A list of strings to provide custom configuration for multiple security systems. This\n\t\t\tfield isn't valid for containers in tasks using the Fargate launch\n\t\t\ttype.

\n

For Linux tasks on EC2, this parameter can be used to reference custom\n\t\t\tlabels for SELinux and AppArmor multi-level security systems.

\n

For any tasks on EC2, this parameter can be used to reference a\n\t\t\tcredential spec file that configures a container for Active Directory authentication.\n\t\t\tFor more information, see Using gMSAs for Windows\n\t\t\t\tContainers and Using gMSAs for Linux\n\t\t\t\tContainers in the Amazon Elastic Container Service Developer Guide.

\n

This parameter maps to SecurityOpt in the docker container create command\n\t\t\tand the --security-opt option to docker run.

\n \n

The Amazon ECS container agent running on a container instance must register with the\n\t\t\t\t\tECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true\n\t\t\t\tenvironment variables before containers placed on that instance can use these\n\t\t\t\tsecurity options. For more information, see Amazon ECS Container\n\t\t\t\t\tAgent Configuration in the Amazon Elastic Container Service Developer Guide.

\n
\n

Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" |\n\t\t\t\"credentialspec:CredentialSpecFilePath\"

" } }, "interactive": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

When this parameter is true, you can deploy containerized applications that require\n\t\t\t\tstdin or a tty to be allocated. This parameter maps to\n\t\t\t\tOpenStdin in the docker container create command and the --interactive\n\t\t\toption to docker run.

" + "smithy.api#documentation": "

When this parameter is true, you can deploy containerized applications\n\t\t\tthat require stdin or a tty to be allocated. This parameter\n\t\t\tmaps to OpenStdin in the docker container create command and the\n\t\t\t\t--interactive option to docker run.

" } }, "pseudoTerminal": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

When this parameter is true, a TTY is allocated. This parameter maps to Tty\n\t\t\tin the docker container create command and the --tty option to docker run.

" + "smithy.api#documentation": "

When this parameter is true, a TTY is allocated. This parameter maps to\n\t\t\t\tTty in the docker container create command and the --tty\n\t\t\toption to docker run.

" } }, "dockerLabels": { "target": "com.amazonaws.ecs#DockerLabelsMap", "traits": { - "smithy.api#documentation": "

A key/value map of labels to add to the container. This parameter maps to Labels in the\n\t\t\tdocker container create command and the --label option to docker run.\n\t\t\tThis parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" + "smithy.api#documentation": "

A key/value map of labels to add to the container. This parameter maps to\n\t\t\t\tLabels in the docker container create command and the\n\t\t\t\t--label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" } }, "ulimits": { "target": "com.amazonaws.ecs#UlimitList", "traits": { - "smithy.api#documentation": "

A list of ulimits to set in the container. If a ulimit value is specified\n\t\t\tin a task definition, it overrides the default values set by Docker. This parameter maps to\n\t\t\t\tUlimits in the docker container create command and the --ulimit option to\n\t\t\tdocker run. Valid naming values are displayed in the Ulimit data type.

\n

Amazon ECS tasks hosted on Fargate use the default\n\t\t\t\t\t\t\tresource limit values set by the operating system with the exception of\n\t\t\t\t\t\t\tthe nofile resource limit parameter which Fargate\n\t\t\t\t\t\t\toverrides. The nofile resource limit sets a restriction on\n\t\t\t\t\t\t\tthe number of open files that a container can use. The default\n\t\t\t\t\t\t\t\tnofile soft limit is 65535 and the default hard limit\n\t\t\t\t\t\t\tis 65535.

\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

\n \n

This parameter is not supported for Windows containers.

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

A list of ulimits to set in the container. If a ulimit value\n\t\t\tis specified in a task definition, it overrides the default values set by Docker. This\n\t\t\tparameter maps to Ulimits in the docker container create command and the\n\t\t\t\t--ulimit option to docker run. Valid naming values are displayed in the\n\t\t\t\tUlimit data type.

\n

Amazon ECS tasks hosted on Fargate use the default\n\t\t\t\t\t\t\tresource limit values set by the operating system with the exception of\n\t\t\t\t\t\t\tthe nofile resource limit parameter which Fargate\n\t\t\t\t\t\t\toverrides. The nofile resource limit sets a restriction on\n\t\t\t\t\t\t\tthe number of open files that a container can use. The default\n\t\t\t\t\t\t\t\tnofile soft limit is 65535 and the default hard limit\n\t\t\t\t\t\t\tis 65535.

\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

\n \n

This parameter is not supported for Windows containers.

\n
" } }, "logConfiguration": { "target": "com.amazonaws.ecs#LogConfiguration", "traits": { - "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the docker container create command and the\n\t\t\t\t--log-driver option to docker run. By default, containers use the same logging driver\n\t\t\tthat the Docker daemon uses. However the container can use a different logging driver than the Docker\n\t\t\tdaemon by specifying a log driver with this parameter in the container definition. To use a different\n\t\t\tlogging driver for a container, the log system must be configured properly on the container instance\n\t\t\t(or on a different log server for remote logging options).

\n \n

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in\n\t\t\t\tthe LogConfiguration data type). Additional log drivers may be available in future\n\t\t\t\treleases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n\t\t\t\tavailable on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable\n\t\t\t\tbefore containers placed on that instance can use these log configuration options. For more\n\t\t\t\tinformation, see Amazon ECS Container Agent\n\t\t\t\t\tConfiguration in the Amazon Elastic Container Service Developer Guide.

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

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the docker container create command\n\t\t\tand the --log-driver option to docker run. By default, containers use the\n\t\t\tsame logging driver that the Docker daemon uses. However the container can use a\n\t\t\tdifferent logging driver than the Docker daemon by specifying a log driver with this\n\t\t\tparameter in the container definition. To use a different logging driver for a\n\t\t\tcontainer, the log system must be configured properly on the container instance (or on a\n\t\t\tdifferent log server for remote logging options).

\n \n

Amazon ECS currently supports a subset of the logging drivers available to the Docker\n\t\t\t\tdaemon (shown in the LogConfiguration data type). Additional log drivers may be available in\n\t\t\t\tfuture releases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

\n \n

The Amazon ECS container agent running on a container instance must register the\n\t\t\t\tlogging drivers available on that instance with the\n\t\t\t\t\tECS_AVAILABLE_LOGGING_DRIVERS environment variable before\n\t\t\t\tcontainers placed on that instance can use these log configuration options. For more\n\t\t\t\tinformation, see Amazon ECS Container\n\t\t\t\t\tAgent Configuration in the Amazon Elastic Container Service Developer Guide.

\n
" } }, "healthCheck": { "target": "com.amazonaws.ecs#HealthCheck", "traits": { - "smithy.api#documentation": "

The container health check command and associated configuration parameters for the container. This\n\t\t\tparameter maps to HealthCheck in the docker container create command and the\n\t\t\t\tHEALTHCHECK parameter of docker run.

" + "smithy.api#documentation": "

The container health check command and associated configuration parameters for the\n\t\t\tcontainer. This parameter maps to HealthCheck in the docker container\n\t\t\tcreate command and the HEALTHCHECK parameter of docker run.

" } }, "systemControls": { "target": "com.amazonaws.ecs#SystemControls", "traits": { - "smithy.api#documentation": "

A list of namespaced kernel parameters to set in the container. This parameter maps to\n\t\t\t\tSysctls in the docker container create command and the --sysctl option to\n\t\t\tdocker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain\n\t\t\tlonger lived connections.

" + "smithy.api#documentation": "

A list of namespaced kernel parameters to set in the container. This parameter maps to\n\t\t\t\tSysctls in the docker container create command and the\n\t\t\t\t--sysctl option to docker run. For example, you can configure\n\t\t\t\tnet.ipv4.tcp_keepalive_time setting to maintain longer lived\n\t\t\tconnections.

" } }, "resourceRequirements": { "target": "com.amazonaws.ecs#ResourceRequirements", "traits": { - "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The only supported resource is a\n\t\t\tGPU.

" + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The only supported\n\t\t\tresource is a GPU.

" } }, "firelensConfiguration": { "target": "com.amazonaws.ecs#FirelensConfiguration", "traits": { - "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a log router for\n\t\t\tcontainer logs. For more information, see Custom Log Routing in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a\n\t\t\tlog router for container logs. For more information, see Custom Log Routing\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "credentialSpecs": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of ARNs in SSM or Amazon S3 to a credential spec (CredSpec) file that configures the\n\t\t\tcontainer for Active Directory authentication. We recommend that you use this parameter instead of the\n\t\t\t\tdockerSecurityOptions. The maximum number of ARNs is 1.

\n

There are two formats for each ARN.

\n
\n
credentialspecdomainless:MyARN
\n
\n

You use credentialspecdomainless:MyARN to provide a CredSpec\n\t\t\t\t\t\twith an additional section for a secret in Secrets Manager. You provide the login credentials to the\n\t\t\t\t\t\tdomain in the secret.

\n

Each task that runs on any container instance can join different domains.

\n

You can use this format without joining the container instance to a domain.

\n
\n
credentialspec:MyARN
\n
\n

You use credentialspec:MyARN to provide a CredSpec for a single\n\t\t\t\t\t\tdomain.

\n

You must join the container instance to the domain before you start any tasks that use\n\t\t\t\t\t\tthis task definition.

\n
\n
\n

In both formats, replace MyARN with the ARN in SSM or Amazon S3.

\n

If you provide a credentialspecdomainless:MyARN, the credspec must provide\n\t\t\ta ARN in Secrets Manager for a secret containing the username, password, and the domain to connect to. For better\n\t\t\tsecurity, the instance isn't joined to the domain for domainless authentication. Other applications on\n\t\t\tthe instance can't use the domainless credentials. You can use this parameter to run tasks on the same\n\t\t\tinstance, even it the tasks need to join different domains. For more information, see Using gMSAs for\n\t\t\t\tWindows Containers and Using gMSAs for Linux\n\t\t\tContainers.

" + "smithy.api#documentation": "

A list of ARNs in SSM or Amazon S3 to a credential spec (CredSpec) file that\n\t\t\tconfigures the container for Active Directory authentication. We recommend that you use\n\t\t\tthis parameter instead of the dockerSecurityOptions. The maximum number of\n\t\t\tARNs is 1.

\n

There are two formats for each ARN.

\n
\n
credentialspecdomainless:MyARN
\n
\n

You use credentialspecdomainless:MyARN to provide a\n\t\t\t\t\t\t\tCredSpec with an additional section for a secret in Secrets Manager.\n\t\t\t\t\t\tYou provide the login credentials to the domain in the secret.

\n

Each task that runs on any container instance can join different\n\t\t\t\t\t\tdomains.

\n

You can use this format without joining the container instance to a\n\t\t\t\t\t\tdomain.

\n
\n
credentialspec:MyARN
\n
\n

You use credentialspec:MyARN to provide a\n\t\t\t\t\t\t\tCredSpec for a single domain.

\n

You must join the container instance to the domain before you start any\n\t\t\t\t\t\ttasks that use this task definition.

\n
\n
\n

In both formats, replace MyARN with the ARN in SSM or Amazon S3.

\n

If you provide a credentialspecdomainless:MyARN, the\n\t\t\t\tcredspec must provide a ARN in Secrets Manager for a secret containing the\n\t\t\tusername, password, and the domain to connect to. For better security, the instance\n\t\t\tisn't joined to the domain for domainless authentication. Other applications on the\n\t\t\tinstance can't use the domainless credentials. You can use this parameter to run tasks\n\t\t\ton the same instance, even it the tasks need to join different domains. For more\n\t\t\tinformation, see Using gMSAs for Windows\n\t\t\t\tContainers and Using gMSAs for Linux\n\t\t\t\tContainers.

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

Container definitions are used in task definitions to describe the different containers that are\n\t\t\tlaunched as part of a task.

" + "smithy.api#documentation": "

Container definitions are used in task definitions to describe the different\n\t\t\tcontainers that are launched as part of a task.

" } }, "com.amazonaws.ecs#ContainerDefinitions": { @@ -2585,13 +2585,13 @@ "condition": { "target": "com.amazonaws.ecs#ContainerCondition", "traits": { - "smithy.api#documentation": "

The dependency condition of the container. The following are the available conditions and their\n\t\t\tbehavior:

\n
    \n
  • \n

    \n START - This condition emulates the behavior of links and volumes today.\n\t\t\t\t\tIt validates that a dependent container is started before permitting other containers to\n\t\t\t\t\tstart.

    \n
  • \n
  • \n

    \n COMPLETE - This condition validates that a dependent container runs to\n\t\t\t\t\tcompletion (exits) before permitting other containers to start. This can be useful for\n\t\t\t\t\tnonessential containers that run a script and then exit. This condition can't be set on an\n\t\t\t\t\tessential container.

    \n
  • \n
  • \n

    \n SUCCESS - This condition is the same as COMPLETE, but it also\n\t\t\t\t\trequires that the container exits with a zero status. This condition can't be set\n\t\t\t\t\ton an essential container.

    \n
  • \n
  • \n

    \n HEALTHY - This condition validates that the dependent container passes its\n\t\t\t\t\tDocker health check before permitting other containers to start. This requires that the\n\t\t\t\t\tdependent container has health checks configured. This condition is confirmed only at task\n\t\t\t\t\tstartup.

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

The dependency condition of the container. The following are the available conditions\n\t\t\tand their behavior:

\n
    \n
  • \n

    \n START - This condition emulates the behavior of links and\n\t\t\t\t\tvolumes today. It validates that a dependent container is started before\n\t\t\t\t\tpermitting other containers to start.

    \n
  • \n
  • \n

    \n COMPLETE - This condition validates that a dependent\n\t\t\t\t\tcontainer runs to completion (exits) before permitting other containers to\n\t\t\t\t\tstart. This can be useful for nonessential containers that run a script and then\n\t\t\t\t\texit. This condition can't be set on an essential container.

    \n
  • \n
  • \n

    \n SUCCESS - This condition is the same as\n\t\t\t\t\t\tCOMPLETE, but it also requires that the container exits with a\n\t\t\t\t\t\tzero status. This condition can't be set on an essential\n\t\t\t\t\tcontainer.

    \n
  • \n
  • \n

    \n HEALTHY - This condition validates that the dependent\n\t\t\t\t\tcontainer passes its Docker health check before permitting other containers to\n\t\t\t\t\tstart. This requires that the dependent container has health checks configured.\n\t\t\t\t\tThis condition is confirmed only at task startup.

    \n
  • \n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain multiple\n\t\t\tdependencies. When a dependency is defined for container startup, for container shutdown it is\n\t\t\treversed.

\n

Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use\n\t\t\tcontainer dependencies. However, we recommend using the latest container agent version. For information\n\t\t\tabout checking your agent version and updating to the latest version, see Updating the Amazon ECS Container\n\t\t\t\tAgent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at\n\t\t\tleast version 1.26.0-1 of the ecs-init package. If your container instances are launched\n\t\t\tfrom version 20190301 or later, then they contain the required versions of the container\n\t\t\tagent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

For tasks that use the Fargate launch type, the task or service requires the\n\t\t\t\tfollowing platforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n
\n

For more information about how to create a container dependency, see Container dependency in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

\n

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tto use container dependencies. However, we recommend using the latest container agent\n\t\t\tversion. For information about checking your agent version and updating to the latest\n\t\t\tversion, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version 1.26.0-1 of the ecs-init package. If\n\t\t\tyour container instances are launched from version 20190301 or later, then\n\t\t\tthey contain the required versions of the container agent and ecs-init. For\n\t\t\tmore information, see Amazon ECS-optimized Linux AMI\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n \n

For tasks that use the Fargate launch type, the task or service\n\t\t\t\trequires the following platforms:

\n
    \n
  • \n

    Linux platform version 1.3.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n
\n

For more information about how to create a container dependency, see Container dependency in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#ContainerImage": { @@ -2617,7 +2617,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details about the container image a service revision uses.

\n

To ensure that all tasks in a service use the same container image, Amazon ECS resolves\n\t\t\tcontainer image names and any image tags specified in the task definition to container\n\t\t\timage digests.

\n

After the container image digest has been established, Amazon ECS uses the digest to start\n\t\t\tany other desired tasks, and for any future service and service revision updates. This\n\t\t\tleads to all tasks in a service always running identical container images, resulting in\n\t\t\tversion consistency for your software. For more information, see Container image resolution in the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The details about the container image a service revision uses.

\n

To ensure that all tasks in a service use the same container image, Amazon ECS\n\t\t\tresolves container image names and any image tags specified in the task definition to\n\t\t\tcontainer image digests.

\n

After the container image digest has been established, Amazon ECS uses the digest to\n\t\t\tstart any other desired tasks, and for any future service and service revision updates.\n\t\t\tThis leads to all tasks in a service always running identical container images,\n\t\t\tresulting in version consistency for your software. For more information, see Container image resolution in the Amazon ECS Developer Guide.

" } }, "com.amazonaws.ecs#ContainerImages": { @@ -2632,13 +2632,13 @@ "containerInstanceArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container instance. For more information about the ARN format, see Amazon Resource Name (ARN)\n\t\t\tin the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container instance. For more information about the ARN format,\n\t\t\tsee Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" } }, "ec2InstanceId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2 instance ID. For\n\t\t\texternal instances, this value is the Amazon Web Services Systems Manager managed instance ID.

" + "smithy.api#documentation": "

The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2\n\t\t\tinstance ID. For external instances, this value is the Amazon Web Services Systems Manager managed instance ID.

" } }, "capacityProviderName": { @@ -2651,31 +2651,31 @@ "target": "com.amazonaws.ecs#Long", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version counter for the container instance. Every time a container instance experiences a change\n\t\t\tthat triggers a CloudWatch event, the version counter is incremented. If you're replicating your Amazon ECS\n\t\t\tcontainer instance state with CloudWatch Events, you can compare the version of a container instance\n\t\t\treported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance\n\t\t\t(inside the detail object) to verify that the version in your event stream is\n\t\t\tcurrent.

" + "smithy.api#documentation": "

The version counter for the container instance. Every time a container instance\n\t\t\texperiences a change that triggers a CloudWatch event, the version counter is\n\t\t\tincremented. If you're replicating your Amazon ECS container instance state with CloudWatch\n\t\t\tEvents, you can compare the version of a container instance reported by the Amazon ECS APIs\n\t\t\twith the version reported in CloudWatch Events for the container instance (inside the\n\t\t\t\tdetail object) to verify that the version in your event stream is\n\t\t\tcurrent.

" } }, "versionInfo": { "target": "com.amazonaws.ecs#VersionInfo", "traits": { - "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon running on the container\n\t\t\tinstance.

" + "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon running on the\n\t\t\tcontainer instance.

" } }, "remainingResources": { "target": "com.amazonaws.ecs#Resources", "traits": { - "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the remaining CPU and memory that wasn't\n\t\t\talready allocated to tasks and is therefore available for new tasks. For port resource types, this\n\t\t\tparameter describes the ports that were reserved by the Amazon ECS container agent (at instance registration\n\t\t\ttime) and any task containers that have reserved port mappings on the host (with the host\n\t\t\tor bridge network mode). Any port that's not specified here is available for new\n\t\t\ttasks.

" + "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the remaining CPU and\n\t\t\tmemory that wasn't already allocated to tasks and is therefore available for new tasks.\n\t\t\tFor port resource types, this parameter describes the ports that were reserved by the\n\t\t\tAmazon ECS container agent (at instance registration time) and any task containers that have\n\t\t\treserved port mappings on the host (with the host or bridge\n\t\t\tnetwork mode). Any port that's not specified here is available for new tasks.

" } }, "registeredResources": { "target": "com.amazonaws.ecs#Resources", "traits": { - "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the amount of each resource that was\n\t\t\tavailable on the container instance when the container agent registered it with Amazon ECS. This value\n\t\t\trepresents the total amount of CPU and memory that can be allocated on this container instance to\n\t\t\ttasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS\n\t\t\tcontainer agent when it registered the container instance with Amazon ECS.

" + "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the amount of each\n\t\t\tresource that was available on the container instance when the container agent\n\t\t\tregistered it with Amazon ECS. This value represents the total amount of CPU and memory that\n\t\t\tcan be allocated on this container instance to tasks. For port resource types, this\n\t\t\tparameter describes the ports that were reserved by the Amazon ECS container agent when it\n\t\t\tregistered the container instance with Amazon ECS.

" } }, "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the container instance. The valid values are REGISTERING,\n\t\t\t\tREGISTRATION_FAILED, ACTIVE, INACTIVE,\n\t\t\t\tDEREGISTERING, or DRAINING.

\n

If your account has opted in to the awsvpcTrunking account setting, then any newly\n\t\t\tregistered container instance will transition to a REGISTERING status while the trunk\n\t\t\telastic network interface is provisioned for the instance. If the registration fails, the instance will\n\t\t\ttransition to a REGISTRATION_FAILED status. You can describe the container instance and\n\t\t\tsee the reason for failure in the statusReason parameter. Once the container instance is\n\t\t\tterminated, the instance transitions to a DEREGISTERING status while the trunk elastic\n\t\t\tnetwork interface is deprovisioned. The instance then transitions to an INACTIVE\n\t\t\tstatus.

\n

The ACTIVE status indicates that the container instance can accept tasks. The\n\t\t\t\tDRAINING indicates that new tasks aren't placed on the container instance and any\n\t\t\tservice tasks running on the container instance are removed if possible. For more information, see\n\t\t\t\tContainer instance draining in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The status of the container instance. The valid values are REGISTERING,\n\t\t\t\tREGISTRATION_FAILED, ACTIVE, INACTIVE,\n\t\t\t\tDEREGISTERING, or DRAINING.

\n

If your account has opted in to the awsvpcTrunking account setting, then\n\t\t\tany newly registered container instance will transition to a REGISTERING\n\t\t\tstatus while the trunk elastic network interface is provisioned for the instance. If the\n\t\t\tregistration fails, the instance will transition to a REGISTRATION_FAILED\n\t\t\tstatus. You can describe the container instance and see the reason for failure in the\n\t\t\t\tstatusReason parameter. Once the container instance is terminated, the\n\t\t\tinstance transitions to a DEREGISTERING status while the trunk elastic\n\t\t\tnetwork interface is deprovisioned. The instance then transitions to an\n\t\t\t\tINACTIVE status.

\n

The ACTIVE status indicates that the container instance can accept tasks.\n\t\t\tThe DRAINING indicates that new tasks aren't placed on the container\n\t\t\tinstance and any service tasks running on the container instance are removed if\n\t\t\tpossible. For more information, see Container instance draining in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "statusReason": { @@ -2688,33 +2688,33 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

This parameter returns true if the agent is connected to Amazon ECS. An instance with an\n\t\t\tagent that may be unhealthy or stopped return false. Only instances connected to an agent\n\t\t\tcan accept task placement requests.

" + "smithy.api#documentation": "

This parameter returns true if the agent is connected to Amazon ECS. An\n\t\t\tinstance with an agent that may be unhealthy or stopped return false. Only\n\t\t\tinstances connected to an agent can accept task placement requests.

" } }, "runningTasksCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks on the container instance that have a desired status (desiredStatus)\n\t\t\tof RUNNING.

" + "smithy.api#documentation": "

The number of tasks on the container instance that have a desired status\n\t\t\t\t(desiredStatus) of RUNNING.

" } }, "pendingTasksCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks on the container instance that are in the PENDING status.

" + "smithy.api#documentation": "

The number of tasks on the container instance that are in the PENDING\n\t\t\tstatus.

" } }, "agentUpdateStatus": { "target": "com.amazonaws.ecs#AgentUpdateStatus", "traits": { - "smithy.api#documentation": "

The status of the most recent agent update. If an update wasn't ever requested, this value is\n\t\t\t\tNULL.

" + "smithy.api#documentation": "

The status of the most recent agent update. If an update wasn't ever requested, this\n\t\t\tvalue is NULL.

" } }, "attributes": { "target": "com.amazonaws.ecs#Attributes", "traits": { - "smithy.api#documentation": "

The attributes set for the container instance, either by the Amazon ECS container agent at instance\n\t\t\tregistration or manually with the PutAttributes operation.

" + "smithy.api#documentation": "

The attributes set for the container instance, either by the Amazon ECS container agent at\n\t\t\tinstance registration or manually with the PutAttributes\n\t\t\toperation.

" } }, "registeredAt": { @@ -2726,13 +2726,13 @@ "attachments": { "target": "com.amazonaws.ecs#Attachments", "traits": { - "smithy.api#documentation": "

The resources attached to a container instance, such as an elastic network interface.

" + "smithy.api#documentation": "

The resources attached to a container instance, such as an elastic network\n\t\t\tinterface.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the container instance to help you categorize and organize them. Each\n\t\t\ttag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the container instance to help you categorize and\n\t\t\torganize them. Each tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "healthStatus": { @@ -2743,7 +2743,7 @@ } }, "traits": { - "smithy.api#documentation": "

An Amazon EC2 or External instance that's running the Amazon ECS agent and has been registered with a\n\t\t\tcluster.

" + "smithy.api#documentation": "

An Amazon EC2 or External instance that's running the Amazon ECS agent and has been registered\n\t\t\twith a cluster.

" } }, "com.amazonaws.ecs#ContainerInstanceField": { @@ -2775,13 +2775,13 @@ "overallStatus": { "target": "com.amazonaws.ecs#InstanceHealthCheckState", "traits": { - "smithy.api#documentation": "

The overall health status of the container instance. This is an aggregate status of all container\n\t\t\tinstance health checks.

" + "smithy.api#documentation": "

The overall health status of the container instance. This is an aggregate status of\n\t\t\tall container instance health checks.

" } }, "details": { "target": "com.amazonaws.ecs#InstanceHealthCheckResultList", "traits": { - "smithy.api#documentation": "

An array of objects representing the details of the container instance health status.

" + "smithy.api#documentation": "

An array of objects representing the details of the container instance health\n\t\t\tstatus.

" } } }, @@ -2836,54 +2836,54 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the container that receives the override. This parameter is required if any override is\n\t\t\tspecified.

" + "smithy.api#documentation": "

The name of the container that receives the override. This parameter is required if\n\t\t\tany override is specified.

" } }, "command": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The command to send to the container that overrides the default command from the Docker image or the\n\t\t\ttask definition. You must also specify a container name.

" + "smithy.api#documentation": "

The command to send to the container that overrides the default command from the\n\t\t\tDocker image or the task definition. You must also specify a container name.

" } }, "environment": { "target": "com.amazonaws.ecs#EnvironmentVariables", "traits": { - "smithy.api#documentation": "

The environment variables to send to the container. You can add new environment variables, which are\n\t\t\tadded to the container at launch, or you can override the existing environment variables from the\n\t\t\tDocker image or the task definition. You must also specify a container name.

" + "smithy.api#documentation": "

The environment variables to send to the container. You can add new environment\n\t\t\tvariables, which are added to the container at launch, or you can override the existing\n\t\t\tenvironment variables from the Docker image or the task definition. You must also\n\t\t\tspecify a container name.

" } }, "environmentFiles": { "target": "com.amazonaws.ecs#EnvironmentFiles", "traits": { - "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container, instead of the value\n\t\t\tfrom the container definition.

" + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container, instead\n\t\t\tof the value from the container definition.

" } }, "cpu": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of cpu units reserved for the container, instead of the default value from\n\t\t\tthe task definition. You must also specify a container name.

" + "smithy.api#documentation": "

The number of cpu units reserved for the container, instead of the\n\t\t\tdefault value from the task definition. You must also specify a container name.

" } }, "memory": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The hard limit (in MiB) of memory to present to the container, instead of the default value from the\n\t\t\ttask definition. If your container attempts to exceed the memory specified here, the container is\n\t\t\tkilled. You must also specify a container name.

" + "smithy.api#documentation": "

The hard limit (in MiB) of memory to present to the container, instead of the default\n\t\t\tvalue from the task definition. If your container attempts to exceed the memory\n\t\t\tspecified here, the container is killed. You must also specify a container name.

" } }, "memoryReservation": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the\n\t\t\ttask definition. You must also specify a container name.

" + "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container, instead of the default\n\t\t\tvalue from the task definition. You must also specify a container name.

" } }, "resourceRequirements": { "target": "com.amazonaws.ecs#ResourceRequirements", "traits": { - "smithy.api#documentation": "

The type and amount of a resource to assign to a container, instead of the default value from the\n\t\t\ttask definition. The only supported resource is a GPU.

" + "smithy.api#documentation": "

The type and amount of a resource to assign to a container, instead of the default\n\t\t\tvalue from the task definition. The only supported resource is a GPU.

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

The overrides that are sent to a container. An empty container override can be passed in. An example\n\t\t\tof an empty container override is {\"containerOverrides\": [ ] }. If a non-empty container\n\t\t\toverride is specified, the name parameter must be included.

\n

You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the sensitive data. For\n\t\t\tmore information, see Retrieve secrets through environment\n\t\t\t\tvariables in the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The overrides that are sent to a container. An empty container override can be passed\n\t\t\tin. An example of an empty container override is {\"containerOverrides\": [ ]\n\t\t\t\t}. If a non-empty container override is specified, the name\n\t\t\tparameter must be included.

\n

You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the\n\t\t\tsensitive data. For more information, see Retrieve secrets through\n\t\t\t\tenvironment variables in the Amazon ECS Developer Guide.

" } }, "com.amazonaws.ecs#ContainerOverrides": { @@ -2905,18 +2905,18 @@ "ignoredExitCodes": { "target": "com.amazonaws.ecs#IntegerList", "traits": { - "smithy.api#documentation": "

A list of exit codes that Amazon ECS will ignore and not attempt a restart on. You can specify a maximum\n\t\t\tof 50 container exit codes. By default, Amazon ECS does not ignore any exit codes.

" + "smithy.api#documentation": "

A list of exit codes that Amazon ECS will ignore and not attempt a restart on. You can\n\t\t\tspecify a maximum of 50 container exit codes. By default, Amazon ECS does not ignore any exit\n\t\t\tcodes.

" } }, "restartAttemptPeriod": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

A period of time (in seconds) that the container must run for before a restart can be attempted. A\n\t\t\tcontainer can be restarted only once every restartAttemptPeriod seconds. If a container\n\t\t\tisn't able to run for this time period and exits early, it will not be restarted. You can set a minimum\n\t\t\t\trestartAttemptPeriod of 60 seconds and a maximum restartAttemptPeriod of\n\t\t\t1800 seconds. By default, a container must run for 300 seconds before it can be restarted.

" + "smithy.api#documentation": "

A period of time (in seconds) that the container must run for before a restart can be\n\t\t\tattempted. A container can be restarted only once every\n\t\t\t\trestartAttemptPeriod seconds. If a container isn't able to run for this\n\t\t\ttime period and exits early, it will not be restarted. You can set a minimum\n\t\t\t\trestartAttemptPeriod of 60 seconds and a maximum\n\t\t\t\trestartAttemptPeriod of 1800 seconds. By default, a container must run\n\t\t\tfor 300 seconds before it can be restarted.

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

You can enable a restart policy for each container defined in your task definition, to overcome\n\t\t\ttransient failures faster and maintain task availability. When you enable a restart policy for a\n\t\t\tcontainer, Amazon ECS can restart the container if it exits, without needing to replace the task. For more\n\t\t\tinformation, see Restart individual containers\n\t\t\t\tin Amazon ECS tasks with container restart policies in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

You can enable a restart policy for each container defined in your task definition, to\n\t\t\tovercome transient failures faster and maintain task availability. When you enable a\n\t\t\trestart policy for a container, Amazon ECS can restart the container if it exits, without\n\t\t\tneeding to replace the task. For more information, see Restart\n\t\t\t\tindividual containers in Amazon ECS tasks with container restart policies in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#ContainerStateChange": { @@ -2943,7 +2943,7 @@ "exitCode": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The exit code for the container, if the state change is a result of the container exiting.

" + "smithy.api#documentation": "

The exit code for the container, if the state change is a result of the container\n\t\t\texiting.

" } }, "networkBindings": { @@ -3007,7 +3007,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used\n\t\t\tin capacity provider strategies to facilitate cluster auto scaling.

\n

Only capacity providers that use an Auto Scaling group can be created. Amazon ECS tasks on Fargate use\n\t\t\tthe FARGATE and FARGATE_SPOT capacity providers. These providers are\n\t\t\tavailable to all accounts in the Amazon Web Services Regions that Fargate supports.

" + "smithy.api#documentation": "

Creates a new capacity provider. Capacity providers are associated with an Amazon ECS\n\t\t\tcluster and are used in capacity provider strategies to facilitate cluster auto\n\t\t\tscaling.

\n

Only capacity providers that use an Auto Scaling group can be created. Amazon ECS tasks on\n\t\t\tFargate use the FARGATE and FARGATE_SPOT capacity providers.\n\t\t\tThese providers are available to all accounts in the Amazon Web Services Regions that Fargate\n\t\t\tsupports.

" } }, "com.amazonaws.ecs#CreateCapacityProviderRequest": { @@ -3016,7 +3016,7 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the capacity provider. Up to 255 characters are allowed. They include letters (both upper\n\t\t\tand lowercase letters), numbers, underscores (_), and hyphens (-). The name can't be prefixed with\n\t\t\t\t\"aws\", \"ecs\", or \"fargate\".

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

The name of the capacity provider. Up to 255 characters are allowed. They include\n\t\t\tletters (both upper and lowercase letters), numbers, underscores (_), and hyphens (-).\n\t\t\tThe name can't be prefixed with \"aws\", \"ecs\", or\n\t\t\t\t\"fargate\".

", "smithy.api#required": {} } }, @@ -3030,7 +3030,7 @@ "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the capacity provider to categorize and organize them more\n\t\t\tconveniently. Each tag consists of a key and an optional value. You define both of them.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the capacity provider to categorize and organize them\n\t\t\tmore conveniently. Each tag consists of a key and an optional value. You define both of\n\t\t\tthem.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } } }, @@ -3075,7 +3075,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when\n\t\t\tyou launch your first container instance. However, you can create your own cluster with a unique\n\t\t\tname.

\n \n

When you call the CreateCluster API operation,\n\t\t\t\tAmazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can\n\t\t\t\tmanage required resources in other Amazon Web Services services on your behalf. However, if the user that makes\n\t\t\t\tthe call doesn't have permissions to create the service-linked role, it isn't created. For more\n\t\t\t\tinformation, see Using service-linked\n\t\t\t\t\troles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

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

Creates a new Amazon ECS cluster. By default, your account receives a default\n\t\t\tcluster when you launch your first container instance. However, you can create your own\n\t\t\tcluster with a unique name.

\n \n

When you call the CreateCluster\n\t\t\t\tAPI operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your\n\t\t\t\taccount. This is so that it can manage required resources in other Amazon Web Services services on\n\t\t\t\tyour behalf. However, if the user that makes the call doesn't have permissions to\n\t\t\t\tcreate the service-linked role, it isn't created. For more information, see Using\n\t\t\t\t\tservice-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

\n
", "smithy.api#examples": [ { "title": "To create a new cluster", @@ -3104,19 +3104,19 @@ "clusterName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of your cluster. If you don't specify a name for your cluster, you create a cluster that's\n\t\t\tnamed default. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

" + "smithy.api#documentation": "

The name of your cluster. If you don't specify a name for your cluster, you create a\n\t\t\tcluster that's named default. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the cluster to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the cluster to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "settings": { "target": "com.amazonaws.ecs#ClusterSettings", "traits": { - "smithy.api#documentation": "

The setting to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights\n\t\t\tfor a cluster. If this value is specified, it overrides the containerInsights value set\n\t\t\twith PutAccountSetting or PutAccountSettingDefault.

" + "smithy.api#documentation": "

The setting to use when creating a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" } }, "configuration": { @@ -3128,13 +3128,13 @@ "capacityProviders": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The short name of one or more capacity providers to associate with the cluster. A capacity provider\n\t\t\tmust be associated with a cluster before it can be included as part of the default capacity provider\n\t\t\tstrategy of the cluster or used in a capacity provider strategy when calling the CreateService or RunTask actions.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must be\n\t\t\tcreated but not associated with another cluster. New Auto Scaling group capacity providers can be\n\t\t\tcreated with the CreateCapacityProvider\n\t\t\tAPI operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used.

\n

The PutCapacityProvider API operation is used to update the list of available capacity\n\t\t\tproviders for a cluster after the cluster is created.

" + "smithy.api#documentation": "

The short name of one or more capacity providers to associate with the cluster. A\n\t\t\tcapacity provider must be associated with a cluster before it can be included as part of\n\t\t\tthe default capacity provider strategy of the cluster or used in a capacity provider\n\t\t\tstrategy when calling the CreateService or\n\t\t\t\tRunTask actions.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity\n\t\t\tprovider must be created but not associated with another cluster. New Auto Scaling group\n\t\t\tcapacity providers can be created with the CreateCapacityProvider API operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be\n\t\t\tused.

\n

The PutCapacityProvider API operation is used to update the list of available\n\t\t\tcapacity providers for a cluster after the cluster is created.

" } }, "defaultCapacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to set as the default for the cluster. After a default capacity\n\t\t\tprovider strategy is set for a cluster, when you call the CreateService or RunTask APIs with\n\t\t\tno capacity provider strategy or launch type specified, the default capacity provider strategy for the\n\t\t\tcluster is used.

\n

If a default capacity provider strategy isn't defined for a cluster when it was created, it can be\n\t\t\tdefined later with the PutClusterCapacityProviders API operation.

" + "smithy.api#documentation": "

The capacity provider strategy to set as the default for the cluster. After a default\n\t\t\tcapacity provider strategy is set for a cluster, when you call the CreateService or RunTask APIs with no\n\t\t\tcapacity provider strategy or launch type specified, the default capacity provider\n\t\t\tstrategy for the cluster is used.

\n

If a default capacity provider strategy isn't defined for a cluster when it was\n\t\t\tcreated, it can be defined later with the PutClusterCapacityProviders API operation.

" } }, "serviceConnectDefaults": { @@ -3200,7 +3200,7 @@ } ], "traits": { - "smithy.api#documentation": "

Runs and maintains your desired number of tasks from a specified task definition. If the number of\n\t\t\ttasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the\n\t\t\ttask in the specified cluster. To update an existing service, use UpdateService.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

In addition to maintaining the desired count of tasks in your service, you can optionally run your\n\t\t\tservice behind one or more load balancers. The load balancers distribute traffic across the tasks that\n\t\t\tare associated with the service. For more information, see Service load\n\t\t\t\tbalancing in the Amazon Elastic Container Service Developer Guide.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a\n\t\t\tservice. volumeConfigurations is only supported for REPLICA service and not DAEMON\n\t\t\tservice. For more infomation, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide.

\n

Tasks for services that don't use a load balancer are considered healthy if they're in the\n\t\t\t\tRUNNING state. Tasks for services that use a load balancer are considered healthy if\n\t\t\tthey're in the RUNNING state and are reported as healthy by the load balancer.

\n

There are two service scheduler strategies available:

\n
    \n
  • \n

    \n REPLICA - The replica scheduling strategy places and maintains your\n\t\t\t\t\tdesired number of tasks across your cluster. By default, the service scheduler spreads tasks\n\t\t\t\t\tacross Availability Zones. You can use task placement strategies and constraints to customize\n\t\t\t\t\ttask placement decisions. For more information, see Service\n\t\t\t\t\t\tscheduler concepts in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n DAEMON - The daemon scheduling strategy deploys exactly one task on each\n\t\t\t\t\tactive container instance that meets all of the task placement constraints that you specify in\n\t\t\t\t\tyour cluster. The service scheduler also evaluates the task placement constraints for running\n\t\t\t\t\ttasks. It also stops tasks that don't meet the placement constraints. When using this strategy,\n\t\t\t\t\tyou don't need to specify a desired number of tasks, a task placement strategy, or use Service\n\t\t\t\t\tAuto Scaling policies. For more information, see Service\n\t\t\t\t\t\tscheduler concepts in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
\n

You can optionally specify a deployment configuration for your service. The deployment is initiated\n\t\t\tby changing properties. For example, the deployment might be initiated by the task definition or by\n\t\t\tyour desired count of a service. You can use UpdateService. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service for\n\t\t\t\tminimumHealthyPercent is 0%.

\n

If a service uses the ECS deployment controller, the minimum healthy percent represents\n\t\t\ta lower limit on the number of tasks in a service that must remain in the RUNNING state\n\t\t\tduring a deployment. Specifically, it represents it as a percentage of your desired number of tasks\n\t\t\t(rounded up to the nearest integer). This happens when any of your container instances are in the\n\t\t\t\tDRAINING state if the service contains tasks using the EC2 launch type.\n\t\t\tUsing this parameter, you can deploy without using additional cluster capacity. For example, if you set\n\t\t\tyour service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler\n\t\t\tmight stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in\n\t\t\tthe RUNNING state, tasks for services that don't use a load balancer are considered\n\t\t\thealthy . If they're in the RUNNING state and reported as healthy by the load balancer,\n\t\t\ttasks for services that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

\n

If a service uses the ECS deployment controller, the maximum\n\t\t\t\tpercent parameter represents an upper limit on the number of tasks in a service that are\n\t\t\tallowed in the RUNNING or PENDING state during a deployment. Specifically, it\n\t\t\trepresents it as a percentage of the desired number of tasks (rounded down to the nearest integer).\n\t\t\tThis happens when any of your container instances are in the DRAINING state if the service\n\t\t\tcontains tasks using the EC2 launch type. Using this parameter, you can define the\n\t\t\tdeployment batch size. For example, if your service has a desired number of four tasks and a maximum\n\t\t\tpercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks\n\t\t\t(provided that the cluster resources required to do this are available). The default value for maximum\n\t\t\tpercent is 200%.

\n

If a service uses either the CODE_DEPLOY or EXTERNAL deployment controller\n\t\t\ttypes and tasks that use the EC2 launch type, the minimum healthy\n\t\t\t\tpercent and maximum percent values are used only to\n\t\t\tdefine the lower and upper limit on the number of the tasks in the service that remain in the\n\t\t\t\tRUNNING state. This is while the container instances are in the DRAINING\n\t\t\tstate. If the tasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're currently visible when\n\t\t\tdescribing your service.

\n

When creating a service that uses the EXTERNAL deployment controller, you can specify\n\t\t\tonly parameters that aren't controlled at the task set level. The only required parameter is the\n\t\t\tservice name. You control your services using the CreateTaskSet. For more information, see Amazon ECS deployment\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n

When the service scheduler launches new tasks, it determines task placement. For information about\n\t\t\ttask placement and task placement strategies, see Amazon ECS task\n\t\t\t\tplacement in the Amazon Elastic Container Service Developer Guide\n

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

Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the desiredCount,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, use UpdateService.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or\n\t\t\tupdating a service. volumeConfigurations is only supported for REPLICA\n\t\t\tservice and not DAEMON service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

\n

Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe RUNNING state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the RUNNING state and are reported as\n\t\t\thealthy by the load balancer.

\n

There are two service scheduler strategies available:

\n
    \n
  • \n

    \n REPLICA - The replica scheduling strategy places and\n\t\t\t\t\tmaintains your desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. For\n\t\t\t\t\tmore information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n DAEMON - The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks. It also stops tasks\n\t\t\t\t\tthat don't meet the placement constraints. When using this strategy, you don't\n\t\t\t\t\tneed to specify a desired number of tasks, a task placement strategy, or use\n\t\t\t\t\tService Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
\n

You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. You can use UpdateService. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service\n\t\t\tfor minimumHealthyPercent is 0%.

\n

If a service uses the ECS deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe RUNNING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the RUNNING state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\tRUNNING state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

\n

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the RUNNING or\n\t\t\t\tPENDING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.

\n

If a service uses either the CODE_DEPLOY or EXTERNAL\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\tminimum healthy percent and maximum percent values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the RUNNING state.\n\t\t\tThis is while the container instances are in the DRAINING state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.

\n

When creating a service that uses the EXTERNAL deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the CreateTaskSet. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

\n

When the service scheduler launches new tasks, it determines task placement. For\n\t\t\tinformation about task placement and task placement strategies, see Amazon ECS\n\t\t\t\ttask placement in the Amazon Elastic Container Service Developer Guide\n

", "smithy.api#examples": [ { "title": "To create a new service", @@ -3322,14 +3322,14 @@ "serviceName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but\n\t\t\tyou can have similarly named services in multiple clusters within a Region or across multiple\n\t\t\tRegions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within\n\t\t\ta cluster, but you can have similarly named services in multiple clusters within a\n\t\t\tRegion or across multiple Regions.

", "smithy.api#required": {} } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the\n\t\t\ttask definition to run in your service. If a revision isn't specified, the latest\n\t\t\t\tACTIVE revision is used.

\n

A task definition must be specified if the service uses either the ECS or\n\t\t\t\tCODE_DEPLOY deployment controllers.

\n

For more information about deployment types, see Amazon ECS deployment types.

" + "smithy.api#documentation": "

The family and revision (family:revision) or\n\t\t\tfull ARN of the task definition to run in your service. If a revision\n\t\t\tisn't specified, the latest ACTIVE revision is used.

\n

A task definition must be specified if the service uses either the ECS or\n\t\t\t\tCODE_DEPLOY deployment controllers.

\n

For more information about deployment types, see Amazon ECS deployment\n\t\t\t\ttypes.

" } }, "availabilityZoneRebalancing": { @@ -3341,19 +3341,19 @@ "loadBalancers": { "target": "com.amazonaws.ecs#LoadBalancers", "traits": { - "smithy.api#documentation": "

A load balancer object representing the load balancers to use with your service. For more\n\t\t\tinformation, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

\n

If the service uses the rolling update (ECS) deployment controller and using either an\n\t\t\tApplication Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The\n\t\t\tservice-linked role is required for services that use multiple target groups. For more information, see\n\t\t\t\tUsing service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

\n

If the service uses the CODE_DEPLOY deployment controller, the service is required to\n\t\t\tuse either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you specify two target groups\n\t\t\t(referred to as a targetGroupPair). During a deployment, CodeDeploy determines which task set\n\t\t\tin your service has the status PRIMARY, and it associates one target group with it. Then,\n\t\t\tit also associates the other target group with the replacement task set. The load balancer can also\n\t\t\thave up to two listeners: a required listener for production traffic and an optional listener that you\n\t\t\tcan use to perform validation tests with Lambda functions before routing production traffic to\n\t\t\tit.

\n

If you use the CODE_DEPLOY deployment controller, these values can be changed when\n\t\t\tupdating the service.

\n

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container\n\t\t\tname, and the container port to access from the load balancer. The container name must be as it appears\n\t\t\tin a container definition. The load balancer name parameter must be omitted. When a task from this\n\t\t\tservice is placed on a container instance, the container instance and port combination is registered as\n\t\t\ta target in the target group that's specified here.

\n

For Classic Load Balancers, this object must contain the load balancer name, the container name , and the container\n\t\t\tport to access from the load balancer. The container name must be as it appears in a container\n\t\t\tdefinition. The target group ARN parameter must be omitted. When a task from this service is placed\n\t\t\ton a container instance, the container instance is registered with the load balancer that's specified\n\t\t\there.

\n

Services with tasks that use the awsvpc network mode (for example, those with the\n\t\t\tFargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers aren't supported. Also, when\n\t\t\tyou create any target groups for these services, you must choose ip as the target type,\n\t\t\tnot instance. This is because tasks that use the awsvpc network mode are\n\t\t\tassociated with an elastic network interface, not an Amazon EC2 instance.

" + "smithy.api#documentation": "

A load balancer object representing the load balancers to use with your service. For\n\t\t\tmore information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

\n

If the service uses the rolling update (ECS) deployment controller and\n\t\t\tusing either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach\n\t\t\tto the service. The service-linked role is required for services that use multiple\n\t\t\ttarget groups. For more information, see Using service-linked roles for Amazon ECS in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n

If the service uses the CODE_DEPLOY deployment controller, the service is\n\t\t\trequired to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you\n\t\t\tspecify two target groups (referred to as a targetGroupPair). During a\n\t\t\tdeployment, CodeDeploy determines which task set in your service has the status\n\t\t\t\tPRIMARY, and it associates one target group with it. Then, it also\n\t\t\tassociates the other target group with the replacement task set. The load balancer can\n\t\t\talso have up to two listeners: a required listener for production traffic and an\n\t\t\toptional listener that you can use to perform validation tests with Lambda functions\n\t\t\tbefore routing production traffic to it.

\n

If you use the CODE_DEPLOY deployment controller, these values can be\n\t\t\tchanged when updating the service.

\n

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN,\n\t\t\tthe container name, and the container port to access from the load balancer. The\n\t\t\tcontainer name must be as it appears in a container definition. The load balancer name\n\t\t\tparameter must be omitted. When a task from this service is placed on a container\n\t\t\tinstance, the container instance and port combination is registered as a target in the\n\t\t\ttarget group that's specified here.

\n

For Classic Load Balancers, this object must contain the load balancer name, the container name , and\n\t\t\tthe container port to access from the load balancer. The container name must be as it\n\t\t\tappears in a container definition. The target group ARN parameter must be omitted.\n\t\t\tWhen a task from this service is placed on a container instance, the container instance\n\t\t\tis registered with the load balancer that's specified here.

\n

Services with tasks that use the awsvpc network mode (for example, those\n\t\t\twith the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers\n\t\t\taren't supported. Also, when you create any target groups for these services, you must\n\t\t\tchoose ip as the target type, not instance. This is because\n\t\t\ttasks that use the awsvpc network mode are associated with an elastic\n\t\t\tnetwork interface, not an Amazon EC2 instance.

" } }, "serviceRegistries": { "target": "com.amazonaws.ecs#ServiceRegistries", "traits": { - "smithy.api#documentation": "

The details of the service discovery registry to associate with this service. For more information,\n\t\t\tsee Service\n\t\t\t\tdiscovery.

\n \n

Each service may be associated with one service registry. Multiple service registries for each\n\t\t\t\tservice isn't supported.

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

The details of the service discovery registry to associate with this service. For more\n\t\t\tinformation, see Service\n\t\t\t\tdiscovery.

\n \n

Each service may be associated with one service registry. Multiple service\n\t\t\t\tregistries for each service isn't supported.

\n
" } }, "desiredCount": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of instantiations of the specified task definition to place and keep running in your\n\t\t\tservice.

\n

This is required if schedulingStrategy is REPLICA or isn't specified. If\n\t\t\t\tschedulingStrategy is DAEMON then this isn't required.

" + "smithy.api#documentation": "

The number of instantiations of the specified task definition to place and keep\n\t\t\trunning in your service.

\n

This is required if schedulingStrategy is REPLICA or isn't\n\t\t\tspecified. If schedulingStrategy is DAEMON then this isn't\n\t\t\trequired.

" } }, "clientToken": { @@ -3365,93 +3365,93 @@ "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The infrastructure that you run your service on. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n

The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

\n \n

Fargate Spot infrastructure is available for use but a capacity provider strategy must be used.\n\t\t\t\tFor more information, see Fargate capacity providers in the Amazon ECS Developer Guide.

\n
\n

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your\n\t\t\tcluster.

\n

The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine\n\t\t\t(VM) capacity registered to your cluster.

\n

A service can use either a launch type or a capacity provider strategy. If a launchType\n\t\t\tis specified, the capacityProviderStrategy parameter must be omitted.

" + "smithy.api#documentation": "

The infrastructure that you run your service on. For more information, see Amazon ECS\n\t\t\t\tlaunch types in the Amazon Elastic Container Service Developer Guide.

\n

The FARGATE launch type runs your tasks on Fargate On-Demand\n\t\t\tinfrastructure.

\n \n

Fargate Spot infrastructure is available for use but a capacity provider\n\t\t\t\tstrategy must be used. For more information, see Fargate capacity providers in the Amazon ECS\n\t\t\t\t\tDeveloper Guide.

\n
\n

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your\n\t\t\tcluster.

\n

The EXTERNAL launch type runs your tasks on your on-premises server or\n\t\t\tvirtual machine (VM) capacity registered to your cluster.

\n

A service can use either a launch type or a capacity provider strategy. If a\n\t\t\t\tlaunchType is specified, the capacityProviderStrategy\n\t\t\tparameter must be omitted.

" } }, "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to use for the service.

\n

If a capacityProviderStrategy is specified, the launchType parameter must\n\t\t\tbe omitted. If no capacityProviderStrategy or launchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

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

" + "smithy.api#documentation": "

The capacity provider strategy to use for the service.

\n

If a capacityProviderStrategy is specified, the launchType\n\t\t\tparameter must be omitted. If no capacityProviderStrategy or\n\t\t\t\tlaunchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

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

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version that your tasks in the service are running on. A platform version is specified\n\t\t\tonly for tasks using the Fargate launch type. If one isn't specified, the\n\t\t\t\tLATEST platform version is used. For more information, see Fargate platform versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version that your tasks in the service are running on. A platform version\n\t\t\tis specified only for tasks using the Fargate launch type. If one isn't\n\t\t\tspecified, the LATEST platform version is used. For more information, see\n\t\t\t\tFargate platform\n\t\t\t\tversions in the Amazon Elastic Container Service Developer Guide.

" } }, "role": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on\n\t\t\tyour behalf. This parameter is only permitted if you are using a load balancer with your service and\n\t\t\tyour task definition doesn't use the awsvpc network mode. If you specify the\n\t\t\t\trole parameter, you must also specify a load balancer object with the\n\t\t\t\tloadBalancers parameter.

\n \n

If your account has already created the Amazon ECS service-linked role, that role is used for your\n\t\t\t\tservice unless you specify a role here. The service-linked role is required if your task definition\n\t\t\t\tuses the awsvpc network mode or if the service is configured to use service discovery,\n\t\t\t\tan external deployment controller, multiple target groups, or Elastic Inference accelerators in\n\t\t\t\twhich case you don't specify a role here. For more information, see Using service-linked\n\t\t\t\t\troles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

\n
\n

If your specified role has a path other than /, then you must either specify the full\n\t\t\trole ARN (this is recommended) or prefix the role name with the path. For example, if a role with the\n\t\t\tname bar has a path of /foo/ then you would specify /foo/bar as\n\t\t\tthe role name. For more information, see Friendly names and\n\t\t\t\tpaths in the IAM User Guide.

" + "smithy.api#documentation": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your\n\t\t\tload balancer on your behalf. This parameter is only permitted if you are using a load\n\t\t\tbalancer with your service and your task definition doesn't use the awsvpc\n\t\t\tnetwork mode. If you specify the role parameter, you must also specify a\n\t\t\tload balancer object with the loadBalancers parameter.

\n \n

If your account has already created the Amazon ECS service-linked role, that role is\n\t\t\t\tused for your service unless you specify a role here. The service-linked role is\n\t\t\t\trequired if your task definition uses the awsvpc network mode or if the\n\t\t\t\tservice is configured to use service discovery, an external deployment controller,\n\t\t\t\tmultiple target groups, or Elastic Inference accelerators in which case you don't\n\t\t\t\tspecify a role here. For more information, see Using\n\t\t\t\t\tservice-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

\n
\n

If your specified role has a path other than /, then you must either\n\t\t\tspecify the full role ARN (this is recommended) or prefix the role name with the path.\n\t\t\tFor example, if a role with the name bar has a path of /foo/\n\t\t\tthen you would specify /foo/bar as the role name. For more information, see\n\t\t\t\tFriendly names and paths in the IAM User\n\t\t\tGuide.

" } }, "deploymentConfiguration": { "target": "com.amazonaws.ecs#DeploymentConfiguration", "traits": { - "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering\n\t\t\tof stopping and starting tasks.

" + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment\n\t\t\tand the ordering of stopping and starting tasks.

" } }, "placementConstraints": { "target": "com.amazonaws.ecs#PlacementConstraints", "traits": { - "smithy.api#documentation": "

An array of placement constraint objects to use for tasks in your service. You can specify a maximum\n\t\t\tof 10 constraints for each task. This limit includes constraints in the task definition and those\n\t\t\tspecified at runtime.

" + "smithy.api#documentation": "

An array of placement constraint objects to use for tasks in your service. You can\n\t\t\tspecify a maximum of 10 constraints for each task. This limit includes constraints in\n\t\t\tthe task definition and those specified at runtime.

" } }, "placementStrategy": { "target": "com.amazonaws.ecs#PlacementStrategies", "traits": { - "smithy.api#documentation": "

The placement strategy objects to use for tasks in your service. You can specify a maximum of 5\n\t\t\tstrategy rules for each service.

" + "smithy.api#documentation": "

The placement strategy objects to use for tasks in your service. You can specify a\n\t\t\tmaximum of 5 strategy rules for each service.

" } }, "networkConfiguration": { "target": "com.amazonaws.ecs#NetworkConfiguration", "traits": { - "smithy.api#documentation": "

The network configuration for the service. This parameter is required for task definitions that use\n\t\t\tthe awsvpc network mode to receive their own elastic network interface, and it isn't\n\t\t\tsupported for other network modes. For more information, see Task networking in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The network configuration for the service. This parameter is required for task\n\t\t\tdefinitions that use the awsvpc network mode to receive their own elastic\n\t\t\tnetwork interface, and it isn't supported for other network modes. For more information,\n\t\t\tsee Task networking\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "healthCheckGracePeriodSeconds": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container \n\t\t\thealth checks after a task has first started. If you don't specify a health check grace\n\t\t\tperiod value, the default value of 0 is used. If you don't use any of the health checks, \n\t\t\tthen healthCheckGracePeriodSeconds is unused.

\n

If your service's tasks take a while to start and respond to health checks, you can specify a\n\t\t\thealth check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS\n\t\t\tservice scheduler ignores health check status. This grace period can prevent the service scheduler from\n\t\t\tmarking tasks as unhealthy and stopping them before they have time to come up.

" + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't\n\t\t\tspecify a health check grace period value, the default value of 0 is used.\n\t\t\tIf you don't use any of the health checks, then\n\t\t\t\thealthCheckGracePeriodSeconds is unused.

\n

If your service's tasks take a while to start and respond to health checks, you can\n\t\t\tspecify a health check grace period of up to 2,147,483,647 seconds (about 69 years).\n\t\t\tDuring that time, the Amazon ECS service scheduler ignores health check status. This grace\n\t\t\tperiod can prevent the service scheduler from marking tasks as unhealthy and stopping\n\t\t\tthem before they have time to come up.

" } }, "schedulingStrategy": { "target": "com.amazonaws.ecs#SchedulingStrategy", "traits": { - "smithy.api#documentation": "

The scheduling strategy to use for the service. For more information, see Services.

\n

There are two service scheduler strategies available:

\n
    \n
  • \n

    \n REPLICA-The replica scheduling strategy places and maintains the desired\n\t\t\t\t\tnumber of tasks across your cluster. By default, the service scheduler spreads tasks across\n\t\t\t\t\tAvailability Zones. You can use task placement strategies and constraints to customize task\n\t\t\t\t\tplacement decisions. This scheduler strategy is required if the service uses the\n\t\t\t\t\t\tCODE_DEPLOY or EXTERNAL deployment controller types.

    \n
  • \n
  • \n

    \n DAEMON-The daemon scheduling strategy deploys exactly one task on each\n\t\t\t\t\tactive container instance that meets all of the task placement constraints that you specify in\n\t\t\t\t\tyour cluster. The service scheduler also evaluates the task placement constraints for running\n\t\t\t\t\ttasks and will stop tasks that don't meet the placement constraints. When you're using this\n\t\t\t\t\tstrategy, you don't need to specify a desired number of tasks, a task placement strategy, or\n\t\t\t\t\tuse Service Auto Scaling policies.

    \n \n

    Tasks using the Fargate launch type or the CODE_DEPLOY or\n\t\t\t\t\t\t\tEXTERNAL deployment controller types don't support the DAEMON\n\t\t\t\t\t\tscheduling strategy.

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

The scheduling strategy to use for the service. For more information, see Services.

\n

There are two service scheduler strategies available:

\n
    \n
  • \n

    \n REPLICA-The replica scheduling strategy places and\n\t\t\t\t\tmaintains the desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. This\n\t\t\t\t\tscheduler strategy is required if the service uses the CODE_DEPLOY\n\t\t\t\t\tor EXTERNAL deployment controller types.

    \n
  • \n
  • \n

    \n DAEMON-The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks and will stop tasks\n\t\t\t\t\tthat don't meet the placement constraints. When you're using this strategy, you\n\t\t\t\t\tdon't need to specify a desired number of tasks, a task placement strategy, or\n\t\t\t\t\tuse Service Auto Scaling policies.

    \n \n

    Tasks using the Fargate launch type or the\n\t\t\t\t\t\t\tCODE_DEPLOY or EXTERNAL deployment controller\n\t\t\t\t\t\ttypes don't support the DAEMON scheduling strategy.

    \n
    \n
  • \n
" } }, "deploymentController": { "target": "com.amazonaws.ecs#DeploymentController", "traits": { - "smithy.api#documentation": "

The deployment controller to use for the service. If no deployment controller is specified, the\n\t\t\tdefault value of ECS is used.

" + "smithy.api#documentation": "

The deployment controller to use for the service. If no deployment controller is\n\t\t\tspecified, the default value of ECS is used.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the service to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value, both of which you define. When a service is deleted, the tags\n\t\t\tare deleted as well.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the service to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value, both of which you define. When a\n\t\t\tservice is deleted, the tags are deleted as well.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more\n\t\t\tinformation, see Tagging your Amazon ECS resources in the Amazon Elastic Container Service Developer Guide.

\n

When you use Amazon ECS managed tags, you need to set the propagateTags request\n\t\t\tparameter.

" + "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For\n\t\t\tmore information, see Tagging your Amazon ECS\n\t\t\t\tresources in the Amazon Elastic Container Service Developer Guide.

\n

When you use Amazon ECS managed tags, you need to set the propagateTags\n\t\t\trequest parameter.

" } }, "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition to the task. If no value is\n\t\t\tspecified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To\n\t\t\tadd tags to a task after task creation, use the TagResource API action.

\n

You must set this to a value other than NONE when you use Cost Explorer. For more\n\t\t\tinformation, see Amazon ECS usage reports in the Amazon Elastic Container Service Developer Guide.

\n

The default is NONE.

" + "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated. Tags can only be propagated to the task\n\t\t\tduring task creation. To add tags to a task after task creation, use the TagResource API action.

\n

You must set this to a value other than NONE when you use Cost Explorer.\n\t\t\tFor more information, see Amazon ECS usage reports\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n

The default is NONE.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If\n\t\t\t\ttrue, this enables execute command functionality on all containers in the service\n\t\t\ttasks.

" + "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If\n\t\t\t\ttrue, this enables execute command functionality on all containers in\n\t\t\tthe service tasks.

" } }, "serviceConnectConfiguration": { @@ -3463,7 +3463,7 @@ "volumeConfigurations": { "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", "traits": { - "smithy.api#documentation": "

The configuration for a volume specified in the task definition as a volume that is configured at\n\t\t\tlaunch time. Currently, the only supported volume type is an Amazon EBS volume.

" + "smithy.api#documentation": "

The configuration for a volume specified in the task definition as a volume that is\n\t\t\tconfigured at launch time. Currently, the only supported volume type is an Amazon EBS\n\t\t\tvolume.

" } }, "vpcLatticeConfigurations": { @@ -3483,7 +3483,7 @@ "service": { "target": "com.amazonaws.ecs#Service", "traits": { - "smithy.api#documentation": "

The full description of your service following the create call.

\n

A service will return either a capacityProviderStrategy or launchType\n\t\t\tparameter, but not both, depending where one was specified when it was created.

\n

If a service is using the ECS deployment controller, the\n\t\t\t\tdeploymentController and taskSets parameters will not be returned.

\n

if the service uses the CODE_DEPLOY deployment controller, the\n\t\t\t\tdeploymentController, taskSets and deployments parameters\n\t\t\twill be returned, however the deployments parameter will be an empty list.

" + "smithy.api#documentation": "

The full description of your service following the create call.

\n

A service will return either a capacityProviderStrategy or\n\t\t\t\tlaunchType parameter, but not both, depending where one was specified\n\t\t\twhen it was created.

\n

If a service is using the ECS deployment controller, the\n\t\t\t\tdeploymentController and taskSets parameters will not be\n\t\t\treturned.

\n

if the service uses the CODE_DEPLOY deployment controller, the\n\t\t\t\tdeploymentController, taskSets and\n\t\t\t\tdeployments parameters will be returned, however the\n\t\t\t\tdeployments parameter will be an empty list.

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

Create a task set in the specified cluster and service. This is used when a service uses the\n\t\t\t\tEXTERNAL deployment controller type. For more information, see Amazon ECS deployment\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n

For information about the maximum number of task sets and other quotas, see Amazon ECS service\n\t\t\t\tquotas in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Create a task set in the specified cluster and service. This is used when a service\n\t\t\tuses the EXTERNAL deployment controller type. For more information, see\n\t\t\t\tAmazon ECS deployment\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n

For information about the maximum number of task sets and other quotas, see Amazon ECS\n\t\t\t\tservice quotas in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#CreateTaskSetRequest": { @@ -3551,20 +3551,20 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the\n\t\t\ttask set in.

", "smithy.api#required": {} } }, "externalId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

An optional non-unique tag that identifies this task set in external systems. If the task set is\n\t\t\tassociated with a service discovery registry, the tasks in this task set will have the\n\t\t\t\tECS_TASK_SET_EXTERNAL_ID Cloud Map attribute set to the provided\n\t\t\tvalue.

" + "smithy.api#documentation": "

An optional non-unique tag that identifies this task set in external systems. If the\n\t\t\ttask set is associated with a service discovery registry, the tasks in this task set\n\t\t\twill have the ECS_TASK_SET_EXTERNAL_ID Cloud Map attribute set to the provided\n\t\t\tvalue.

" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The task definition for the tasks in the task set to use. If a revision isn't specified, the latest\n\t\t\t\tACTIVE revision is used.

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

The task definition for the tasks in the task set to use. If a revision isn't\n\t\t\tspecified, the latest ACTIVE revision is used.

", "smithy.api#required": {} } }, @@ -3577,37 +3577,37 @@ "loadBalancers": { "target": "com.amazonaws.ecs#LoadBalancers", "traits": { - "smithy.api#documentation": "

A load balancer object representing the load balancer to use with the task set. The supported load\n\t\t\tbalancer types are either an Application Load Balancer or a Network Load Balancer.

" + "smithy.api#documentation": "

A load balancer object representing the load balancer to use with the task set. The\n\t\t\tsupported load balancer types are either an Application Load Balancer or a Network Load Balancer.

" } }, "serviceRegistries": { "target": "com.amazonaws.ecs#ServiceRegistries", "traits": { - "smithy.api#documentation": "

The details of the service discovery registries to assign to this task set. For more information, see\n\t\t\t\tService\n\t\t\t\tdiscovery.

" + "smithy.api#documentation": "

The details of the service discovery registries to assign to this task set. For more\n\t\t\tinformation, see Service\n\t\t\t\tdiscovery.

" } }, "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The launch type that new tasks in the task set uses. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n

If a launchType is specified, the capacityProviderStrategy parameter must\n\t\t\tbe omitted.

" + "smithy.api#documentation": "

The launch type that new tasks in the task set uses. For more information, see Amazon ECS\n\t\t\t\tlaunch types in the Amazon Elastic Container Service Developer Guide.

\n

If a launchType is specified, the capacityProviderStrategy\n\t\t\tparameter must be omitted.

" } }, "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to use for the task set.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider must be associated\n\t\t\twith the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.\n\t\t\tOnly capacity providers with an ACTIVE or UPDATING status can be used.

\n

If a capacityProviderStrategy is specified, the launchType parameter must\n\t\t\tbe omitted. If no capacityProviderStrategy or launchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already\n\t\t\tbe created. New capacity providers can be created with the CreateCapacityProviderProviderAPI operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used.

\n

The PutClusterCapacityProviders API operation is used to update the list of available capacity\n\t\t\tproviders for a cluster after the cluster is created.

" + "smithy.api#documentation": "

The capacity provider strategy to use for the task set.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider\n\t\t\tmust be associated with the cluster to be used in a capacity provider strategy. The\n\t\t\t\tPutClusterCapacityProviders API is used to associate a capacity provider\n\t\t\twith a cluster. Only capacity providers with an ACTIVE or\n\t\t\t\tUPDATING status can be used.

\n

If a capacityProviderStrategy is specified, the launchType\n\t\t\tparameter must be omitted. If no capacityProviderStrategy or\n\t\t\t\tlaunchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity\n\t\t\tprovider must already be created. New capacity providers can be created with the CreateCapacityProviderProviderAPI operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be\n\t\t\tused.

\n

The PutClusterCapacityProviders API operation is used to update the list of\n\t\t\tavailable capacity providers for a cluster after the cluster is created.

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version that the tasks in the task set uses. A platform version is specified only for\n\t\t\ttasks using the Fargate launch type. If one isn't specified, the LATEST\n\t\t\tplatform version is used.

" + "smithy.api#documentation": "

The platform version that the tasks in the task set uses. A platform version is\n\t\t\tspecified only for tasks using the Fargate launch type. If one isn't\n\t\t\tspecified, the LATEST platform version is used.

" } }, "scale": { "target": "com.amazonaws.ecs#Scale", "traits": { - "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task\n\t\t\tset.

" + "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running\n\t\t\tin the task set.

" } }, "clientToken": { @@ -3619,7 +3619,7 @@ "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task set to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both. When a service is deleted, the tags are\n\t\t\tdeleted.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task set to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define both. When a service is\n\t\t\tdeleted, the tags are deleted.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } } }, @@ -3633,7 +3633,7 @@ "taskSet": { "target": "com.amazonaws.ecs#TaskSet", "traits": { - "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment.\n\t\t\tA task set includes details such as the desired number of tasks, how many tasks are running, and\n\t\t\twhether the task set serves production traffic.

" + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an\n\t\t\t\tEXTERNAL deployment. A task set includes details such as the desired\n\t\t\tnumber of tasks, how many tasks are running, and whether the task set serves production\n\t\t\ttraffic.

" } } }, @@ -3647,18 +3647,18 @@ "before": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

Include service deployments in the result that were created before this time. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

Include service deployments in the result that were created before this time. The\n\t\t\tformat is yyyy-MM-dd HH:mm:ss.SSSSSS.

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

Include service deployments in the result that were created after this time. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

Include service deployments in the result that were created after this time. The\n\t\t\tformat is yyyy-MM-dd HH:mm:ss.SSSSSS.

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

The optional filter to narrow the ListServiceDeployment results.

\n

If you do not specify a value, service deployments that were created before the current\n\t\t\ttime are included in the result.

" + "smithy.api#documentation": "

The optional filter to narrow the ListServiceDeployment results.

\n

If you do not specify a value, service deployments that were created before the\n\t\t\tcurrent time are included in the result.

" } }, "com.amazonaws.ecs#DeleteAccountSetting": { @@ -3681,7 +3681,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables an account setting for a specified user, role, or the root user for an account.

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

Disables an account setting for a specified user, role, or the root user for an\n\t\t\taccount.

", "smithy.api#examples": [ { "title": "To delete the account settings for a specific IAM user or IAM role", @@ -3721,14 +3721,14 @@ "name": { "target": "com.amazonaws.ecs#SettingName", "traits": { - "smithy.api#documentation": "

The resource name to disable the account setting for. If serviceLongArnFormat is\n\t\t\tspecified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is\n\t\t\tspecified, the ARN and resource ID for your Amazon ECS tasks is affected. If\n\t\t\t\tcontainerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS\n\t\t\tcontainer instances is affected. If awsvpcTrunking is specified, the ENI limit for your\n\t\t\tAmazon ECS container instances is affected.

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

The resource name to disable the account setting for. If\n\t\t\t\tserviceLongArnFormat is specified, the ARN for your Amazon ECS services is\n\t\t\taffected. If taskLongArnFormat is specified, the ARN and resource ID for\n\t\t\tyour Amazon ECS tasks is affected. If containerInstanceLongArnFormat is\n\t\t\tspecified, the ARN and resource ID for your Amazon ECS container instances is affected. If\n\t\t\t\tawsvpcTrunking is specified, the ENI limit for your Amazon ECS container\n\t\t\tinstances is affected.

", "smithy.api#required": {} } }, "principalArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal. It can be an user, role, or the root user. If you\n\t\t\tspecify the root user, it disables the account setting for all users, roles, and the root user of the account\n\t\t\tunless a user or role explicitly overrides these settings. If this field is omitted, the setting is\n\t\t\tchanged only for the authenticated user.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal. It can be an user, role, or the\n\t\t\troot user. If you specify the root user, it disables the account setting for all users, roles,\n\t\t\tand the root user of the account unless a user or role explicitly overrides these settings.\n\t\t\tIf this field is omitted, the setting is changed only for the authenticated user.

" } } }, @@ -3779,13 +3779,13 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete\n\t\t\tattributes. If you do not specify a cluster, the default cluster is assumed.

" } }, "attributes": { "target": "com.amazonaws.ecs#Attributes", "traits": { - "smithy.api#documentation": "

The attributes to delete from your resource. You can specify up to 10 attributes for each request.\n\t\t\tFor custom attributes, specify the attribute name and target ID, but don't specify the value. If you\n\t\t\tspecify the target ID using the short form, you must also specify the target type.

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

The attributes to delete from your resource. You can specify up to 10 attributes for\n\t\t\teach request. For custom attributes, specify the attribute name and target ID, but don't\n\t\t\tspecify the value. If you specify the target ID using the short form, you must also\n\t\t\tspecify the target type.

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

Deletes the specified capacity provider.

\n \n

The FARGATE and FARGATE_SPOT capacity providers are reserved and can't\n\t\t\t\tbe deleted. You can disassociate them from a cluster using either PutClusterCapacityProviders or by deleting the cluster.

\n
\n

Prior to a capacity provider being deleted, the capacity provider must be removed from the capacity\n\t\t\tprovider strategy from all services. The UpdateService API can be used to\n\t\t\tremove a capacity provider from a service's capacity provider strategy. When updating a service, the\n\t\t\t\tforceNewDeployment option can be used to ensure that any tasks using the Amazon EC2\n\t\t\tinstance capacity provided by the capacity provider are transitioned to use the capacity from the\n\t\t\tremaining capacity providers. Only capacity providers that aren't associated with a cluster can be\n\t\t\tdeleted. To remove a capacity provider from a cluster, you can either use PutClusterCapacityProviders or delete the cluster.

" + "smithy.api#documentation": "

Deletes the specified capacity provider.

\n \n

The FARGATE and FARGATE_SPOT capacity providers are\n\t\t\t\treserved and can't be deleted. You can disassociate them from a cluster using either\n\t\t\t\t\tPutClusterCapacityProviders or by deleting the cluster.

\n
\n

Prior to a capacity provider being deleted, the capacity provider must be removed from\n\t\t\tthe capacity provider strategy from all services. The UpdateService API\n\t\t\tcan be used to remove a capacity provider from a service's capacity provider strategy.\n\t\t\tWhen updating a service, the forceNewDeployment option can be used to\n\t\t\tensure that any tasks using the Amazon EC2 instance capacity provided by the capacity\n\t\t\tprovider are transitioned to use the capacity from the remaining capacity providers.\n\t\t\tOnly capacity providers that aren't associated with a cluster can be deleted. To remove\n\t\t\ta capacity provider from a cluster, you can either use PutClusterCapacityProviders or delete the cluster.

" } }, "com.amazonaws.ecs#DeleteCapacityProviderRequest": { @@ -3895,7 +3895,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified cluster. The cluster transitions to the INACTIVE state. Clusters\n\t\t\twith an INACTIVE status might remain discoverable in your account for a period of time.\n\t\t\tHowever, this behavior is subject to change in the future. We don't recommend that you rely on\n\t\t\t\tINACTIVE clusters persisting.

\n

You must deregister all container instances from this cluster before you may delete it. You can list\n\t\t\tthe container instances in a cluster with ListContainerInstances\n\t\t\tand deregister them with DeregisterContainerInstance.

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

Deletes the specified cluster. The cluster transitions to the INACTIVE\n\t\t\tstate. Clusters with an INACTIVE status might remain discoverable in your\n\t\t\taccount for a period of time. However, this behavior is subject to change in the future.\n\t\t\tWe don't recommend that you rely on INACTIVE clusters persisting.

\n

You must deregister all container instances from this cluster before you may delete\n\t\t\tit. You can list the container instances in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.

", "smithy.api#examples": [ { "title": "To delete an empty cluster", @@ -3973,7 +3973,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a specified service within a cluster. You can delete a service if you have no running tasks\n\t\t\tin it and the desired task count is zero. If the service is actively maintaining tasks, you can't\n\t\t\tdelete it, and you must update the service to a desired task count of zero. For more information, see\n\t\t\t\tUpdateService.

\n \n

When you delete a service, if there are still running tasks that require cleanup, the service\n\t\t\t\tstatus moves from ACTIVE to DRAINING, and the service is no longer\n\t\t\t\tvisible in the console or in the ListServices API operation.\n\t\t\t\tAfter all tasks have transitioned to either STOPPING or STOPPED status,\n\t\t\t\tthe service status moves from DRAINING to INACTIVE. Services in the\n\t\t\t\t\tDRAINING or INACTIVE status can still be viewed with the DescribeServices API operation. However, in the future, INACTIVE services\n\t\t\t\tmay be cleaned up and purged from Amazon ECS record keeping, and DescribeServices calls on\n\t\t\t\tthose services return a ServiceNotFoundException error.

\n
\n \n

If you attempt to create a new service with the same name as an existing service in either\n\t\t\t\t\tACTIVE or DRAINING status, you receive an error.

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

Deletes a specified service within a cluster. You can delete a service if you have no\n\t\t\trunning tasks in it and the desired task count is zero. If the service is actively\n\t\t\tmaintaining tasks, you can't delete it, and you must update the service to a desired\n\t\t\ttask count of zero. For more information, see UpdateService.

\n \n

When you delete a service, if there are still running tasks that require cleanup,\n\t\t\t\tthe service status moves from ACTIVE to DRAINING, and the\n\t\t\t\tservice is no longer visible in the console or in the ListServices\n\t\t\t\tAPI operation. After all tasks have transitioned to either STOPPING or\n\t\t\t\t\tSTOPPED status, the service status moves from DRAINING\n\t\t\t\tto INACTIVE. Services in the DRAINING or\n\t\t\t\t\tINACTIVE status can still be viewed with the DescribeServices API operation. However, in the future,\n\t\t\t\t\tINACTIVE services may be cleaned up and purged from Amazon ECS record\n\t\t\t\tkeeping, and DescribeServices calls on those services return a\n\t\t\t\t\tServiceNotFoundException error.

\n
\n \n

If you attempt to create a new service with the same name as an existing service\n\t\t\t\tin either ACTIVE or DRAINING status, you receive an\n\t\t\t\terror.

\n
", "smithy.api#examples": [ { "title": "To delete a service", @@ -4005,7 +4005,7 @@ "force": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If true, allows you to delete a service even if it wasn't scaled down to zero tasks.\n\t\t\tIt's only necessary to use this if the service uses the REPLICA scheduling\n\t\t\tstrategy.

" + "smithy.api#documentation": "

If true, allows you to delete a service even if it wasn't scaled down to\n\t\t\tzero tasks. It's only necessary to use this if the service uses the REPLICA\n\t\t\tscheduling strategy.

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

Deletes one or more task definitions.

\n

You must deregister a task definition revision before you delete it. For more information, see DeregisterTaskDefinition.

\n

When you delete a task definition revision, it is immediately transitions from the\n\t\t\t\tINACTIVE to DELETE_IN_PROGRESS. Existing tasks and services that\n\t\t\treference a DELETE_IN_PROGRESS task definition revision continue to run without\n\t\t\tdisruption. Existing services that reference a DELETE_IN_PROGRESS task definition revision\n\t\t\tcan still scale up or down by modifying the service's desired count.

\n

You can't use a DELETE_IN_PROGRESS task definition revision to run new tasks or create\n\t\t\tnew services. You also can't update an existing service to reference a DELETE_IN_PROGRESS\n\t\t\ttask definition revision.

\n

A task definition revision will stay in DELETE_IN_PROGRESS status until all the\n\t\t\tassociated tasks and services have been terminated.

\n

When you delete all INACTIVE task definition revisions, the task definition name is not\n\t\t\tdisplayed in the console and not returned in the API. If a task definition revisions are in the\n\t\t\t\tDELETE_IN_PROGRESS state, the task definition name is displayed in the console and\n\t\t\treturned in the API. The task definition name is retained by Amazon ECS and the revision is incremented the\n\t\t\tnext time you create a task definition with that name.

" + "smithy.api#documentation": "

Deletes one or more task definitions.

\n

You must deregister a task definition revision before you delete it. For more\n\t\t\tinformation, see DeregisterTaskDefinition.

\n

When you delete a task definition revision, it is immediately transitions from the\n\t\t\t\tINACTIVE to DELETE_IN_PROGRESS. Existing tasks and\n\t\t\tservices that reference a DELETE_IN_PROGRESS task definition revision\n\t\t\tcontinue to run without disruption. Existing services that reference a\n\t\t\t\tDELETE_IN_PROGRESS task definition revision can still scale up or down\n\t\t\tby modifying the service's desired count.

\n

You can't use a DELETE_IN_PROGRESS task definition revision to run new\n\t\t\ttasks or create new services. You also can't update an existing service to reference a\n\t\t\t\tDELETE_IN_PROGRESS task definition revision.

\n

A task definition revision will stay in DELETE_IN_PROGRESS status until\n\t\t\tall the associated tasks and services have been terminated.

\n

When you delete all INACTIVE task definition revisions, the task\n\t\t\tdefinition name is not displayed in the console and not returned in the API. If a task\n\t\t\tdefinition revisions are in the DELETE_IN_PROGRESS state, the task\n\t\t\tdefinition name is displayed in the console and returned in the API. The task definition\n\t\t\tname is retained by Amazon ECS and the revision is incremented the next time you create a\n\t\t\ttask definition with that name.

" } }, "com.amazonaws.ecs#DeleteTaskDefinitionsRequest": { @@ -4059,7 +4059,7 @@ "taskDefinitions": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of\n\t\t\tthe task definition to delete. You must specify a revision.

\n

You can specify up to 10 task definitions as a comma separated list.

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

The family and revision (family:revision) or\n\t\t\tfull Amazon Resource Name (ARN) of the task definition to delete. You must specify a\n\t\t\t\trevision.

\n

You can specify up to 10 task definitions as a comma separated list.

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

Deletes a specified task set within a service. This is used when a service uses the\n\t\t\t\tEXTERNAL deployment controller type. For more information, see Amazon ECS deployment\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Deletes a specified task set within a service. This is used when a service uses the\n\t\t\t\tEXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#DeleteTaskSetRequest": { @@ -4135,14 +4135,14 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set found in to\n\t\t\tdelete.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tset found in to delete.

", "smithy.api#required": {} } }, "service": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service that hosts the task set to delete.

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

The short name or full Amazon Resource Name (ARN) of the service that hosts the task set to\n\t\t\tdelete.

", "smithy.api#required": {} } }, @@ -4156,7 +4156,7 @@ "force": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If true, you can delete a task set even if it hasn't been scaled down to zero.

" + "smithy.api#documentation": "

If true, you can delete a task set even if it hasn't been scaled down to\n\t\t\tzero.

" } } }, @@ -4190,13 +4190,13 @@ "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the deployment. The following describes each state.

\n
\n
PRIMARY
\n
\n

The most recent deployment of a service.

\n
\n
ACTIVE
\n
\n

A service deployment that still has running tasks, but are in the process of being\n\t\t\t\t\t\treplaced with a new PRIMARY deployment.

\n
\n
INACTIVE
\n
\n

A deployment that has been completely replaced.

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

The status of the deployment. The following describes each state.

\n
\n
PRIMARY
\n
\n

The most recent deployment of a service.

\n
\n
ACTIVE
\n
\n

A service deployment that still has running tasks, but are in the process\n\t\t\t\t\t\tof being replaced with a new PRIMARY deployment.

\n
\n
INACTIVE
\n
\n

A deployment that has been completely replaced.

\n
\n
" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The most recent task definition that was specified for the tasks in the service to use.

" + "smithy.api#documentation": "

The most recent task definition that was specified for the tasks in the service to\n\t\t\tuse.

" } }, "desiredCount": { @@ -4210,21 +4210,21 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks in the deployment that are in the PENDING status.

" + "smithy.api#documentation": "

The number of tasks in the deployment that are in the PENDING\n\t\t\tstatus.

" } }, "runningCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks in the deployment that are in the RUNNING status.

" + "smithy.api#documentation": "

The number of tasks in the deployment that are in the RUNNING\n\t\t\tstatus.

" } }, "failedTasks": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of consecutively failed tasks in the deployment. A task is considered a failure if the\n\t\t\tservice scheduler can't launch the task, the task doesn't transition to a RUNNING state,\n\t\t\tor if it fails any of its defined health checks and is stopped.

\n \n

Once a service deployment has one or more successfully running tasks, the failed task count\n\t\t\t\tresets to zero and stops being evaluated.

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

The number of consecutively failed tasks in the deployment. A task is considered a\n\t\t\tfailure if the service scheduler can't launch the task, the task doesn't transition to a\n\t\t\t\tRUNNING state, or if it fails any of its defined health checks and is\n\t\t\tstopped.

\n \n

Once a service deployment has one or more successfully running tasks, the failed\n\t\t\t\ttask count resets to zero and stops being evaluated.

\n
" } }, "createdAt": { @@ -4248,19 +4248,19 @@ "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The launch type the tasks in the service are using. For more information, see Amazon ECS Launch\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The launch type the tasks in the service are using. For more information, see Amazon ECS\n\t\t\t\tLaunch Types in the Amazon Elastic Container Service Developer Guide.

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only specified for\n\t\t\ttasks using the Fargate launch type. If one isn't specified, the LATEST\n\t\t\tplatform version is used. For more information, see Fargate Platform Versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only\n\t\t\tspecified for tasks using the Fargate launch type. If one isn't specified,\n\t\t\tthe LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" } }, "platformFamily": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The operating system that your tasks in the service, or tasks are running on. A platform family is\n\t\t\tspecified only for tasks using the Fargate launch type.

\n

All tasks that run as part of this service must use the same platformFamily value as\n\t\t\tthe service, for example, LINUX..

" + "smithy.api#documentation": "

The operating system that your tasks in the service, or tasks are running on. A\n\t\t\tplatform family is specified only for tasks using the Fargate launch type.

\n

All tasks that run as part of this service must use the same\n\t\t\t\tplatformFamily value as the service, for example, \n\t\t\tLINUX..

" } }, "networkConfiguration": { @@ -4272,7 +4272,7 @@ "rolloutState": { "target": "com.amazonaws.ecs#DeploymentRolloutState", "traits": { - "smithy.api#documentation": "\n

The rolloutState of a service is only returned for services that use the rolling\n\t\t\t\tupdate (ECS) deployment type that aren't behind a Classic Load Balancer.

\n
\n

The rollout state of the deployment. When a service deployment is started, it begins in an\n\t\t\t\tIN_PROGRESS state. When the service reaches a steady state, the deployment transitions\n\t\t\tto a COMPLETED state. If the service fails to reach a steady state and circuit breaker is\n\t\t\tturned on, the deployment transitions to a FAILED state. A deployment in\n\t\t\t\tFAILED state doesn't launch any new tasks. For more information, see DeploymentCircuitBreaker.

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

The rolloutState of a service is only returned for services that use\n\t\t\t\tthe rolling update (ECS) deployment type that aren't behind a\n\t\t\t\tClassic Load Balancer.

\n
\n

The rollout state of the deployment. When a service deployment is started, it begins\n\t\t\tin an IN_PROGRESS state. When the service reaches a steady state, the\n\t\t\tdeployment transitions to a COMPLETED state. If the service fails to reach\n\t\t\ta steady state and circuit breaker is turned on, the deployment transitions to a\n\t\t\t\tFAILED state. A deployment in FAILED state doesn't launch\n\t\t\tany new tasks. For more information, see DeploymentCircuitBreaker.

" } }, "rolloutStateReason": { @@ -4284,19 +4284,19 @@ "serviceConnectConfiguration": { "target": "com.amazonaws.ecs#ServiceConnectConfiguration", "traits": { - "smithy.api#documentation": "

The details of the Service Connect configuration that's used by this deployment. Compare the\n\t\t\tconfiguration between multiple deployments when troubleshooting issues with new deployments.

\n

The configuration for this service to discover and connect to\n\tservices, and be discovered by, and connected from, other services within a namespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The details of the Service Connect configuration that's used by this deployment.\n\t\t\tCompare the configuration between multiple deployments when troubleshooting issues with\n\t\t\tnew deployments.

\n

The configuration for this service to discover and connect to\n\tservices, and be discovered by, and connected from, other services within a namespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "serviceConnectResources": { "target": "com.amazonaws.ecs#ServiceConnectServiceResourceList", "traits": { - "smithy.api#documentation": "

The list of Service Connect resources that are associated with this deployment. Each list entry maps\n\t\t\ta discovery name to a Cloud Map service name.

" + "smithy.api#documentation": "

The list of Service Connect resources that are associated with this deployment. Each\n\t\t\tlist entry maps a discovery name to a Cloud Map service name.

" } }, "volumeConfigurations": { "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", "traits": { - "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure different\n\t\t\tsettings like the size, throughput, volumeType, and ecryption in ServiceManagedEBSVolumeConfiguration. The name of the volume must match the\n\t\t\t\tname from the task definition.

" + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure\n\t\t\tdifferent settings like the size, throughput, volumeType, and ecryption in ServiceManagedEBSVolumeConfiguration. The name of the volume\n\t\t\tmust match the name from the task definition.

" } }, "fargateEphemeralStorage": { @@ -4330,7 +4330,7 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If\n\t\t\trollback is used, when a service deployment fails, the service is rolled back to the last deployment\n\t\t\tthat completed successfully.

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

Determines whether to configure Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is used, when a service deployment fails, the service is rolled back\n\t\t\tto the last deployment that completed successfully.

", "smithy.api#required": {} } }, @@ -4338,13 +4338,13 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to use the CloudWatch alarm option in the service deployment process.

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

Determines whether to use the CloudWatch alarm option in the service deployment\n\t\t\tprocess.

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

One of the methods which provide a way for you to quickly identify when a deployment has failed, and\n\t\t\tthen to optionally roll back the failure to the last working deployment.

\n

When the alarms are generated, Amazon ECS sets the service deployment to failed. Set the rollback\n\t\t\tparameter to have Amazon ECS to roll back your service to the last completed deployment after a\n\t\t\tfailure.

\n

You can only use the DeploymentAlarms method to detect failures when the\n\t\t\t\tDeploymentController is set to ECS (rolling update).

\n

For more information, see Rolling update in the\n\t\t\t\t\n Amazon Elastic Container Service Developer Guide\n .

" + "smithy.api#documentation": "

One of the methods which provide a way for you to quickly identify when a deployment\n\t\t\thas failed, and then to optionally roll back the failure to the last working\n\t\t\tdeployment.

\n

When the alarms are generated, Amazon ECS sets the service deployment to failed. Set the\n\t\t\trollback parameter to have Amazon ECS to roll back your service to the last completed\n\t\t\tdeployment after a failure.

\n

You can only use the DeploymentAlarms method to detect failures when the\n\t\t\t\tDeploymentController is set to ECS (rolling\n\t\t\tupdate).

\n

For more information, see Rolling\n\t\t\t\tupdate in the \n Amazon Elastic Container Service Developer Guide\n .

" } }, "com.amazonaws.ecs#DeploymentCircuitBreaker": { @@ -4362,13 +4362,13 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If\n\t\t\trollback is on, when a service deployment fails, the service is rolled back to the last deployment that\n\t\t\tcompleted successfully.

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

Determines whether to configure Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is on, when a service deployment fails, the service is rolled back to\n\t\t\tthe last deployment that completed successfully.

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

The deployment circuit breaker can only be used for services using the rolling update\n\t\t\t\t\t(ECS) deployment type.

\n
\n

The deployment circuit breaker determines whether a service\n\t\t\tdeployment will fail if the service can't reach a steady state. If it is turned on, a service\n\t\t\tdeployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS\n\t\t\tto roll back your service to the last completed deployment after a failure. For more information, see\n\t\t\t\tRolling\n\t\t\t\tupdate in the Amazon Elastic Container Service Developer Guide.

\n

For more information about API failure reasons, see API failure reasons in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

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

The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (ECS) deployment type.

\n
\n

The deployment circuit breaker determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If it is turned\n\t\t\ton, a service deployment will transition to a failed state and stop launching new tasks.\n\t\t\tYou can also configure Amazon ECS to roll back your service to the last completed deployment\n\t\t\tafter a failure. For more information, see Rolling\n\t\t\t\tupdate in the Amazon Elastic Container Service Developer Guide.

\n

For more information about API failure reasons, see API failure\n\t\t\t\treasons in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#DeploymentConfiguration": { @@ -4377,19 +4377,19 @@ "deploymentCircuitBreaker": { "target": "com.amazonaws.ecs#DeploymentCircuitBreaker", "traits": { - "smithy.api#documentation": "\n

The deployment circuit breaker can only be used for services using the rolling update\n\t\t\t\t\t(ECS) deployment type.

\n
\n

The deployment circuit breaker determines whether a service\n\t\t\tdeployment will fail if the service can't reach a steady state. If you use the deployment circuit\n\t\t\tbreaker, a service deployment will transition to a failed state and stop launching new tasks. If you\n\t\t\tuse the rollback option, when a service deployment fails, the service is rolled back to the last\n\t\t\tdeployment that completed successfully. For more information, see Rolling update in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide\n

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

The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (ECS) deployment type.

\n
\n

The deployment circuit breaker determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If you use the\n\t\t\tdeployment circuit breaker, a service deployment will transition to a failed state and\n\t\t\tstop launching new tasks. If you use the rollback option, when a service deployment\n\t\t\tfails, the service is rolled back to the last deployment that completed successfully.\n\t\t\tFor more information, see Rolling\n\t\t\t\tupdate in the Amazon Elastic Container Service Developer\n\t\t\t\tGuide\n

" } }, "maximumPercent": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

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

\n

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

\n \n

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

\n
\n

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

" + "smithy.api#documentation": "

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

\n

The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting\n\t\t\treplacement tasks first and then stopping the unhealthy tasks, as long as cluster\n\t\t\tresources for starting replacement tasks are available. For more information about how\n\t\t\tthe scheduler replaces unhealthy tasks, see Amazon ECS\n\t\t\tservices.

\n

If a service is using either the blue/green (CODE_DEPLOY) or\n\t\t\t\tEXTERNAL deployment types, and tasks in the service use the\n\t\t\tEC2 launch type, the maximum percent\n\t\t\tvalue is set to the default value. The maximum percent\n\t\t\tvalue is used to define the upper limit on the number of the tasks in the service that\n\t\t\tremain in the RUNNING state while the container instances are in the\n\t\t\t\tDRAINING state.

\n \n

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

\n
\n

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

" } }, "minimumHealthyPercent": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

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

\n

For services that do not use a load balancer, the following should be\n\t\t\tnoted:

\n
    \n
  • \n

    A service is considered healthy if all essential containers within the tasks in the service\n\t\t\t\t\tpass their health checks.

    \n
  • \n
  • \n

    If a task has no essential containers with a health check defined, the service scheduler will\n\t\t\t\t\twait for 40 seconds after a task reaches a RUNNING state before the task is\n\t\t\t\t\tcounted towards the minimum healthy percent total.

    \n
  • \n
  • \n

    If a task has one or more essential containers with a health check defined, the service\n\t\t\t\t\tscheduler will wait for the task to reach a healthy status before counting it towards the\n\t\t\t\t\tminimum healthy percent total. A task is considered healthy when all essential containers\n\t\t\t\t\twithin the task have passed their health checks. The amount of time the service scheduler can\n\t\t\t\t\twait for is determined by the container health check settings.

    \n
  • \n
\n

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

\n
    \n
  • \n

    If a task has no essential containers with a health check defined, the service scheduler will\n\t\t\t\t\twait for the load balancer target group health check to return a healthy status before counting\n\t\t\t\t\tthe task towards the minimum healthy percent total.

    \n
  • \n
  • \n

    If a task has an essential container with a health check defined, the service scheduler will\n\t\t\t\t\twait for both the task to reach a healthy status and the load balancer target group health\n\t\t\t\t\tcheck to return a healthy status before counting the task towards the minimum healthy percent\n\t\t\t\t\ttotal.

    \n
  • \n
\n

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

\n

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

\n

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

\n \n

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

\n
\n

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

" + "smithy.api#documentation": "

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

\n

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

\n

For services that do not use a load balancer, the following\n\t\t\tshould be noted:

\n
    \n
  • \n

    A service is considered healthy if all essential containers within the tasks\n\t\t\t\t\tin the service pass their health checks.

    \n
  • \n
  • \n

    If a task has no essential containers with a health check defined, the service\n\t\t\t\t\tscheduler will wait for 40 seconds after a task reaches a RUNNING\n\t\t\t\t\tstate before the task is counted towards the minimum healthy percent\n\t\t\t\t\ttotal.

    \n
  • \n
  • \n

    If a task has one or more essential containers with a health check defined,\n\t\t\t\t\tthe service scheduler will wait for the task to reach a healthy status before\n\t\t\t\t\tcounting it towards the minimum healthy percent total. A task is considered\n\t\t\t\t\thealthy when all essential containers within the task have passed their health\n\t\t\t\t\tchecks. The amount of time the service scheduler can wait for is determined by\n\t\t\t\t\tthe container health check settings.

    \n
  • \n
\n

For services that do use a load balancer, the following should be\n\t\t\tnoted:

\n
    \n
  • \n

    If a task has no essential containers with a health check defined, the service\n\t\t\t\t\tscheduler will wait for the load balancer target group health check to return a\n\t\t\t\t\thealthy status before counting the task towards the minimum healthy percent\n\t\t\t\t\ttotal.

    \n
  • \n
  • \n

    If a task has an essential container with a health check defined, the service\n\t\t\t\t\tscheduler will wait for both the task to reach a healthy status and the load\n\t\t\t\t\tbalancer target group health check to return a healthy status before counting\n\t\t\t\t\tthe task towards the minimum healthy percent total.

    \n
  • \n
\n

The default value for a replica service for minimumHealthyPercent is\n\t\t\t100%. The default minimumHealthyPercent value for a service using the\n\t\t\t\tDAEMON service schedule is 0% for the CLI, the Amazon Web Services SDKs, and the\n\t\t\tAPIs and 50% for the Amazon Web Services Management Console.

\n

The minimum number of healthy tasks during a deployment is the\n\t\t\t\tdesiredCount multiplied by the minimumHealthyPercent/100,\n\t\t\trounded up to the nearest integer value.

\n

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

\n \n

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

\n
\n

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

" } }, "alarms": { @@ -4400,7 +4400,7 @@ } }, "traits": { - "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during a deployment and the ordering\n\t\t\tof stopping and starting tasks.

" + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during a deployment and\n\t\t\tthe ordering of stopping and starting tasks.

" } }, "com.amazonaws.ecs#DeploymentController": { @@ -4409,7 +4409,7 @@ "type": { "target": "com.amazonaws.ecs#DeploymentControllerType", "traits": { - "smithy.api#documentation": "

The deployment controller type to use.

\n

There are three deployment controller types available:

\n
\n
ECS
\n
\n

The rolling update (ECS) deployment type involves replacing the current\n\t\t\t\t\t\trunning version of the container with the latest version. The number of containers Amazon ECS\n\t\t\t\t\t\tadds or removes from the service during a rolling update is controlled by adjusting the\n\t\t\t\t\t\tminimum and maximum number of healthy tasks allowed during a service deployment, as\n\t\t\t\t\t\tspecified in the DeploymentConfiguration.

\n

For more information about rolling deployments, see Deploy Amazon ECS services by replacing tasks in the Amazon Elastic Container Service Developer Guide.

\n
\n
CODE_DEPLOY
\n
\n

The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment\n\t\t\t\t\t\tmodel powered by CodeDeploy, which allows you to verify a new deployment of a service before\n\t\t\t\t\t\tsending production traffic to it.

\n

For more information about blue/green deployments, see Validate the state of an Amazon ECS service before deployment in the Amazon Elastic Container Service Developer Guide.

\n
\n
EXTERNAL
\n
\n

The external (EXTERNAL) deployment type enables you to use any third-party\n\t\t\t\t\t\tdeployment controller for full control over the deployment process for an Amazon ECS\n\t\t\t\t\t\tservice.

\n

For more information about external deployments, see Deploy Amazon ECS services using a third-party controller in the Amazon Elastic Container Service Developer Guide.

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

The deployment controller type to use.

\n

There are three deployment controller types available:

\n
\n
ECS
\n
\n

The rolling update (ECS) deployment type involves replacing\n\t\t\t\t\t\tthe current running version of the container with the latest version. The\n\t\t\t\t\t\tnumber of containers Amazon ECS adds or removes from the service during a rolling\n\t\t\t\t\t\tupdate is controlled by adjusting the minimum and maximum number of healthy\n\t\t\t\t\t\ttasks allowed during a service deployment, as specified in the DeploymentConfiguration.

\n

For more information about rolling deployments, see Deploy\n\t\t\t\t\t\t\tAmazon ECS services by replacing tasks in the Amazon Elastic Container Service Developer Guide.

\n
\n
CODE_DEPLOY
\n
\n

The blue/green (CODE_DEPLOY) deployment type uses the\n\t\t\t\t\t\tblue/green deployment model powered by CodeDeploy, which allows you to verify a\n\t\t\t\t\t\tnew deployment of a service before sending production traffic to it.

\n

For more information about blue/green deployments, see Validate the state of an Amazon ECS service before deployment in\n\t\t\t\t\t\tthe Amazon Elastic Container Service Developer Guide.

\n
\n
EXTERNAL
\n
\n

The external (EXTERNAL) deployment type enables you to use\n\t\t\t\t\t\tany third-party deployment controller for full control over the deployment\n\t\t\t\t\t\tprocess for an Amazon ECS service.

\n

For more information about external deployments, see Deploy Amazon ECS services using a third-party controller in the\n\t\t\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n
\n
", "smithy.api#required": {} } } @@ -4447,7 +4447,7 @@ "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for deployment.

" + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for\n\t\t\tdeployment.

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

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer\n\t\t\tavailable to run tasks.

\n

If you intend to use the container instance for some other purpose after deregistration, we recommend\n\t\t\tthat you stop all of the tasks running on the container instance before deregistration. That prevents\n\t\t\tany orphaned tasks from consuming resources.

\n

Deregistering a container instance removes the instance from a cluster, but it doesn't terminate the\n\t\t\tEC2 instance. If you are finished using the instance, be sure to terminate it in the Amazon EC2 console to\n\t\t\tstop billing.

\n \n

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from\n\t\t\t\tyour cluster (stopped container instances or instances with disconnected agents aren't\n\t\t\t\tautomatically deregistered when terminated).

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

Deregisters an Amazon ECS container instance from the specified cluster. This instance is\n\t\t\tno longer available to run tasks.

\n

If you intend to use the container instance for some other purpose after\n\t\t\tderegistration, we recommend that you stop all of the tasks running on the container\n\t\t\tinstance before deregistration. That prevents any orphaned tasks from consuming\n\t\t\tresources.

\n

Deregistering a container instance removes the instance from a cluster, but it doesn't\n\t\t\tterminate the EC2 instance. If you are finished using the instance, be sure to terminate\n\t\t\tit in the Amazon EC2 console to stop billing.

\n \n

If you terminate a running container instance, Amazon ECS automatically deregisters the\n\t\t\t\tinstance from your cluster (stopped container instances or instances with\n\t\t\t\tdisconnected agents aren't automatically deregistered when terminated).

\n
", "smithy.api#examples": [ { "title": "To deregister a container instance from a cluster", @@ -4528,20 +4528,20 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to\n\t\t\tderegister. If you do not specify a cluster, the default cluster is assumed.

" } }, "containerInstance": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The container instance ID or full ARN of the container instance to deregister. For more information\n\t\t\tabout the ARN format, see Amazon Resource Name (ARN)\n\t\t\tin the Amazon ECS Developer Guide.

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

The container instance ID or full ARN of the container instance to deregister. For\n\t\t\tmore information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

", "smithy.api#required": {} } }, "force": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Forces the container instance to be deregistered. If you have tasks running on the container instance\n\t\t\twhen you deregister it with the force option, these tasks remain running until you\n\t\t\tterminate the instance or the tasks stop through some other means, but they're orphaned (no longer\n\t\t\tmonitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an\n\t\t\tAmazon ECS service, then the service scheduler starts another copy of that task, on a different container\n\t\t\tinstance if possible.

\n

Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group\n\t\t\tare deregistered. They begin connection draining according to the settings on the load balancer or\n\t\t\ttarget group.

" + "smithy.api#documentation": "

Forces the container instance to be deregistered. If you have tasks running on the\n\t\t\tcontainer instance when you deregister it with the force option, these\n\t\t\ttasks remain running until you terminate the instance or the tasks stop through some\n\t\t\tother means, but they're orphaned (no longer monitored or accounted for by Amazon ECS). If an\n\t\t\torphaned task on your container instance is part of an Amazon ECS service, then the service\n\t\t\tscheduler starts another copy of that task, on a different container instance if\n\t\t\tpossible.

\n

Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer\n\t\t\ttarget group are deregistered. They begin connection draining according to the settings\n\t\t\ton the load balancer or target group.

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

Deregisters the specified task definition by family and revision. Upon deregistration, the task\n\t\t\tdefinition is marked as INACTIVE. Existing tasks and services that reference an\n\t\t\t\tINACTIVE task definition continue to run without disruption. Existing services that\n\t\t\treference an INACTIVE task definition can still scale up or down by modifying the\n\t\t\tservice's desired count. If you want to delete a task definition revision, you must first deregister\n\t\t\tthe task definition revision.

\n

You can't use an INACTIVE task definition to run new tasks or create new services, and\n\t\t\tyou can't update an existing service to reference an INACTIVE task definition. However,\n\t\t\tthere may be up to a 10-minute window following deregistration where these restrictions have not yet\n\t\t\ttaken effect.

\n \n

At this time, INACTIVE task definitions remain discoverable in your account\n\t\t\t\tindefinitely. However, this behavior is subject to change in the future. We don't recommend that\n\t\t\t\tyou rely on INACTIVE task definitions persisting beyond the lifecycle of any\n\t\t\t\tassociated tasks and services.

\n
\n

You must deregister a task definition revision before you delete it. For more information, see DeleteTaskDefinitions.

" + "smithy.api#documentation": "

Deregisters the specified task definition by family and revision. Upon deregistration,\n\t\t\tthe task definition is marked as INACTIVE. Existing tasks and services that\n\t\t\treference an INACTIVE task definition continue to run without disruption.\n\t\t\tExisting services that reference an INACTIVE task definition can still\n\t\t\tscale up or down by modifying the service's desired count. If you want to delete a task\n\t\t\tdefinition revision, you must first deregister the task definition revision.

\n

You can't use an INACTIVE task definition to run new tasks or create new\n\t\t\tservices, and you can't update an existing service to reference an INACTIVE\n\t\t\ttask definition. However, there may be up to a 10-minute window following deregistration\n\t\t\twhere these restrictions have not yet taken effect.

\n \n

At this time, INACTIVE task definitions remain discoverable in your\n\t\t\t\taccount indefinitely. However, this behavior is subject to change in the future. We\n\t\t\t\tdon't recommend that you rely on INACTIVE task definitions persisting\n\t\t\t\tbeyond the lifecycle of any associated tasks and services.

\n
\n

You must deregister a task definition revision before you delete it. For more\n\t\t\tinformation, see DeleteTaskDefinitions.

" } }, "com.amazonaws.ecs#DeregisterTaskDefinitionRequest": { @@ -4592,7 +4592,7 @@ "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of\n\t\t\tthe task definition to deregister. You must specify a revision.

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

The family and revision (family:revision) or\n\t\t\tfull Amazon Resource Name (ARN) of the task definition to deregister. You must specify a\n\t\t\t\trevision.

", "smithy.api#required": {} } } @@ -4644,25 +4644,25 @@ "capacityProviders": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to 100 capacity\n\t\t\tproviders can be described in an action.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to\n\t\t\t\t100 capacity providers can be described in an action.

" } }, "include": { "target": "com.amazonaws.ecs#CapacityProviderFieldList", "traits": { - "smithy.api#documentation": "

Specifies whether or not you want to see the resource tags for the capacity provider. If\n\t\t\t\tTAGS is specified, the tags are included in the response. If this field is omitted,\n\t\t\ttags aren't included in the response.

" + "smithy.api#documentation": "

Specifies whether or not you want to see the resource tags for the capacity provider.\n\t\t\tIf TAGS is specified, the tags are included in the response. If this field\n\t\t\tis omitted, tags aren't included in the response.

" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of account setting results returned by DescribeCapacityProviders in\n\t\t\tpaginated output. When this parameter is used, DescribeCapacityProviders only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tDescribeCapacityProviders request with the returned nextToken value. This\n\t\t\tvalue can be between 1 and 10. If\n\t\t\tthis parameter is not used, then DescribeCapacityProviders returns up to\n\t\t\t10 results and a nextToken value if\n\t\t\tapplicable.

" + "smithy.api#documentation": "

The maximum number of account setting results returned by\n\t\t\t\tDescribeCapacityProviders in paginated output. When this parameter is\n\t\t\tused, DescribeCapacityProviders only returns maxResults\n\t\t\tresults in a single page along with a nextToken response element. The\n\t\t\tremaining results of the initial request can be seen by sending another\n\t\t\t\tDescribeCapacityProviders request with the returned\n\t\t\t\tnextToken value. This value can be between\n\t\t\t1 and 10. If this\n\t\t\tparameter is not used, then DescribeCapacityProviders returns up to\n\t\t\t10 results and a nextToken value\n\t\t\tif applicable.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a previous paginated\n\t\t\t\tDescribeCapacityProviders request where maxResults was used and the\n\t\t\tresults exceeded the value of that parameter. Pagination continues from the end of the previous results\n\t\t\tthat returned the nextToken value.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a previous paginated\n\t\t\t\tDescribeCapacityProviders request where maxResults was\n\t\t\tused and the results exceeded the value of that parameter. Pagination continues from the\n\t\t\tend of the previous results that returned the nextToken value.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } } }, @@ -4688,7 +4688,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future DescribeCapacityProviders\n\t\t\trequest. When the results of a DescribeCapacityProviders request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of results. This value is\n\t\t\t\tnull when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tDescribeCapacityProviders request. When the results of a\n\t\t\t\tDescribeCapacityProviders request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null\n\t\t\twhen there are no more results to return.

" } } }, @@ -4746,13 +4746,13 @@ "clusters": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" } }, "include": { "target": "com.amazonaws.ecs#ClusterFieldList", "traits": { - "smithy.api#documentation": "

Determines whether to include additional information about the clusters in the response. If this\n\t\t\tfield is omitted, this information isn't included.

\n

If ATTACHMENTS is specified, the attachments for the container instances or tasks within\n\t\t\tthe cluster are included, for example the capacity providers.

\n

If SETTINGS is specified, the settings for the cluster are included.

\n

If CONFIGURATIONS is specified, the configuration for the cluster is included.

\n

If STATISTICS is specified, the task and service count is included, separated by launch\n\t\t\ttype.

\n

If TAGS is specified, the metadata tags associated with the cluster are included.

" + "smithy.api#documentation": "

Determines whether to include additional information about the clusters in the\n\t\t\tresponse. If this field is omitted, this information isn't included.

\n

If ATTACHMENTS is specified, the attachments for the container instances\n\t\t\tor tasks within the cluster are included, for example the capacity providers.

\n

If SETTINGS is specified, the settings for the cluster are\n\t\t\tincluded.

\n

If CONFIGURATIONS is specified, the configuration for the cluster is\n\t\t\tincluded.

\n

If STATISTICS is specified, the task and service count is included,\n\t\t\tseparated by launch type.

\n

If TAGS is specified, the metadata tags associated with the cluster are\n\t\t\tincluded.

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

Describes one or more container instances. Returns metadata about each container instance\n\t\t\trequested.

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

Describes one or more container instances. Returns metadata about each container\n\t\t\tinstance requested.

", "smithy.api#examples": [ { "title": "To describe container instance", @@ -4896,7 +4896,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed. This parameter is required if the container instance or container instances\n\t\t\tyou are describing were launched in any cluster other than the default cluster.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to\n\t\t\tdescribe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the container instance\n\t\t\tor container instances you are describing were launched in any cluster other than the\n\t\t\tdefault cluster.

" } }, "containerInstances": { @@ -4909,7 +4909,7 @@ "include": { "target": "com.amazonaws.ecs#ContainerInstanceFieldList", "traits": { - "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the container instance. If TAGS\n\t\t\tis specified, the tags are included in the response. If CONTAINER_INSTANCE_HEALTH is\n\t\t\tspecified, the container instance health is included in the response. If this field is omitted, tags\n\t\t\tand container instance health status aren't included in the response.

" + "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the container instance. If\n\t\t\t\tTAGS is specified, the tags are included in the response. If\n\t\t\t\tCONTAINER_INSTANCE_HEALTH is specified, the container instance health\n\t\t\tis included in the response. If this field is omitted, tags and container instance\n\t\t\thealth status aren't included in the response.

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

Describes one or more of your service deployments.

\n

A service deployment happens when you release a software update for the service. For more information, see Amazon ECS service deployments.

" + "smithy.api#documentation": "

Describes one or more of your service deployments.

\n

A service deployment happens when you release a software update for the service. For\n\t\t\tmore information, see Amazon ECS service\n\t\t\t\tdeployments.

" } }, "com.amazonaws.ecs#DescribeServiceDeploymentsRequest": { @@ -4999,7 +4999,7 @@ "failures": { "target": "com.amazonaws.ecs#Failures", "traits": { - "smithy.api#documentation": "

Any failures associated with the call.

\n

If you decsribe a deployment with a service revision created before October 25, 2024, the\n\t\t\tcall fails. The failure includes the service revision ARN and the reason set to\n\t\t\tMISSING.

" + "smithy.api#documentation": "

Any failures associated with the call.

\n

If you decsribe a deployment with a service revision created before October 25, 2024,\n\t\t\tthe call fails. The failure includes the service revision ARN and the reason set to\n\t\t\t\tMISSING.

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

Describes one or more service revisions.

\n

A service revision is a version of the service that includes the values for the Amazon ECS\n\t\t\tresources (for example, task definition) and the environment resources (for example,\n\t\t\tload balancers, subnets, and security groups). For more information, see Amazon ECS service revisions.

\n

You can't describe a service revision that was created before October 25, 2024.

" + "smithy.api#documentation": "

Describes one or more service revisions.

\n

A service revision is a version of the service that includes the values for the Amazon\n\t\t\tECS resources (for example, task definition) and the environment resources (for example,\n\t\t\tload balancers, subnets, and security groups). For more information, see Amazon ECS service revisions.

\n

You can't describe a service revision that was created before October 25, 2024.

" } }, "com.amazonaws.ecs#DescribeServiceRevisionsRequest": { @@ -5048,7 +5048,7 @@ "serviceRevisionArns": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The ARN of the service revision.

\n

You can specify a maximum of 20 ARNs.

\n

You can call ListServiceDeployments to\n\t\t\tget the ARNs.

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

The ARN of the service revision.

\n

You can specify a maximum of 20 ARNs.

\n

You can call ListServiceDeployments to get the ARNs.

", "smithy.api#required": {} } } @@ -5232,20 +5232,20 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are describing were\n\t\t\tlaunched in any cluster other than the default cluster.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are\n\t\t\tdescribing were launched in any cluster other than the default cluster.

" } }, "services": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A list of services to describe. You may specify up to 10 services to describe in a single\n\t\t\toperation.

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

A list of services to describe. You may specify up to 10 services to describe in a\n\t\t\tsingle operation.

", "smithy.api#required": {} } }, "include": { "target": "com.amazonaws.ecs#ServiceFieldList", "traits": { - "smithy.api#documentation": "

Determines whether you want to see the resource tags for the service. If TAGS is\n\t\t\tspecified, the tags are included in the response. If this field is omitted, tags aren't included in the\n\t\t\tresponse.

" + "smithy.api#documentation": "

Determines whether you want to see the resource tags for the service. If\n\t\t\t\tTAGS is specified, the tags are included in the response. If this field\n\t\t\tis omitted, tags aren't included in the response.

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

Describes a task definition. You can specify a family and revision to find\n\t\t\tinformation about a specific task definition, or you can simply specify the family to find the latest\n\t\t\t\tACTIVE revision in that family.

\n \n

You can only describe INACTIVE task definitions while an active task or service\n\t\t\t\treferences them.

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

Describes a task definition. You can specify a family and\n\t\t\t\trevision to find information about a specific task definition, or you\n\t\t\tcan simply specify the family to find the latest ACTIVE revision in that\n\t\t\tfamily.

\n \n

You can only describe INACTIVE task definitions while an active task\n\t\t\t\tor service references them.

\n
", "smithy.api#examples": [ { "title": "To describe a task definition", @@ -5356,14 +5356,14 @@ "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family for the latest ACTIVE revision, family and\n\t\t\t\trevision (family:revision) for a specific revision in the family, or full\n\t\t\tAmazon Resource Name (ARN) of the task definition to describe.

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

The family for the latest ACTIVE revision,\n\t\t\t\tfamily and revision (family:revision) for a\n\t\t\tspecific revision in the family, or full Amazon Resource Name (ARN) of the task definition to\n\t\t\tdescribe.

", "smithy.api#required": {} } }, "include": { "target": "com.amazonaws.ecs#TaskDefinitionFieldList", "traits": { - "smithy.api#documentation": "

Determines whether to see the resource tags for the task definition. If TAGS is\n\t\t\tspecified, the tags are included in the response. If this field is omitted, tags aren't included in the\n\t\t\tresponse.

" + "smithy.api#documentation": "

Determines whether to see the resource tags for the task definition. If\n\t\t\t\tTAGS is specified, the tags are included in the response. If this field\n\t\t\tis omitted, tags aren't included in the response.

" } } }, @@ -5383,7 +5383,7 @@ "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that's applied to the task definition to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that's applied to the task definition to help you categorize and organize\n\t\t\tthem. Each tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } } }, @@ -5426,7 +5426,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the task sets in the specified cluster and service. This is used when a service uses the\n\t\t\t\tEXTERNAL deployment controller type. For more information, see Amazon ECS Deployment\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Describes the task sets in the specified cluster and service. This is used when a\n\t\t\tservice uses the EXTERNAL deployment controller type. For more information,\n\t\t\tsee Amazon ECS Deployment\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#DescribeTaskSetsRequest": { @@ -5435,7 +5435,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tsets exist in.

", "smithy.api#required": {} } }, @@ -5449,13 +5449,13 @@ "taskSets": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The ID or full Amazon Resource Name (ARN) of task sets to describe.

" + "smithy.api#documentation": "

The ID or full Amazon Resource Name (ARN) of task sets to\n\t\t\tdescribe.

" } }, "include": { "target": "com.amazonaws.ecs#TaskSetFieldList", "traits": { - "smithy.api#documentation": "

Specifies whether to see the resource tags for the task set. If TAGS is specified, the\n\t\t\ttags are included in the response. If this field is omitted, tags aren't included in the\n\t\t\tresponse.

" + "smithy.api#documentation": "

Specifies whether to see the resource tags for the task set. If TAGS is\n\t\t\tspecified, the tags are included in the response. If this field is omitted, tags aren't\n\t\t\tincluded in the response.

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

Describes a specified task or tasks.

\n

Currently, stopped tasks appear in the returned results for at least one hour.

\n

If you have tasks with tags, and then delete the cluster, the tagged tasks are returned in the\n\t\t\tresponse. If you create a new cluster with the same name as the deleted cluster, the tagged tasks are\n\t\t\tnot included in the response.

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

Describes a specified task or tasks.

\n

Currently, stopped tasks appear in the returned results for at least one hour.

\n

If you have tasks with tags, and then delete the cluster, the tagged tasks are\n\t\t\treturned in the response. If you create a new cluster with the same name as the deleted\n\t\t\tcluster, the tagged tasks are not included in the response.

", "smithy.api#examples": [ { "title": "To describe a task", @@ -5614,7 +5614,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to describe.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed. This parameter is required. If you do not specify a value, the\n\t\t\t\tdefault cluster is used.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to\n\t\t\tdescribe. If you do not specify a cluster, the default cluster is assumed. This parameter is required. If you do not specify a\n\t\t\tvalue, the default cluster is used.

" } }, "tasks": { @@ -5627,7 +5627,7 @@ "include": { "target": "com.amazonaws.ecs#TaskFieldList", "traits": { - "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the task. If TAGS is specified,\n\t\t\tthe tags are included in the response. If this field is omitted, tags aren't included in the\n\t\t\tresponse.

" + "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the task. If TAGS\n\t\t\tis specified, the tags are included in the response. If this field is omitted, tags\n\t\t\taren't included in the response.

" } } }, @@ -5697,7 +5697,7 @@ "permissions": { "target": "com.amazonaws.ecs#DeviceCgroupPermissions", "traits": { - "smithy.api#documentation": "

The explicit permissions to provide to the container for the device. By default, the container has\n\t\t\tpermissions for read, write, and mknod for the device.

" + "smithy.api#documentation": "

The explicit permissions to provide to the container for the device. By default, the\n\t\t\tcontainer has permissions for read, write, and\n\t\t\t\tmknod for the device.

" } } }, @@ -5766,13 +5766,13 @@ "containerInstance": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The container instance ID or full ARN of the container instance. For more information about the\n\t\t\tARN format, see Amazon Resource Name (ARN)\n\t\t\tin the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The container instance ID or full ARN of the container instance. For more\n\t\t\tinformation about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" } }, "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs\n\t\t\tto.

" } } }, @@ -5821,36 +5821,36 @@ "scope": { "target": "com.amazonaws.ecs#Scope", "traits": { - "smithy.api#documentation": "

The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a\n\t\t\t\ttask are automatically provisioned when the task starts and destroyed when the task\n\t\t\tstops. Docker volumes that are scoped as shared persist after the task stops.

" + "smithy.api#documentation": "

The scope for the Docker volume that determines its lifecycle. Docker volumes that are\n\t\t\tscoped to a task are automatically provisioned when the task starts and\n\t\t\tdestroyed when the task stops. Docker volumes that are scoped as shared\n\t\t\tpersist after the task stops.

" } }, "autoprovision": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If this value is true, the Docker volume is created if it doesn't already exist.

\n \n

This field is only used if the scope is shared.

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

If this value is true, the Docker volume is created if it doesn't already\n\t\t\texist.

\n \n

This field is only used if the scope is shared.

\n
" } }, "driver": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Docker volume driver to use. The driver value must match the driver name provided by Docker\n\t\t\tbecause it is used for task placement. If the driver was installed using the Docker plugin CLI, use\n\t\t\t\tdocker plugin ls to retrieve the driver name from your container instance. If the\n\t\t\tdriver was installed using another method, use Docker plugin discovery to retrieve the driver name.\n\t\t\tThis parameter maps to Driver in the docker container create command and the\n\t\t\t\txxdriver option to docker volume create.

" + "smithy.api#documentation": "

The Docker volume driver to use. The driver value must match the driver name provided\n\t\t\tby Docker because it is used for task placement. If the driver was installed using the\n\t\t\tDocker plugin CLI, use docker plugin ls to retrieve the driver name from\n\t\t\tyour container instance. If the driver was installed using another method, use Docker\n\t\t\tplugin discovery to retrieve the driver name. This parameter maps to Driver\n\t\t\tin the docker container create command and the xxdriver option to docker\n\t\t\tvolume create.

" } }, "driverOpts": { "target": "com.amazonaws.ecs#StringMap", "traits": { - "smithy.api#documentation": "

A map of Docker driver-specific options passed through. This parameter maps to\n\t\t\t\tDriverOpts in the docker create-volume command and the xxopt option to\n\t\t\tdocker volume create.

" + "smithy.api#documentation": "

A map of Docker driver-specific options passed through. This parameter maps to\n\t\t\t\tDriverOpts in the docker create-volume command and the\n\t\t\t\txxopt option to docker volume create.

" } }, "labels": { "target": "com.amazonaws.ecs#StringMap", "traits": { - "smithy.api#documentation": "

Custom metadata to add to your Docker volume. This parameter maps to Labels in the\n\t\t\tdocker container create command and the xxlabel option to docker volume create.

" + "smithy.api#documentation": "

Custom metadata to add to your Docker volume. This parameter maps to\n\t\t\t\tLabels in the docker container create command and the\n\t\t\t\txxlabel option to docker volume create.

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

This parameter is specified when you're using Docker volumes. Docker volumes are only supported when\n\t\t\tyou're using the EC2 launch type. Windows containers only support the use of the\n\t\t\t\tlocal driver. To use bind mounts, specify a host instead.

" + "smithy.api#documentation": "

This parameter is specified when you're using Docker volumes. Docker volumes are only\n\t\t\tsupported when you're using the EC2 launch type. Windows containers only\n\t\t\tsupport the use of the local driver. To use bind mounts, specify a\n\t\t\t\thost instead.

" } }, "com.amazonaws.ecs#Double": { @@ -5904,7 +5904,7 @@ "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition to \u2028the Amazon EBS volume. Tags can only\n\t\t\tpropagate to a SERVICE specified in \u2028ServiceVolumeConfiguration. If no value\n\t\t\tis specified, the tags aren't \u2028propagated.

" + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition to \u2028the Amazon EBS\n\t\t\tvolume. Tags can only propagate to a SERVICE specified in\n\t\t\t\t\u2028ServiceVolumeConfiguration. If no value is specified, the tags aren't\n\t\t\t\u2028propagated.

" } } }, @@ -5930,13 +5930,13 @@ "accessPointId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified\n\t\t\tin the EFSVolumeConfiguration must either be omitted or set to / which will\n\t\t\tenforce the path set on the EFS access point. If an access point is used, transit encryption must be on\n\t\t\tin the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the\n\t\t\tAmazon Elastic File System User Guide.

" + "smithy.api#documentation": "

The Amazon EFS access point ID to use. If an access point is specified, the root directory\n\t\t\tvalue specified in the EFSVolumeConfiguration must either be omitted or set\n\t\t\tto / which will enforce the path set on the EFS access point. If an access\n\t\t\tpoint is used, transit encryption must be on in the EFSVolumeConfiguration.\n\t\t\tFor more information, see Working with Amazon EFS access\n\t\t\t\tpoints in the Amazon Elastic File System User Guide.

" } }, "iam": { "target": "com.amazonaws.ecs#EFSAuthorizationConfigIAM", "traits": { - "smithy.api#documentation": "

Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS\n\t\t\tfile system. If it is turned on, transit encryption must be turned on in the\n\t\t\t\tEFSVolumeConfiguration. If this parameter is omitted, the default value of\n\t\t\t\tDISABLED is used. For more information, see Using Amazon EFS access\n\t\t\t\tpoints in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Determines whether to use the Amazon ECS task role defined in a task definition when\n\t\t\tmounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on\n\t\t\tin the EFSVolumeConfiguration. If this parameter is omitted, the default\n\t\t\tvalue of DISABLED is used. For more information, see Using\n\t\t\t\tAmazon EFS access points in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -5991,19 +5991,19 @@ "rootDirectory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The directory within the Amazon EFS file system to mount as the root directory inside the host. If this\n\t\t\tparameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have\n\t\t\tthe same effect as omitting this parameter.

\n \n

If an EFS access point is specified in the authorizationConfig, the root directory\n\t\t\t\tparameter must either be omitted or set to / which will enforce the path set on the\n\t\t\t\tEFS access point.

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

The directory within the Amazon EFS file system to mount as the root directory inside the\n\t\t\thost. If this parameter is omitted, the root of the Amazon EFS volume will be used.\n\t\t\tSpecifying / will have the same effect as omitting this parameter.

\n \n

If an EFS access point is specified in the authorizationConfig, the\n\t\t\t\troot directory parameter must either be omitted or set to / which will\n\t\t\t\tenforce the path set on the EFS access point.

\n
" } }, "transitEncryption": { "target": "com.amazonaws.ecs#EFSTransitEncryption", "traits": { - "smithy.api#documentation": "

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS\n\t\t\tserver. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is\n\t\t\tomitted, the default value of DISABLED is used. For more information, see Encrypting data in\n\t\t\t\ttransit in the Amazon Elastic File System User Guide.

" + "smithy.api#documentation": "

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host\n\t\t\tand the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization\n\t\t\tis used. If this parameter is omitted, the default value of DISABLED is\n\t\t\tused. For more information, see Encrypting data in transit in\n\t\t\tthe Amazon Elastic File System User Guide.

" } }, "transitEncryptionPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do\n\t\t\tnot specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount\n\t\t\thelper uses. For more information, see EFS mount helper in the Amazon Elastic File System User Guide.

" + "smithy.api#documentation": "

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS\n\t\t\tserver. If you do not specify a transit encryption port, it will use the port selection\n\t\t\tstrategy that the Amazon EFS mount helper uses. For more information, see EFS mount\n\t\t\t\thelper in the Amazon Elastic File System User Guide.

" } }, "authorizationConfig": { @@ -6014,7 +6014,7 @@ } }, "traits": { - "smithy.api#documentation": "

This parameter is specified when you're using an Amazon Elastic File System file system for task storage. For more\n\t\t\tinformation, see Amazon EFS volumes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

This parameter is specified when you're using an Amazon Elastic File System file system for task\n\t\t\tstorage. For more information, see Amazon EFS volumes in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#EnvironmentFile": { @@ -6023,20 +6023,20 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable\n\t\t\tfile.

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

The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment\n\t\t\tvariable file.

", "smithy.api#required": {} } }, "type": { "target": "com.amazonaws.ecs#EnvironmentFileType", "traits": { - "smithy.api#documentation": "

The file type to use. Environment files are objects in Amazon S3. The only supported value is\n\t\t\t\ts3.

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

The file type to use. Environment files are objects in Amazon S3. The only supported value\n\t\t\tis s3.

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

A list of files containing the environment variables to pass to a container. You can specify up to\n\t\t\tten environment files. The file must have a .env file extension. Each line in an\n\t\t\tenvironment file should contain an environment variable in VARIABLE=VALUE format. Lines\n\t\t\tbeginning with # are treated as comments and are ignored.

\n

If there are environment variables specified using the environment parameter in a\n\t\t\tcontainer definition, they take precedence over the variables contained within an environment file. If\n\t\t\tmultiple environment files are specified that contain the same variable, they're processed from the top\n\t\t\tdown. We recommend that you use unique variable names. For more information, see Use a file to\n\t\t\t\tpass environment variables to a container in the Amazon Elastic Container Service Developer Guide.

\n

Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply.

\n

You must use the following platforms for the Fargate launch type:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

Consider the following when using the Fargate launch type:

\n
    \n
  • \n

    The file is handled like a native Docker env-file.

    \n
  • \n
  • \n

    There is no support for shell escape handling.

    \n
  • \n
  • \n

    The container entry point interperts the VARIABLE values.

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

A list of files containing the environment variables to pass to a container. You can\n\t\t\tspecify up to ten environment files. The file must have a .env file\n\t\t\textension. Each line in an environment file should contain an environment variable in\n\t\t\t\tVARIABLE=VALUE format. Lines beginning with # are treated\n\t\t\tas comments and are ignored.

\n

If there are environment variables specified using the environment\n\t\t\tparameter in a container definition, they take precedence over the variables contained\n\t\t\twithin an environment file. If multiple environment files are specified that contain the\n\t\t\tsame variable, they're processed from the top down. We recommend that you use unique\n\t\t\tvariable names. For more information, see Use a file to pass\n\t\t\t\tenvironment variables to a container in the Amazon Elastic Container Service Developer Guide.

\n

Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations\n\t\t\tapply.

\n

You must use the following platforms for the Fargate launch type:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n

Consider the following when using the Fargate launch type:

\n
    \n
  • \n

    The file is handled like a native Docker env-file.

    \n
  • \n
  • \n

    There is no support for shell escape handling.

    \n
  • \n
  • \n

    The container entry point interperts the VARIABLE values.

    \n
  • \n
" } }, "com.amazonaws.ecs#EnvironmentFileType": { @@ -6069,13 +6069,13 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported\n\t\t\tvalue is 21 GiB and the maximum supported value is 200\n\t\t\tGiB.

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

The total amount, in GiB, of ephemeral storage to set for the task. The minimum\n\t\t\tsupported value is 21 GiB and the maximum supported value is\n\t\t\t\t200 GiB.

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

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total\n\t\t\tamount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For\n\t\t\tmore information, see Using data volumes in tasks\n\t\t\tin the Amazon ECS Developer Guide;.

\n \n

For tasks using the Fargate launch type, the task requires the following\n\t\t\t\tplatforms:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

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

The amount of ephemeral storage to allocate for the task. This parameter is used to\n\t\t\texpand the total amount of ephemeral storage available, beyond the default amount, for\n\t\t\ttasks hosted on Fargate. For more information, see Using data volumes in\n\t\t\t\ttasks in the Amazon ECS Developer Guide;.

\n \n

For tasks using the Fargate launch type, the task requires the\n\t\t\t\tfollowing platforms:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n
" } }, "com.amazonaws.ecs#ExecuteCommand": { @@ -6107,7 +6107,7 @@ } ], "traits": { - "smithy.api#documentation": "

Runs a command remotely on a container within a task.

\n

If you use a condition key in your IAM policy to refine the conditions for the policy statement,\n\t\t\tfor example limit the actions to a specific cluster, you receive an AccessDeniedException\n\t\t\twhen there is a mismatch between the condition key value and the corresponding parameter value.

\n

For information about required permissions and considerations, see Using Amazon ECS Exec for debugging in the\n\t\t\t\tAmazon ECS Developer Guide.

" + "smithy.api#documentation": "

Runs a command remotely on a container within a task.

\n

If you use a condition key in your IAM policy to refine the conditions for the\n\t\t\tpolicy statement, for example limit the actions to a specific cluster, you receive an\n\t\t\t\tAccessDeniedException when there is a mismatch between the condition\n\t\t\tkey value and the corresponding parameter value.

\n

For information about required permissions and considerations, see Using Amazon ECS\n\t\t\t\tExec for debugging in the Amazon ECS Developer Guide.\n\t\t

" } }, "com.amazonaws.ecs#ExecuteCommandConfiguration": { @@ -6116,19 +6116,19 @@ "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the data between the local client and the\n\t\t\tcontainer.

" + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the data between the local client\n\t\t\tand the container.

" } }, "logging": { "target": "com.amazonaws.ecs#ExecuteCommandLogging", "traits": { - "smithy.api#documentation": "

The log setting to use for redirecting logs for your execute command results. The following log\n\t\t\tsettings are available.

\n
    \n
  • \n

    \n NONE: The execute command session is not logged.

    \n
  • \n
  • \n

    \n DEFAULT: The awslogs configuration in the task definition is used.\n\t\t\t\t\tIf no logging parameter is specified, it defaults to this value. If no awslogs log\n\t\t\t\t\tdriver is configured in the task definition, the output won't be logged.

    \n
  • \n
  • \n

    \n OVERRIDE: Specify the logging details as a part of\n\t\t\t\t\tlogConfiguration. If the OVERRIDE logging option is specified, the\n\t\t\t\t\t\tlogConfiguration is required.

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

The log setting to use for redirecting logs for your execute command results. The\n\t\t\tfollowing log settings are available.

\n
    \n
  • \n

    \n NONE: The execute command session is not logged.

    \n
  • \n
  • \n

    \n DEFAULT: The awslogs configuration in the task\n\t\t\t\t\tdefinition is used. If no logging parameter is specified, it defaults to this\n\t\t\t\t\tvalue. If no awslogs log driver is configured in the task\n\t\t\t\t\tdefinition, the output won't be logged.

    \n
  • \n
  • \n

    \n OVERRIDE: Specify the logging details as a part of\n\t\t\t\t\t\tlogConfiguration. If the OVERRIDE logging option\n\t\t\t\t\tis specified, the logConfiguration is required.

    \n
  • \n
" } }, "logConfiguration": { "target": "com.amazonaws.ecs#ExecuteCommandLogConfiguration", "traits": { - "smithy.api#documentation": "

The log configuration for the results of the execute command actions. The logs can be sent to\n\t\t\tCloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE is specified, a\n\t\t\t\tlogConfiguration must be provided.

" + "smithy.api#documentation": "

The log configuration for the results of the execute command actions. The logs can be\n\t\t\tsent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE is\n\t\t\tspecified, a logConfiguration must be provided.

" } } }, @@ -6149,7 +6149,7 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be\n\t\t\toff.

" + "smithy.api#documentation": "

Determines whether to use encryption on the CloudWatch logs. If not specified,\n\t\t\tencryption will be off.

" } }, "s3BucketName": { @@ -6162,7 +6162,7 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to use encryption on the S3 logs. If not specified, encryption is not used.

" + "smithy.api#documentation": "

Determines whether to use encryption on the S3 logs. If not specified, encryption is\n\t\t\tnot used.

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

The log configuration for the results of the execute command actions. The logs can be sent to\n\t\t\tCloudWatch Logs or an Amazon S3 bucket.

" + "smithy.api#documentation": "

The log configuration for the results of the execute command actions. The logs can be\n\t\t\tsent to CloudWatch Logs or an Amazon S3 bucket.

" } }, "com.amazonaws.ecs#ExecuteCommandLogging": { @@ -6211,7 +6211,7 @@ "container": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the container to execute the command on. A container name only needs to be specified for\n\t\t\ttasks containing multiple containers.

" + "smithy.api#documentation": "

The name of the container to execute the command on. A container name only needs to be\n\t\t\tspecified for tasks containing multiple containers.

" } }, "command": { @@ -6266,13 +6266,13 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether the execute command session is running in interactive mode. Amazon ECS only supports\n\t\t\tinitiating interactive sessions, so you must specify true for this value.

" + "smithy.api#documentation": "

Determines whether the execute command session is running in interactive mode. Amazon ECS\n\t\t\tonly supports initiating interactive sessions, so you must specify true for\n\t\t\tthis value.

" } }, "session": { "target": "com.amazonaws.ecs#Session", "traits": { - "smithy.api#documentation": "

The details of the SSM session that was created for this instance of execute-command.

" + "smithy.api#documentation": "

The details of the SSM session that was created for this instance of\n\t\t\texecute-command.

" } }, "taskArn": { @@ -6292,20 +6292,20 @@ "credentialsParameter": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The authorization credential option to use. The authorization credential options can be provided\n\t\t\tusing either the Amazon Resource Name (ARN) of an Secrets Manager secret or SSM Parameter Store parameter. The ARN refers to\n\t\t\tthe stored credentials.

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

The authorization credential option to use. The authorization credential options can\n\t\t\tbe provided using either the Amazon Resource Name (ARN) of an Secrets Manager secret or SSM Parameter Store\n\t\t\tparameter. The ARN refers to the stored credentials.

", "smithy.api#required": {} } }, "domain": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A fully qualified domain name hosted by an Directory Service Managed\n\t\t\tMicrosoft AD (Active Directory) or self-hosted AD on Amazon EC2.

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

A fully qualified domain name hosted by an Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on\n\t\t\tAmazon EC2.

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

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon ECS API\n\t\t\tReference.

\n

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon ECS API\n\t\t\t\tReference.

\n

For more information and the input format, see Amazon FSx for Windows File Server Volumes\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#FSxWindowsFileServerVolumeConfiguration": { @@ -6321,7 +6321,7 @@ "rootDirectory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the\n\t\t\thost.

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

The directory within the Amazon FSx for Windows File Server file system to mount as the root directory\n\t\t\tinside the host.

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

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task\n\t\t\tstorage.

\n

For more information and the input format, see Amazon FSx for Windows File Server volumes in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task\n\t\t\tstorage.

\n

For more information and the input format, see Amazon FSx for Windows File Server volumes\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#Failure": { @@ -6360,7 +6360,7 @@ } }, "traits": { - "smithy.api#documentation": "

A failed resource. For a list of common causes, see API failure reasons in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

A failed resource. For a list of common causes, see API failure\n\t\t\t\treasons in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#Failures": { @@ -6375,19 +6375,19 @@ "type": { "target": "com.amazonaws.ecs#FirelensConfigurationType", "traits": { - "smithy.api#documentation": "

The log router to use. The valid values are fluentd or fluentbit.

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

The log router to use. The valid values are fluentd or\n\t\t\t\tfluentbit.

", "smithy.api#required": {} } }, "options": { "target": "com.amazonaws.ecs#FirelensConfigurationOptionsMap", "traits": { - "smithy.api#documentation": "

The options to use when configuring the log router. This field is optional and can be used to specify\n\t\t\ta custom configuration file or to add additional metadata, such as the task, task definition, cluster,\n\t\t\tand container instance details to the log event. If specified, the syntax to use is\n\t\t\t\t\"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}.\n\t\t\tFor more information, see Creating a task\n\t\t\t\tdefinition that uses a FireLens configuration in the Amazon Elastic Container Service Developer Guide.

\n \n

Tasks hosted on Fargate only support the file configuration file type.

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

The options to use when configuring the log router. This field is optional and can be\n\t\t\tused to specify a custom configuration file or to add additional metadata, such as the\n\t\t\ttask, task definition, cluster, and container instance details to the log event. If\n\t\t\tspecified, the syntax to use is\n\t\t\t\t\"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}.\n\t\t\tFor more information, see Creating\n\t\t\t\ta task definition that uses a FireLens configuration in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

Tasks hosted on Fargate only support the file configuration file\n\t\t\t\ttype.

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

The FireLens configuration for the container. This is used to specify and configure a log router for\n\t\t\tcontainer logs. For more information, see Custom log routing in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a\n\t\t\tlog router for container logs. For more information, see Custom log routing\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#FirelensConfigurationOptionsMap": { @@ -6479,7 +6479,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tsets exist in.

", "smithy.api#required": {} } }, @@ -6500,7 +6500,7 @@ "protectedTasks": { "target": "com.amazonaws.ecs#ProtectedTasks", "traits": { - "smithy.api#documentation": "

A list of tasks with the following information.

\n
    \n
  • \n

    \n taskArn: The task ARN.

    \n
  • \n
  • \n

    \n protectionEnabled: The protection status of the task. If scale-in protection is\n\t\t\t\t\tturned on for a task, the value is true. Otherwise, it is\n\t\t\t\t\tfalse.

    \n
  • \n
  • \n

    \n expirationDate: The epoch time when protection for the task will expire.

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

A list of tasks with the following information.

\n
    \n
  • \n

    \n taskArn: The task ARN.

    \n
  • \n
  • \n

    \n protectionEnabled: The protection status of the task. If scale-in\n\t\t\t\t\tprotection is turned on for a task, the value is true. Otherwise,\n\t\t\t\t\tit is false.

    \n
  • \n
  • \n

    \n expirationDate: The epoch time when protection for the task will\n\t\t\t\t\texpire.

    \n
  • \n
" } }, "failures": { @@ -6526,37 +6526,37 @@ "command": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

A string array representing the command that the container runs to determine if it is healthy. The\n\t\t\tstring array must start with CMD to run the command arguments directly, or\n\t\t\t\tCMD-SHELL to run the command with the container's default shell.

\n

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in\n\t\t\tdouble quotes and brackets.

\n

\n [ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]\n

\n

You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.

\n

\n CMD-SHELL, curl -f http://localhost/ || exit 1\n

\n

An exit code of 0 indicates success, and non-zero exit code indicates failure. For\n\t\t\tmore information, see HealthCheck in the docker container create command.

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

A string array representing the command that the container runs to determine if it is\n\t\t\thealthy. The string array must start with CMD to run the command arguments\n\t\t\tdirectly, or CMD-SHELL to run the command with the container's default\n\t\t\tshell.

\n

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list\n\t\t\tof commands in double quotes and brackets.

\n

\n [ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]\n

\n

You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.

\n

\n CMD-SHELL, curl -f http://localhost/ || exit 1\n

\n

An exit code of 0 indicates success, and non-zero exit code indicates failure. For\n\t\t\tmore information, see HealthCheck in the docker container create\n\t\t\tcommand.

", "smithy.api#required": {} } }, "interval": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The time period in seconds between each health check execution. You may specify between 5 and 300\n\t\t\tseconds. The default value is 30 seconds.

" + "smithy.api#documentation": "

The time period in seconds between each health check execution. You may specify\n\t\t\tbetween 5 and 300 seconds. The default value is 30 seconds.

" } }, "timeout": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The time period in seconds to wait for a health check to succeed before it is considered a failure.\n\t\t\tYou may specify between 2 and 60 seconds. The default value is 5.

" + "smithy.api#documentation": "

The time period in seconds to wait for a health check to succeed before it is\n\t\t\tconsidered a failure. You may specify between 2 and 60 seconds. The default value is\n\t\t\t5.

" } }, "retries": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of times to retry a failed health check before the container is considered unhealthy. You\n\t\t\tmay specify between 1 and 10 retries. The default value is 3.

" + "smithy.api#documentation": "

The number of times to retry a failed health check before the container is considered\n\t\t\tunhealthy. You may specify between 1 and 10 retries. The default value is 3.

" } }, "startPeriod": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The optional grace period to provide containers time to bootstrap before failed health checks count\n\t\t\ttowards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the\n\t\t\t\tstartPeriod is off.

\n \n

If a health check succeeds within the startPeriod, then the container is considered\n\t\t\t\thealthy and any subsequent failures count toward the maximum number of retries.

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

The optional grace period to provide containers time to bootstrap before failed health\n\t\t\tchecks count towards the maximum number of retries. You can specify between 0 and 300\n\t\t\tseconds. By default, the startPeriod is off.

\n \n

If a health check succeeds within the startPeriod, then the container\n\t\t\t\tis considered healthy and any subsequent failures count toward the maximum number of\n\t\t\t\tretries.

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

An object representing a container health check. Health check parameters that are specified in a\n\t\t\tcontainer definition override any Docker health checks that exist in the container image (such as those\n\t\t\tspecified in a parent image or from the image's Dockerfile). This configuration maps to the\n\t\t\t\tHEALTHCHECK parameter of docker run.

\n \n

The Amazon ECS container agent only monitors and reports on the health checks specified in the task\n\t\t\t\tdefinition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and\n\t\t\t\tnot specified in the container definition. Health check parameters that are specified in a\n\t\t\t\tcontainer definition override any Docker health checks that exist in the container image.

\n
\n

You can view the health status of both individual containers and a task with the DescribeTasks API\n\t\t\toperation or when viewing the task details in the console.

\n

The health check is designed to make sure that your containers survive agent restarts, upgrades, or\n\t\t\ttemporary unavailability.

\n

Amazon ECS performs health checks on containers with the default that launched the container instance or\n\t\t\tthe task.

\n

The following describes the possible healthStatus values for a container:

\n
    \n
  • \n

    \n HEALTHY-The container health check has passed successfully.

    \n
  • \n
  • \n

    \n UNHEALTHY-The container health check has failed.

    \n
  • \n
  • \n

    \n UNKNOWN-The container health check is being evaluated, there's no\n\t\t\t\t\tcontainer health check defined, or Amazon ECS doesn't have the health status of the\n\t\t\t\t\tcontainer.

    \n
  • \n
\n

The following describes the possible healthStatus values based on the container health\n\t\t\tchecker status of essential containers in the task with the following priority order (high to\n\t\t\tlow):

\n
    \n
  • \n

    \n UNHEALTHY-One or more essential containers have failed their health\n\t\t\t\t\tcheck.

    \n
  • \n
  • \n

    \n UNKNOWN-Any essential container running within the task is in an\n\t\t\t\t\t\tUNKNOWN state and no other essential containers have an UNHEALTHY\n\t\t\t\t\tstate.

    \n
  • \n
  • \n

    \n HEALTHY-All essential containers within the task have passed their health\n\t\t\t\t\tchecks.

    \n
  • \n
\n

Consider the following task health example with 2 containers.

\n
    \n
  • \n

    If Container1 is UNHEALTHY and Container2 is UNKNOWN, the task\n\t\t\t\t\thealth is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is HEALTHY, the task\n\t\t\t\t\thealth is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN, the task health\n\t\t\t\t\tis UNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is HEALTHY, the task health\n\t\t\t\t\tis HEALTHY.

    \n
  • \n
\n

Consider the following task health example with 3 containers.

\n
    \n
  • \n

    If Container1 is UNHEALTHY and Container2 is UNKNOWN, and\n\t\t\t\t\tContainer3 is UNKNOWN, the task health is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is UNKNOWN, and\n\t\t\t\t\tContainer3 is HEALTHY, the task health is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is HEALTHY, and\n\t\t\t\t\tContainer3 is HEALTHY, the task health is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3\n\t\t\t\t\tis HEALTHY, the task health is UNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3\n\t\t\t\t\tis UNKNOWN, the task health is UNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is HEALTHY, and Container3\n\t\t\t\t\tis HEALTHY, the task health is HEALTHY.

    \n
  • \n
\n

If a task is run manually, and not as part of a service, the task will continue its lifecycle\n\t\t\tregardless of its health status. For tasks that are part of a service, if the task reports as unhealthy\n\t\t\tthen the task will be stopped and the service scheduler will replace it.

\n

The following are notes about container health check support:

\n
    \n
  • \n

    If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this won't cause a\n\t\t\t\t\tcontainer to transition to an UNHEALTHY status. This is by design, to ensure that\n\t\t\t\t\tcontainers remain running during agent restarts or temporary unavailability. The health check\n\t\t\t\t\tstatus is the \"last heard from\" response from the Amazon ECS agent, so if the container was\n\t\t\t\t\tconsidered HEALTHY prior to the disconnect, that status will remain until the\n\t\t\t\t\tagent reconnects and another health check occurs. There are no assumptions made about the\n\t\t\t\t\tstatus of the container health checks.

    \n
  • \n
  • \n

    Container health checks require version 1.17.0 or greater of the Amazon ECS container\n\t\t\t\t\tagent. For more information, see Updating the Amazon ECS container\n\t\t\t\t\t\tagent.

    \n
  • \n
  • \n

    Container health checks are supported for Fargate tasks if you're using\n\t\t\t\t\tplatform version 1.1.0 or greater. For more information, see Fargate\n\t\t\t\t\t\tplatform versions.

    \n
  • \n
  • \n

    Container health checks aren't supported for tasks that are part of a service that's\n\t\t\t\t\tconfigured to use a Classic Load Balancer.

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

An object representing a container health check. Health check parameters that are\n\t\t\tspecified in a container definition override any Docker health checks that exist in the\n\t\t\tcontainer image (such as those specified in a parent image or from the image's\n\t\t\tDockerfile). This configuration maps to the HEALTHCHECK parameter of docker\n\t\t\trun.

\n \n

The Amazon ECS container agent only monitors and reports on the health checks specified\n\t\t\t\tin the task definition. Amazon ECS does not monitor Docker health checks that are\n\t\t\t\tembedded in a container image and not specified in the container definition. Health\n\t\t\t\tcheck parameters that are specified in a container definition override any Docker\n\t\t\t\thealth checks that exist in the container image.

\n
\n

You can view the health status of both individual containers and a task with the\n\t\t\tDescribeTasks API operation or when viewing the task details in the console.

\n

The health check is designed to make sure that your containers survive agent restarts,\n\t\t\tupgrades, or temporary unavailability.

\n

Amazon ECS performs health checks on containers with the default that launched the\n\t\t\tcontainer instance or the task.

\n

The following describes the possible healthStatus values for a\n\t\t\tcontainer:

\n
    \n
  • \n

    \n HEALTHY-The container health check has passed\n\t\t\t\t\tsuccessfully.

    \n
  • \n
  • \n

    \n UNHEALTHY-The container health check has failed.

    \n
  • \n
  • \n

    \n UNKNOWN-The container health check is being evaluated,\n\t\t\t\t\tthere's no container health check defined, or Amazon ECS doesn't have the health\n\t\t\t\t\tstatus of the container.

    \n
  • \n
\n

The following describes the possible healthStatus values based on the\n\t\t\tcontainer health checker status of essential containers in the task with the following\n\t\t\tpriority order (high to low):

\n
    \n
  • \n

    \n UNHEALTHY-One or more essential containers have failed\n\t\t\t\t\ttheir health check.

    \n
  • \n
  • \n

    \n UNKNOWN-Any essential container running within the task is\n\t\t\t\t\tin an UNKNOWN state and no other essential containers have an\n\t\t\t\t\t\tUNHEALTHY state.

    \n
  • \n
  • \n

    \n HEALTHY-All essential containers within the task have\n\t\t\t\t\tpassed their health checks.

    \n
  • \n
\n

Consider the following task health example with 2 containers.

\n
    \n
  • \n

    If Container1 is UNHEALTHY and Container2 is\n\t\t\t\t\tUNKNOWN, the task health is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is\n\t\t\t\t\tHEALTHY, the task health is UNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN,\n\t\t\t\t\tthe task health is UNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is HEALTHY,\n\t\t\t\t\tthe task health is HEALTHY.

    \n
  • \n
\n

Consider the following task health example with 3 containers.

\n
    \n
  • \n

    If Container1 is UNHEALTHY and Container2 is\n\t\t\t\t\tUNKNOWN, and Container3 is UNKNOWN, the task health is\n\t\t\t\t\t\tUNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is\n\t\t\t\t\tUNKNOWN, and Container3 is HEALTHY, the task health is\n\t\t\t\t\t\tUNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is UNHEALTHY and Container2 is\n\t\t\t\t\tHEALTHY, and Container3 is HEALTHY, the task health is\n\t\t\t\t\t\tUNHEALTHY.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN,\n\t\t\t\t\tand Container3 is HEALTHY, the task health is\n\t\t\t\t\tUNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is UNKNOWN,\n\t\t\t\t\tand Container3 is UNKNOWN, the task health is\n\t\t\t\t\tUNKNOWN.

    \n
  • \n
  • \n

    If Container1 is HEALTHY and Container2 is HEALTHY,\n\t\t\t\t\tand Container3 is HEALTHY, the task health is\n\t\t\t\t\tHEALTHY.

    \n
  • \n
\n

If a task is run manually, and not as part of a service, the task will continue its\n\t\t\tlifecycle regardless of its health status. For tasks that are part of a service, if the\n\t\t\ttask reports as unhealthy then the task will be stopped and the service scheduler will\n\t\t\treplace it.

\n

The following are notes about container health check support:

\n
    \n
  • \n

    If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this\n\t\t\t\t\twon't cause a container to transition to an UNHEALTHY status. This\n\t\t\t\t\tis by design, to ensure that containers remain running during agent restarts or\n\t\t\t\t\ttemporary unavailability. The health check status is the \"last heard from\"\n\t\t\t\t\tresponse from the Amazon ECS agent, so if the container was considered\n\t\t\t\t\t\tHEALTHY prior to the disconnect, that status will remain until\n\t\t\t\t\tthe agent reconnects and another health check occurs. There are no assumptions\n\t\t\t\t\tmade about the status of the container health checks.

    \n
  • \n
  • \n

    Container health checks require version 1.17.0 or greater of the\n\t\t\t\t\tAmazon ECS container agent. For more information, see Updating the\n\t\t\t\t\t\tAmazon ECS container agent.

    \n
  • \n
  • \n

    Container health checks are supported for Fargate tasks if\n\t\t\t\t\tyou're using platform version 1.1.0 or greater. For more\n\t\t\t\t\tinformation, see Fargate\n\t\t\t\t\t\tplatform versions.

    \n
  • \n
  • \n

    Container health checks aren't supported for tasks that are part of a service\n\t\t\t\t\tthat's configured to use a Classic Load Balancer.

    \n
  • \n
" } }, "com.amazonaws.ecs#HealthStatus": { @@ -6601,7 +6601,7 @@ } }, "traits": { - "smithy.api#documentation": "

Hostnames and IP address entries that are added to the /etc/hosts file of a container\n\t\t\tvia the extraHosts parameter of its ContainerDefinition.\n\t\t

" + "smithy.api#documentation": "

Hostnames and IP address entries that are added to the /etc/hosts file of\n\t\t\ta container via the extraHosts parameter of its ContainerDefinition.

" } }, "com.amazonaws.ecs#HostEntryList": { @@ -6616,7 +6616,7 @@ "sourcePath": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

When the host parameter is used, specify a sourcePath to declare the path\n\t\t\ton the host container instance that's presented to the container. If this parameter is empty, then the\n\t\t\tDocker daemon has assigned a host path for you. If the host parameter contains a\n\t\t\t\tsourcePath file location, then the data volume persists at the specified location on\n\t\t\tthe host container instance until you delete it manually. If the sourcePath value doesn't\n\t\t\texist on the host container instance, the Docker daemon creates it. If the location does exist, the\n\t\t\tcontents of the source path folder are exported.

\n

If you're using the Fargate launch type, the sourcePath parameter is not\n\t\t\tsupported.

" + "smithy.api#documentation": "

When the host parameter is used, specify a sourcePath to\n\t\t\tdeclare the path on the host container instance that's presented to the container. If\n\t\t\tthis parameter is empty, then the Docker daemon has assigned a host path for you. If the\n\t\t\t\thost parameter contains a sourcePath file location, then\n\t\t\tthe data volume persists at the specified location on the host container instance until\n\t\t\tyou delete it manually. If the sourcePath value doesn't exist on the host\n\t\t\tcontainer instance, the Docker daemon creates it. If the location does exist, the\n\t\t\tcontents of the source path folder are exported.

\n

If you're using the Fargate launch type, the sourcePath\n\t\t\tparameter is not supported.

" } } }, @@ -6633,7 +6633,7 @@ "deviceName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Elastic Inference accelerator device name. The deviceName must also be referenced in\n\t\t\ta container definition as a ResourceRequirement.

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

The Elastic Inference accelerator device name. The deviceName must also\n\t\t\tbe referenced in a container definition as a ResourceRequirement.

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

Details on an Elastic Inference accelerator. For more information, see Working with Amazon Elastic Inference on\n\t\t\t\tAmazon ECS in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Details on an Elastic Inference accelerator. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#InferenceAcceleratorOverride": { @@ -6655,7 +6655,7 @@ "deviceName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Elastic Inference accelerator device name to override for the task. This parameter must match a\n\t\t\t\tdeviceName specified in the task definition.

" + "smithy.api#documentation": "

The Elastic Inference accelerator device name to override for the task. This parameter\n\t\t\tmust match a deviceName specified in the task definition.

" } }, "deviceType": { @@ -6666,7 +6666,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details on an Elastic Inference accelerator task override. This parameter is used to override the\n\t\t\tElastic Inference accelerator specified in the task definition. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Details on an Elastic Inference accelerator task override. This parameter is used to\n\t\t\toverride the Elastic Inference accelerator specified in the task definition. For more\n\t\t\tinformation, see Working with Amazon\n\t\t\t\tElastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#InferenceAcceleratorOverrides": { @@ -6699,7 +6699,7 @@ "lastUpdated": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp for when the container instance health status was last updated.

" + "smithy.api#documentation": "

The Unix timestamp for when the container instance health status was last\n\t\t\tupdated.

" } }, "lastStatusChange": { @@ -6782,7 +6782,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified parameter isn't valid. Review the available parameters for the API request.

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

The specified parameter isn't valid. Review the available parameters for the API\n\t\t\trequest.

", "smithy.api#error": "client" } }, @@ -6815,18 +6815,18 @@ "add": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The Linux capabilities for the container that have been added to the default configuration provided\n\t\t\tby Docker. This parameter maps to CapAdd in the docker container create command and the\n\t\t\t\t--cap-add option to docker run.

\n \n

Tasks launched on Fargate only support adding the SYS_PTRACE kernel\n\t\t\t\tcapability.

\n
\n

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" |\n\t\t\t\t\"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" |\n\t\t\t\t\"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" |\n\t\t\t\t\"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" |\n\t\t\t\t\"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" |\n\t\t\t\t\"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" |\n\t\t\t\"WAKE_ALARM\"\n

" + "smithy.api#documentation": "

The Linux capabilities for the container that have been added to the default\n\t\t\tconfiguration provided by Docker. This parameter maps to CapAdd in the\n\t\t\tdocker container create command and the --cap-add option to docker\n\t\t\trun.

\n \n

Tasks launched on Fargate only support adding the SYS_PTRACE kernel\n\t\t\t\tcapability.

\n
\n

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" |\n\t\t\t\t\"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" |\n\t\t\t\t\"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" |\n\t\t\t\t\"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\"\n\t\t\t\t| \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" |\n\t\t\t\t\"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" |\n\t\t\t\t\"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" |\n\t\t\t\"WAKE_ALARM\"\n

" } }, "drop": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The Linux capabilities for the container that have been removed from the default configuration\n\t\t\tprovided by Docker. This parameter maps to CapDrop in the docker container create command\n\t\t\tand the --cap-drop option to docker run.

\n

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" |\n\t\t\t\t\"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" |\n\t\t\t\t\"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" |\n\t\t\t\t\"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" |\n\t\t\t\t\"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" |\n\t\t\t\t\"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" |\n\t\t\t\"WAKE_ALARM\"\n

" + "smithy.api#documentation": "

The Linux capabilities for the container that have been removed from the default\n\t\t\tconfiguration provided by Docker. This parameter maps to CapDrop in the\n\t\t\tdocker container create command and the --cap-drop option to docker\n\t\t\trun.

\n

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" |\n\t\t\t\t\"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" |\n\t\t\t\t\"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" |\n\t\t\t\t\"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\"\n\t\t\t\t| \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" |\n\t\t\t\t\"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" |\n\t\t\t\t\"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" |\n\t\t\t\"WAKE_ALARM\"\n

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

The Linux capabilities to add or remove from the default Docker configuration for a container defined\n\t\t\tin the task definition. For more detailed information about these Linux capabilities, see the capabilities(7) Linux manual\n\t\t\tpage.

" + "smithy.api#documentation": "

The Linux capabilities to add or remove from the default Docker configuration for a\n\t\t\tcontainer defined in the task definition. For more detailed information about these\n\t\t\tLinux capabilities, see the capabilities(7) Linux manual page.

" } }, "com.amazonaws.ecs#KeyValuePair": { @@ -6835,13 +6835,13 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the key-value pair. For environment variables, this is the name of the environment\n\t\t\tvariable.

" + "smithy.api#documentation": "

The name of the key-value pair. For environment variables, this is the name of the\n\t\t\tenvironment variable.

" } }, "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value of the key-value pair. For environment variables, this is the value of the environment\n\t\t\tvariable.

" + "smithy.api#documentation": "

The value of the key-value pair. For environment variables, this is the value of the\n\t\t\tenvironment variable.

" } } }, @@ -6893,43 +6893,43 @@ "capabilities": { "target": "com.amazonaws.ecs#KernelCapabilities", "traits": { - "smithy.api#documentation": "

The Linux capabilities for the container that are added to or dropped from the default configuration\n\t\t\tprovided by Docker.

\n \n

For tasks that use the Fargate launch type, capabilities is supported\n\t\t\t\tfor all platform versions but the add parameter is only supported if using platform\n\t\t\t\tversion 1.4.0 or later.

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

The Linux capabilities for the container that are added to or dropped from the default\n\t\t\tconfiguration provided by Docker.

\n \n

For tasks that use the Fargate launch type,\n\t\t\t\t\tcapabilities is supported for all platform versions but the\n\t\t\t\t\tadd parameter is only supported if using platform version 1.4.0 or\n\t\t\t\tlater.

\n
" } }, "devices": { "target": "com.amazonaws.ecs#DevicesList", "traits": { - "smithy.api#documentation": "

Any host devices to expose to the container. This parameter maps to Devices in the\n\t\t\tdocker container create command and the --device option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the devices\n\t\t\t\tparameter isn't supported.

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

Any host devices to expose to the container. This parameter maps to\n\t\t\t\tDevices in the docker container create command and the\n\t\t\t\t--device option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the\n\t\t\t\t\tdevices parameter isn't supported.

\n
" } }, "initProcessEnabled": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Run an init process inside the container that forwards signals and reaps processes. This\n\t\t\tparameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" + "smithy.api#documentation": "

Run an init process inside the container that forwards signals and reaps\n\t\t\tprocesses. This parameter maps to the --init option to docker run.\n\t\t\tThis parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" } }, "sharedMemorySize": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the\n\t\t\t\t--shm-size option to docker run.

\n \n

If you are using tasks that use the Fargate launch type, the\n\t\t\t\t\tsharedMemorySize parameter is not supported.

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

The value for the size (in MiB) of the /dev/shm volume. This parameter\n\t\t\tmaps to the --shm-size option to docker run.

\n \n

If you are using tasks that use the Fargate launch type, the\n\t\t\t\t\tsharedMemorySize parameter is not supported.

\n
" } }, "tmpfs": { "target": "com.amazonaws.ecs#TmpfsList", "traits": { - "smithy.api#documentation": "

The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the\n\t\t\t\t--tmpfs option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the tmpfs\n\t\t\t\tparameter isn't supported.

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

The container path, mount options, and size (in MiB) of the tmpfs mount. This\n\t\t\tparameter maps to the --tmpfs option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the\n\t\t\t\t\ttmpfs parameter isn't supported.

\n
" } }, "maxSwap": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The total amount of swap memory (in MiB) a container can use. This parameter will be translated to\n\t\t\tthe --memory-swap option to docker run where the value would be the sum of the container\n\t\t\tmemory plus the maxSwap value.

\n

If a maxSwap value of 0 is specified, the container will not use swap.\n\t\t\tAccepted values are 0 or any positive integer. If the maxSwap parameter is\n\t\t\tomitted, the container will use the swap configuration for the container instance it is running on. A\n\t\t\t\tmaxSwap value must be set for the swappiness parameter to be used.

\n \n

If you're using tasks that use the Fargate launch type, the maxSwap\n\t\t\t\tparameter isn't supported.

\n

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't supported.

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

The total amount of swap memory (in MiB) a container can use. This parameter will be\n\t\t\ttranslated to the --memory-swap option to docker run where the value would\n\t\t\tbe the sum of the container memory plus the maxSwap value.

\n

If a maxSwap value of 0 is specified, the container will not\n\t\t\tuse swap. Accepted values are 0 or any positive integer. If the\n\t\t\t\tmaxSwap parameter is omitted, the container will use the swap\n\t\t\tconfiguration for the container instance it is running on. A maxSwap value\n\t\t\tmust be set for the swappiness parameter to be used.

\n \n

If you're using tasks that use the Fargate launch type, the\n\t\t\t\t\tmaxSwap parameter isn't supported.

\n

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't\n\t\t\t\tsupported.

\n
" } }, "swappiness": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

This allows you to tune a container's memory swappiness behavior. A swappiness value of\n\t\t\t\t0 will cause swapping to not happen unless absolutely necessary. A\n\t\t\t\tswappiness value of 100 will cause pages to be swapped very aggressively.\n\t\t\tAccepted values are whole numbers between 0 and 100. If the\n\t\t\t\tswappiness parameter is not specified, a default value of 60 is used. If\n\t\t\ta value is not specified for maxSwap then this parameter is ignored. This parameter maps\n\t\t\tto the --memory-swappiness option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the swappiness\n\t\t\t\tparameter isn't supported.

\n

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't supported.

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

This allows you to tune a container's memory swappiness behavior. A\n\t\t\t\tswappiness value of 0 will cause swapping to not happen\n\t\t\tunless absolutely necessary. A swappiness value of 100 will\n\t\t\tcause pages to be swapped very aggressively. Accepted values are whole numbers between\n\t\t\t\t0 and 100. If the swappiness parameter is not\n\t\t\tspecified, a default value of 60 is used. If a value is not specified for\n\t\t\t\tmaxSwap then this parameter is ignored. This parameter maps to the\n\t\t\t\t--memory-swappiness option to docker run.

\n \n

If you're using tasks that use the Fargate launch type, the\n\t\t\t\t\tswappiness parameter isn't supported.

\n

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't\n\t\t\t\tsupported.

\n
" } } }, @@ -7033,33 +7033,33 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value of the account settings to filter results with. You must also specify an account setting\n\t\t\tname to use this parameter.

" + "smithy.api#documentation": "

The value of the account settings to filter results with. You must also specify an\n\t\t\taccount setting name to use this parameter.

" } }, "principalArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN of the principal, which can be a user, role, or the root user. If this field is omitted, the\n\t\t\taccount settings are listed only for the authenticated user.

\n \n

Federated users assume the account setting of the root user and can't have explicit account settings\n\t\t\t\tset for them.

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

The ARN of the principal, which can be a user, role, or the root user. If this field is\n\t\t\tomitted, the account settings are listed only for the authenticated user.

\n \n

Federated users assume the account setting of the root user and can't have explicit\n\t\t\t\taccount settings set for them.

\n
" } }, "effectiveSettings": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to return the effective settings. If true, the account settings for\n\t\t\tthe root user or the default setting for the principalArn are returned. If\n\t\t\tfalse, the account settings for the principalArn are returned if they're set.\n\t\t\tOtherwise, no account settings are returned.

" + "smithy.api#documentation": "

Determines whether to return the effective settings. If true, the account\n\t\t\tsettings for the root user or the default setting for the principalArn are\n\t\t\treturned. If false, the account settings for the principalArn\n\t\t\tare returned if they're set. Otherwise, no account settings are returned.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListAccountSettings request indicating\n\t\t\tthat more results are available to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it's possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListAccountSettings\n\t\t\trequest indicating that more results are available to fulfill the request and further\n\t\t\tcalls will be needed. If maxResults was provided, it's possible the number\n\t\t\tof results to be fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The maximum number of account setting results returned by ListAccountSettings in\n\t\t\tpaginated output. When this parameter is used, ListAccountSettings only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tListAccountSettings request with the returned nextToken value. This value\n\t\t\tcan be between 1 and 10. If this\n\t\t\tparameter isn't used, then ListAccountSettings returns up to\n\t\t\t10 results and a nextToken value if\n\t\t\tapplicable.

" + "smithy.api#documentation": "

The maximum number of account setting results returned by\n\t\t\t\tListAccountSettings in paginated output. When this parameter is used,\n\t\t\t\tListAccountSettings only returns maxResults results in a\n\t\t\tsingle page along with a nextToken response element. The remaining results\n\t\t\tof the initial request can be seen by sending another ListAccountSettings\n\t\t\trequest with the returned nextToken value. This value can be between\n\t\t\t1 and 10. If this\n\t\t\tparameter isn't used, then ListAccountSettings returns up to\n\t\t\t10 results and a nextToken value\n\t\t\tif applicable.

" } } }, @@ -7079,7 +7079,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListAccountSettings request.\n\t\t\tWhen the results of a ListAccountSettings request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null when there are\n\t\t\tno more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListAccountSettings request. When the results of a\n\t\t\t\tListAccountSettings request exceed maxResults, this value\n\t\t\tcan be used to retrieve the next page of results. This value is null when\n\t\t\tthere are no more results to return.

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

Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify\n\t\t\ta target type and cluster, ListAttributes returns a list of attribute objects, one for\n\t\t\teach attribute on each resource. You can filter the list of results to a single attribute name to only\n\t\t\treturn results that have that name. You can also filter the results by attribute name and value. You\n\t\t\tcan do this, for example, to see which container instances in a cluster are running a Linux AMI\n\t\t\t\t(ecs.os-type=linux).

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

Lists the attributes for Amazon ECS resources within a specified target type and cluster.\n\t\t\tWhen you specify a target type and cluster, ListAttributes returns a list\n\t\t\tof attribute objects, one for each attribute on each resource. You can filter the list\n\t\t\tof results to a single attribute name to only return results that have that name. You\n\t\t\tcan also filter the results by attribute name and value. You can do this, for example,\n\t\t\tto see which container instances in a cluster are running a Linux AMI\n\t\t\t\t(ecs.os-type=linux).

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -7119,7 +7119,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to list attributes.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" } }, "targetType": { @@ -7138,19 +7138,19 @@ "attributeValue": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value of the attribute to filter results with. You must also specify an attribute name to use\n\t\t\tthis parameter.

" + "smithy.api#documentation": "

The value of the attribute to filter results with. You must also specify an attribute\n\t\t\tname to use this parameter.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListAttributes request indicating that\n\t\t\tmore results are available to fulfill the request and further calls are needed. If\n\t\t\t\tmaxResults was provided, it's possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListAttributes request\n\t\t\tindicating that more results are available to fulfill the request and further calls are\n\t\t\tneeded. If maxResults was provided, it's possible the number of results to\n\t\t\tbe fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of cluster results that ListAttributes returned in paginated output.\n\t\t\tWhen this parameter is used, ListAttributes only returns maxResults results\n\t\t\tin a single page along with a nextToken response element. The remaining results of the\n\t\t\tinitial request can be seen by sending another ListAttributes request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and 100. If\n\t\t\tthis parameter isn't used, then ListAttributes returns up to 100 results\n\t\t\tand a nextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of cluster results that ListAttributes returned in\n\t\t\tpaginated output. When this parameter is used, ListAttributes only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListAttributes request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If this\n\t\t\tparameter isn't used, then ListAttributes returns up to\n\t\t\t100 results and a nextToken value if applicable.

" } } }, @@ -7170,7 +7170,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListAttributes request. When the\n\t\t\tresults of a ListAttributes request exceed maxResults, this value can be used\n\t\t\tto retrieve the next page of results. This value is null when there are no more results to\n\t\t\treturn.

" + "smithy.api#documentation": "

The nextToken value to include in a future ListAttributes\n\t\t\trequest. When the results of a ListAttributes request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of\n\t\t\tresults. This value is null when there are no more results to\n\t\t\treturn.

" } } }, @@ -7238,13 +7238,13 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListClusters request indicating that\n\t\t\tmore results are available to fulfill the request and further calls are needed. If\n\t\t\t\tmaxResults was provided, it's possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListClusters request\n\t\t\tindicating that more results are available to fulfill the request and further calls are\n\t\t\tneeded. If maxResults was provided, it's possible the number of results to\n\t\t\tbe fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of cluster results that ListClusters returned in paginated output.\n\t\t\tWhen this parameter is used, ListClusters only returns maxResults results in\n\t\t\ta single page along with a nextToken response element. The remaining results of the\n\t\t\tinitial request can be seen by sending another ListClusters request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and 100. If\n\t\t\tthis parameter isn't used, then ListClusters returns up to 100 results\n\t\t\tand a nextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of cluster results that ListClusters returned in\n\t\t\tpaginated output. When this parameter is used, ListClusters only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListClusters request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If this\n\t\t\tparameter isn't used, then ListClusters returns up to 100\n\t\t\tresults and a nextToken value if applicable.

" } } }, @@ -7258,13 +7258,13 @@ "clusterArns": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The list of full Amazon Resource Name (ARN) entries for each cluster that's associated with your account.

" + "smithy.api#documentation": "

The list of full Amazon Resource Name (ARN) entries for each cluster that's associated with your\n\t\t\taccount.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListClusters request. When the\n\t\t\tresults of a ListClusters request exceed maxResults, this value can be used\n\t\t\tto retrieve the next page of results. This value is null when there are no more results to\n\t\t\treturn.

" + "smithy.api#documentation": "

The nextToken value to include in a future ListClusters\n\t\t\trequest. When the results of a ListClusters request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of\n\t\t\tresults. This value is null when there are no more results to\n\t\t\treturn.

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

Returns a list of container instances in a specified cluster. You can filter the results of a\n\t\t\t\tListContainerInstances operation with cluster query language statements inside the\n\t\t\t\tfilter parameter. For more information, see Cluster\n\t\t\t\tQuery Language in the Amazon Elastic Container Service Developer Guide.

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

Returns a list of container instances in a specified cluster. You can filter the\n\t\t\tresults of a ListContainerInstances operation with cluster query language\n\t\t\tstatements inside the filter parameter. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#examples": [ { "title": "To list your available container instances in a cluster", @@ -7325,31 +7325,31 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to\n\t\t\tlist. If you do not specify a cluster, the default cluster is assumed.

" } }, "filter": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

You can filter the results of a ListContainerInstances operation with cluster query\n\t\t\tlanguage statements. For more information, see Cluster\n\t\t\t\tQuery Language in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

You can filter the results of a ListContainerInstances operation with\n\t\t\tcluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListContainerInstances request\n\t\t\tindicating that more results are available to fulfill the request and further calls are needed. If\n\t\t\t\tmaxResults was provided, it's possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListContainerInstances\n\t\t\trequest indicating that more results are available to fulfill the request and further\n\t\t\tcalls are needed. If maxResults was provided, it's possible the number of\n\t\t\tresults to be fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of container instance results that ListContainerInstances returned in\n\t\t\tpaginated output. When this parameter is used, ListContainerInstances only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tListContainerInstances request with the returned nextToken value. This\n\t\t\tvalue can be between 1 and 100. If this parameter isn't used, then\n\t\t\t\tListContainerInstances returns up to 100 results and a\n\t\t\t\tnextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of container instance results that\n\t\t\t\tListContainerInstances returned in paginated output. When this\n\t\t\tparameter is used, ListContainerInstances only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListContainerInstances request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and\n\t\t\t100. If this parameter isn't used, then\n\t\t\t\tListContainerInstances returns up to 100 results and\n\t\t\ta nextToken value if applicable.

" } }, "status": { "target": "com.amazonaws.ecs#ContainerInstanceStatus", "traits": { - "smithy.api#documentation": "

Filters the container instances by status. For example, if you specify the DRAINING\n\t\t\tstatus, the results include only container instances that have been set to DRAINING using\n\t\t\t\tUpdateContainerInstancesState. If you don't specify this parameter, the default is to\n\t\t\tinclude container instances set to all states other than INACTIVE.

" + "smithy.api#documentation": "

Filters the container instances by status. For example, if you specify the\n\t\t\t\tDRAINING status, the results include only container instances that have\n\t\t\tbeen set to DRAINING using UpdateContainerInstancesState. If you don't specify this parameter, the\n\t\t\tdefault is to include container instances set to all states other than\n\t\t\t\tINACTIVE.

" } } }, @@ -7363,13 +7363,13 @@ "containerInstanceArns": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The list of container instances with full ARN entries for each container instance associated with\n\t\t\tthe specified cluster.

" + "smithy.api#documentation": "

The list of container instances with full ARN entries for each container instance\n\t\t\tassociated with the specified cluster.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListContainerInstances request.\n\t\t\tWhen the results of a ListContainerInstances request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null when there are\n\t\t\tno more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListContainerInstances request. When the results of a\n\t\t\t\tListContainerInstances request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null\n\t\t\twhen there are no more results to return.

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

This operation lists all the service deployments that meet the specified filter criteria.

\n

A service deployment happens when you release a softwre update for the service. You\n\t\t\troute traffic from the running service revisions to the new service revison and control\n\t\t\tthe number of running tasks.

\n

This API returns the values that you use for the request parameters in DescribeServiceRevisions.

" + "smithy.api#documentation": "

This operation lists all the service deployments that meet the specified filter\n\t\t\tcriteria.

\n

A service deployment happens when you release a softwre update for the service. You\n\t\t\troute traffic from the running service revisions to the new service revison and control\n\t\t\tthe number of running tasks.

\n

This API returns the values that you use for the request parameters in DescribeServiceRevisions.

" } }, "com.amazonaws.ecs#ListServiceDeploymentsRequest": { @@ -7422,31 +7422,31 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The cluster that hosts the service. This can either be the cluster name or ARN. Starting\n\t\t\tApril 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic\n\t\t\tInference (EI), and will help current customers migrate their workloads to options that\n\t\t\toffer better price and performanceIf you don't specify a cluster, default\n\t\t\tis used.

" + "smithy.api#documentation": "

The cluster that hosts the service. This can either be the cluster name or ARN.\n\t\t\tStarting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon\n\t\t\tElastic Inference (EI), and will help current customers migrate their workloads to\n\t\t\toptions that offer better price and performanceIf you don't specify a cluster,\n\t\t\t\tdefault is used.

" } }, "status": { "target": "com.amazonaws.ecs#ServiceDeploymentStatusList", "traits": { - "smithy.api#documentation": "

An optional filter you can use to narrow the results. If you do not specify a status, then\n\t\t\tall status values are included in the result.

" + "smithy.api#documentation": "

An optional filter you can use to narrow the results. If you do not specify a status,\n\t\t\tthen all status values are included in the result.

" } }, "createdAt": { "target": "com.amazonaws.ecs#CreatedAt", "traits": { - "smithy.api#documentation": "

An optional filter you can use to narrow the results by the service creation date. If you do\n\t\t\tnot specify a value, the result includes all services created before the current\n\t\t\ttime. The\n\t\t\tformat is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

An optional filter you can use to narrow the results by the service creation date. If\n\t\t\tyou do not specify a value, the result includes all services created before the current\n\t\t\ttime. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListServiceDeployments request indicating that more results are available to fulfill the request and further calls are needed. If you provided maxResults, it's possible the number of results is fewer than maxResults.

" + "smithy.api#documentation": "

The nextToken value returned from a ListServiceDeployments\n\t\t\trequest indicating that more results are available to fulfill the request and further\n\t\t\tcalls are needed. If you provided maxResults, it's possible the number of\n\t\t\tresults is fewer than maxResults.

" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of service deployment results that ListServiceDeployments\n\t\t\treturned in paginated output. When this parameter is used,\n\t\t\tListServiceDeployments only returns maxResults results in\n\t\t\ta single page along with a nextToken response element. The remaining\n\t\t\tresults of the initial request can be seen by sending another\n\t\t\tListServiceDeployments request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If this parameter isn't used, then\n\t\t\tListServiceDeployments returns up to 20 results and a\n\t\t\tnextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of service deployment results that\n\t\t\t\tListServiceDeployments returned in paginated output. When this\n\t\t\tparameter is used, ListServiceDeployments only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListServiceDeployments request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and 100. If this parameter\n\t\t\tisn't used, then ListServiceDeployments returns up to 20 results and a\n\t\t\t\tnextToken value if applicable.

" } } }, @@ -7460,13 +7460,13 @@ "serviceDeployments": { "target": "com.amazonaws.ecs#ServiceDeploymentsBrief", "traits": { - "smithy.api#documentation": "

An overview of the service deployment, including the following\n\t\t\tproperties:

\n
    \n
  • \n

    The ARN of the service deployment.

    \n
  • \n
  • \n

    The ARN of the service being deployed.

    \n
  • \n
  • \n

    The ARN of the cluster that hosts the service in the service deployment.

    \n
  • \n
  • \n

    The time that the service deployment started.

    \n
  • \n
  • \n

    The time that the service deployment completed.

    \n
  • \n
  • \n

    The service deployment status.

    \n
  • \n
  • \n

    Information about why the service deployment is in the current state.

    \n
  • \n
  • \n

    The ARN of the service revision that is being deployed.

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

An overview of the service deployment, including the following properties:

\n
    \n
  • \n

    The ARN of the service deployment.

    \n
  • \n
  • \n

    The ARN of the service being deployed.

    \n
  • \n
  • \n

    The ARN of the cluster that hosts the service in the service\n\t\t\t\t\tdeployment.

    \n
  • \n
  • \n

    The time that the service deployment started.

    \n
  • \n
  • \n

    The time that the service deployment completed.

    \n
  • \n
  • \n

    The service deployment status.

    \n
  • \n
  • \n

    Information about why the service deployment is in the current state.

    \n
  • \n
  • \n

    The ARN of the service revision that is being deployed.

    \n
  • \n
" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListServiceDeployments request. When the results of a ListServiceDeployments request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListServiceDeployments request. When the results of a\n\t\t\t\tListServiceDeployments request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null when there\n\t\t\tare no more results to return.

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

Returns a list of services. You can filter the results by cluster, launch type, and scheduling\n\t\t\tstrategy.

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

Returns a list of services. You can filter the results by cluster, launch type, and\n\t\t\tscheduling strategy.

", "smithy.api#examples": [ { "title": "To list the services in a cluster", @@ -7540,7 +7540,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation lists all of the services that are associated with a Cloud Map namespace. This list\n\t\t\tmight include services in different clusters. In contrast, ListServices can only list\n\t\t\tservices in one cluster at a time. If you need to filter the list of services in a single cluster by\n\t\t\tvarious parameters, use ListServices. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

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

This operation lists all of the services that are associated with a Cloud Map\n\t\t\tnamespace. This list might include services in different clusters. In contrast,\n\t\t\t\tListServices can only list services in one cluster at a time. If you\n\t\t\tneed to filter the list of services in a single cluster by various parameters, use\n\t\t\t\tListServices. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -7562,13 +7562,13 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value that's returned from a ListServicesByNamespace request.\n\t\t\tIt indicates that more results are available to fulfill the request and further calls are needed. If\n\t\t\t\tmaxResults is returned, it is possible the number of results is less than\n\t\t\t\tmaxResults.

" + "smithy.api#documentation": "

The nextToken value that's returned from a\n\t\t\t\tListServicesByNamespace request. It indicates that more results are\n\t\t\tavailable to fulfill the request and further calls are needed. If\n\t\t\t\tmaxResults is returned, it is possible the number of results is less\n\t\t\tthan maxResults.

" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of service results that ListServicesByNamespace returns in paginated\n\t\t\toutput. When this parameter is used, ListServicesByNamespace only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tListServicesByNamespace request with the returned nextToken value. This\n\t\t\tvalue can be between 1 and 100. If this parameter\n\t\t\tisn't used, then ListServicesByNamespace returns up to\n\t\t\t10 results and a nextToken value if\n\t\t\tapplicable.

" + "smithy.api#documentation": "

The maximum number of service results that ListServicesByNamespace\n\t\t\treturns in paginated output. When this parameter is used,\n\t\t\t\tListServicesByNamespace only returns maxResults results in\n\t\t\ta single page along with a nextToken response element. The remaining\n\t\t\tresults of the initial request can be seen by sending another\n\t\t\t\tListServicesByNamespace request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and\n\t\t\t100. If this parameter isn't used, then\n\t\t\t\tListServicesByNamespace returns up to\n\t\t\t10 results and a nextToken\n\t\t\tvalue if applicable.

" } } }, @@ -7588,7 +7588,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListServicesByNamespace request.\n\t\t\tWhen the results of a ListServicesByNamespace request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. When there are no more results to return, this\n\t\t\tvalue is null.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListServicesByNamespace request. When the results of a\n\t\t\t\tListServicesByNamespace request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. When there are no more results\n\t\t\tto return, this value is null.

" } } }, @@ -7602,19 +7602,19 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the ListServices\n\t\t\tresults. If you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the\n\t\t\t\tListServices results. If you do not specify a cluster, the default cluster is assumed.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListServices request indicating that\n\t\t\tmore results are available to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it is possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListServices request\n\t\t\tindicating that more results are available to fulfill the request and further calls will\n\t\t\tbe needed. If maxResults was provided, it is possible the number of results\n\t\t\tto be fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of service results that ListServices returned in paginated output.\n\t\t\tWhen this parameter is used, ListServices only returns maxResults results in\n\t\t\ta single page along with a nextToken response element. The remaining results of the\n\t\t\tinitial request can be seen by sending another ListServices request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and\n\t\t\t100. If this parameter isn't used, then ListServices returns up to\n\t\t\t10 results and a nextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of service results that ListServices returned in\n\t\t\tpaginated output. When this parameter is used, ListServices only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListServices request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If\n\t\t\tthis parameter isn't used, then ListServices returns up to\n\t\t\t10 results and a nextToken value if\n\t\t\tapplicable.

" } }, "launchType": { @@ -7626,7 +7626,7 @@ "schedulingStrategy": { "target": "com.amazonaws.ecs#SchedulingStrategy", "traits": { - "smithy.api#documentation": "

The scheduling strategy to use when filtering the ListServices results.

" + "smithy.api#documentation": "

The scheduling strategy to use when filtering the ListServices\n\t\t\tresults.

" } } }, @@ -7640,13 +7640,13 @@ "serviceArns": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The list of full ARN entries for each service that's associated with the specified cluster.

" + "smithy.api#documentation": "

The list of full ARN entries for each service that's associated with the specified\n\t\t\tcluster.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListServices request. When the\n\t\t\tresults of a ListServices request exceed maxResults, this value can be used\n\t\t\tto retrieve the next page of results. This value is null when there are no more results to\n\t\t\treturn.

" + "smithy.api#documentation": "

The nextToken value to include in a future ListServices\n\t\t\trequest. When the results of a ListServices request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of\n\t\t\tresults. This value is null when there are no more results to\n\t\t\treturn.

" } } }, @@ -7703,7 +7703,7 @@ "resourceArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resources\n\t\t\tare Amazon ECS tasks, services, task definitions, clusters, and container instances.

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

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the\n\t\t\tsupported resources are Amazon ECS tasks, services, task definitions, clusters, and container\n\t\t\tinstances.

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

Returns a list of task definition families that are registered to your account. This list includes\n\t\t\ttask definition families that no longer have any ACTIVE task definition revisions.

\n

You can filter out task definition families that don't contain any ACTIVE task\n\t\t\tdefinition revisions by setting the status parameter to ACTIVE. You can also\n\t\t\tfilter the results with the familyPrefix parameter.

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

Returns a list of task definition families that are registered to your account. This\n\t\t\tlist includes task definition families that no longer have any ACTIVE task\n\t\t\tdefinition revisions.

\n

You can filter out task definition families that don't contain any ACTIVE\n\t\t\ttask definition revisions by setting the status parameter to\n\t\t\t\tACTIVE. You can also filter the results with the\n\t\t\t\tfamilyPrefix parameter.

", "smithy.api#examples": [ { "title": "To filter your registered task definition families", @@ -7788,25 +7788,25 @@ "familyPrefix": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The familyPrefix is a string that's used to filter the results of\n\t\t\t\tListTaskDefinitionFamilies. If you specify a familyPrefix, only task\n\t\t\tdefinition family names that begin with the familyPrefix string are returned.

" + "smithy.api#documentation": "

The familyPrefix is a string that's used to filter the results of\n\t\t\t\tListTaskDefinitionFamilies. If you specify a familyPrefix,\n\t\t\tonly task definition family names that begin with the familyPrefix string\n\t\t\tare returned.

" } }, "status": { "target": "com.amazonaws.ecs#TaskDefinitionFamilyStatus", "traits": { - "smithy.api#documentation": "

The task definition family status to filter the ListTaskDefinitionFamilies results with.\n\t\t\tBy default, both ACTIVE and INACTIVE task definition families are listed. If\n\t\t\tthis parameter is set to ACTIVE, only task definition families that have an\n\t\t\t\tACTIVE task definition revision are returned. If this parameter is set to\n\t\t\t\tINACTIVE, only task definition families that do not have any ACTIVE task\n\t\t\tdefinition revisions are returned. If you paginate the resulting output, be sure to keep the\n\t\t\t\tstatus value constant in each subsequent request.

" + "smithy.api#documentation": "

The task definition family status to filter the\n\t\t\t\tListTaskDefinitionFamilies results with. By default, both\n\t\t\t\tACTIVE and INACTIVE task definition families are listed.\n\t\t\tIf this parameter is set to ACTIVE, only task definition families that have\n\t\t\tan ACTIVE task definition revision are returned. If this parameter is set\n\t\t\tto INACTIVE, only task definition families that do not have any\n\t\t\t\tACTIVE task definition revisions are returned. If you paginate the\n\t\t\tresulting output, be sure to keep the status value constant in each\n\t\t\tsubsequent request.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListTaskDefinitionFamilies request\n\t\t\tindicating that more results are available to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it is possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a\n\t\t\t\tListTaskDefinitionFamilies request indicating that more results are\n\t\t\tavailable to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it is possible the number of results to be\n\t\t\tfewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of task definition family results that ListTaskDefinitionFamilies\n\t\t\treturned in paginated output. When this parameter is used, ListTaskDefinitions only\n\t\t\treturns maxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tListTaskDefinitionFamilies request with the returned nextToken value.\n\t\t\tThis value can be between 1 and 100. If this parameter isn't used, then\n\t\t\t\tListTaskDefinitionFamilies returns up to 100 results and a\n\t\t\t\tnextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of task definition family results that\n\t\t\t\tListTaskDefinitionFamilies returned in paginated output. When this\n\t\t\tparameter is used, ListTaskDefinitions only returns maxResults\n\t\t\tresults in a single page along with a nextToken response element. The\n\t\t\tremaining results of the initial request can be seen by sending another\n\t\t\t\tListTaskDefinitionFamilies request with the returned\n\t\t\t\tnextToken value. This value can be between 1 and\n\t\t\t100. If this parameter isn't used, then\n\t\t\t\tListTaskDefinitionFamilies returns up to 100 results\n\t\t\tand a nextToken value if applicable.

" } } }, @@ -7820,13 +7820,13 @@ "families": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The list of task definition family names that match the ListTaskDefinitionFamilies\n\t\t\trequest.

" + "smithy.api#documentation": "

The list of task definition family names that match the\n\t\t\t\tListTaskDefinitionFamilies request.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListTaskDefinitionFamilies\n\t\t\trequest. When the results of a ListTaskDefinitionFamilies request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of results. This value is\n\t\t\t\tnull when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListTaskDefinitionFamilies request. When the results of a\n\t\t\t\tListTaskDefinitionFamilies request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null\n\t\t\twhen there are no more results to return.

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

Returns a list of task definitions that are registered to your account. You can filter the results by\n\t\t\tfamily name with the familyPrefix parameter or by status with the status\n\t\t\tparameter.

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

Returns a list of task definitions that are registered to your account. You can filter\n\t\t\tthe results by family name with the familyPrefix parameter or by status\n\t\t\twith the status parameter.

", "smithy.api#examples": [ { "title": "To list the registered task definitions in a family", @@ -7900,31 +7900,31 @@ "familyPrefix": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The full family name to filter the ListTaskDefinitions results with. Specifying a\n\t\t\t\tfamilyPrefix limits the listed task definitions to task definition revisions that\n\t\t\tbelong to that family.

" + "smithy.api#documentation": "

The full family name to filter the ListTaskDefinitions results with.\n\t\t\tSpecifying a familyPrefix limits the listed task definitions to task\n\t\t\tdefinition revisions that belong to that family.

" } }, "status": { "target": "com.amazonaws.ecs#TaskDefinitionStatus", "traits": { - "smithy.api#documentation": "

The task definition status to filter the ListTaskDefinitions results with. By default,\n\t\t\tonly ACTIVE task definitions are listed. By setting this parameter to\n\t\t\t\tINACTIVE, you can view task definitions that are INACTIVE as long as an\n\t\t\tactive task or service still references them. If you paginate the resulting output, be sure to keep the\n\t\t\t\tstatus value constant in each subsequent request.

" + "smithy.api#documentation": "

The task definition status to filter the ListTaskDefinitions results\n\t\t\twith. By default, only ACTIVE task definitions are listed. By setting this\n\t\t\tparameter to INACTIVE, you can view task definitions that are\n\t\t\t\tINACTIVE as long as an active task or service still references them. If\n\t\t\tyou paginate the resulting output, be sure to keep the status value\n\t\t\tconstant in each subsequent request.

" } }, "sort": { "target": "com.amazonaws.ecs#SortOrder", "traits": { - "smithy.api#documentation": "

The order to sort the results in. Valid values are ASC and DESC. By\n\t\t\tdefault, (ASC) task definitions are listed lexicographically by family name and in\n\t\t\tascending numerical order by revision so that the newest task definitions in a family are listed last.\n\t\t\tSetting this parameter to DESC reverses the sort order on family name and revision. This\n\t\t\tis so that the newest task definitions in a family are listed first.

" + "smithy.api#documentation": "

The order to sort the results in. Valid values are ASC and\n\t\t\t\tDESC. By default, (ASC) task definitions are listed\n\t\t\tlexicographically by family name and in ascending numerical order by revision so that\n\t\t\tthe newest task definitions in a family are listed last. Setting this parameter to\n\t\t\t\tDESC reverses the sort order on family name and revision. This is so\n\t\t\tthat the newest task definitions in a family are listed first.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListTaskDefinitions request indicating\n\t\t\tthat more results are available to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it is possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListTaskDefinitions\n\t\t\trequest indicating that more results are available to fulfill the request and further\n\t\t\tcalls will be needed. If maxResults was provided, it is possible the number\n\t\t\tof results to be fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of task definition results that ListTaskDefinitions returned in\n\t\t\tpaginated output. When this parameter is used, ListTaskDefinitions only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken response\n\t\t\telement. The remaining results of the initial request can be seen by sending another\n\t\t\t\tListTaskDefinitions request with the returned nextToken value. This value\n\t\t\tcan be between 1 and 100. If this parameter isn't used, then\n\t\t\t\tListTaskDefinitions returns up to 100 results and a\n\t\t\t\tnextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of task definition results that ListTaskDefinitions\n\t\t\treturned in paginated output. When this parameter is used,\n\t\t\t\tListTaskDefinitions only returns maxResults results in a\n\t\t\tsingle page along with a nextToken response element. The remaining results\n\t\t\tof the initial request can be seen by sending another ListTaskDefinitions\n\t\t\trequest with the returned nextToken value. This value can be between\n\t\t\t1 and 100. If this parameter isn't used, then\n\t\t\t\tListTaskDefinitions returns up to 100 results and a\n\t\t\t\tnextToken value if applicable.

" } } }, @@ -7944,7 +7944,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListTaskDefinitions request.\n\t\t\tWhen the results of a ListTaskDefinitions request exceed maxResults, this\n\t\t\tvalue can be used to retrieve the next page of results. This value is null when there are\n\t\t\tno more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n\t\t\t\tListTaskDefinitions request. When the results of a\n\t\t\t\tListTaskDefinitions request exceed maxResults, this value\n\t\t\tcan be used to retrieve the next page of results. This value is null when\n\t\t\tthere are no more results to return.

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

Returns a list of tasks. You can filter the results by cluster, task definition family, container\n\t\t\tinstance, launch type, what IAM principal started the task, or by the desired status of the\n\t\t\ttask.

\n

Recently stopped tasks might appear in the returned results.

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

Returns a list of tasks. You can filter the results by cluster, task definition\n\t\t\tfamily, container instance, launch type, what IAM principal started the task, or by\n\t\t\tthe desired status of the task.

\n

Recently stopped tasks might appear in the returned results.

", "smithy.api#examples": [ { "title": "To list the tasks on a particular container instance", @@ -8021,49 +8021,49 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the ListTasks\n\t\t\tresults. If you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the\n\t\t\t\tListTasks results. If you do not specify a cluster, the default cluster is assumed.

" } }, "containerInstance": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The container instance ID or full ARN of the container instance to use when filtering the\n\t\t\t\tListTasks results. Specifying a containerInstance limits the results to\n\t\t\ttasks that belong to that container instance.

" + "smithy.api#documentation": "

The container instance ID or full ARN of the container instance to use when\n\t\t\tfiltering the ListTasks results. Specifying a\n\t\t\t\tcontainerInstance limits the results to tasks that belong to that\n\t\t\tcontainer instance.

" } }, "family": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the task definition family to use when filtering the ListTasks results.\n\t\t\tSpecifying a family limits the results to tasks that belong to that family.

" + "smithy.api#documentation": "

The name of the task definition family to use when filtering the\n\t\t\t\tListTasks results. Specifying a family limits the results\n\t\t\tto tasks that belong to that family.

" } }, "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a ListTasks request indicating that more\n\t\t\tresults are available to fulfill the request and further calls will be needed. If\n\t\t\t\tmaxResults was provided, it's possible the number of results to be fewer than\n\t\t\t\tmaxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

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

The nextToken value returned from a ListTasks request\n\t\t\tindicating that more results are available to fulfill the request and further calls will\n\t\t\tbe needed. If maxResults was provided, it's possible the number of results\n\t\t\tto be fewer than maxResults.

\n \n

This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "maxResults": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of task results that ListTasks returned in paginated output. When\n\t\t\tthis parameter is used, ListTasks only returns maxResults results in a single\n\t\t\tpage along with a nextToken response element. The remaining results of the initial request\n\t\t\tcan be seen by sending another ListTasks request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If this parameter isn't used,\n\t\t\tthen ListTasks returns up to 100 results and a nextToken\n\t\t\tvalue if applicable.

" + "smithy.api#documentation": "

The maximum number of task results that ListTasks returned in paginated\n\t\t\toutput. When this parameter is used, ListTasks only returns\n\t\t\t\tmaxResults results in a single page along with a nextToken\n\t\t\tresponse element. The remaining results of the initial request can be seen by sending\n\t\t\tanother ListTasks request with the returned nextToken value.\n\t\t\tThis value can be between 1 and 100. If this parameter\n\t\t\tisn't used, then ListTasks returns up to 100 results and\n\t\t\ta nextToken value if applicable.

" } }, "startedBy": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The startedBy value to filter the task results with. Specifying a startedBy\n\t\t\tvalue limits the results to tasks that were started with that value.

\n

When you specify startedBy as the filter, it must be the only filter that you\n\t\t\tuse.

" + "smithy.api#documentation": "

The startedBy value to filter the task results with. Specifying a\n\t\t\t\tstartedBy value limits the results to tasks that were started with that\n\t\t\tvalue.

\n

When you specify startedBy as the filter, it must be the only filter that\n\t\t\tyou use.

" } }, "serviceName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the service to use when filtering the ListTasks results. Specifying a\n\t\t\t\tserviceName limits the results to tasks that belong to that service.

" + "smithy.api#documentation": "

The name of the service to use when filtering the ListTasks results.\n\t\t\tSpecifying a serviceName limits the results to tasks that belong to that\n\t\t\tservice.

" } }, "desiredStatus": { "target": "com.amazonaws.ecs#DesiredStatus", "traits": { - "smithy.api#documentation": "

The task desired status to use when filtering the ListTasks results. Specifying a\n\t\t\t\tdesiredStatus of STOPPED limits the results to tasks that Amazon ECS has set\n\t\t\tthe desired status to STOPPED. This can be useful for debugging tasks that aren't starting\n\t\t\tproperly or have died or finished. The default status filter is RUNNING, which shows tasks\n\t\t\tthat Amazon ECS has set the desired status to RUNNING.

\n \n

Although you can filter results based on a desired status of PENDING, this doesn't\n\t\t\t\treturn any results. Amazon ECS never sets the desired status of a task to that value (only a task's\n\t\t\t\t\tlastStatus may have a value of PENDING).

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

The task desired status to use when filtering the ListTasks results.\n\t\t\tSpecifying a desiredStatus of STOPPED limits the results to\n\t\t\ttasks that Amazon ECS has set the desired status to STOPPED. This can be useful\n\t\t\tfor debugging tasks that aren't starting properly or have died or finished. The default\n\t\t\tstatus filter is RUNNING, which shows tasks that Amazon ECS has set the desired\n\t\t\tstatus to RUNNING.

\n \n

Although you can filter results based on a desired status of PENDING,\n\t\t\t\tthis doesn't return any results. Amazon ECS never sets the desired status of a task to\n\t\t\t\tthat value (only a task's lastStatus may have a value of\n\t\t\t\t\tPENDING).

\n
" } }, "launchType": { @@ -8089,7 +8089,7 @@ "nextToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListTasks request. When the\n\t\t\tresults of a ListTasks request exceed maxResults, this value can be used to\n\t\t\tretrieve the next page of results. This value is null when there are no more results to\n\t\t\treturn.

" + "smithy.api#documentation": "

The nextToken value to include in a future ListTasks\n\t\t\trequest. When the results of a ListTasks request exceed\n\t\t\t\tmaxResults, this value can be used to retrieve the next page of\n\t\t\tresults. This value is null when there are no more results to\n\t\t\treturn.

" } } }, @@ -8103,30 +8103,30 @@ "targetGroupArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

\n

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer.

\n

For services using the ECS deployment controller, you can specify one or multiple target\n\t\t\tgroups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

\n

For services using the CODE_DEPLOY deployment controller, you're required to define two\n\t\t\ttarget groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

\n \n

If your service's task definition uses the awsvpc network mode, you must choose\n\t\t\t\t\tip as the target type, not instance. Do this when creating your\n\t\t\t\ttarget groups because tasks that use the awsvpc network mode are associated with an\n\t\t\t\telastic network interface, not an Amazon EC2 instance. This network mode is required for the\n\t\t\t\tFargate launch type.

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

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or\n\t\t\ttask set.

\n

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer.

\n

For services using the ECS deployment controller, you can specify one or\n\t\t\tmultiple target groups. For more information, see Registering multiple target groups with a service in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

\n

For services using the CODE_DEPLOY deployment controller, you're required\n\t\t\tto define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

If your service's task definition uses the awsvpc network mode, you\n\t\t\t\tmust choose ip as the target type, not instance. Do this\n\t\t\t\twhen creating your target groups because tasks that use the awsvpc\n\t\t\t\tnetwork mode are associated with an elastic network interface, not an Amazon EC2\n\t\t\t\tinstance. This network mode is required for the Fargate launch\n\t\t\t\ttype.

\n
" } }, "loadBalancerName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the load balancer to associate with the Amazon ECS service or task set.

\n

If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.

" + "smithy.api#documentation": "

The name of the load balancer to associate with the Amazon ECS service or task set.

\n

If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be\n\t\t\tomitted.

" } }, "containerName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the container (as it appears in a container definition) to associate with the load\n\t\t\tbalancer.

\n

You need to specify the container name when configuring the target group for an Amazon ECS load\n\t\t\tbalancer.

" + "smithy.api#documentation": "

The name of the container (as it appears in a container definition) to associate with\n\t\t\tthe load balancer.

\n

You need to specify the container name when configuring the target group for an Amazon ECS\n\t\t\tload balancer.

" } }, "containerPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port on the container to associate with the load balancer. This port must correspond to a\n\t\t\t\tcontainerPort in the task definition the tasks in the service are using. For tasks\n\t\t\tthat use the EC2 launch type, the container instance they're launched on must allow\n\t\t\tingress traffic on the hostPort of the port mapping.

" + "smithy.api#documentation": "

The port on the container to associate with the load balancer. This port must\n\t\t\tcorrespond to a containerPort in the task definition the tasks in the\n\t\t\tservice are using. For tasks that use the EC2 launch type, the container\n\t\t\tinstance they're launched on must allow ingress traffic on the hostPort of\n\t\t\tthe port mapping.

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

The load balancer configuration to use with a service or task set.

\n

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the\n\t\t\tupdated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load\n\t\t\tbalancers.

\n

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

\n

A service-linked role is required for services that use multiple target groups. For more information,\n\t\t\tsee Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The load balancer configuration to use with a service or task set.

\n

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new\n\t\t\tdeployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and\n\t\t\tderegister from load balancers.

\n

We recommend that you verify this on a test environment before you update the Elastic Load Balancing\n\t\t\tconfiguration.

\n

A service-linked role is required for services that use multiple target groups. For\n\t\t\tmore information, see Using\n\t\t\t\tservice-linked roles in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#LoadBalancers": { @@ -8141,25 +8141,25 @@ "logDriver": { "target": "com.amazonaws.ecs#LogDriver", "traits": { - "smithy.api#documentation": "

The log driver to use for the container.

\n

For tasks on Fargate, the supported log drivers are awslogs, splunk, and\n\t\t\t\tawsfirelens.

\n

For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs,\n\t\t\t\tfluentd, gelf, json-file, journald,\n\t\t\t\tsyslog, splunk, and awsfirelens.

\n

For more information about using the awslogs log driver, see Send Amazon ECS logs to CloudWatch in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n

For more information about using the awsfirelens log driver, see Send Amazon ECS logs to\n\t\t\t\tan Amazon Web Services service or Amazon Web Services Partner.

\n \n

If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project\n\t\t\t\tthat's available on GitHub and\n\t\t\t\tcustomize it to work with that driver. We encourage you to submit pull requests for changes that\n\t\t\t\tyou would like to have included. However, we don't currently provide support for running modified\n\t\t\t\tcopies of this software.

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

The log driver to use for the container.

\n

For tasks on Fargate, the supported log drivers are awslogs,\n\t\t\t\tsplunk, and awsfirelens.

\n

For tasks hosted on Amazon EC2 instances, the supported log drivers are\n\t\t\t\tawslogs, fluentd, gelf,\n\t\t\t\tjson-file, journald, syslog,\n\t\t\t\tsplunk, and awsfirelens.

\n

For more information about using the awslogs log driver, see Send\n\t\t\t\tAmazon ECS logs to CloudWatch in the Amazon Elastic Container Service Developer Guide.

\n

For more information about using the awsfirelens log driver, see Send\n\t\t\t\tAmazon ECS logs to an Amazon Web Services service or Amazon Web Services Partner.

\n \n

If you have a custom driver that isn't listed, you can fork the Amazon ECS container\n\t\t\t\tagent project that's available\n\t\t\t\t\ton GitHub and customize it to work with that driver. We encourage you to\n\t\t\t\tsubmit pull requests for changes that you would like to have included. However, we\n\t\t\t\tdon't currently provide support for running modified copies of this software.

\n
", "smithy.api#required": {} } }, "options": { "target": "com.amazonaws.ecs#LogConfigurationOptionsMap", "traits": { - "smithy.api#documentation": "

The configuration options to send to the log driver.

\n

The options you can specify depend on the log driver. Some of the options you can specify when you\n\t\t\tuse the awslogs log driver to route logs to Amazon CloudWatch include the following:

\n
\n
awslogs-create-group
\n
\n

Required: No

\n

Specify whether you want the log group to be created automatically. If this option isn't\n\t\t\t\t\t\tspecified, it defaults to false.

\n \n

Your IAM policy must include the logs:CreateLogGroup permission before\n\t\t\t\t\t\t\tyou attempt to use awslogs-create-group.

\n
\n
\n
awslogs-region
\n
\n

Required: Yes

\n

Specify the Amazon Web Services Region that the awslogs log driver is to send your Docker\n\t\t\t\t\t\tlogs to. You can choose to send all of your logs from clusters in different Regions to a\n\t\t\t\t\t\tsingle region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you\n\t\t\t\t\t\tcan separate them by Region for more granularity. Make sure that the specified log group\n\t\t\t\t\t\texists in the Region that you specify with this option.

\n
\n
awslogs-group
\n
\n

Required: Yes

\n

Make sure to specify a log group that the awslogs log driver sends its log\n\t\t\t\t\t\tstreams to.

\n
\n
awslogs-stream-prefix
\n
\n

Required: Yes, when using the Fargate launch\n\t\t\t\t\t\t\ttype.Optional for the EC2 launch type, required for the\n\t\t\t\t\t\t\tFargate launch type.

\n

Use the awslogs-stream-prefix option to associate a log stream with the\n\t\t\t\t\t\tspecified prefix, the container name, and the ID of the Amazon ECS task that the container\n\t\t\t\t\t\tbelongs to. If you specify a prefix with this option, then the log stream takes the format\n\t\t\t\t\t\t\tprefix-name/container-name/ecs-task-id.

\n

If you don't specify a prefix with this option, then the log stream is named after the\n\t\t\t\t\t\tcontainer ID that's assigned by the Docker daemon on the container instance. Because it's\n\t\t\t\t\t\tdifficult to trace logs back to the container that sent them with just the Docker container\n\t\t\t\t\t\tID (which is only available on the container instance), we recommend that you specify a\n\t\t\t\t\t\tprefix with this option.

\n

For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace\n\t\t\t\t\t\tlog streams to the service that the container belongs to, the name of the container that\n\t\t\t\t\t\tsent them, and the ID of the task that the container belongs to.

\n

You must specify a stream-prefix for your logs to have your logs appear in the Log pane\n\t\t\t\t\t\twhen using the Amazon ECS console.

\n
\n
awslogs-datetime-format
\n
\n

Required: No

\n

This option defines a multiline start pattern in Python strftime format. A\n\t\t\t\t\t\tlog message consists of a line that matches the pattern and any following lines that don’t\n\t\t\t\t\t\tmatch the pattern. The matched line is the delimiter between log messages.

\n

One example of a use case for using this format is for parsing output such as a stack\n\t\t\t\t\t\tdump, which might otherwise be logged in multiple entries. The correct pattern allows it to\n\t\t\t\t\t\tbe captured in a single entry.

\n

For more information, see awslogs-datetime-format.

\n

You cannot configure both the awslogs-datetime-format and\n\t\t\t\t\t\t\tawslogs-multiline-pattern options.

\n \n

Multiline logging performs regular expression parsing and matching of all log\n\t\t\t\t\t\t\tmessages. This might have a negative impact on logging performance.

\n
\n
\n
awslogs-multiline-pattern
\n
\n

Required: No

\n

This option defines a multiline start pattern that uses a regular expression. A log\n\t\t\t\t\t\tmessage consists of a line that matches the pattern and any following lines that don’t\n\t\t\t\t\t\tmatch the pattern. The matched line is the delimiter between log messages.

\n

For more information, see awslogs-multiline-pattern.

\n

This option is ignored if awslogs-datetime-format is also configured.

\n

You cannot configure both the awslogs-datetime-format and\n\t\t\t\t\t\t\tawslogs-multiline-pattern options.

\n \n

Multiline logging performs regular expression parsing and matching of all log\n\t\t\t\t\t\t\tmessages. This might have a negative impact on logging performance.

\n
\n
\n
mode
\n
\n

Required: No

\n

Valid values: non-blocking | blocking\n

\n

This option defines the delivery mode of log messages from the container to CloudWatch Logs. The\n\t\t\t\t\t\tdelivery mode you choose affects application availability when the flow of logs from\n\t\t\t\t\t\tcontainer to CloudWatch is interrupted.

\n

If you use the blocking mode and the flow of logs to CloudWatch is interrupted,\n\t\t\t\t\t\tcalls from container code to write to the stdout and stderr\n\t\t\t\t\t\tstreams will block. The logging thread of the application will block as a result. This may\n\t\t\t\t\t\tcause the application to become unresponsive and lead to container healthcheck failure.

\n

If you use the non-blocking mode, the container's logs are instead stored in\n\t\t\t\t\t\tan in-memory intermediate buffer configured with the max-buffer-size option.\n\t\t\t\t\t\tThis prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch.\n\t\t\t\t\t\tWe recommend using this mode if you want to ensure service availability and are okay with\n\t\t\t\t\t\tsome log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log\n\t\t\t\t\t\t\tdriver.

\n
\n
max-buffer-size
\n
\n

Required: No

\n

Default value: 1m\n

\n

When non-blocking mode is used, the max-buffer-size log option\n\t\t\t\t\t\tcontrols the size of the buffer that's used for intermediate message storage. Make sure to\n\t\t\t\t\t\tspecify an adequate buffer size based on your application. When the buffer fills up,\n\t\t\t\t\t\tfurther logs cannot be stored. Logs that cannot be stored are lost.

\n
\n
\n

To route logs using the splunk log router, you need to specify a\n\t\t\t\tsplunk-token and a splunk-url.

\n

When you use the awsfirelens log router to route logs to an Amazon Web Services Service or Amazon Web Services Partner Network\n\t\t\tdestination for log storage and analytics, you can set the log-driver-buffer-limit option\n\t\t\tto limit the number of events that are buffered in memory, before being sent to the log router\n\t\t\tcontainer. It can help to resolve potential log loss issue because high throughput might result in\n\t\t\tmemory running out for the buffer inside of Docker.

\n

Other options you can specify when using awsfirelens to route logs depend on the\n\t\t\tdestination. When you export logs to Amazon Data Firehose, you can specify the Amazon Web Services Region with\n\t\t\t\tregion and a name for the log stream with delivery_stream.

\n

When you export logs to Amazon Kinesis Data Streams, you can specify an Amazon Web Services Region with region and a\n\t\t\tdata stream name with stream.

\n

When you export logs to Amazon OpenSearch Service, you can specify options like Name, Host\n\t\t\t(OpenSearch Service endpoint without protocol), Port, Index, Type,\n\t\t\t\tAws_auth, Aws_region, Suppress_Type_Name, and\n\t\t\t\ttls.

\n

When you export logs to Amazon S3, you can specify the bucket using the bucket option. You\n\t\t\tcan also specify region, total_file_size, upload_timeout, and\n\t\t\t\tuse_put_object as options.

\n

This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" + "smithy.api#documentation": "

The configuration options to send to the log driver.

\n

The options you can specify depend on the log driver. Some of the options you can\n\t\t\tspecify when you use the awslogs log driver to route logs to Amazon CloudWatch\n\t\t\tinclude the following:

\n
\n
awslogs-create-group
\n
\n

Required: No

\n

Specify whether you want the log group to be created automatically. If\n\t\t\t\t\t\tthis option isn't specified, it defaults to false.

\n \n

Your IAM policy must include the logs:CreateLogGroup\n\t\t\t\t\t\t\tpermission before you attempt to use\n\t\t\t\t\t\t\tawslogs-create-group.

\n
\n
\n
awslogs-region
\n
\n

Required: Yes

\n

Specify the Amazon Web Services Region that the awslogs log driver is to\n\t\t\t\t\t\tsend your Docker logs to. You can choose to send all of your logs from\n\t\t\t\t\t\tclusters in different Regions to a single region in CloudWatch Logs. This is so that\n\t\t\t\t\t\tthey're all visible in one location. Otherwise, you can separate them by\n\t\t\t\t\t\tRegion for more granularity. Make sure that the specified log group exists\n\t\t\t\t\t\tin the Region that you specify with this option.

\n
\n
awslogs-group
\n
\n

Required: Yes

\n

Make sure to specify a log group that the awslogs log driver\n\t\t\t\t\t\tsends its log streams to.

\n
\n
awslogs-stream-prefix
\n
\n

Required: Yes, when using the Fargate launch\n\t\t\t\t\t\t\ttype.Optional for the EC2 launch type,\n\t\t\t\t\t\t\trequired for the Fargate launch type.

\n

Use the awslogs-stream-prefix option to associate a log\n\t\t\t\t\t\tstream with the specified prefix, the container name, and the ID of the\n\t\t\t\t\t\tAmazon ECS task that the container belongs to. If you specify a prefix with this\n\t\t\t\t\t\toption, then the log stream takes the format\n\t\t\t\t\t\t\tprefix-name/container-name/ecs-task-id.

\n

If you don't specify a prefix with this option, then the log stream is\n\t\t\t\t\t\tnamed after the container ID that's assigned by the Docker daemon on the\n\t\t\t\t\t\tcontainer instance. Because it's difficult to trace logs back to the\n\t\t\t\t\t\tcontainer that sent them with just the Docker container ID (which is only\n\t\t\t\t\t\tavailable on the container instance), we recommend that you specify a prefix\n\t\t\t\t\t\twith this option.

\n

For Amazon ECS services, you can use the service name as the prefix. Doing so,\n\t\t\t\t\t\tyou can trace log streams to the service that the container belongs to, the\n\t\t\t\t\t\tname of the container that sent them, and the ID of the task that the\n\t\t\t\t\t\tcontainer belongs to.

\n

You must specify a stream-prefix for your logs to have your logs appear in\n\t\t\t\t\t\tthe Log pane when using the Amazon ECS console.

\n
\n
awslogs-datetime-format
\n
\n

Required: No

\n

This option defines a multiline start pattern in Python\n\t\t\t\t\t\t\tstrftime format. A log message consists of a line that\n\t\t\t\t\t\tmatches the pattern and any following lines that don’t match the pattern.\n\t\t\t\t\t\tThe matched line is the delimiter between log messages.

\n

One example of a use case for using this format is for parsing output such\n\t\t\t\t\t\tas a stack dump, which might otherwise be logged in multiple entries. The\n\t\t\t\t\t\tcorrect pattern allows it to be captured in a single entry.

\n

For more information, see awslogs-datetime-format.

\n

You cannot configure both the awslogs-datetime-format and\n\t\t\t\t\t\t\tawslogs-multiline-pattern options.

\n \n

Multiline logging performs regular expression parsing and matching of\n\t\t\t\t\t\t\tall log messages. This might have a negative impact on logging\n\t\t\t\t\t\t\tperformance.

\n
\n
\n
awslogs-multiline-pattern
\n
\n

Required: No

\n

This option defines a multiline start pattern that uses a regular\n\t\t\t\t\t\texpression. A log message consists of a line that matches the pattern and\n\t\t\t\t\t\tany following lines that don’t match the pattern. The matched line is the\n\t\t\t\t\t\tdelimiter between log messages.

\n

For more information, see awslogs-multiline-pattern.

\n

This option is ignored if awslogs-datetime-format is also\n\t\t\t\t\t\tconfigured.

\n

You cannot configure both the awslogs-datetime-format and\n\t\t\t\t\t\t\tawslogs-multiline-pattern options.

\n \n

Multiline logging performs regular expression parsing and matching of\n\t\t\t\t\t\t\tall log messages. This might have a negative impact on logging\n\t\t\t\t\t\t\tperformance.

\n
\n
\n
mode
\n
\n

Required: No

\n

Valid values: non-blocking | blocking\n

\n

This option defines the delivery mode of log messages from the container\n\t\t\t\t\t\tto CloudWatch Logs. The delivery mode you choose affects application availability when\n\t\t\t\t\t\tthe flow of logs from container to CloudWatch is interrupted.

\n

If you use the blocking mode and the flow of logs to CloudWatch is\n\t\t\t\t\t\tinterrupted, calls from container code to write to the stdout\n\t\t\t\t\t\tand stderr streams will block. The logging thread of the\n\t\t\t\t\t\tapplication will block as a result. This may cause the application to become\n\t\t\t\t\t\tunresponsive and lead to container healthcheck failure.

\n

If you use the non-blocking mode, the container's logs are\n\t\t\t\t\t\tinstead stored in an in-memory intermediate buffer configured with the\n\t\t\t\t\t\t\tmax-buffer-size option. This prevents the application from\n\t\t\t\t\t\tbecoming unresponsive when logs cannot be sent to CloudWatch. We recommend using\n\t\t\t\t\t\tthis mode if you want to ensure service availability and are okay with some\n\t\t\t\t\t\tlog loss. For more information, see Preventing log loss with non-blocking mode in the awslogs\n\t\t\t\t\t\t\tcontainer log driver.

\n
\n
max-buffer-size
\n
\n

Required: No

\n

Default value: 1m\n

\n

When non-blocking mode is used, the\n\t\t\t\t\t\t\tmax-buffer-size log option controls the size of the buffer\n\t\t\t\t\t\tthat's used for intermediate message storage. Make sure to specify an\n\t\t\t\t\t\tadequate buffer size based on your application. When the buffer fills up,\n\t\t\t\t\t\tfurther logs cannot be stored. Logs that cannot be stored are lost.

\n
\n
\n

To route logs using the splunk log router, you need to specify a\n\t\t\t\tsplunk-token and a splunk-url.

\n

When you use the awsfirelens log router to route logs to an Amazon Web Services Service\n\t\t\tor Amazon Web Services Partner Network destination for log storage and analytics, you can set the\n\t\t\t\tlog-driver-buffer-limit option to limit the number of events that are\n\t\t\tbuffered in memory, before being sent to the log router container. It can help to\n\t\t\tresolve potential log loss issue because high throughput might result in memory running\n\t\t\tout for the buffer inside of Docker.

\n

Other options you can specify when using awsfirelens to route logs depend\n\t\t\ton the destination. When you export logs to Amazon Data Firehose, you can specify the Amazon Web Services Region\n\t\t\twith region and a name for the log stream with\n\t\t\tdelivery_stream.

\n

When you export logs to Amazon Kinesis Data Streams, you can specify an Amazon Web Services Region with\n\t\t\t\tregion and a data stream name with stream.

\n

When you export logs to Amazon OpenSearch Service, you can specify options like Name,\n\t\t\t\tHost (OpenSearch Service endpoint without protocol), Port,\n\t\t\t\tIndex, Type, Aws_auth,\n\t\t\t\tAws_region, Suppress_Type_Name, and\n\t\t\ttls.

\n

When you export logs to Amazon S3, you can specify the bucket using the bucket\n\t\t\toption. You can also specify region, total_file_size,\n\t\t\t\tupload_timeout, and use_put_object as options.

\n

This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'\n

" } }, "secretOptions": { "target": "com.amazonaws.ecs#SecretList", "traits": { - "smithy.api#documentation": "

The secrets to pass to the log configuration. For more information, see Specifying sensitive\n\t\t\t\tdata in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The secrets to pass to the log configuration. For more information, see Specifying\n\t\t\t\tsensitive data in the Amazon Elastic Container Service Developer Guide.

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

The log configuration for the container. This parameter maps to LogConfig in the docker\n\t\t\tcontainer create command and the --log-driver option to docker run.

\n

By default, containers use the same logging driver that the Docker daemon uses. However, the\n\t\t\tcontainer might use a different logging driver than the Docker daemon by specifying a log driver\n\t\t\tconfiguration in the container definition.

\n

Understand the following when specifying a log configuration for your containers.

\n
    \n
  • \n

    Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon.\n\t\t\t\t\tAdditional log drivers may be available in future releases of the Amazon ECS container agent.

    \n

    For tasks on Fargate, the supported log drivers are awslogs,\n\t\t\t\t\t\tsplunk, and awsfirelens.

    \n

    For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs,\n\t\t\t\t\t\tfluentd, gelf, json-file,\n\t\t\t\t\t\tjournald,syslog, splunk, and\n\t\t\t\t\t\tawsfirelens.

    \n
  • \n
  • \n

    This parameter requires version 1.18 of the Docker Remote API or greater on your container\n\t\t\t\t\tinstance.

    \n
  • \n
  • \n

    For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the\n\t\t\t\t\tavailable logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n\t\t\t\t\tvariable before containers placed on that instance can use these log configuration options. For\n\t\t\t\t\tmore information, see Amazon ECS container agent configuration in the\n\t\t\t\t\tAmazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    For tasks that are on Fargate, because you don't have access to the underlying\n\t\t\t\t\tinfrastructure your tasks are hosted on, any additional software needed must be installed\n\t\t\t\t\toutside of the task. For example, the Fluentd output aggregators or a remote host running\n\t\t\t\t\tLogstash to send Gelf logs to.

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

The log configuration for the container. This parameter maps to LogConfig\n\t\t\tin the docker container create command and the --log-driver option to\n\t\t\tdocker run.

\n

By default, containers use the same logging driver that the Docker daemon uses.\n\t\t\tHowever, the container might use a different logging driver than the Docker daemon by\n\t\t\tspecifying a log driver configuration in the container definition.

\n

Understand the following when specifying a log configuration for your\n\t\t\tcontainers.

\n
    \n
  • \n

    Amazon ECS currently supports a subset of the logging drivers available to the\n\t\t\t\t\tDocker daemon. Additional log drivers may be available in future releases of the\n\t\t\t\t\tAmazon ECS container agent.

    \n

    For tasks on Fargate, the supported log drivers are awslogs,\n\t\t\t\t\t\tsplunk, and awsfirelens.

    \n

    For tasks hosted on Amazon EC2 instances, the supported log drivers are\n\t\t\t\t\t\tawslogs, fluentd, gelf,\n\t\t\t\t\t\tjson-file, journald,syslog,\n\t\t\t\t\t\tsplunk, and awsfirelens.

    \n
  • \n
  • \n

    This parameter requires version 1.18 of the Docker Remote API or greater on\n\t\t\t\t\tyour container instance.

    \n
  • \n
  • \n

    For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must\n\t\t\t\t\tregister the available logging drivers with the\n\t\t\t\t\t\tECS_AVAILABLE_LOGGING_DRIVERS environment variable before\n\t\t\t\t\tcontainers placed on that instance can use these log configuration options. For\n\t\t\t\t\tmore information, see Amazon ECS container agent configuration in the\n\t\t\t\t\tAmazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    For tasks that are on Fargate, because you don't have access to the\n\t\t\t\t\tunderlying infrastructure your tasks are hosted on, any additional software\n\t\t\t\t\tneeded must be installed outside of the task. For example, the Fluentd output\n\t\t\t\t\taggregators or a remote host running Logstash to send Gelf logs to.

    \n
  • \n
" } }, "com.amazonaws.ecs#LogConfigurationOptionsMap": { @@ -8242,7 +8242,7 @@ "name": { "target": "com.amazonaws.ecs#ManagedAgentName", "traits": { - "smithy.api#documentation": "

The name of the managed agent. When the execute command feature is turned on, the managed agent name\n\t\t\tis ExecuteCommandAgent.

" + "smithy.api#documentation": "

The name of the managed agent. When the execute command feature is turned on, the\n\t\t\tmanaged agent name is ExecuteCommandAgent.

" } }, "reason": { @@ -8349,30 +8349,30 @@ "targetCapacity": { "target": "com.amazonaws.ecs#ManagedScalingTargetCapacity", "traits": { - "smithy.api#documentation": "

The target capacity utilization as a percentage for the capacity provider. The specified value must\n\t\t\tbe greater than 0 and less than or equal to 100. For example, if you want the\n\t\t\tcapacity provider to maintain 10% spare capacity, then that means the utilization is 90%, so use a\n\t\t\t\ttargetCapacity of 90. The default value of 100 percent\n\t\t\tresults in the Amazon EC2 instances in your Auto Scaling group being completely used.

" + "smithy.api#documentation": "

The target capacity utilization as a percentage for the capacity provider. The\n\t\t\tspecified value must be greater than 0 and less than or equal to\n\t\t\t\t100. For example, if you want the capacity provider to maintain 10%\n\t\t\tspare capacity, then that means the utilization is 90%, so use a\n\t\t\t\ttargetCapacity of 90. The default value of\n\t\t\t\t100 percent results in the Amazon EC2 instances in your Auto Scaling group\n\t\t\tbeing completely used.

" } }, "minimumScalingStepSize": { "target": "com.amazonaws.ecs#ManagedScalingStepSize", "traits": { - "smithy.api#documentation": "

The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in process is\n\t\t\tnot affected by this parameter If this parameter is omitted, the default value of 1 is\n\t\t\tused.

\n

When additional capacity is required, Amazon ECS will scale up the minimum scaling step size even if the\n\t\t\tactual demand is less than the minimum scaling step size.

\n

If you use a capacity provider with an Auto Scaling group configured with more than one Amazon EC2\n\t\t\tinstance type or Availability Zone, Amazon ECS will scale up by the exact minimum scaling step size value\n\t\t\tand will ignore both the maximum scaling step size as well as the capacity demand.

" + "smithy.api#documentation": "

The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale\n\t\t\tin process is not affected by this parameter If this parameter is omitted, the default\n\t\t\tvalue of 1 is used.

\n

When additional capacity is required, Amazon ECS will scale up the minimum scaling step\n\t\t\tsize even if the actual demand is less than the minimum scaling step size.

\n

If you use a capacity provider with an Auto Scaling group configured with more than\n\t\t\tone Amazon EC2 instance type or Availability Zone, Amazon ECS will scale up by the exact minimum\n\t\t\tscaling step size value and will ignore both the maximum scaling step size as well as\n\t\t\tthe capacity demand.

" } }, "maximumScalingStepSize": { "target": "com.amazonaws.ecs#ManagedScalingStepSize", "traits": { - "smithy.api#documentation": "

The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this parameter is\n\t\t\tomitted, the default value of 10000 is used.

" + "smithy.api#documentation": "

The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this\n\t\t\tparameter is omitted, the default value of 10000 is used.

" } }, "instanceWarmupPeriod": { "target": "com.amazonaws.ecs#ManagedScalingInstanceWarmupPeriod", "traits": { - "smithy.api#documentation": "

The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics\n\t\t\tfor Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is\n\t\t\tused.

" + "smithy.api#documentation": "

The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute\n\t\t\tto CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value\n\t\t\tof 300 seconds is used.

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

The managed scaling settings for the Auto Scaling group capacity provider.

\n

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of the Auto\n\t\t\tScaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with\n\t\t\tthe specified targetCapacity value as the target value for the metric. For more\n\t\t\tinformation, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

\n

If managed scaling is off, the user must manage the scaling of the Auto Scaling group.

" + "smithy.api#documentation": "

The managed scaling settings for the Auto Scaling group capacity provider.

\n

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of\n\t\t\tthe Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS\n\t\t\tmanaged CloudWatch metric with the specified targetCapacity value as the target\n\t\t\tvalue for the metric. For more information, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

\n

If managed scaling is off, the user must manage the scaling of the Auto Scaling\n\t\t\tgroup.

" } }, "com.amazonaws.ecs#ManagedScalingInstanceWarmupPeriod": { @@ -8467,7 +8467,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon ECS can't determine the current version of the Amazon ECS container agent on the container instance and\n\t\t\tdoesn't have enough information to proceed with an update. This could be because the agent running on\n\t\t\tthe container instance is a previous or custom version that doesn't use our version information.

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

Amazon ECS can't determine the current version of the Amazon ECS container agent on the\n\t\t\tcontainer instance and doesn't have enough information to proceed with an update. This\n\t\t\tcould be because the agent running on the container instance is a previous or custom\n\t\t\tversion that doesn't use our version information.

", "smithy.api#error": "client" } }, @@ -8477,7 +8477,7 @@ "sourceVolume": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the volume to mount. Must be a volume name referenced in the name parameter\n\t\t\tof task definition volume.

" + "smithy.api#documentation": "

The name of the volume to mount. Must be a volume name referenced in the\n\t\t\t\tname parameter of task definition volume.

" } }, "containerPath": { @@ -8489,7 +8489,7 @@ "readOnly": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume. If this value\n\t\t\tis false, then the container can write to the volume. The default value is\n\t\t\t\tfalse.

" + "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume.\n\t\t\tIf this value is false, then the container can write to the volume. The\n\t\t\tdefault value is false.

" } } }, @@ -8548,18 +8548,18 @@ "containerPortRange": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host port range.

\n

The following rules apply when you specify a containerPortRange:

\n
    \n
  • \n

    You must use either the bridge network mode or the awsvpc\n\t\t\t\t\tnetwork mode.

    \n
  • \n
  • \n

    This parameter is available for both the EC2 and Fargate launch types.

    \n
  • \n
  • \n

    This parameter is available for both the Linux and Windows operating systems.

    \n
  • \n
  • \n

    The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the ecs-init package

    \n
  • \n
  • \n

    You can specify a maximum of 100 port ranges per container.

    \n
  • \n
  • \n

    You do not specify a hostPortRange. The value of the hostPortRange is set\n\t\t\t\t\tas follows:

    \n
      \n
    • \n

      For containers in a task with the awsvpc network mode,\n\t\t\t\t\t\t\tthe hostPortRange is set to the same value as the\n\t\t\t\t\t\t\t\tcontainerPortRange. This is a static mapping\n\t\t\t\t\t\t\tstrategy.

      \n
    • \n
    • \n

      For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

      \n
    • \n
    \n
  • \n
  • \n

    The containerPortRange valid values are between 1 and\n\t\t\t\t\t65535.

    \n
  • \n
  • \n

    A port can only be included in one port mapping per container.

    \n
  • \n
  • \n

    You cannot specify overlapping port ranges.

    \n
  • \n
  • \n

    The first port in the range must be less than last port in the range.

    \n
  • \n
  • \n

    Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    \n

    For more information, see Issue #11185 on the Github website.

    \n

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

    \n
  • \n
\n

You can call \n DescribeTasks\n to view the hostPortRange which\n\t\t\tare the host ports that are bound to the container ports.

" + "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host\n\t\t\tport range.

\n

The following rules apply when you specify a containerPortRange:

\n
    \n
  • \n

    You must use either the bridge network mode or the awsvpc\n\t\t\t\t\tnetwork mode.

    \n
  • \n
  • \n

    This parameter is available for both the EC2 and Fargate launch types.

    \n
  • \n
  • \n

    This parameter is available for both the Linux and Windows operating systems.

    \n
  • \n
  • \n

    The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the ecs-init package

    \n
  • \n
  • \n

    You can specify a maximum of 100 port ranges per container.

    \n
  • \n
  • \n

    You do not specify a hostPortRange. The value of the hostPortRange is set\n\t\t\t\t\tas follows:

    \n
      \n
    • \n

      For containers in a task with the awsvpc network mode,\n\t\t\t\t\t\t\tthe hostPortRange is set to the same value as the\n\t\t\t\t\t\t\t\tcontainerPortRange. This is a static mapping\n\t\t\t\t\t\t\tstrategy.

      \n
    • \n
    • \n

      For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

      \n
    • \n
    \n
  • \n
  • \n

    The containerPortRange valid values are between 1 and\n\t\t\t\t\t65535.

    \n
  • \n
  • \n

    A port can only be included in one port mapping per container.

    \n
  • \n
  • \n

    You cannot specify overlapping port ranges.

    \n
  • \n
  • \n

    The first port in the range must be less than last port in the range.

    \n
  • \n
  • \n

    Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    \n

    For more information, see Issue #11185 on the Github website.

    \n

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

    \n
  • \n
\n

You can call \n DescribeTasks\n to view the hostPortRange which\n\t\t\tare the host ports that are bound to the container ports.

" } }, "hostPortRange": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The port number range on the host that's used with the network binding. This is assigned is assigned\n\t\t\tby Docker and delivered by the Amazon ECS agent.

" + "smithy.api#documentation": "

The port number range on the host that's used with the network binding. This is\n\t\t\tassigned is assigned by Docker and delivered by the Amazon ECS agent.

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

Details on the network bindings between a container and its host container instance. After a task\n\t\t\treaches the RUNNING status, manual and automatic host and container port assignments are\n\t\t\tvisible in the networkBindings section of DescribeTasks API\n\t\t\tresponses.

" + "smithy.api#documentation": "

Details on the network bindings between a container and its host container instance.\n\t\t\tAfter a task reaches the RUNNING status, manual and automatic host and\n\t\t\tcontainer port assignments are visible in the networkBindings section of\n\t\t\t\tDescribeTasks API\n\t\t\tresponses.

" } }, "com.amazonaws.ecs#NetworkBindings": { @@ -8605,7 +8605,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object representing the elastic network interface for tasks that use the awsvpc\n\t\t\tnetwork mode.

" + "smithy.api#documentation": "

An object representing the elastic network interface for tasks that use the\n\t\t\t\tawsvpc network mode.

" } }, "com.amazonaws.ecs#NetworkInterfaces": { @@ -8654,7 +8654,7 @@ } }, "traits": { - "smithy.api#documentation": "

There's no update available for this Amazon ECS container agent. This might be because the agent is\n\t\t\talready running the latest version or because it's so old that there's no update path to the current\n\t\t\tversion.

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

There's no update available for this Amazon ECS container agent. This might be because the\n\t\t\tagent is already running the latest version or because it's so old that there's no\n\t\t\tupdate path to the current version.

", "smithy.api#error": "client" } }, @@ -8734,18 +8734,18 @@ "type": { "target": "com.amazonaws.ecs#PlacementConstraintType", "traits": { - "smithy.api#documentation": "

The type of constraint. Use distinctInstance to ensure that each task in a particular\n\t\t\tgroup is running on a different container instance. Use memberOf to restrict the selection\n\t\t\tto a group of valid candidates.

" + "smithy.api#documentation": "

The type of constraint. Use distinctInstance to ensure that each task in\n\t\t\ta particular group is running on a different container instance. Use\n\t\t\t\tmemberOf to restrict the selection to a group of valid\n\t\t\tcandidates.

" } }, "expression": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. The expression can have a maximum\n\t\t\tlength of 2000 characters. You can't specify an expression if the constraint type is\n\t\t\t\tdistinctInstance. For more information, see Cluster\n\t\t\t\tquery language in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. The expression can\n\t\t\thave a maximum length of 2000 characters. You can't specify an expression if the\n\t\t\tconstraint type is distinctInstance. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

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

An object representing a constraint on task placement. For more information, see Task\n\t\t\t\tplacement constraints in the Amazon Elastic Container Service Developer Guide.

\n \n

If you're using the Fargate launch type, task placement constraints aren't\n\t\t\t\tsupported.

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

An object representing a constraint on task placement. For more information, see\n\t\t\t\tTask placement constraints in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

If you're using the Fargate launch type, task placement constraints\n\t\t\t\taren't supported.

\n
" } }, "com.amazonaws.ecs#PlacementConstraintType": { @@ -8783,18 +8783,18 @@ "type": { "target": "com.amazonaws.ecs#PlacementStrategyType", "traits": { - "smithy.api#documentation": "

The type of placement strategy. The random placement strategy randomly places tasks on\n\t\t\tavailable candidates. The spread placement strategy spreads placement across available\n\t\t\tcandidates evenly based on the field parameter. The binpack strategy places\n\t\t\ttasks on available candidates that have the least available amount of the resource that's specified\n\t\t\twith the field parameter. For example, if you binpack on memory, a task is placed on the\n\t\t\tinstance with the least amount of remaining memory but still enough to run the task.

" + "smithy.api#documentation": "

The type of placement strategy. The random placement strategy randomly\n\t\t\tplaces tasks on available candidates. The spread placement strategy spreads\n\t\t\tplacement across available candidates evenly based on the field parameter.\n\t\t\tThe binpack strategy places tasks on available candidates that have the\n\t\t\tleast available amount of the resource that's specified with the field\n\t\t\tparameter. For example, if you binpack on memory, a task is placed on the instance with\n\t\t\tthe least amount of remaining memory but still enough to run the task.

" } }, "field": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The field to apply the placement strategy against. For the spread placement strategy,\n\t\t\tvalid values are instanceId (or host, which has the same effect), or any\n\t\t\tplatform or custom attribute that's applied to a container instance, such as\n\t\t\t\tattribute:ecs.availability-zone. For the binpack placement strategy,\n\t\t\tvalid values are cpu and memory. For the random placement\n\t\t\tstrategy, this field is not used.

" + "smithy.api#documentation": "

The field to apply the placement strategy against. For the spread\n\t\t\tplacement strategy, valid values are instanceId (or host,\n\t\t\twhich has the same effect), or any platform or custom attribute that's applied to a\n\t\t\tcontainer instance, such as attribute:ecs.availability-zone. For the\n\t\t\t\tbinpack placement strategy, valid values are cpu and\n\t\t\t\tmemory. For the random placement strategy, this field is\n\t\t\tnot used.

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

The task placement strategy for a task or service. For more information, see Task\n\t\t\t\tplacement strategies in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The task placement strategy for a task or service. For more information, see Task placement strategies in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#PlacementStrategyType": { @@ -8826,20 +8826,20 @@ "id": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ID for the GPUs on the container instance. The available GPU IDs can also be obtained on the\n\t\t\tcontainer instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json file.

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

The ID for the GPUs on the container instance. The available GPU IDs can also be\n\t\t\tobtained on the container instance in the\n\t\t\t\t/var/lib/ecs/gpu/nvidia_gpu_info.json file.

", "smithy.api#required": {} } }, "type": { "target": "com.amazonaws.ecs#PlatformDeviceType", "traits": { - "smithy.api#documentation": "

The type of device that's available on the container instance. The only supported value is\n\t\t\t\tGPU.

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

The type of device that's available on the container instance. The only supported\n\t\t\tvalue is GPU.

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

The devices that are available on the container instance. The only supported device type is a\n\t\t\tGPU.

" + "smithy.api#documentation": "

The devices that are available on the container instance. The only supported device\n\t\t\ttype is a GPU.

" } }, "com.amazonaws.ecs#PlatformDeviceType": { @@ -8895,42 +8895,42 @@ "containerPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port number on the container that's bound to the user-specified or automatically assigned host\n\t\t\tport.

\n

If you use containers in a task with the awsvpc or host network mode,\n\t\t\tspecify the exposed ports using containerPort.

\n

If you use containers in a task with the bridge network mode and you specify a container\n\t\t\tport and not a host port, your container automatically receives a host port in the ephemeral port\n\t\t\trange. For more information, see hostPort. Port mappings that are automatically assigned\n\t\t\tin this way do not count toward the 100 reserved ports limit of a container instance.

" + "smithy.api#documentation": "

The port number on the container that's bound to the user-specified or automatically\n\t\t\tassigned host port.

\n

If you use containers in a task with the awsvpc or host\n\t\t\tnetwork mode, specify the exposed ports using containerPort.

\n

If you use containers in a task with the bridge network mode and you\n\t\t\tspecify a container port and not a host port, your container automatically receives a\n\t\t\thost port in the ephemeral port range. For more information, see hostPort.\n\t\t\tPort mappings that are automatically assigned in this way do not count toward the 100\n\t\t\treserved ports limit of a container instance.

" } }, "hostPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port number on the container instance to reserve for your container.

\n

If you specify a containerPortRange, leave this field empty and the value of the\n\t\t\t\thostPort is set as follows:

\n
    \n
  • \n

    For containers in a task with the awsvpc network mode, the hostPort\n\t\t\t\t\tis set to the same value as the containerPort. This is a static mapping\n\t\t\t\t\tstrategy.

    \n
  • \n
  • \n

    For containers in a task with the bridge network mode, the Amazon ECS agent finds\n\t\t\t\t\topen ports on the host and automatically binds them to the container ports. This is a dynamic\n\t\t\t\t\tmapping strategy.

    \n
  • \n
\n

If you use containers in a task with the awsvpc or host network mode, the\n\t\t\t\thostPort can either be left blank or set to the same value as the\n\t\t\t\tcontainerPort.

\n

If you use containers in a task with the bridge network mode, you can specify a\n\t\t\tnon-reserved host port for your container port mapping, or you can omit the hostPort (or\n\t\t\tset it to 0) while specifying a containerPort and your container\n\t\t\tautomatically receives a port in the ephemeral port range for your container instance operating system\n\t\t\tand Docker version.

\n

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under\n\t\t\t\t/proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the\n\t\t\tdefault ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used.\n\t\t\tDo not attempt to specify a host port in the ephemeral port range as these are reserved for automatic\n\t\t\tassignment. In general, ports below 32768 are outside of the ephemeral port range.

\n

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container\n\t\t\tagent ports 51678-51680. Any host port that was previously specified in a running task is also reserved\n\t\t\twhile the task is running. That is, after a task stops, the host port is released. The current reserved\n\t\t\tports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports\n\t\t\tat a time. This number includes the default reserved ports. Automatically assigned ports aren't\n\t\t\tincluded in the 100 reserved ports quota.

" + "smithy.api#documentation": "

The port number on the container instance to reserve for your container.

\n

If you specify a containerPortRange, leave this field empty and the value\n\t\t\tof the hostPort is set as follows:

\n
    \n
  • \n

    For containers in a task with the awsvpc network mode, the\n\t\t\t\t\t\thostPort is set to the same value as the\n\t\t\t\t\t\tcontainerPort. This is a static mapping strategy.

    \n
  • \n
  • \n

    For containers in a task with the bridge network mode, the Amazon ECS\n\t\t\t\t\tagent finds open ports on the host and automatically binds them to the container\n\t\t\t\t\tports. This is a dynamic mapping strategy.

    \n
  • \n
\n

If you use containers in a task with the awsvpc or host\n\t\t\tnetwork mode, the hostPort can either be left blank or set to the same\n\t\t\tvalue as the containerPort.

\n

If you use containers in a task with the bridge network mode, you can\n\t\t\tspecify a non-reserved host port for your container port mapping, or you can omit the\n\t\t\t\thostPort (or set it to 0) while specifying a\n\t\t\t\tcontainerPort and your container automatically receives a port in the\n\t\t\tephemeral port range for your container instance operating system and Docker\n\t\t\tversion.

\n

The default ephemeral port range for Docker version 1.6.0 and later is listed on the\n\t\t\tinstance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel\n\t\t\tparameter is unavailable, the default ephemeral port range from 49153 through 65535\n\t\t\t(Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port\n\t\t\tin the ephemeral port range as these are reserved for automatic assignment. In general,\n\t\t\tports below 32768 are outside of the ephemeral port range.

\n

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the\n\t\t\tAmazon ECS container agent ports 51678-51680. Any host port that was previously specified in\n\t\t\ta running task is also reserved while the task is running. That is, after a task stops,\n\t\t\tthe host port is released. The current reserved ports are displayed in the\n\t\t\t\tremainingResources of DescribeContainerInstances output. A container instance can have up to 100\n\t\t\treserved ports at a time. This number includes the default reserved ports. Automatically\n\t\t\tassigned ports aren't included in the 100 reserved ports quota.

" } }, "protocol": { "target": "com.amazonaws.ecs#TransportProtocol", "traits": { - "smithy.api#documentation": "

The protocol used for the port mapping. Valid values are tcp and udp. The\n\t\t\tdefault is tcp. protocol is immutable in a Service Connect service. Updating\n\t\t\tthis field requires a service deletion and redeployment.

" + "smithy.api#documentation": "

The protocol used for the port mapping. Valid values are tcp and\n\t\t\t\tudp. The default is tcp. protocol is\n\t\t\timmutable in a Service Connect service. Updating this field requires a service deletion\n\t\t\tand redeployment.

" } }, "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name that's used for the port mapping. This parameter is the name that you use in the \n\t\t\tserviceConnectConfiguration and the vpcLatticeConfigurations of a service. \n\t\t\tThe name can include up to 64 characters. The characters can include lowercase letters, numbers, \n\t\t\tunderscores (_), and hyphens (-). The name can't start with a hyphen.

" + "smithy.api#documentation": "

The name that's used for the port mapping. This parameter is the name that you use in\n\t\t\tthe serviceConnectConfiguration and the\n\t\t\t\tvpcLatticeConfigurations of a service. The name can include up to 64\n\t\t\tcharacters. The characters can include lowercase letters, numbers, underscores (_), and\n\t\t\thyphens (-). The name can't start with a hyphen.

" } }, "appProtocol": { "target": "com.amazonaws.ecs#ApplicationProtocol", "traits": { - "smithy.api#documentation": "

The application protocol that's used for the port mapping. This parameter only applies to\n\t\t\tService Connect. We recommend that you set this parameter to be consistent with the protocol that your\n\t\t\tapplication uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the\n\t\t\tService Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS\n\t\t\tconsole and CloudWatch.

\n

If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add\n\t\t\tprotocol-specific telemetry for TCP.

\n

\n appProtocol is immutable in a Service Connect service. Updating this field requires a\n\t\t\tservice deletion and redeployment.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The application protocol that's used for the port mapping. This parameter only applies\n\t\t\tto Service Connect. We recommend that you set this parameter to be consistent with the\n\t\t\tprotocol that your application uses. If you set this parameter, Amazon ECS adds\n\t\t\tprotocol-specific connection handling to the Service Connect proxy. If you set this\n\t\t\tparameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.

\n

If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't\n\t\t\tadd protocol-specific telemetry for TCP.

\n

\n appProtocol is immutable in a Service Connect service. Updating this\n\t\t\tfield requires a service deletion and redeployment.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "containerPortRange": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host port range.

\n

The following rules apply when you specify a containerPortRange:

\n
    \n
  • \n

    You must use either the bridge network mode or the awsvpc\n\t\t\t\t\tnetwork mode.

    \n
  • \n
  • \n

    This parameter is available for both the EC2 and Fargate launch types.

    \n
  • \n
  • \n

    This parameter is available for both the Linux and Windows operating systems.

    \n
  • \n
  • \n

    The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the ecs-init package

    \n
  • \n
  • \n

    You can specify a maximum of 100 port ranges per container.

    \n
  • \n
  • \n

    You do not specify a hostPortRange. The value of the hostPortRange is set\n\t\t\t\t\tas follows:

    \n
      \n
    • \n

      For containers in a task with the awsvpc network mode,\n\t\t\t\t\t\t\tthe hostPortRange is set to the same value as the\n\t\t\t\t\t\t\t\tcontainerPortRange. This is a static mapping\n\t\t\t\t\t\t\tstrategy.

      \n
    • \n
    • \n

      For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

      \n
    • \n
    \n
  • \n
  • \n

    The containerPortRange valid values are between 1 and\n\t\t\t\t\t65535.

    \n
  • \n
  • \n

    A port can only be included in one port mapping per container.

    \n
  • \n
  • \n

    You cannot specify overlapping port ranges.

    \n
  • \n
  • \n

    The first port in the range must be less than last port in the range.

    \n
  • \n
  • \n

    Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    \n

    For more information, see Issue #11185 on the Github website.

    \n

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

    \n
  • \n
\n

You can call \n DescribeTasks\n to view the hostPortRange which\n\t\t\tare the host ports that are bound to the container ports.

" + "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host\n\t\t\tport range.

\n

The following rules apply when you specify a containerPortRange:

\n
    \n
  • \n

    You must use either the bridge network mode or the awsvpc\n\t\t\t\t\tnetwork mode.

    \n
  • \n
  • \n

    This parameter is available for both the EC2 and Fargate launch types.

    \n
  • \n
  • \n

    This parameter is available for both the Linux and Windows operating systems.

    \n
  • \n
  • \n

    The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the ecs-init package

    \n
  • \n
  • \n

    You can specify a maximum of 100 port ranges per container.

    \n
  • \n
  • \n

    You do not specify a hostPortRange. The value of the hostPortRange is set\n\t\t\t\t\tas follows:

    \n
      \n
    • \n

      For containers in a task with the awsvpc network mode,\n\t\t\t\t\t\t\tthe hostPortRange is set to the same value as the\n\t\t\t\t\t\t\t\tcontainerPortRange. This is a static mapping\n\t\t\t\t\t\t\tstrategy.

      \n
    • \n
    • \n

      For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

      \n
    • \n
    \n
  • \n
  • \n

    The containerPortRange valid values are between 1 and\n\t\t\t\t\t65535.

    \n
  • \n
  • \n

    A port can only be included in one port mapping per container.

    \n
  • \n
  • \n

    You cannot specify overlapping port ranges.

    \n
  • \n
  • \n

    The first port in the range must be less than last port in the range.

    \n
  • \n
  • \n

    Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    \n

    For more information, see Issue #11185 on the Github website.

    \n

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

    \n
  • \n
\n

You can call \n DescribeTasks\n to view the hostPortRange which\n\t\t\tare the host ports that are bound to the container ports.

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

Port mappings allow containers to access ports on the host container instance to send or receive\n\t\t\ttraffic. Port mappings are specified as part of the container definition.

\n

If you use containers in a task with the awsvpc or host network mode,\n\t\t\tspecify the exposed ports using containerPort. The hostPort can be left blank\n\t\t\tor it must be the same value as the containerPort.

\n

Most fields of this parameter (containerPort, hostPort,\n\t\t\t\tprotocol) maps to PortBindings in the docker container create command and\n\t\t\tthe --publish option to docker run. If the network mode of a task definition\n\t\t\tis set to host, host ports must either be undefined or match the container port in the\n\t\t\tport mapping.

\n \n

You can't expose the same container port for multiple protocols. If you attempt this, an error is\n\t\t\t\treturned.

\n
\n

After a task reaches the RUNNING status, manual and automatic host and container port\n\t\t\tassignments are visible in the networkBindings section of DescribeTasks API\n\t\t\tresponses.

" + "smithy.api#documentation": "

Port mappings allow containers to access ports on the host container instance to send\n\t\t\tor receive traffic. Port mappings are specified as part of the container\n\t\t\tdefinition.

\n

If you use containers in a task with the awsvpc or host\n\t\t\tnetwork mode, specify the exposed ports using containerPort. The\n\t\t\t\thostPort can be left blank or it must be the same value as the\n\t\t\t\tcontainerPort.

\n

Most fields of this parameter (containerPort, hostPort,\n\t\t\t\tprotocol) maps to PortBindings in the docker container\n\t\t\tcreate command and the --publish option to docker run. If the\n\t\t\tnetwork mode of a task definition is set to host, host ports must either be\n\t\t\tundefined or match the container port in the port mapping.

\n \n

You can't expose the same container port for multiple protocols. If you attempt\n\t\t\t\tthis, an error is returned.

\n
\n

After a task reaches the RUNNING status, manual and automatic host and\n\t\t\tcontainer port assignments are visible in the networkBindings section of\n\t\t\t\tDescribeTasks API\n\t\t\tresponses.

" } }, "com.amazonaws.ecs#PortMappingList": { @@ -8984,7 +8984,7 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

The protection status of the task. If scale-in protection is on for a task, the value is\n\t\t\t\ttrue. Otherwise, it is false.

" + "smithy.api#documentation": "

The protection status of the task. If scale-in protection is on for a task, the value\n\t\t\tis true. Otherwise, it is false.

" } }, "expirationDate": { @@ -8995,7 +8995,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object representing the protection status details for a task. You can set the protection status\n\t\t\twith the UpdateTaskProtection API and get the status of tasks with the GetTaskProtection\n\t\t\tAPI.

" + "smithy.api#documentation": "

An object representing the protection status details for a task. You can set the\n\t\t\tprotection status with the UpdateTaskProtection API and get the status of tasks with the GetTaskProtection API.

" } }, "com.amazonaws.ecs#ProtectedTasks": { @@ -9023,12 +9023,12 @@ "properties": { "target": "com.amazonaws.ecs#ProxyConfigurationProperties", "traits": { - "smithy.api#documentation": "

The set of network configuration parameters to provide the Container Network Interface (CNI) plugin,\n\t\t\tspecified as key-value pairs.

\n
    \n
  • \n

    \n IgnoredUID - (Required) The user ID (UID) of the proxy container as\n\t\t\t\t\tdefined by the user parameter in a container definition. This is used to ensure\n\t\t\t\t\tthe proxy ignores its own traffic. If IgnoredGID is specified, this field can be\n\t\t\t\t\tempty.

    \n
  • \n
  • \n

    \n IgnoredGID - (Required) The group ID (GID) of the proxy container as\n\t\t\t\t\tdefined by the user parameter in a container definition. This is used to ensure\n\t\t\t\t\tthe proxy ignores its own traffic. If IgnoredUID is specified, this field can be\n\t\t\t\t\tempty.

    \n
  • \n
  • \n

    \n AppPorts - (Required) The list of ports that the application uses. Network\n\t\t\t\t\ttraffic to these ports is forwarded to the ProxyIngressPort and\n\t\t\t\t\t\tProxyEgressPort.

    \n
  • \n
  • \n

    \n ProxyIngressPort - (Required) Specifies the port that incoming traffic to\n\t\t\t\t\tthe AppPorts is directed to.

    \n
  • \n
  • \n

    \n ProxyEgressPort - (Required) Specifies the port that outgoing traffic from\n\t\t\t\t\tthe AppPorts is directed to.

    \n
  • \n
  • \n

    \n EgressIgnoredPorts - (Required) The egress traffic going to the specified\n\t\t\t\t\tports is ignored and not redirected to the ProxyEgressPort. It can be an empty\n\t\t\t\t\tlist.

    \n
  • \n
  • \n

    \n EgressIgnoredIPs - (Required) The egress traffic going to the specified IP\n\t\t\t\t\taddresses is ignored and not redirected to the ProxyEgressPort. It can be an empty\n\t\t\t\t\tlist.

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

The set of network configuration parameters to provide the Container Network Interface\n\t\t\t(CNI) plugin, specified as key-value pairs.

\n
    \n
  • \n

    \n IgnoredUID - (Required) The user ID (UID) of the proxy\n\t\t\t\t\tcontainer as defined by the user parameter in a container\n\t\t\t\t\tdefinition. This is used to ensure the proxy ignores its own traffic. If\n\t\t\t\t\t\tIgnoredGID is specified, this field can be empty.

    \n
  • \n
  • \n

    \n IgnoredGID - (Required) The group ID (GID) of the proxy\n\t\t\t\t\tcontainer as defined by the user parameter in a container\n\t\t\t\t\tdefinition. This is used to ensure the proxy ignores its own traffic. If\n\t\t\t\t\t\tIgnoredUID is specified, this field can be empty.

    \n
  • \n
  • \n

    \n AppPorts - (Required) The list of ports that the\n\t\t\t\t\tapplication uses. Network traffic to these ports is forwarded to the\n\t\t\t\t\t\tProxyIngressPort and ProxyEgressPort.

    \n
  • \n
  • \n

    \n ProxyIngressPort - (Required) Specifies the port that\n\t\t\t\t\tincoming traffic to the AppPorts is directed to.

    \n
  • \n
  • \n

    \n ProxyEgressPort - (Required) Specifies the port that\n\t\t\t\t\toutgoing traffic from the AppPorts is directed to.

    \n
  • \n
  • \n

    \n EgressIgnoredPorts - (Required) The egress traffic going to\n\t\t\t\t\tthe specified ports is ignored and not redirected to the\n\t\t\t\t\t\tProxyEgressPort. It can be an empty list.

    \n
  • \n
  • \n

    \n EgressIgnoredIPs - (Required) The egress traffic going to\n\t\t\t\t\tthe specified IP addresses is ignored and not redirected to the\n\t\t\t\t\t\tProxyEgressPort. It can be an empty list.

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

The configuration details for the App Mesh proxy.

\n

For tasks that use the EC2 launch type, the container instances require at least\n\t\t\tversion 1.26.0 of the container agent and at least version 1.26.0-1 of the ecs-init\n\t\t\tpackage to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized\n\t\t\tAMI version 20190301 or later, then they contain the required versions of the container\n\t\t\tagent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI\n

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n

For tasks that use the EC2 launch type, the container instances require\n\t\t\tat least version 1.26.0 of the container agent and at least version 1.26.0-1 of the\n\t\t\t\tecs-init package to use a proxy configuration. If your container\n\t\t\tinstances are launched from the Amazon ECS optimized AMI version 20190301 or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\tecs-init. For more information, see Amazon ECS-optimized Linux AMI\n

" } }, "com.amazonaws.ecs#ProxyConfigurationProperties": { @@ -9068,7 +9068,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies an account setting. Account settings are set on a per-Region basis.

\n

If you change the root user account setting, the default settings are reset for users and roles that do\n\t\t\tnot have specified individual account settings. For more information, see Account Settings in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

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

Modifies an account setting. Account settings are set on a per-Region basis.

\n

If you change the root user account setting, the default settings are reset for users and\n\t\t\troles that do not have specified individual account settings. For more information, see\n\t\t\t\tAccount\n\t\t\t\tSettings in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#examples": [ { "title": "To modify the account settings for a specific IAM user or IAM role", @@ -9124,7 +9124,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies an account setting for all users on an account for whom no individual account setting has\n\t\t\tbeen specified. Account settings are set on a per-Region basis.

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

Modifies an account setting for all users on an account for whom no individual account\n\t\t\tsetting has been specified. Account settings are set on a per-Region basis.

", "smithy.api#examples": [ { "title": "To modify the default account settings for all IAM users or roles on an account", @@ -9150,14 +9150,14 @@ "name": { "target": "com.amazonaws.ecs#SettingName", "traits": { - "smithy.api#documentation": "

The resource name for which to modify the account setting.

\n

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

\n
    \n
  • \n

    \n serviceLongArnFormat - When modified, the Amazon Resource Name (ARN) and\n\t\t\t\t\tresource ID format of the resource type for a specified user, role, or the root user for an\n\t\t\t\t\taccount is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n taskLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource\n\t\t\t\t\tID format of the resource type for a specified user, role, or the root user for an account is\n\t\t\t\t\taffected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n containerInstanceLongArnFormat - When modified, the Amazon Resource Name (ARN)\n\t\t\t\t\tand resource ID format of the resource type for a specified user, role, or the root user for an\n\t\t\t\t\taccount is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n awsvpcTrunking - When modified, the elastic network interface (ENI) limit for\n\t\t\t\t\tany new container instances that support the feature is changed. If awsvpcTrunking\n\t\t\t\t\tis turned on, any new container instances that support the feature are launched have the\n\t\t\t\t\tincreased ENI limits available to them. For more information, see Elastic Network Interface\n\t\t\t\t\t\tTrunking in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n containerInsights - Container Insights with enhanced observability provides\n\t\t\t\t\tall the Container Insights metrics, plus additional task and container metrics.\n\t\t\t\t\tThis version supports enhanced observability for Amazon ECS clusters using the Amazon EC2\n\t\t\t\t\tand Fargate launch types. After you configure Container Insights with enhanced\n\t\t\t\t\tobservability on Amazon ECS, Container Insights auto-collects detailed infrastructure\n\t\t\t\t\ttelemetry from the cluster level down to the container level in your environment and\n\t\t\t\t\tdisplays these critical performance data in curated dashboards removing the\n\t\t\t\t\theavy lifting in observability set-up.

    \n

    To use Container Insights with enhanced observability, set the\n\t\t\t\t\t\tcontainerInsights account setting to\n\t\t\t\t\tenhanced.

    \n

    To use Container Insights, set the containerInsights account\n\t\t\t\t\tsetting to enabled.

    \n

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks\n\t\t\t\t\tusing the awsvpc network mode can have an IPv6 address assigned. For more\n\t\t\t\t\tinformation on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks\n\t\t\t\t\tlaunched on Fargate, see Using a VPC in dual-stack mode.

    \n
  • \n
  • \n

    \n fargateFIPSMode - If you specify fargateFIPSMode, Fargate FIPS\n\t\t\t\t\t140 compliance is affected.

    \n
  • \n
  • \n

    \n fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a security or\n\t\t\t\t\tinfrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be\n\t\t\t\t\tstopped and new tasks launched to replace them. Use\n\t\t\t\t\t\tfargateTaskRetirementWaitPeriod to configure the wait time to retire a\n\t\t\t\t\tFargate task. For information about the Fargate tasks maintenance, see Amazon Web Services\n\t\t\t\t\t\tFargate task maintenance in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n tagResourceAuthorization - Amazon ECS is introducing tagging authorization for\n\t\t\t\t\tresource creation. Users must have permissions for actions that create the resource, such as\n\t\t\t\t\t\tecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services\n\t\t\t\t\tperforms additional authorization to verify if users or roles have permissions to create tags.\n\t\t\t\t\tTherefore, you must grant explicit permissions to use the ecs:TagResource action.\n\t\t\t\t\tFor more information, see Grant permission\n\t\t\t\t\t\tto tag resources on creation in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether\n\t\t\tAmazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your\n\t\t\tAmazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

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

The resource name for which to modify the account setting.

\n

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

\n
    \n
  • \n

    \n serviceLongArnFormat - When modified, the Amazon Resource Name\n\t\t\t\t\t(ARN) and resource ID format of the resource type for a specified user, role, or\n\t\t\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting\n\t\t\t\t\tmust be set for each Amazon ECS resource separately. The ARN and resource ID format\n\t\t\t\t\tof a resource is defined by the opt-in status of the user or role that created\n\t\t\t\t\tthe resource. You must turn on this setting to use Amazon ECS features such as\n\t\t\t\t\tresource tagging.

    \n
  • \n
  • \n

    \n taskLongArnFormat - When modified, the Amazon Resource Name (ARN)\n\t\t\t\t\tand resource ID format of the resource type for a specified user, role, or the\n\t\t\t\t\troot user for an account is affected. The opt-in and opt-out account setting must\n\t\t\t\t\tbe set for each Amazon ECS resource separately. The ARN and resource ID format of a\n\t\t\t\t\tresource is defined by the opt-in status of the user or role that created the\n\t\t\t\t\tresource. You must turn on this setting to use Amazon ECS features such as resource\n\t\t\t\t\ttagging.

    \n
  • \n
  • \n

    \n containerInstanceLongArnFormat - When modified, the Amazon\n\t\t\t\t\tResource Name (ARN) and resource ID format of the resource type for a specified\n\t\t\t\t\tuser, role, or the root user for an account is affected. The opt-in and opt-out\n\t\t\t\t\taccount setting must be set for each Amazon ECS resource separately. The ARN and\n\t\t\t\t\tresource ID format of a resource is defined by the opt-in status of the user or\n\t\t\t\t\trole that created the resource. You must turn on this setting to use Amazon ECS\n\t\t\t\t\tfeatures such as resource tagging.

    \n
  • \n
  • \n

    \n awsvpcTrunking - When modified, the elastic network interface\n\t\t\t\t\t(ENI) limit for any new container instances that support the feature is changed.\n\t\t\t\t\tIf awsvpcTrunking is turned on, any new container instances that\n\t\t\t\t\tsupport the feature are launched have the increased ENI limits available to\n\t\t\t\t\tthem. For more information, see Elastic\n\t\t\t\t\t\tNetwork Interface Trunking in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n containerInsights - Container Insights with enhanced\n\t\t\t\t\tobservability provides all the Container Insights metrics, plus additional task\n\t\t\t\t\tand container metrics. This version supports enhanced observability for Amazon ECS\n\t\t\t\t\tclusters using the Amazon EC2 and Fargate launch types. After you configure\n\t\t\t\t\tContainer Insights with enhanced observability on Amazon ECS, Container Insights\n\t\t\t\t\tauto-collects detailed infrastructure telemetry from the cluster level down to\n\t\t\t\t\tthe container level in your environment and displays these critical performance\n\t\t\t\t\tdata in curated dashboards removing the heavy lifting in observability set-up.

    \n

    To use Container Insights with enhanced observability, set the\n\t\t\t\t\t\tcontainerInsights account setting to\n\t\t\t\t\tenhanced.

    \n

    To use Container Insights, set the containerInsights account\n\t\t\t\t\tsetting to enabled.

    \n

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced\n\t\t\t\t\t\tobservability in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n dualStackIPv6 - When turned on, when using a VPC in dual stack\n\t\t\t\t\tmode, your tasks using the awsvpc network mode can have an IPv6\n\t\t\t\t\taddress assigned. For more information on using IPv6 with tasks launched on\n\t\t\t\t\tAmazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6\n\t\t\t\t\twith tasks launched on Fargate, see Using a VPC in dual-stack mode.

    \n
  • \n
  • \n

    \n fargateFIPSMode - If you specify fargateFIPSMode,\n\t\t\t\t\tFargate FIPS 140 compliance is affected.

    \n
  • \n
  • \n

    \n fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a\n\t\t\t\t\tsecurity or infrastructure update is needed for an Amazon ECS task hosted on\n\t\t\t\t\tFargate, the tasks need to be stopped and new tasks launched to replace them.\n\t\t\t\t\tUse fargateTaskRetirementWaitPeriod to configure the wait time to\n\t\t\t\t\tretire a Fargate task. For information about the Fargate tasks maintenance,\n\t\t\t\t\tsee Amazon Web Services Fargate\n\t\t\t\t\t\ttask maintenance in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n tagResourceAuthorization - Amazon ECS is introducing tagging\n\t\t\t\t\tauthorization for resource creation. Users must have permissions for actions\n\t\t\t\t\tthat create the resource, such as ecsCreateCluster. If tags are\n\t\t\t\t\tspecified when you create a resource, Amazon Web Services performs additional authorization to\n\t\t\t\t\tverify if users or roles have permissions to create tags. Therefore, you must\n\t\t\t\t\tgrant explicit permissions to use the ecs:TagResource action. For\n\t\t\t\t\tmore information, see Grant permission to tag resources on creation in the\n\t\t\t\t\t\tAmazon ECS Developer Guide.

    \n
  • \n
  • \n

    \n guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether\n\t\t\tAmazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your\n\t\t\tAmazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    \n
  • \n
", "smithy.api#required": {} } }, "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The account setting value for the specified principal ARN. Accepted values are\n\t\t\t\tenabled, disabled, on, enhanced,\n\t\t\tand off.

\n

When you specify fargateTaskRetirementWaitPeriod for the\n\t\t\t\tname, the following are the valid values:

\n
    \n
  • \n

    \n 0 - Amazon Web Services sends the notification, and immediately retires the affected\n\t\t\t\t\ttasks.

    \n
  • \n
  • \n

    \n 7 - Amazon Web Services sends the notification, and waits 7 calendar days to retire the\n\t\t\t\t\ttasks.

    \n
  • \n
  • \n

    \n 14 - Amazon Web Services sends the notification, and waits 14 calendar days to retire the\n\t\t\t\t\ttasks.

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

The account setting value for the specified principal ARN. Accepted values are\n\t\t\t\tenabled, disabled, on, enhanced,\n\t\t\tand off.

\n

When you specify fargateTaskRetirementWaitPeriod for the\n\t\t\t\tname, the following are the valid values:

\n
    \n
  • \n

    \n 0 - Amazon Web Services sends the notification, and immediately retires the\n\t\t\t\t\taffected tasks.

    \n
  • \n
  • \n

    \n 7 - Amazon Web Services sends the notification, and waits 7 calendar days to\n\t\t\t\t\tretire the tasks.

    \n
  • \n
  • \n

    \n 14 - Amazon Web Services sends the notification, and waits 14 calendar days to\n\t\t\t\t\tretire the tasks.

    \n
  • \n
", "smithy.api#required": {} } } @@ -9186,21 +9186,21 @@ "name": { "target": "com.amazonaws.ecs#SettingName", "traits": { - "smithy.api#documentation": "

The Amazon ECS account setting name to modify.

\n

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

\n
    \n
  • \n

    \n serviceLongArnFormat - When modified, the Amazon Resource Name (ARN) and\n\t\t\t\t\tresource ID format of the resource type for a specified user, role, or the root user for an\n\t\t\t\t\taccount is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n taskLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource\n\t\t\t\t\tID format of the resource type for a specified user, role, or the root user for an account is\n\t\t\t\t\taffected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n containerInstanceLongArnFormat - When modified, the Amazon Resource Name (ARN)\n\t\t\t\t\tand resource ID format of the resource type for a specified user, role, or the root user for an\n\t\t\t\t\taccount is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource\n\t\t\t\t\tseparately. The ARN and resource ID format of a resource is defined by the opt-in status of\n\t\t\t\t\tthe user or role that created the resource. You must turn on this setting to use Amazon ECS features\n\t\t\t\t\tsuch as resource tagging.

    \n
  • \n
  • \n

    \n awsvpcTrunking - When modified, the elastic network interface (ENI) limit for\n\t\t\t\t\tany new container instances that support the feature is changed. If awsvpcTrunking\n\t\t\t\t\tis turned on, any new container instances that support the feature are launched have the\n\t\t\t\t\tincreased ENI limits available to them. For more information, see Elastic Network Interface\n\t\t\t\t\t\tTrunking in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n containerInsights - Container Insights with enhanced observability provides\n\t\t\t\t\tall the Container Insights metrics, plus additional task and container metrics.\n\t\t\t\t\tThis version supports enhanced observability for Amazon ECS clusters using the Amazon EC2\n\t\t\t\t\tand Fargate launch types. After you configure Container Insights with enhanced\n\t\t\t\t\tobservability on Amazon ECS, Container Insights auto-collects detailed infrastructure\n\t\t\t\t\ttelemetry from the cluster level down to the container level in your environment and\n\t\t\t\t\tdisplays these critical performance data in curated dashboards removing the\n\t\t\t\t\theavy lifting in observability set-up.

    \n

    To use Container Insights with enhanced observability, set the\n\t\t\t\t\t\tcontainerInsights account setting to\n\t\t\t\t\tenhanced.

    \n

    To use Container Insights, set the containerInsights account setting to\n\t\t\t\t\t\tenabled.

    \n

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks\n\t\t\t\t\tusing the awsvpc network mode can have an IPv6 address assigned. For more\n\t\t\t\t\tinformation on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks\n\t\t\t\t\tlaunched on Fargate, see Using a VPC in dual-stack mode.

    \n
  • \n
  • \n

    \n fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a security or\n\t\t\t\t\tinfrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be\n\t\t\t\t\tstopped and new tasks launched to replace them. Use\n\t\t\t\t\t\tfargateTaskRetirementWaitPeriod to configure the wait time to retire a\n\t\t\t\t\tFargate task. For information about the Fargate tasks maintenance, see Amazon Web Services\n\t\t\t\t\t\tFargate task maintenance in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n tagResourceAuthorization - Amazon ECS is introducing tagging authorization for\n\t\t\t\t\tresource creation. Users must have permissions for actions that create the resource, such as\n\t\t\t\t\t\tecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services\n\t\t\t\t\tperforms additional authorization to verify if users or roles have permissions to create tags.\n\t\t\t\t\tTherefore, you must grant explicit permissions to use the ecs:TagResource action.\n\t\t\t\t\tFor more information, see Grant permission\n\t\t\t\t\t\tto tag resources on creation in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether\n\t\t\tAmazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your\n\t\t\tAmazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

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

The Amazon ECS account setting name to modify.

\n

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

\n
    \n
  • \n

    \n serviceLongArnFormat - When modified, the Amazon Resource Name\n\t\t\t\t\t(ARN) and resource ID format of the resource type for a specified user, role, or\n\t\t\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting\n\t\t\t\t\tmust be set for each Amazon ECS resource separately. The ARN and resource ID format\n\t\t\t\t\tof a resource is defined by the opt-in status of the user or role that created\n\t\t\t\t\tthe resource. You must turn on this setting to use Amazon ECS features such as\n\t\t\t\t\tresource tagging.

    \n
  • \n
  • \n

    \n taskLongArnFormat - When modified, the Amazon Resource Name (ARN)\n\t\t\t\t\tand resource ID format of the resource type for a specified user, role, or the\n\t\t\t\t\troot user for an account is affected. The opt-in and opt-out account setting must\n\t\t\t\t\tbe set for each Amazon ECS resource separately. The ARN and resource ID format of a\n\t\t\t\t\tresource is defined by the opt-in status of the user or role that created the\n\t\t\t\t\tresource. You must turn on this setting to use Amazon ECS features such as resource\n\t\t\t\t\ttagging.

    \n
  • \n
  • \n

    \n fargateFIPSMode - When turned on, you can run Fargate workloads\n\t\t\t\t\tin a manner that is compliant with Federal Information Processing Standard\n\t\t\t\t\t(FIPS-140). For more information, see Fargate\n\t\t\t\t\t\tFederal Information Processing Standard (FIPS-140).

    \n
  • \n
  • \n

    \n containerInstanceLongArnFormat - When modified, the Amazon\n\t\t\t\t\tResource Name (ARN) and resource ID format of the resource type for a specified\n\t\t\t\t\tuser, role, or the root user for an account is affected. The opt-in and opt-out\n\t\t\t\t\taccount setting must be set for each Amazon ECS resource separately. The ARN and\n\t\t\t\t\tresource ID format of a resource is defined by the opt-in status of the user or\n\t\t\t\t\trole that created the resource. You must turn on this setting to use Amazon ECS\n\t\t\t\t\tfeatures such as resource tagging.

    \n
  • \n
  • \n

    \n awsvpcTrunking - When modified, the elastic network interface\n\t\t\t\t\t(ENI) limit for any new container instances that support the feature is changed.\n\t\t\t\t\tIf awsvpcTrunking is turned on, any new container instances that\n\t\t\t\t\tsupport the feature are launched have the increased ENI limits available to\n\t\t\t\t\tthem. For more information, see Elastic\n\t\t\t\t\t\tNetwork Interface Trunking in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n containerInsights - Container Insights with enhanced\n\t\t\t\t\tobservability provides all the Container Insights metrics, plus additional task\n\t\t\t\t\tand container metrics. This version supports enhanced observability for Amazon ECS\n\t\t\t\t\tclusters using the Amazon EC2 and Fargate launch types. After you configure\n\t\t\t\t\tContainer Insights with enhanced observability on Amazon ECS, Container Insights\n\t\t\t\t\tauto-collects detailed infrastructure telemetry from the cluster level down to\n\t\t\t\t\tthe container level in your environment and displays these critical performance\n\t\t\t\t\tdata in curated dashboards removing the heavy lifting in observability set-up.

    \n

    To use Container Insights with enhanced observability, set the\n\t\t\t\t\t\tcontainerInsights account setting to\n\t\t\t\t\tenhanced.

    \n

    To use Container Insights, set the containerInsights account\n\t\t\t\t\tsetting to enabled.

    \n

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced\n\t\t\t\t\t\tobservability in the Amazon Elastic Container Service Developer Guide.

    \n
  • \n
  • \n

    \n dualStackIPv6 - When turned on, when using a VPC in dual stack\n\t\t\t\t\tmode, your tasks using the awsvpc network mode can have an IPv6\n\t\t\t\t\taddress assigned. For more information on using IPv6 with tasks launched on\n\t\t\t\t\tAmazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6\n\t\t\t\t\twith tasks launched on Fargate, see Using a VPC in dual-stack mode.

    \n
  • \n
  • \n

    \n fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a\n\t\t\t\t\tsecurity or infrastructure update is needed for an Amazon ECS task hosted on\n\t\t\t\t\tFargate, the tasks need to be stopped and new tasks launched to replace them.\n\t\t\t\t\tUse fargateTaskRetirementWaitPeriod to configure the wait time to\n\t\t\t\t\tretire a Fargate task. For information about the Fargate tasks maintenance,\n\t\t\t\t\tsee Amazon Web Services Fargate\n\t\t\t\t\t\ttask maintenance in the Amazon ECS Developer\n\t\t\t\t\tGuide.

    \n
  • \n
  • \n

    \n tagResourceAuthorization - Amazon ECS is introducing tagging\n\t\t\t\t\tauthorization for resource creation. Users must have permissions for actions\n\t\t\t\t\tthat create the resource, such as ecsCreateCluster. If tags are\n\t\t\t\t\tspecified when you create a resource, Amazon Web Services performs additional authorization to\n\t\t\t\t\tverify if users or roles have permissions to create tags. Therefore, you must\n\t\t\t\t\tgrant explicit permissions to use the ecs:TagResource action. For\n\t\t\t\t\tmore information, see Grant permission to tag resources on creation in the\n\t\t\t\t\t\tAmazon ECS Developer Guide.

    \n
  • \n
  • \n

    \n guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether\n\t\t\tAmazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your\n\t\t\tAmazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    \n
  • \n
", "smithy.api#required": {} } }, "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The account setting value for the specified principal ARN. Accepted values are\n\t\t\t\tenabled, disabled, enhanced,\n\t\t\t\ton, and off.

\n

When you specify fargateTaskRetirementWaitPeriod for the\n\t\t\t\tname, the following are the valid values:

\n
    \n
  • \n

    \n 0 - Amazon Web Services sends the notification, and immediately retires the affected\n\t\t\t\t\ttasks.

    \n
  • \n
  • \n

    \n 7 - Amazon Web Services sends the notification, and waits 7 calendar days to retire the\n\t\t\t\t\ttasks.

    \n
  • \n
  • \n

    \n 14 - Amazon Web Services sends the notification, and waits 14 calendar days to retire the\n\t\t\t\t\ttasks.

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

The account setting value for the specified principal ARN. Accepted values are\n\t\t\t\tenabled, disabled, enhanced, on,\n\t\t\tand off.

\n

When you specify fargateTaskRetirementWaitPeriod for the\n\t\t\t\tname, the following are the valid values:

\n
    \n
  • \n

    \n 0 - Amazon Web Services sends the notification, and immediately retires the\n\t\t\t\t\taffected tasks.

    \n
  • \n
  • \n

    \n 7 - Amazon Web Services sends the notification, and waits 7 calendar days to\n\t\t\t\t\tretire the tasks.

    \n
  • \n
  • \n

    \n 14 - Amazon Web Services sends the notification, and waits 14 calendar days to\n\t\t\t\t\tretire the tasks.

    \n
  • \n
", "smithy.api#required": {} } }, "principalArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN of the principal, which can be a user, role, or the root user. If you specify the root user, it\n\t\t\tmodifies the account setting for all users, roles, and the root user of the account unless a user or role\n\t\t\texplicitly overrides these settings. If this field is omitted, the setting is changed only for the\n\t\t\tauthenticated user.

\n \n

You must use the root user when you set the Fargate wait time\n\t\t\t\t\t(fargateTaskRetirementWaitPeriod).

\n

Federated users assume the account setting of the root user and can't have explicit account settings\n\t\t\t\tset for them.

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

The ARN of the principal, which can be a user, role, or the root user. If you specify\n\t\t\tthe root user, it modifies the account setting for all users, roles, and the root user of the\n\t\t\taccount unless a user or role explicitly overrides these settings. If this field is\n\t\t\tomitted, the setting is changed only for the authenticated user.

\n \n

You must use the root user when you set the Fargate wait time\n\t\t\t\t\t(fargateTaskRetirementWaitPeriod).

\n

Federated users assume the account setting of the root user and can't have explicit\n\t\t\t\taccount settings set for them.

\n
" } } }, @@ -9245,7 +9245,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create or update an attribute on an Amazon ECS resource. If the attribute doesn't exist, it's created. If\n\t\t\tthe attribute exists, its value is replaced with the specified value. To delete an attribute, use\n\t\t\t\tDeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Create or update an attribute on an Amazon ECS resource. If the attribute doesn't exist,\n\t\t\tit's created. If the attribute exists, its value is replaced with the specified value.\n\t\t\tTo delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#PutAttributesRequest": { @@ -9254,13 +9254,13 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply\n\t\t\tattributes. If you do not specify a cluster, the default cluster is assumed.

" } }, "attributes": { "target": "com.amazonaws.ecs#Attributes", "traits": { - "smithy.api#documentation": "

The attributes to apply to your resource. You can specify up to 10 custom attributes for each\n\t\t\tresource. You can specify up to 10 attributes in a single call.

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

The attributes to apply to your resource. You can specify up to 10 custom attributes\n\t\t\tfor each resource. You can specify up to 10 attributes in a single call.

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

Modifies the available capacity providers and the default capacity provider strategy for a\n\t\t\tcluster.

\n

You must specify both the available capacity providers and a default capacity provider strategy for\n\t\t\tthe cluster. If the specified cluster has existing capacity providers associated with it, you must\n\t\t\tspecify all existing capacity providers in addition to any new ones you want to add. Any existing\n\t\t\tcapacity providers that are associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only\n\t\t\tdisassociate an existing capacity provider from a cluster if it's not being used by any existing\n\t\t\ttasks.

\n

When creating a service or running a task on a cluster, if no capacity provider or launch type is\n\t\t\tspecified, then the cluster's default capacity provider strategy is used. We recommend that you define\n\t\t\ta default capacity provider strategy for your cluster. However, you must specify an empty array\n\t\t\t\t([]) to bypass defining a default strategy.

" + "smithy.api#documentation": "

Modifies the available capacity providers and the default capacity provider strategy\n\t\t\tfor a cluster.

\n

You must specify both the available capacity providers and a default capacity provider\n\t\t\tstrategy for the cluster. If the specified cluster has existing capacity providers\n\t\t\tassociated with it, you must specify all existing capacity providers in addition to any\n\t\t\tnew ones you want to add. Any existing capacity providers that are associated with a\n\t\t\tcluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the\n\t\t\tcluster. You can only disassociate an existing capacity provider from a cluster if it's\n\t\t\tnot being used by any existing tasks.

\n

When creating a service or running a task on a cluster, if no capacity provider or\n\t\t\tlaunch type is specified, then the cluster's default capacity provider strategy is used.\n\t\t\tWe recommend that you define a default capacity provider strategy for your cluster.\n\t\t\tHowever, you must specify an empty array ([]) to bypass defining a default\n\t\t\tstrategy.

" } }, "com.amazonaws.ecs#PutClusterCapacityProvidersRequest": { @@ -9321,21 +9321,21 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider settings for. If you\n\t\t\tdon't specify a cluster, the default cluster is assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider\n\t\t\tsettings for. If you don't specify a cluster, the default cluster is assumed.

", "smithy.api#required": {} } }, "capacityProviders": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The name of one or more capacity providers to associate with the cluster.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already\n\t\t\tbe created. New capacity providers can be created with the CreateCapacityProvider\n\t\t\tAPI operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used.

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

The name of one or more capacity providers to associate with the cluster.

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be\n\t\t\tused.

", "smithy.api#required": {} } }, "defaultCapacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to use by default for the cluster.

\n

When creating a service or running a task on a cluster, if no capacity provider or launch type is\n\t\t\tspecified then the default capacity provider strategy for the cluster is used.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider must be associated\n\t\t\twith the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.\n\t\t\tOnly capacity providers with an ACTIVE or UPDATING status can be used.

\n

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already\n\t\t\tbe created. New capacity providers can be created with the CreateCapacityProvider\n\t\t\tAPI operation.

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used.

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

The capacity provider strategy to use by default for the cluster.

\n

When creating a service or running a task on a cluster, if no capacity provider or\n\t\t\tlaunch type is specified then the default capacity provider strategy for the cluster is\n\t\t\tused.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider\n\t\t\tmust be associated with the cluster to be used in a capacity provider strategy. The\n\t\t\t\tPutClusterCapacityProviders API is used to associate a capacity provider\n\t\t\twith a cluster. Only capacity providers with an ACTIVE or\n\t\t\t\tUPDATING status can be used.

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be\n\t\t\tused.

", "smithy.api#required": {} } } @@ -9378,7 +9378,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

\n
\n

Registers an EC2 instance into the specified cluster. This instance becomes available to place\n\t\t\tcontainers on.

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

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

\n
\n

Registers an EC2 instance into the specified cluster. This instance becomes available\n\t\t\tto place containers on.

" } }, "com.amazonaws.ecs#RegisterContainerInstanceRequest": { @@ -9387,19 +9387,19 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance with.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance\n\t\t\twith. If you do not specify a cluster, the default cluster is assumed.

" } }, "instanceIdentityDocument": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The instance identity document for the EC2 instance to register. This document can be found by\n\t\t\trunning the following command from the instance: curl\n\t\t\t\thttp://169.254.169.254/latest/dynamic/instance-identity/document/\n

" + "smithy.api#documentation": "

The instance identity document for the EC2 instance to register. This document can be\n\t\t\tfound by running the following command from the instance: curl\n\t\t\t\thttp://169.254.169.254/latest/dynamic/instance-identity/document/\n

" } }, "instanceIdentityDocumentSignature": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The instance identity document signature for the EC2 instance to register. This signature can be\n\t\t\tfound by running the following command from the instance: curl\n\t\t\t\thttp://169.254.169.254/latest/dynamic/instance-identity/signature/\n

" + "smithy.api#documentation": "

The instance identity document signature for the EC2 instance to register. This\n\t\t\tsignature can be found by running the following command from the instance: curl\n\t\t\t\thttp://169.254.169.254/latest/dynamic/instance-identity/signature/\n

" } }, "totalResources": { @@ -9411,7 +9411,7 @@ "versionInfo": { "target": "com.amazonaws.ecs#VersionInfo", "traits": { - "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon that runs on the container\n\t\t\tinstance.

" + "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon that runs on\n\t\t\tthe container instance.

" } }, "containerInstanceArn": { @@ -9429,13 +9429,13 @@ "platformDevices": { "target": "com.amazonaws.ecs#PlatformDevices", "traits": { - "smithy.api#documentation": "

The devices that are available on the container instance. The only supported device type is a\n\t\t\tGPU.

" + "smithy.api#documentation": "

The devices that are available on the container instance. The only supported device\n\t\t\ttype is a GPU.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the container instance to help you categorize and organize them. Each\n\t\t\ttag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the container instance to help you categorize and\n\t\t\torganize them. Each tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } } }, @@ -9477,7 +9477,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers a new task definition from the supplied family and\n\t\t\t\tcontainerDefinitions. Optionally, you can add data volumes to your containers with the\n\t\t\t\tvolumes parameter. For more information about task definition parameters and defaults,\n\t\t\tsee Amazon ECS Task\n\t\t\t\tDefinitions in the Amazon Elastic Container Service Developer Guide.

\n

You can specify a role for your task with the taskRoleArn parameter. When you specify a\n\t\t\trole for a task, its containers can then use the latest versions of the CLI or SDKs to make API\n\t\t\trequests to the Amazon Web Services services that are specified in the policy that's associated with the role. For\n\t\t\tmore information, see IAM Roles for Tasks in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n

You can specify a Docker networking mode for the containers in your task definition with the\n\t\t\t\tnetworkMode parameter. If you specify the awsvpc network mode, the task\n\t\t\tis allocated an elastic network interface, and you must specify a NetworkConfiguration when\n\t\t\tyou create a service or run a task with the task definition. For more information, see Task\n\t\t\t\tNetworking in the Amazon Elastic Container Service Developer Guide.

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

Registers a new task definition from the supplied family and\n\t\t\t\tcontainerDefinitions. Optionally, you can add data volumes to your\n\t\t\tcontainers with the volumes parameter. For more information about task\n\t\t\tdefinition parameters and defaults, see Amazon ECS Task\n\t\t\t\tDefinitions in the Amazon Elastic Container Service Developer Guide.

\n

You can specify a role for your task with the taskRoleArn parameter. When\n\t\t\tyou specify a role for a task, its containers can then use the latest versions of the\n\t\t\tCLI or SDKs to make API requests to the Amazon Web Services services that are specified in the\n\t\t\tpolicy that's associated with the role. For more information, see IAM\n\t\t\t\tRoles for Tasks in the Amazon Elastic Container Service Developer Guide.

\n

You can specify a Docker networking mode for the containers in your task definition\n\t\t\twith the networkMode parameter. If you specify the awsvpc\n\t\t\tnetwork mode, the task is allocated an elastic network interface, and you must specify a\n\t\t\t\tNetworkConfiguration when you create a service or run a task with the task\n\t\t\tdefinition. For more information, see Task Networking\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

", "smithy.api#examples": [ { "title": "To register a task definition", @@ -9535,14 +9535,14 @@ "family": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

You must specify a family for a task definition. You can use it track multiple versions\n\t\t\tof the same task definition. The family is used as a name for your task definition.\n\t\t\tUp to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

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

You must specify a family for a task definition. You can use it track\n\t\t\tmultiple versions of the same task definition. The family is used as a name\n\t\t\tfor your task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

", "smithy.api#required": {} } }, "taskRoleArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All\n\t\t\tcontainers in this task are granted the permissions that are specified in this role. For more\n\t\t\tinformation, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can\n\t\t\tassume. All containers in this task are granted the permissions that are specified in\n\t\t\tthis role. For more information, see IAM Roles for\n\t\t\t\tTasks in the Amazon Elastic Container Service Developer Guide.

" } }, "executionRoleArn": { @@ -9560,44 +9560,44 @@ "containerDefinitions": { "target": "com.amazonaws.ecs#ContainerDefinitions", "traits": { - "smithy.api#documentation": "

A list of container definitions in JSON format that describe the different containers that make up\n\t\t\tyour task.

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

A list of container definitions in JSON format that describe the different containers\n\t\t\tthat make up your task.

", "smithy.api#required": {} } }, "volumes": { "target": "com.amazonaws.ecs#VolumeList", "traits": { - "smithy.api#documentation": "

A list of volume definitions in JSON format that containers in your task might use.

" + "smithy.api#documentation": "

A list of volume definitions in JSON format that containers in your task might\n\t\t\tuse.

" } }, "placementConstraints": { "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraints", "traits": { - "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify a maximum of 10\n\t\t\tconstraints for each task. This limit includes constraints in the task definition and those specified\n\t\t\tat runtime.

" + "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify a\n\t\t\tmaximum of 10 constraints for each task. This limit includes constraints in the task\n\t\t\tdefinition and those specified at runtime.

" } }, "requiresCompatibilities": { "target": "com.amazonaws.ecs#CompatibilityList", "traits": { - "smithy.api#documentation": "

The task launch type that Amazon ECS validates the task definition against. A client exception is returned\n\t\t\tif the task definition doesn't validate against the compatibilities specified. If no value is\n\t\t\tspecified, the parameter is omitted from the response.

" + "smithy.api#documentation": "

The task launch type that Amazon ECS validates the task definition against. A client\n\t\t\texception is returned if the task definition doesn't validate against the\n\t\t\tcompatibilities specified. If no value is specified, the parameter is omitted from the\n\t\t\tresponse.

" } }, "cpu": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The number of CPU units used by the task. It can be expressed as an integer using CPU units (for\n\t\t\texample, 1024) or as a string using vCPUs (for example, 1 vCPU or 1\n\t\t\t\tvcpu) in a task definition. String values are converted to an integer indicating the CPU\n\t\t\tunits when the task definition is registered.

\n \n

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying\n\t\t\t\tcontainer-level resources for Windows containers.

\n
\n

If you're using the EC2 launch type, this field is optional. Supported values are\n\t\t\tbetween 128 CPU units (0.125 vCPUs) and 10240 CPU units\n\t\t\t\t(10 vCPUs). If you do not specify a value, the parameter is ignored.

\n

If you're using the Fargate launch type, this field is required and you must use one of\n\t\t\tthe following values, which determines your range of supported values for the memory\n\t\t\tparameter:

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The number of CPU units used by the task. It can be expressed as an integer using CPU\n\t\t\tunits (for example, 1024) or as a string using vCPUs (for example, 1\n\t\t\t\tvCPU or 1 vcpu) in a task definition. String values are\n\t\t\tconverted to an integer indicating the CPU units when the task definition is\n\t\t\tregistered.

\n \n

Task-level CPU and memory parameters are ignored for Windows containers. We\n\t\t\t\trecommend specifying container-level resources for Windows containers.

\n
\n

If you're using the EC2 launch type, this field is optional. Supported\n\t\t\tvalues are between 128 CPU units (0.125 vCPUs) and\n\t\t\t\t10240 CPU units (10 vCPUs). If you do not specify a value,\n\t\t\tthe parameter is ignored.

\n

If you're using the Fargate launch type, this field is required and you\n\t\t\tmust use one of the following values, which determines your range of supported values\n\t\t\tfor the memory parameter:

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "memory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for\n\t\t\texample ,1024) or as a string using GB (for example, 1GB or 1\n\t\t\tGB) in a task definition. String values are converted to an integer indicating the MiB when the\n\t\t\ttask definition is registered.

\n \n

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying\n\t\t\t\tcontainer-level resources for Windows containers.

\n
\n

If using the EC2 launch type, this field is optional.

\n

If using the Fargate launch type, this field is required and you must use one of the\n\t\t\tfollowing values. This determines your range of supported values for the cpu\n\t\t\tparameter.

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The amount of memory (in MiB) used by the task. It can be expressed as an integer\n\t\t\tusing MiB (for example ,1024) or as a string using GB (for example,\n\t\t\t\t1GB or 1 GB) in a task definition. String values are\n\t\t\tconverted to an integer indicating the MiB when the task definition is\n\t\t\tregistered.

\n \n

Task-level CPU and memory parameters are ignored for Windows containers. We\n\t\t\t\trecommend specifying container-level resources for Windows containers.

\n
\n

If using the EC2 launch type, this field is optional.

\n

If using the Fargate launch type, this field is required and you must\n\t\t\tuse one of the following values. This determines your range of supported values for the\n\t\t\t\tcpu parameter.

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task definition to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both of them.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task definition to help you categorize and organize\n\t\t\tthem. Each tag consists of a key and an optional value. You define both of them.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "pidMode": { @@ -9615,7 +9615,7 @@ "proxyConfiguration": { "target": "com.amazonaws.ecs#ProxyConfiguration", "traits": { - "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n

For tasks hosted on Amazon EC2 instances, the container instances require at least version\n\t\t\t\t1.26.0 of the container agent and at least version 1.26.0-1 of the\n\t\t\t\tecs-init package to use a proxy configuration. If your container instances are\n\t\t\tlaunched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain\n\t\t\tthe required versions of the container agent and ecs-init. For more information, see\n\t\t\t\tAmazon ECS-optimized AMI versions in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n

For tasks hosted on Amazon EC2 instances, the container instances require at least version\n\t\t\t\t1.26.0 of the container agent and at least version\n\t\t\t\t1.26.0-1 of the ecs-init package to use a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS-optimized\n\t\t\tAMI version 20190301 or later, then they contain the required versions of\n\t\t\tthe container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the Amazon Elastic Container Service Developer Guide.

" } }, "inferenceAccelerators": { @@ -9627,13 +9627,13 @@ "ephemeralStorage": { "target": "com.amazonaws.ecs#EphemeralStorage", "traits": { - "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total\n\t\t\tamount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For\n\t\t\tmore information, see Using data volumes in tasks\n\t\t\tin the Amazon ECS Developer Guide.

\n \n

For tasks using the Fargate launch type, the task requires the following\n\t\t\t\tplatforms:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

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

The amount of ephemeral storage to allocate for the task. This parameter is used to\n\t\t\texpand the total amount of ephemeral storage available, beyond the default amount, for\n\t\t\ttasks hosted on Fargate. For more information, see Using data volumes in\n\t\t\t\ttasks in the Amazon ECS Developer Guide.

\n \n

For tasks using the Fargate launch type, the task requires the\n\t\t\t\tfollowing platforms:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n
" } }, "runtimePlatform": { "target": "com.amazonaws.ecs#RuntimePlatform", "traits": { - "smithy.api#documentation": "

The operating system that your tasks definitions run on. A platform family is specified only for\n\t\t\ttasks using the Fargate launch type.

" + "smithy.api#documentation": "

The operating system that your tasks definitions run on. A platform family is\n\t\t\tspecified only for tasks using the Fargate launch type.

" } } }, @@ -9667,7 +9667,7 @@ "credentialsParameter": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

\n \n

When you use the Amazon ECS API, CLI, or Amazon Web Services SDK, if the secret exists in the same Region as the\n\t\t\t\ttask that you're launching then you can use either the full ARN or the name of the secret. When\n\t\t\t\tyou use the Amazon Web Services Management Console, you must specify the full ARN of the secret.

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

The Amazon Resource Name (ARN) of the secret containing the private repository\n\t\t\tcredentials.

\n \n

When you use the Amazon ECS API, CLI, or Amazon Web Services SDK, if the secret exists in the same\n\t\t\t\tRegion as the task that you're launching then you can use either the full ARN or\n\t\t\t\tthe name of the secret. When you use the Amazon Web Services Management Console, you must specify the full ARN\n\t\t\t\tof the secret.

\n
", "smithy.api#required": {} } } @@ -9688,40 +9688,40 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the resource, such as CPU, MEMORY, PORTS,\n\t\t\t\tPORTS_UDP, or a user-defined resource.

" + "smithy.api#documentation": "

The name of the resource, such as CPU, MEMORY,\n\t\t\t\tPORTS, PORTS_UDP, or a user-defined resource.

" } }, "type": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The type of the resource. Valid values: INTEGER, DOUBLE, LONG,\n\t\t\tor STRINGSET.

" + "smithy.api#documentation": "

The type of the resource. Valid values: INTEGER, DOUBLE,\n\t\t\t\tLONG, or STRINGSET.

" } }, "doubleValue": { "target": "com.amazonaws.ecs#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

When the doubleValue type is set, the value of the resource must be a double precision\n\t\t\tfloating-point type.

" + "smithy.api#documentation": "

When the doubleValue type is set, the value of the resource must be a\n\t\t\tdouble precision floating-point type.

" } }, "longValue": { "target": "com.amazonaws.ecs#Long", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

When the longValue type is set, the value of the resource must be an extended precision\n\t\t\tfloating-point type.

" + "smithy.api#documentation": "

When the longValue type is set, the value of the resource must be an\n\t\t\textended precision floating-point type.

" } }, "integerValue": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

When the integerValue type is set, the value of the resource must be an integer.

" + "smithy.api#documentation": "

When the integerValue type is set, the value of the resource must be an\n\t\t\tinteger.

" } }, "stringSetValue": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

When the stringSetValue type is set, the value of the resource must be a string\n\t\t\ttype.

" + "smithy.api#documentation": "

When the stringSetValue type is set, the value of the resource must be a\n\t\t\tstring type.

" } } }, @@ -9771,7 +9771,7 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The value for the specified resource type.

\n

When the type is GPU, the value is the number of physical GPUs the Amazon ECS\n\t\t\tcontainer agent reserves for the container. The number of GPUs that's reserved for all containers in a\n\t\t\ttask can't exceed the number of available GPUs on the container instance that the task is launched\n\t\t\ton.

\n

When the type is InferenceAccelerator, the value matches the\n\t\t\t\tdeviceName for an InferenceAccelerator\n\t\t\tspecified in a task definition.

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

The value for the specified resource type.

\n

When the type is GPU, the value is the number of physical\n\t\t\t\tGPUs the Amazon ECS container agent reserves for the container. The number\n\t\t\tof GPUs that's reserved for all containers in a task can't exceed the number of\n\t\t\tavailable GPUs on the container instance that the task is launched on.

\n

When the type is InferenceAccelerator, the value matches the\n\t\t\t\tdeviceName for an InferenceAccelerator specified in a task definition.

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

The type and amount of a resource to assign to a container. The supported resource types are GPUs and\n\t\t\tElastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon\n\t\t\t\tElastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide\n

" + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The supported resource\n\t\t\ttypes are GPUs and Elastic Inference accelerators. For more information, see Working with\n\t\t\t\tGPUs on Amazon ECS or Working with Amazon Elastic\n\t\t\t\tInference on Amazon ECS in the Amazon Elastic Container Service Developer Guide\n

" } }, "com.amazonaws.ecs#ResourceRequirements": { @@ -9822,19 +9822,19 @@ "reason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The reason the rollback happened. For example, the circuit breaker initiated the rollback operation.

" + "smithy.api#documentation": "

The reason the rollback happened. For example, the circuit breaker initiated the\n\t\t\trollback operation.

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

Time time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

Time time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" } }, "serviceRevisionArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN of the service revision deployed as part of the rollback.

\n

When the type is GPU, the value is the number of physical\n\t\t\tGPUs the Amazon ECS container agent reserves for the container. The number\n\t\t\tof GPUs that's reserved for all containers in a task can't exceed the number of\n\t\t\tavailable GPUs on the container instance that the task is launched on.

\n

When the type is InferenceAccelerator, the value matches the\n\t\t\tdeviceName for an InferenceAccelerator specified in a task definition.

" + "smithy.api#documentation": "

The ARN of the service revision deployed as part of the rollback.

\n

When the type is GPU, the value is the number of physical\n\t\t\t\tGPUs the Amazon ECS container agent reserves for the container. The number\n\t\t\tof GPUs that's reserved for all containers in a task can't exceed the number of\n\t\t\tavailable GPUs on the container instance that the task is launched on.

\n

When the type is InferenceAccelerator, the value matches the\n\t\t\t\tdeviceName for an InferenceAccelerator specified in a task definition.

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

Starts a new task using the specified task definition.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using\n\t\t\tplacement constraints and placement strategies. For more information, see Scheduling\n\t\t\t\tTasks in the Amazon Elastic Container Service Developer Guide.

\n

Alternatively, you can use StartTask to use your own scheduler or place tasks manually\n\t\t\ton specific container instances.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a\n\t\t\tservice. For more infomation, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide.

\n

The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the\n\t\t\tsystem supporting the API. This means that the result of an API command you run that affects your Amazon ECS\n\t\t\tresources might not be immediately visible to all subsequent commands you run. Keep this in mind when\n\t\t\tyou carry out an API command that immediately follows a previous API command.

\n

To manage eventual consistency, you can do the following:

\n
    \n
  • \n

    Confirm the state of the resource before you run a command to modify it. Run the\n\t\t\t\t\tDescribeTasks command using an exponential backoff algorithm to ensure that you allow enough\n\t\t\t\t\ttime for the previous command to propagate through the system. To do this, run the\n\t\t\t\t\tDescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing\n\t\t\t\t\tgradually up to five minutes of wait time.

    \n
  • \n
  • \n

    Add wait time between subsequent commands, even if the DescribeTasks command returns an\n\t\t\t\t\taccurate response. Apply an exponential backoff algorithm starting with a couple of seconds of\n\t\t\t\t\twait time, and increase gradually up to about five minutes of wait time.

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

Starts a new task using the specified task definition.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places\n\t\t\ttasks using placement constraints and placement strategies. For more information, see\n\t\t\t\tScheduling Tasks in the Amazon Elastic Container Service Developer Guide.

\n

Alternatively, you can use StartTask to use your own scheduler or place\n\t\t\ttasks manually on specific container instances.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or\n\t\t\tupdating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

\n

The Amazon ECS API follows an eventual consistency model. This is because of the\n\t\t\tdistributed nature of the system supporting the API. This means that the result of an\n\t\t\tAPI command you run that affects your Amazon ECS resources might not be immediately visible\n\t\t\tto all subsequent commands you run. Keep this in mind when you carry out an API command\n\t\t\tthat immediately follows a previous API command.

\n

To manage eventual consistency, you can do the following:

\n
    \n
  • \n

    Confirm the state of the resource before you run a command to modify it. Run\n\t\t\t\t\tthe DescribeTasks command using an exponential backoff algorithm to ensure that\n\t\t\t\t\tyou allow enough time for the previous command to propagate through the system.\n\t\t\t\t\tTo do this, run the DescribeTasks command repeatedly, starting with a couple of\n\t\t\t\t\tseconds of wait time and increasing gradually up to five minutes of wait\n\t\t\t\t\ttime.

    \n
  • \n
  • \n

    Add wait time between subsequent commands, even if the DescribeTasks command\n\t\t\t\t\treturns an accurate response. Apply an exponential backoff algorithm starting\n\t\t\t\t\twith a couple of seconds of wait time, and increase gradually up to about five\n\t\t\t\t\tminutes of wait time.

    \n
  • \n
", "smithy.api#examples": [ { "title": "To run a task on your default cluster", @@ -9928,81 +9928,81 @@ "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to use for the task.

\n

If a capacityProviderStrategy is specified, the launchType parameter must\n\t\t\tbe omitted. If no capacityProviderStrategy or launchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

When you use cluster auto scaling, you must specify capacityProviderStrategy and not\n\t\t\t\tlaunchType.

\n

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

" + "smithy.api#documentation": "

The capacity provider strategy to use for the task.

\n

If a capacityProviderStrategy is specified, the launchType\n\t\t\tparameter must be omitted. If no capacityProviderStrategy or\n\t\t\t\tlaunchType is specified, the\n\t\t\t\tdefaultCapacityProviderStrategy for the cluster is used.

\n

When you use cluster auto scaling, you must specify\n\t\t\t\tcapacityProviderStrategy and not launchType.

\n

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

" } }, "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to run your task on. If you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to run your task on.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" } }, "count": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of instantiations of the specified task to place on your cluster. You can specify up to 10\n\t\t\ttasks for each call.

" + "smithy.api#documentation": "

The number of instantiations of the specified task to place on your cluster. You can\n\t\t\tspecify up to 10 tasks for each call.

" } }, "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to use the execute command functionality for the containers in this task. If\n\t\t\t\ttrue, this enables execute command functionality on all containers in the task.

\n

If true, then the task definition must have a task role, or you must provide one as an\n\t\t\toverride.

" + "smithy.api#documentation": "

Determines whether to use the execute command functionality for the containers in this\n\t\t\ttask. If true, this enables execute command functionality on all containers\n\t\t\tin the task.

\n

If true, then the task definition must have a task role, or you must\n\t\t\tprovide one as an override.

" } }, "group": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family name of the\n\t\t\ttask definition (for example, family:my-family-name).

" + "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family\n\t\t\tname of the task definition (for example, family:my-family-name).

" } }, "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The infrastructure to run your standalone task on. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

\n

The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

\n \n

Fargate Spot infrastructure is available for use but a capacity provider strategy must be used.\n\t\t\t\tFor more information, see Fargate capacity providers in the Amazon ECS Developer\n\t\t\t\tGuide.

\n
\n

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your\n\t\t\tcluster.

\n

The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine\n\t\t\t(VM) capacity registered to your cluster.

\n

A task can use either a launch type or a capacity provider strategy. If a launchType is\n\t\t\tspecified, the capacityProviderStrategy parameter must be omitted.

\n

When you use cluster auto scaling, you must specify capacityProviderStrategy and not\n\t\t\t\tlaunchType.

" + "smithy.api#documentation": "

The infrastructure to run your standalone task on. For more information, see Amazon ECS\n\t\t\t\tlaunch types in the Amazon Elastic Container Service Developer Guide.

\n

The FARGATE launch type runs your tasks on Fargate On-Demand\n\t\t\tinfrastructure.

\n \n

Fargate Spot infrastructure is available for use but a capacity provider\n\t\t\t\tstrategy must be used. For more information, see Fargate capacity providers in the\n\t\t\t\t\tAmazon ECS Developer Guide.

\n
\n

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your\n\t\t\tcluster.

\n

The EXTERNAL launch type runs your tasks on your on-premises server or\n\t\t\tvirtual machine (VM) capacity registered to your cluster.

\n

A task can use either a launch type or a capacity provider strategy. If a\n\t\t\t\tlaunchType is specified, the capacityProviderStrategy\n\t\t\tparameter must be omitted.

\n

When you use cluster auto scaling, you must specify\n\t\t\t\tcapacityProviderStrategy and not launchType.

" } }, "networkConfiguration": { "target": "com.amazonaws.ecs#NetworkConfiguration", "traits": { - "smithy.api#documentation": "

The network configuration for the task. This parameter is required for task definitions that use the\n\t\t\t\tawsvpc network mode to receive their own elastic network interface, and it isn't\n\t\t\tsupported for other network modes. For more information, see Task networking in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The network configuration for the task. This parameter is required for task\n\t\t\tdefinitions that use the awsvpc network mode to receive their own elastic\n\t\t\tnetwork interface, and it isn't supported for other network modes. For more information,\n\t\t\tsee Task networking\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "overrides": { "target": "com.amazonaws.ecs#TaskOverride", "traits": { - "smithy.api#documentation": "

A list of container overrides in JSON format that specify the name of a container in the specified\n\t\t\ttask definition and the overrides it should receive. You can override the default command for a\n\t\t\tcontainer (that's specified in the task definition or Docker image) with a command\n\t\t\toverride. You can also override existing environment variables (that are specified in the task\n\t\t\tdefinition or Docker image) on a container or add new environment variables to it with an\n\t\t\t\tenvironment override.

\n

A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting\n\t\t\tcharacters of the override structure.

" + "smithy.api#documentation": "

A list of container overrides in JSON format that specify the name of a container in\n\t\t\tthe specified task definition and the overrides it should receive. You can override the\n\t\t\tdefault command for a container (that's specified in the task definition or Docker\n\t\t\timage) with a command override. You can also override existing environment\n\t\t\tvariables (that are specified in the task definition or Docker image) on a container or\n\t\t\tadd new environment variables to it with an environment override.

\n

A total of 8192 characters are allowed for overrides. This limit includes the JSON\n\t\t\tformatting characters of the override structure.

" } }, "placementConstraints": { "target": "com.amazonaws.ecs#PlacementConstraints", "traits": { - "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify up to 10 constraints\n\t\t\tfor each task (including constraints in the task definition and those specified at runtime).

" + "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify up to 10\n\t\t\tconstraints for each task (including constraints in the task definition and those\n\t\t\tspecified at runtime).

" } }, "placementStrategy": { "target": "com.amazonaws.ecs#PlacementStrategies", "traits": { - "smithy.api#documentation": "

The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules for\n\t\t\teach task.

" + "smithy.api#documentation": "

The placement strategy objects to use for the task. You can specify a maximum of 5\n\t\t\tstrategy rules for each task.

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version the task uses. A platform version is only specified for tasks hosted on\n\t\t\tFargate. If one isn't specified, the LATEST platform version is used. For\n\t\t\tmore information, see Fargate platform versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version the task uses. A platform version is only specified for tasks\n\t\t\thosted on Fargate. If one isn't specified, the LATEST\n\t\t\tplatform version is used. For more information, see Fargate platform\n\t\t\t\tversions in the Amazon Elastic Container Service Developer Guide.

" } }, "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition to the task. If no value is\n\t\t\tspecified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To\n\t\t\tadd tags to a task after task creation, use theTagResource API action.

\n \n

An error will be received if you specify the SERVICE option when running a\n\t\t\t\ttask.

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

Specifies whether to propagate the tags from the task definition to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated. Tags can only be propagated to the task\n\t\t\tduring task creation. To add tags to a task after task creation, use theTagResource API action.

\n \n

An error will be received if you specify the SERVICE option when\n\t\t\t\trunning a task.

\n
" } }, "referenceId": { @@ -10014,33 +10014,33 @@ "startedBy": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically trigger a task to\n\t\t\trun a batch process job, you could apply a unique identifier for that job to your task with the\n\t\t\t\tstartedBy parameter. You can then identify which tasks belong to that job by filtering\n\t\t\tthe results of a ListTasks call with the startedBy value. Up to 128 letters (uppercase and\n\t\t\tlowercase), numbers, hyphens (-), forward slash (/), and underscores (_) are allowed.

\n

If a task is started by an Amazon ECS service, then the startedBy parameter contains the\n\t\t\tdeployment ID of the service that starts it.

" + "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically\n\t\t\ttrigger a task to run a batch process job, you could apply a unique identifier for that\n\t\t\tjob to your task with the startedBy parameter. You can then identify which\n\t\t\ttasks belong to that job by filtering the results of a ListTasks call with\n\t\t\tthe startedBy value. Up to 128 letters (uppercase and lowercase), numbers,\n\t\t\thyphens (-), forward slash (/), and underscores (_) are allowed.

\n

If a task is started by an Amazon ECS service, then the startedBy parameter\n\t\t\tcontains the deployment ID of the service that starts it.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize them. Each tag consists\n\t\t\tof a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task to help you categorize and organize them. Each\n\t\t\ttag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the\n\t\t\ttask definition to run. If a revision isn't specified, the latest ACTIVE\n\t\t\trevision is used.

\n

The full ARN value must match the value that you specified as the Resource of the\n\t\t\tprincipal's permissions policy.

\n

When you specify a task definition, you must either specify a specific revision, or all revisions in\n\t\t\tthe ARN.

\n

To specify a specific revision, include the revision number in the ARN. For example, to specify\n\t\t\trevision 2, use\n\t\t\tarn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2.

\n

To specify all revisions, use the wildcard (*) in the ARN. For example, to specify all revisions,\n\t\t\tuse arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*.

\n

For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

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

The family and revision (family:revision) or\n\t\t\tfull ARN of the task definition to run. If a revision isn't specified,\n\t\t\tthe latest ACTIVE revision is used.

\n

The full ARN value must match the value that you specified as the\n\t\t\t\tResource of the principal's permissions policy.

\n

When you specify a task definition, you must either specify a specific revision, or\n\t\t\tall revisions in the ARN.

\n

To specify a specific revision, include the revision number in the ARN. For example,\n\t\t\tto specify revision 2, use\n\t\t\t\tarn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2.

\n

To specify all revisions, use the wildcard (*) in the ARN. For example, to specify\n\t\t\tall revisions, use\n\t\t\t\tarn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*.

\n

For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#required": {} } }, "clientToken": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

An identifier that you provide to ensure the idempotency of the request. It must be unique and is\n\t\t\tcase sensitive. Up to 64 characters are allowed. The valid characters are characters in the range of\n\t\t\t33-126, inclusive. For more information, see Ensuring\n\t\t\t\tidempotency.

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

An identifier that you provide to ensure the idempotency of the request. It must be\n\t\t\tunique and is case sensitive. Up to 64 characters are allowed. The valid characters are\n\t\t\tcharacters in the range of 33-126, inclusive. For more information, see Ensuring idempotency.

", "smithy.api#idempotencyToken": {} } }, "volumeConfigurations": { "target": "com.amazonaws.ecs#TaskVolumeConfigurations", "traits": { - "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size,\n\t\t\tvolumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration. The name of the volume must match the\n\t\t\t\tname from the task definition.

" + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure\n\t\t\tthe size, volumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration. The name of the volume must\n\t\t\tmatch the name from the task definition.

" } } }, @@ -10054,13 +10054,13 @@ "tasks": { "target": "com.amazonaws.ecs#Tasks", "traits": { - "smithy.api#documentation": "

A full description of the tasks that were run. The tasks that were successfully placed on your\n\t\t\tcluster are described here.

" + "smithy.api#documentation": "

A full description of the tasks that were run. The tasks that were successfully placed\n\t\t\ton your cluster are described here.

" } }, "failures": { "target": "com.amazonaws.ecs#Failures", "traits": { - "smithy.api#documentation": "

Any failures associated with the call.

\n

For information about how to address failures, see Service event messages and API failure reasons in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Any failures associated with the call.

\n

For information about how to address failures, see Service event messages and API failure\n\t\t\t\treasons in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -10074,7 +10074,7 @@ "cpuArchitecture": { "target": "com.amazonaws.ecs#CPUArchitecture", "traits": { - "smithy.api#documentation": "

The CPU architecture.

\n

You can run your Linux tasks on an ARM-based platform by setting the value to ARM64.\n\t\t\tThis option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on\n\t\t\tFargate.

" + "smithy.api#documentation": "

The CPU architecture.

\n

You can run your Linux tasks on an ARM-based platform by setting the value to\n\t\t\t\tARM64. This option is available for tasks that run on Linux Amazon EC2\n\t\t\tinstance or Linux containers on Fargate.

" } }, "operatingSystemFamily": { @@ -10095,7 +10095,7 @@ "target": "com.amazonaws.ecs#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The value, specified as a percent total of a service's desiredCount, to scale the task\n\t\t\tset. Accepted values are numbers between 0 and 100.

" + "smithy.api#documentation": "

The value, specified as a percent total of a service's desiredCount, to\n\t\t\tscale the task set. Accepted values are numbers between 0 and 100.

" } }, "unit": { @@ -10106,7 +10106,7 @@ } }, "traits": { - "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task\n\t\t\tset.

" + "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running\n\t\t\tin the task set.

" } }, "com.amazonaws.ecs#ScaleUnit": { @@ -10167,13 +10167,13 @@ "valueFrom": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The secret to expose to the container. The supported values are either the full ARN of the Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store.

\n

For information about the require Identity and Access Management permissions, see Required\n\t\t\t\tIAM permissions for Amazon ECS secrets (for Secrets Manager) or Required IAM\n\t\t\t\tpermissions for Amazon ECS secrets (for Systems Manager Parameter store) in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

If the SSM Parameter Store parameter exists in the same Region as the task you're launching,\n\t\t\t\tthen you can use either the full ARN or name of the parameter. If the parameter exists in a\n\t\t\t\tdifferent Region, then the full ARN must be specified.

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

The secret to expose to the container. The supported values are either the full ARN\n\t\t\tof the Secrets Manager secret or the full ARN of the parameter in the SSM\n\t\t\tParameter Store.

\n

For information about the require Identity and Access Management permissions, see Required IAM permissions for Amazon ECS secrets (for Secrets Manager) or\n\t\t\t\tRequired IAM permissions for Amazon ECS secrets (for Systems Manager Parameter\n\t\t\tstore) in the Amazon Elastic Container Service Developer Guide.

\n \n

If the SSM Parameter Store parameter exists in the same Region as the task\n\t\t\t\tyou're launching, then you can use either the full ARN or name of the parameter.\n\t\t\t\tIf the parameter exists in a different Region, then the full ARN must be\n\t\t\t\tspecified.

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

An object representing the secret to expose to your container. Secrets can be exposed to a container\n\t\t\tin the following ways:

\n
    \n
  • \n

    To inject sensitive data into your containers as environment variables, use the\n\t\t\t\t\t\tsecrets container definition parameter.

    \n
  • \n
  • \n

    To reference sensitive information in the log configuration of a container, use the\n\t\t\t\t\t\tsecretOptions container definition parameter.

    \n
  • \n
\n

For more information, see Specifying sensitive\n\t\t\t\tdata in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

An object representing the secret to expose to your container. Secrets can be exposed\n\t\t\tto a container in the following ways:

\n
    \n
  • \n

    To inject sensitive data into your containers as environment variables, use\n\t\t\t\t\tthe secrets container definition parameter.

    \n
  • \n
  • \n

    To reference sensitive information in the log configuration of a container,\n\t\t\t\t\tuse the secretOptions container definition parameter.

    \n
  • \n
\n

For more information, see Specifying\n\t\t\t\tsensitive data in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#SecretList": { @@ -10209,13 +10209,13 @@ "serviceArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN that identifies the service. For more information about the ARN format, see Amazon Resource Name (ARN)\n\t\t\tin the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The ARN that identifies the service. For more information about the ARN format,\n\t\t\tsee Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" } }, "serviceName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster.\n\t\t\tHowever, you can have similarly named services in multiple clusters within a Region or across multiple\n\t\t\tRegions.

" + "smithy.api#documentation": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within\n\t\t\ta cluster. However, you can have similarly named services in multiple clusters within a\n\t\t\tRegion or across multiple Regions.

" } }, "clusterArn": { @@ -10227,26 +10227,26 @@ "loadBalancers": { "target": "com.amazonaws.ecs#LoadBalancers", "traits": { - "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and\n\t\t\tthe container port to access from the load balancer. The container name is as it appears in a container\n\t\t\tdefinition.

" + "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the\n\t\t\tcontainer name, and the container port to access from the load balancer. The container\n\t\t\tname is as it appears in a container definition.

" } }, "serviceRegistries": { "target": "com.amazonaws.ecs#ServiceRegistries", "traits": { - "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more information, see\n\t\t\t\tService\n\t\t\t\tDiscovery.

" + "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more\n\t\t\tinformation, see Service\n\t\t\t\tDiscovery.

" } }, "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the service. The valid values are ACTIVE, DRAINING, or\n\t\t\t\tINACTIVE.

" + "smithy.api#documentation": "

The status of the service. The valid values are ACTIVE,\n\t\t\t\tDRAINING, or INACTIVE.

" } }, "desiredCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The desired number of instantiations of the task definition to keep running on the service. This\n\t\t\tvalue is specified when the service is created with CreateService , and it can be\n\t\t\tmodified with UpdateService.

" + "smithy.api#documentation": "

The desired number of instantiations of the task definition to keep running on the\n\t\t\tservice. This value is specified when the service is created with CreateService , and it can be modified with UpdateService.

" } }, "runningCount": { @@ -10266,43 +10266,43 @@ "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The launch type the service is using. When using the DescribeServices API, this field is omitted if\n\t\t\tthe service was created using a capacity provider strategy.

" + "smithy.api#documentation": "

The launch type the service is using. When using the DescribeServices API, this field\n\t\t\tis omitted if the service was created using a capacity provider strategy.

" } }, "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy the service uses. When using the DescribeServices API, this field is\n\t\t\tomitted if the service was created using a launch type.

" + "smithy.api#documentation": "

The capacity provider strategy the service uses. When using the DescribeServices API,\n\t\t\tthis field is omitted if the service was created using a launch type.

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version to run your service on. A platform version is only specified for tasks that are\n\t\t\thosted on Fargate. If one isn't specified, the LATEST platform version is used. For more\n\t\t\tinformation, see Fargate Platform Versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version to run your service on. A platform version is only specified for\n\t\t\ttasks that are hosted on Fargate. If one isn't specified, the LATEST\n\t\t\tplatform version is used. For more information, see Fargate Platform\n\t\t\t\tVersions in the Amazon Elastic Container Service Developer Guide.

" } }, "platformFamily": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The operating system that your tasks in the service run on. A platform family is specified only for\n\t\t\ttasks using the Fargate launch type.

\n

All tasks that run as part of this service must use the same platformFamily value as\n\t\t\tthe service (for example, LINUX).

" + "smithy.api#documentation": "

The operating system that your tasks in the service run on. A platform family is\n\t\t\tspecified only for tasks using the Fargate launch type.

\n

All tasks that run as part of this service must use the same\n\t\t\t\tplatformFamily value as the service (for example,\n\t\t\tLINUX).

" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The task definition to use for tasks in the service. This value is specified when the service is\n\t\t\tcreated with CreateService, and it can be modified with UpdateService.

" + "smithy.api#documentation": "

The task definition to use for tasks in the service. This value is specified when the\n\t\t\tservice is created with CreateService,\n\t\t\tand it can be modified with UpdateService.

" } }, "deploymentConfiguration": { "target": "com.amazonaws.ecs#DeploymentConfiguration", "traits": { - "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering\n\t\t\tof stopping and starting tasks.

" + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment\n\t\t\tand the ordering of stopping and starting tasks.

" } }, "taskSets": { "target": "com.amazonaws.ecs#TaskSets", "traits": { - "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. An\n\t\t\tAmazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and\n\t\t\twhether the task set serves production traffic.

" + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL\n\t\t\tdeployment. An Amazon ECS task set includes details such as the desired number of tasks, how\n\t\t\tmany tasks are running, and whether the task set serves production traffic.

" } }, "deployments": { @@ -10314,13 +10314,13 @@ "roleArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role that's associated with the service. It allows the Amazon ECS container agent\n\t\t\tto register container instances with an Elastic Load Balancing load balancer.

" + "smithy.api#documentation": "

The ARN of the IAM role that's associated with the service. It allows the Amazon ECS\n\t\t\tcontainer agent to register container instances with an Elastic Load Balancing load balancer.

" } }, "events": { "target": "com.amazonaws.ecs#ServiceEvents", "traits": { - "smithy.api#documentation": "

The event stream for your service. A maximum of 100 of the latest events are displayed.

" + "smithy.api#documentation": "

The event stream for your service. A maximum of 100 of the latest events are\n\t\t\tdisplayed.

" } }, "createdAt": { @@ -10350,13 +10350,13 @@ "healthCheckGracePeriodSeconds": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target\n\t\t\thealth checks after a task has first started.

" + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing target health checks after a task has first started.

" } }, "schedulingStrategy": { "target": "com.amazonaws.ecs#SchedulingStrategy", "traits": { - "smithy.api#documentation": "

The scheduling strategy to use for the service. For more information, see Services.

\n

There are two service scheduler strategies available.

\n
    \n
  • \n

    \n REPLICA-The replica scheduling strategy places and maintains the desired\n\t\t\t\t\tnumber of tasks across your cluster. By default, the service scheduler spreads tasks across\n\t\t\t\t\tAvailability Zones. You can use task placement strategies and constraints to customize task\n\t\t\t\t\tplacement decisions.

    \n
  • \n
  • \n

    \n DAEMON-The daemon scheduling strategy deploys exactly one task on each\n\t\t\t\t\tactive container instance. This task meets all of the task placement constraints that you\n\t\t\t\t\tspecify in your cluster. The service scheduler also evaluates the task placement constraints\n\t\t\t\t\tfor running tasks. It stop tasks that don't meet the placement constraints.

    \n \n

    Fargate tasks don't support the DAEMON scheduling\n\t\t\t\t\t\tstrategy.

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

The scheduling strategy to use for the service. For more information, see Services.

\n

There are two service scheduler strategies available.

\n
    \n
  • \n

    \n REPLICA-The replica scheduling strategy places and\n\t\t\t\t\tmaintains the desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement\n\t\t\t\t\tdecisions.

    \n
  • \n
  • \n

    \n DAEMON-The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance. This task meets all of the task\n\t\t\t\t\tplacement constraints that you specify in your cluster. The service scheduler\n\t\t\t\t\talso evaluates the task placement constraints for running tasks. It stop tasks\n\t\t\t\t\tthat don't meet the placement constraints.

    \n \n

    Fargate tasks don't support the DAEMON\n\t\t\t\t\t\tscheduling strategy.

    \n
    \n
  • \n
" } }, "deploymentController": { @@ -10368,7 +10368,7 @@ "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the service to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define bot the key and value.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the service to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define bot the key and\n\t\t\tvalue.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "createdBy": { @@ -10381,20 +10381,20 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to use Amazon ECS managed tags for the tasks in the service. For more information, see\n\t\t\t\tTagging Your\n\t\t\t\tAmazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Determines whether to use Amazon ECS managed tags for the tasks in the service. For more\n\t\t\tinformation, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated.

" + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to\n\t\t\tthe task. If no value is specified, the tags aren't propagated.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If\n\t\t\t\ttrue, the execute command functionality is turned on for all containers in tasks as\n\t\t\tpart of the service.

" + "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If\n\t\t\t\ttrue, the execute command functionality is turned on for all containers\n\t\t\tin tasks as part of the service.

" } }, "availabilityZoneRebalancing": { @@ -10414,19 +10414,19 @@ "port": { "target": "com.amazonaws.ecs#PortNumber", "traits": { - "smithy.api#documentation": "

The listening port number for the Service Connect proxy. This port is available inside of all of the\n\t\t\ttasks within the same namespace.

\n

To avoid changing your applications in client Amazon ECS services, set this to the same port that the\n\t\t\tclient application uses by default. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

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

The listening port number for the Service Connect proxy. This port is available\n\t\t\tinside of all of the tasks within the same namespace.

\n

To avoid changing your applications in client Amazon ECS services, set this to the same\n\t\t\tport that the client application uses by default. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#required": {} } }, "dnsName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The dnsName is the name that you use in the applications of client tasks to connect to\n\t\t\tthis service. The name must be a valid DNS name but doesn't need to be fully-qualified. The name can\n\t\t\tinclude up to 127 characters. The name can include lowercase letters, numbers, underscores (_), hyphens\n\t\t\t(-), and periods (.). The name can't start with a hyphen.

\n

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

\n

To avoid changing your applications in client Amazon ECS services, set this to the same name that the\n\t\t\tclient application uses by default. For example, a few common names are database,\n\t\t\t\tdb, or the lowercase name of a database, such as mysql or\n\t\t\t\tredis. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The dnsName is the name that you use in the applications of client tasks\n\t\t\tto connect to this service. The name must be a valid DNS name but doesn't need to be\n\t\t\tfully-qualified. The name can include up to 127 characters. The name can include\n\t\t\tlowercase letters, numbers, underscores (_), hyphens (-), and periods (.). The name\n\t\t\tcan't start with a hyphen.

\n

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

\n

To avoid changing your applications in client Amazon ECS services, set this to the same\n\t\t\tname that the client application uses by default. For example, a few common names are\n\t\t\t\tdatabase, db, or the lowercase name of a database, such as\n\t\t\t\tmysql or redis. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

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

Each alias (\"endpoint\") is a fully-qualified name and port number that other tasks (\"clients\") can\n\t\t\tuse to connect to this service.

\n

Each name and port mapping must be unique within the namespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Each alias (\"endpoint\") is a fully-qualified name and port number that other tasks\n\t\t\t(\"clients\") can use to connect to this service.

\n

Each name and port mapping must be unique within the namespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#ServiceConnectClientAliasList": { @@ -10449,13 +10449,13 @@ "namespace": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services\n\t\t\tRegion as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For\n\t\t\tmore information about Cloud Map, see Working with Services in the\n\t\t\tCloud Map Developer Guide.

" + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in\n\t\t\tthe same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't\n\t\t\taffect Service Connect. For more information about Cloud Map, see Working\n\t\t\t\twith Services in the Cloud Map Developer Guide.

" } }, "services": { "target": "com.amazonaws.ecs#ServiceConnectServiceList", "traits": { - "smithy.api#documentation": "

The list of Service Connect service objects. These are names and aliases (also known as endpoints)\n\t\t\tthat are used by other Amazon ECS services to connect to this service.

\n

This field is not required for a \"client\" Amazon ECS service that's a member of a namespace only to\n\t\t\tconnect to other services within the namespace. An example of this would be a frontend application that\n\t\t\taccepts incoming requests from either a load balancer that's attached to the service or by other\n\t\t\tmeans.

\n

An object selects a port from the task definition, assigns a name for the Cloud Map service, and a\n\t\t\tlist of aliases (endpoints) and ports for client applications to refer to this service.

" + "smithy.api#documentation": "

The list of Service Connect service objects. These are names and aliases (also known\n\t\t\tas endpoints) that are used by other Amazon ECS services to connect to this service.\n\t\t\t

\n

This field is not required for a \"client\" Amazon ECS service that's a member of a namespace\n\t\t\tonly to connect to other services within the namespace. An example of this would be a\n\t\t\tfrontend application that accepts incoming requests from either a load balancer that's\n\t\t\tattached to the service or by other means.

\n

An object selects a port from the task definition, assigns a name for the Cloud Map\n\t\t\tservice, and a list of aliases (endpoints) and ports for client applications to refer to\n\t\t\tthis service.

" } }, "logConfiguration": { @@ -10463,7 +10463,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Service Connect configuration of your Amazon ECS service. The configuration for this service to\n\t\t\tdiscover and connect to services, and be discovered by, and connected from, other services within a\n\t\t\tnamespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The Service Connect configuration of your Amazon ECS service. The configuration for this\n\t\t\tservice to discover and connect to services, and be discovered by, and connected from,\n\t\t\tother services within a namespace.

\n

Tasks that run in a namespace can use short names to connect\n\tto services in the namespace. Tasks can connect to services across all of the clusters in the namespace.\n\tTasks connect through a managed proxy container\n\tthat collects logs and metrics for increased visibility.\n\tOnly the tasks that Amazon ECS services create are supported with Service Connect.\n\tFor more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#ServiceConnectService": { @@ -10472,7 +10472,7 @@ "portName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The portName must match the name of one of the portMappings from all the\n\t\t\tcontainers in the task definition of this Amazon ECS service.

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

The portName must match the name of one of the portMappings\n\t\t\tfrom all the containers in the task definition of this Amazon ECS service.

", "smithy.api#required": {} } }, @@ -10485,25 +10485,25 @@ "clientAliases": { "target": "com.amazonaws.ecs#ServiceConnectClientAliasList", "traits": { - "smithy.api#documentation": "

The list of client aliases for this Service Connect service. You use these to assign names that can\n\t\t\tbe used by client applications. The maximum number of client aliases that you can have in this list is\n\t\t\t1.

\n

Each alias (\"endpoint\") is a fully-qualified name and port number that other Amazon ECS tasks (\"clients\")\n\t\t\tcan use to connect to this service.

\n

Each name and port mapping must be unique within the namespace.

\n

For each ServiceConnectService, you must provide at least one clientAlias\n\t\t\twith one port.

" + "smithy.api#documentation": "

The list of client aliases for this Service Connect service. You use these to assign\n\t\t\tnames that can be used by client applications. The maximum number of client aliases that\n\t\t\tyou can have in this list is 1.

\n

Each alias (\"endpoint\") is a fully-qualified name and port number that other Amazon ECS\n\t\t\ttasks (\"clients\") can use to connect to this service.

\n

Each name and port mapping must be unique within the namespace.

\n

For each ServiceConnectService, you must provide at least one\n\t\t\t\tclientAlias with one port.

" } }, "ingressPortOverride": { "target": "com.amazonaws.ecs#PortNumber", "traits": { - "smithy.api#documentation": "

The port number for the Service Connect proxy to listen on.

\n

Use the value of this field to bypass the proxy for traffic on the port number specified in the named\n\t\t\t\tportMapping in the task definition of this application, and then use it in your VPC\n\t\t\tsecurity groups to allow traffic into the proxy for this Amazon ECS service.

\n

In awsvpc mode and Fargate, the default value is the container port number. The\n\t\t\tcontainer port number is in the portMapping in the task definition. In bridge mode, the\n\t\t\tdefault value is the ephemeral port of the Service Connect proxy.

" + "smithy.api#documentation": "

The port number for the Service Connect proxy to listen on.

\n

Use the value of this field to bypass the proxy for traffic on the port number\n\t\t\tspecified in the named portMapping in the task definition of this\n\t\t\tapplication, and then use it in your VPC security groups to allow traffic into the proxy\n\t\t\tfor this Amazon ECS service.

\n

In awsvpc mode and Fargate, the default value is the container port\n\t\t\tnumber. The container port number is in the portMapping in the task\n\t\t\tdefinition. In bridge mode, the default value is the ephemeral port of the\n\t\t\tService Connect proxy.

" } }, "timeout": { "target": "com.amazonaws.ecs#TimeoutConfiguration", "traits": { - "smithy.api#documentation": "

A reference to an object that represents the configured timeouts for Service Connect.

" + "smithy.api#documentation": "

A reference to an object that represents the configured timeouts for\n\t\t\tService Connect.

" } }, "tls": { "target": "com.amazonaws.ecs#ServiceConnectTlsConfiguration", "traits": { - "smithy.api#documentation": "

A reference to an object that represents a Transport Layer Security (TLS) configuration.

" + "smithy.api#documentation": "

A reference to an object that represents a Transport Layer Security (TLS)\n\t\t\tconfiguration.

" } } }, @@ -10529,12 +10529,12 @@ "discoveryArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the namespace in Cloud Map that matches the discovery name for this\n\t\t\tService Connect resource. You can use this ARN in other integrations with Cloud Map. However,\n\t\t\tService Connect can't ensure connectivity outside of Amazon ECS.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the namespace in Cloud Map that matches the discovery name for this\n\t\t\tService Connect resource. You can use this ARN in other integrations with Cloud Map.\n\t\t\tHowever, Service Connect can't ensure connectivity outside of Amazon ECS.

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

The Service Connect resource. Each configuration maps a discovery name to a Cloud Map service name.\n\t\t\tThe data is stored in Cloud Map as part of the Service Connect configuration for each discovery name\n\t\t\tof this Amazon ECS service.

\n

A task can resolve the dnsName for each of the clientAliases of a service.\n\t\t\tHowever a task can't resolve the discovery names. If you want to connect to a service, refer to the\n\t\t\t\tServiceConnectConfiguration of that service for the list of clientAliases\n\t\t\tthat you can use.

" + "smithy.api#documentation": "

The Service Connect resource. Each configuration maps a discovery name to a\n\t\t\tCloud Map service name. The data is stored in Cloud Map as part of the\n\t\t\tService Connect configuration for each discovery name of this Amazon ECS service.

\n

A task can resolve the dnsName for each of the clientAliases\n\t\t\tof a service. However a task can't resolve the discovery names. If you want to connect\n\t\t\tto a service, refer to the ServiceConnectConfiguration of that service for\n\t\t\tthe list of clientAliases that you can use.

" } }, "com.amazonaws.ecs#ServiceConnectServiceResourceList": { @@ -10608,25 +10608,25 @@ "createdAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The time the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

The time the service deployment was created. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

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

The time the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

The time the service deployment statred. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

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

The time the service deployment finished. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + "smithy.api#documentation": "

The time the service deployment finished. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

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

The time the service deployment stopped. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

\n

The service deployment stops when any of the following actions happen:

\n
    \n
  • \n

    A user manually stops the deployment

    \n
  • \n
  • \n

    The rollback option is not in use for the failure detection mechanism (the\n\t\t\t\t\tcircuit breaker or alarm-based) and the service fails.

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

The time the service deployment stopped. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

\n

The service deployment stops when any of the following actions happen:

\n
    \n
  • \n

    A user manually stops the deployment

    \n
  • \n
  • \n

    The rollback option is not in use for the failure detection mechanism (the\n\t\t\t\t\tcircuit breaker or alarm-based) and the service fails.

    \n
  • \n
" } }, "updatedAt": { @@ -10656,7 +10656,7 @@ "statusReason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example, the circuit breaker detected a failure.

" + "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example,\n\t\t\tthe circuit breaker detected a failure.

" } }, "deploymentConfiguration": { @@ -10682,7 +10682,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the service deployment.

\n

Service deployments provide a comprehensive view of your deployments. For information\n\t\t\tabout service deployments, see View service history using Amazon ECS service deployments\n\t\t\tin the \n Amazon Elastic Container Service Developer Guide\n .

" + "smithy.api#documentation": "

Information about the service deployment.

\n

Service deployments provide a comprehensive view of your deployments. For information\n\t\t\tabout service deployments, see View service history\n\t\t\t\tusing Amazon ECS service deployments in the\n\t\t\t\n Amazon Elastic Container Service Developer Guide\n .

" } }, "com.amazonaws.ecs#ServiceDeploymentAlarms": { @@ -10691,24 +10691,24 @@ "status": { "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", "traits": { - "smithy.api#documentation": "

The status of the alarms check. Amazon ECS is not using alarms for service deployment failures when the status is DISABLED.

" + "smithy.api#documentation": "

The status of the alarms check. Amazon ECS is not using alarms for service deployment\n\t\t\tfailures when the status is DISABLED.

" } }, "alarmNames": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The name of the CloudWatch alarms that determine when a service deployment failed. A \",\" separates the alarms.

" + "smithy.api#documentation": "

The name of the CloudWatch alarms that determine when a service deployment failed. A\n\t\t\t\",\" separates the alarms.

" } }, "triggeredAlarmNames": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

One or more CloudWatch alarm names that have been triggered during the service deployment. A \",\"\n\t\t\tseparates the alarm names.

" + "smithy.api#documentation": "

One or more CloudWatch alarm names that have been triggered during the service\n\t\t\tdeployment. A \",\" separates the alarm names.

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

The CloudWatch alarms used to determine a service deployment failed.

\n

Amazon ECS considers the service deployment as failed when any of the alarms move to the ALARM state. For more information, see How CloudWatch alarms detect Amazon ECS deployment failures in the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The CloudWatch alarms used to determine a service deployment failed.

\n

Amazon ECS considers the service deployment as failed when any of the alarms move to\n\t\t\tthe ALARM state. For more information, see How CloudWatch\n\t\t\t\talarms detect Amazon ECS deployment failures in the Amazon ECS Developer\n\t\t\tGuide.

" } }, "com.amazonaws.ecs#ServiceDeploymentBrief": { @@ -10765,12 +10765,12 @@ "statusReason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example, the circuit breaker detected a deployment failure.

" + "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example,\n\t\t\tthe circuit breaker detected a deployment failure.

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

The service deployment properties that are retured when you call ListServiceDeployments.

\n

This provides a high-level overview of the service deployment.

" + "smithy.api#documentation": "

The service deployment properties that are retured when you call\n\t\t\t\tListServiceDeployments.

\n

This provides a high-level overview of the service deployment.

" } }, "com.amazonaws.ecs#ServiceDeploymentCircuitBreaker": { @@ -10779,7 +10779,7 @@ "status": { "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", "traits": { - "smithy.api#documentation": "

The circuit breaker status. Amazon ECS is not using the circuit breaker for service deployment failures when the status is DISABLED.

" + "smithy.api#documentation": "

The circuit breaker status. Amazon ECS is not using the circuit breaker for service\n\t\t\tdeployment failures when the status is DISABLED.

" } }, "failureCount": { @@ -10793,12 +10793,12 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The threshhold which determines that the service deployment failed.

\n

The deployment circuit breaker calculates the threshold value, and then uses the value to\n\t\t\tdetermine when to move the deployment to a FAILED state. The deployment circuit breaker\n\t\t\thas a minimum threshold of 3 and a maximum threshold of 200. and uses the values in the\n\t\t\tfollowing formula to determine the deployment failure.

\n

\n 0.5 * desired task count\n

" + "smithy.api#documentation": "

The threshhold which determines that the service deployment failed.

\n

The deployment circuit breaker calculates the threshold value, and then uses the value\n\t\t\tto determine when to move the deployment to a FAILED state. The deployment circuit\n\t\t\tbreaker has a minimum threshold of 3 and a maximum threshold of 200. and uses the values\n\t\t\tin the following formula to determine the deployment failure.

\n

\n 0.5 * desired task count\n

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

Information about the circuit breaker used to determine when a service deployment has\n\t\t\tfailed.

\n

The deployment circuit breaker is the rolling update mechanism that determines if the\n\t\t\ttasks reach a steady state. The deployment circuit breaker has an option that will\n\t\t\tautomatically roll back a failed deployment to the last cpompleted service\n\t\t\trevision. For more information, see How the Amazon ECS\n\t\t\t\tdeployment circuit breaker detects failures in the Amazon ECS Developer\n\t\t\t\t\tGuide.

" + "smithy.api#documentation": "

Information about the circuit breaker used to determine when a service deployment has\n\t\t\tfailed.

\n

The deployment circuit breaker is the rolling update mechanism that determines if the\n\t\t\ttasks reach a steady state. The deployment circuit breaker has an option that will\n\t\t\tautomatically roll back a failed deployment to the last cpompleted service revision. For\n\t\t\tmore information, see How the Amazon\n\t\t\t\tECS deployment circuit breaker detects failures in the Amazon ECS\n\t\t\t\tDeveloper Guide.

" } }, "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus": { @@ -10956,67 +10956,67 @@ "encrypted": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on\n\t\t\tby default. This parameter maps 1:1 with the Encrypted parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference.

" + "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If no value is specified, encryption\n\t\t\tis turned on by default. This parameter maps 1:1 with the Encrypted\n\t\t\tparameter of the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

" } }, "kmsKeyId": { "target": "com.amazonaws.ecs#EBSKMSKeyId", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When encryption is turned\n\t\t\ton and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key for Amazon EBS volumes is used. This\n\t\t\tparameter maps 1:1 with the KmsKeyId parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n \n

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or\n\t\t\t\tARN that is invalid, the action can appear to complete, but eventually fails.

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

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When\n\t\t\tencryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key\n\t\t\tfor Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId\n\t\t\tparameter of the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

\n \n

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an\n\t\t\t\tID, alias, or ARN that is invalid, the action can appear to complete, but\n\t\t\t\teventually fails.

\n
" } }, "volumeType": { "target": "com.amazonaws.ecs#EBSVolumeType", "traits": { - "smithy.api#documentation": "

The volume type. This parameter maps 1:1 with the VolumeType parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types\n\t\t\tin the Amazon EC2 User Guide.

\n

The following are the supported volume types.

\n
    \n
  • \n

    General Purpose SSD: gp2|gp3\n

    \n
  • \n
  • \n

    Provisioned IOPS SSD: io1|io2\n

    \n
  • \n
  • \n

    Throughput Optimized HDD: st1\n

    \n
  • \n
  • \n

    Cold HDD: sc1\n

    \n
  • \n
  • \n

    Magnetic: standard\n

    \n \n

    The magnetic volume type is not supported on Fargate.

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

The volume type. This parameter maps 1:1 with the VolumeType parameter of\n\t\t\tthe CreateVolume API in the Amazon EC2 API Reference. For more\n\t\t\tinformation, see Amazon EBS volume types in\n\t\t\tthe Amazon EC2 User Guide.

\n

The following are the supported volume types.

\n
    \n
  • \n

    General Purpose SSD: gp2|gp3\n

    \n
  • \n
  • \n

    Provisioned IOPS SSD: io1|io2\n

    \n
  • \n
  • \n

    Throughput Optimized HDD: st1\n

    \n
  • \n
  • \n

    Cold HDD: sc1\n

    \n
  • \n
  • \n

    Magnetic: standard\n

    \n \n

    The magnetic volume type is not supported on Fargate.

    \n
    \n
  • \n
" } }, "sizeInGiB": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify\n\t\t\ta snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a\n\t\t\tvolume size greater than or equal to the snapshot size. This parameter maps 1:1 with the\n\t\t\t\tSize parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n

The following are the supported volume size values for each volume type.

\n
    \n
  • \n

    \n gp2 and gp3: 1-16,384

    \n
  • \n
  • \n

    \n io1 and io2: 4-16,384

    \n
  • \n
  • \n

    \n st1 and sc1: 125-16,384

    \n
  • \n
  • \n

    \n standard: 1-1,024

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

The size of the volume in GiB. You must specify either a volume size or a snapshot ID.\n\t\t\tIf you specify a snapshot ID, the snapshot size is used for the volume size by default.\n\t\t\tYou can optionally specify a volume size greater than or equal to the snapshot size.\n\t\t\tThis parameter maps 1:1 with the Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

\n

The following are the supported volume size values for each volume type.

\n
    \n
  • \n

    \n gp2 and gp3: 1-16,384

    \n
  • \n
  • \n

    \n io1 and io2: 4-16,384

    \n
  • \n
  • \n

    \n st1 and sc1: 125-16,384

    \n
  • \n
  • \n

    \n standard: 1-1,024

    \n
  • \n
" } }, "snapshotId": { "target": "com.amazonaws.ecs#EBSSnapshotId", "traits": { - "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot ID or a volume\n\t\t\tsize. This parameter maps 1:1 with the SnapshotId parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference.

" + "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot\n\t\t\tID or a volume size. This parameter maps 1:1 with the SnapshotId parameter\n\t\t\tof the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

" } }, "iops": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and\n\t\t\t\tio2 volumes, this represents the number of IOPS that are provisioned for the volume.\n\t\t\tFor gp2 volumes, this represents the baseline performance of the volume and the rate at\n\t\t\twhich the volume accumulates I/O credits for bursting.

\n

The following are the supported values for each volume type.

\n
    \n
  • \n

    \n gp3: 3,000 - 16,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

This parameter is required for io1 and io2 volume types. The default for\n\t\t\t\tgp3 volumes is 3,000 IOPS. This parameter is not supported for\n\t\t\t\tst1, sc1, or standard volume types.

\n

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

" + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3,\n\t\t\tio1, and io2 volumes, this represents the number of IOPS that\n\t\t\tare provisioned for the volume. For gp2 volumes, this represents the\n\t\t\tbaseline performance of the volume and the rate at which the volume accumulates I/O\n\t\t\tcredits for bursting.

\n

The following are the supported values for each volume type.

\n
    \n
  • \n

    \n gp3: 3,000 - 16,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

This parameter is required for io1 and io2 volume types. The\n\t\t\tdefault for gp3 volumes is 3,000 IOPS. This parameter is not\n\t\t\tsupported for st1, sc1, or standard volume\n\t\t\ttypes.

\n

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

" } }, "throughput": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter\n\t\t\tmaps 1:1 with the Throughput parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n \n

This parameter is only supported for the gp3 volume type.

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

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s.\n\t\t\tThis parameter maps 1:1 with the Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

\n \n

This parameter is only supported for the gp3 volume type.

\n
" } }, "tagSpecifications": { "target": "com.amazonaws.ecs#EBSTagSpecifications", "traits": { - "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps\n\t\t\t1:1 with the TagSpecifications.N parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

" + "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This\n\t\t\tparameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

" } }, "roleArn": { "target": "com.amazonaws.ecs#IAMRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role\n\t\t\tthat is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed\n\t\t\t\tAmazonECSInfrastructureRolePolicyForVolumes IAM policy with this role. For more\n\t\t\tinformation, see Amazon ECS infrastructure IAM\n\t\t\t\trole in the Amazon ECS Developer Guide.

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

The ARN of the IAM role to associate with this volume. This is the Amazon ECS\n\t\t\tinfrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend\n\t\t\tusing the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes IAM\n\t\t\tpolicy with this role. For more information, see Amazon ECS\n\t\t\t\tinfrastructure IAM role in the Amazon ECS Developer\n\t\t\tGuide.

", "smithy.api#required": {} } }, "filesystemType": { "target": "com.amazonaws.ecs#TaskFilesystemType", "traits": { - "smithy.api#documentation": "

The filesystem type for the volume. For volumes created from a snapshot, you must specify\n\t\t\tthe same filesystem type that the volume was using when the snapshot was created. If\n\t\t\tthere is a filesystem type mismatch, the task will fail to start.

\n

The available Linux filesystem types are\u2028 ext3, ext4, and\n\t\t\t\txfs. If no value is specified, the xfs filesystem type is\n\t\t\tused by default.

\n

The available Windows filesystem types are NTFS.

" + "smithy.api#documentation": "

The filesystem type for the volume. For volumes created from a snapshot, you must\n\t\t\tspecify the same filesystem type that the volume was using when the snapshot was\n\t\t\tcreated. If there is a filesystem type mismatch, the task will fail to start.

\n

The available Linux filesystem types are\u2028 ext3, ext4, and\n\t\t\t\txfs. If no value is specified, the xfs filesystem type is\n\t\t\tused by default.

\n

The available Windows filesystem types are NTFS.

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

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These\n\t\t\tsettings are used to create each Amazon EBS volume, with one volume created for each task in\n\t\t\tthe service. For information about the supported launch types and operating systems, see Supported operating systems and launch types\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n

Many of these parameters map 1:1 with the Amazon EBS CreateVolume API request\n\t\t\tparameters.

" + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf.\n\t\t\tThese settings are used to create each Amazon EBS volume, with one volume created for each\n\t\t\ttask in the service. For information about the supported launch types and operating\n\t\t\tsystems, see Supported operating systems and launch types in the Amazon Elastic Container Service\n\t\t\t\tDeveloper Guide.

\n

Many of these parameters map 1:1 with the Amazon EBS CreateVolume API request\n\t\t\tparameters.

" } }, "com.amazonaws.ecs#ServiceNotActiveException": { @@ -11030,7 +11030,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified service isn't active. You can't update a service that's inactive. If you have\n\t\t\tpreviously deleted a service, you can re-create it with CreateService.

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

The specified service isn't active. You can't update a service that's inactive. If you\n\t\t\thave previously deleted a service, you can re-create it with CreateService.

", "smithy.api#error": "client" } }, @@ -11045,7 +11045,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region specific.

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

The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region\n\t\t\tspecific.

", "smithy.api#error": "client" } }, @@ -11061,30 +11061,30 @@ "registryArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is Cloud Map. For more\n\t\t\tinformation, see CreateService.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is\n\t\t\tCloud Map. For more information, see CreateService.

" } }, "port": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port value used if your service discovery service specified an SRV record. This field might be\n\t\t\tused if both the awsvpc network mode and SRV records are used.

" + "smithy.api#documentation": "

The port value used if your service discovery service specified an SRV record. This\n\t\t\tfield might be used if both the awsvpc network mode and SRV records are\n\t\t\tused.

" } }, "containerName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The container name value to be used for your service discovery service. It's already specified in the\n\t\t\ttask definition. If the task definition that your service task specifies uses the bridge\n\t\t\tor host network mode, you must specify a containerName and\n\t\t\t\tcontainerPort combination from the task definition. If the task definition that your\n\t\t\tservice task specifies uses the awsvpc network mode and a type SRV DNS record is used, you\n\t\t\tmust specify either a containerName and containerPort combination or a\n\t\t\t\tport value. However, you can't specify both.

" + "smithy.api#documentation": "

The container name value to be used for your service discovery service. It's already\n\t\t\tspecified in the task definition. If the task definition that your service task\n\t\t\tspecifies uses the bridge or host network mode, you must\n\t\t\tspecify a containerName and containerPort combination from the\n\t\t\ttask definition. If the task definition that your service task specifies uses the\n\t\t\t\tawsvpc network mode and a type SRV DNS record is used, you must specify\n\t\t\teither a containerName and containerPort combination or a\n\t\t\t\tport value. However, you can't specify both.

" } }, "containerPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The port value to be used for your service discovery service. It's already specified in the task\n\t\t\tdefinition. If the task definition your service task specifies uses the bridge or\n\t\t\t\thost network mode, you must specify a containerName and\n\t\t\t\tcontainerPort combination from the task definition. If the task definition your\n\t\t\tservice task specifies uses the awsvpc network mode and a type SRV DNS record is used, you\n\t\t\tmust specify either a containerName and containerPort combination or a\n\t\t\t\tport value. However, you can't specify both.

" + "smithy.api#documentation": "

The port value to be used for your service discovery service. It's already specified\n\t\t\tin the task definition. If the task definition your service task specifies uses the\n\t\t\t\tbridge or host network mode, you must specify a\n\t\t\t\tcontainerName and containerPort combination from the task\n\t\t\tdefinition. If the task definition your service task specifies uses the\n\t\t\t\tawsvpc network mode and a type SRV DNS record is used, you must specify\n\t\t\teither a containerName and containerPort combination or a\n\t\t\t\tport value. However, you can't specify both.

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

The details for the service registry.

\n

Each service may be associated with one service registry. Multiple service registries for each\n\t\t\tservice are not supported.

\n

When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment.\n\t\t\tNew tasks are registered and deregistered to the updated service registry configuration.

" + "smithy.api#documentation": "

The details for the service registry.

\n

Each service may be associated with one service registry. Multiple service registries\n\t\t\tfor each service are not supported.

\n

When you add, update, or remove the service registries configuration, Amazon ECS starts a\n\t\t\tnew deployment. New tasks are registered and deregistered to the updated service\n\t\t\tregistry configuration.

" } }, "com.amazonaws.ecs#ServiceRevision": { @@ -11181,7 +11181,7 @@ "createdAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The time that the service revision was created. The format is yyyy-mm-dd HH:mm:ss.SSSSS.

" + "smithy.api#documentation": "

The time that the service revision was created. The format is yyyy-mm-dd\n\t\t\tHH:mm:ss.SSSSS.

" } }, "vpcLatticeConfigurations": { @@ -11192,7 +11192,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the service revision.

\n

A service revision contains a record of the workload configuration Amazon ECS is attempting to deploy. Whenever you create or deploy a service, Amazon ECS automatically creates and captures the configuration that you're trying to deploy in the service revision. For information\n\t\t\tabout service revisions, see Amazon ECS service revisions\n\t\t\tin the \n Amazon Elastic Container Service Developer Guide\n .

" + "smithy.api#documentation": "

Information about the service revision.

\n

A service revision contains a record of the workload configuration Amazon ECS is attempting\n\t\t\tto deploy. Whenever you create or deploy a service, Amazon ECS automatically creates and\n\t\t\tcaptures the configuration that you're trying to deploy in the service revision. For\n\t\t\tinformation about service revisions, see Amazon ECS service\n\t\t\t\trevisions in the \n Amazon Elastic Container Service Developer Guide\n .

" } }, "com.amazonaws.ecs#ServiceRevisionSummary": { @@ -11227,7 +11227,7 @@ } }, "traits": { - "smithy.api#documentation": "

The information about the number of requested, pending, and running tasks for a service revision.

" + "smithy.api#documentation": "

The information about the number of requested, pending, and running tasks for a\n\t\t\tservice revision.

" } }, "com.amazonaws.ecs#ServiceRevisions": { @@ -11248,19 +11248,19 @@ "name": { "target": "com.amazonaws.ecs#ECSVolumeName", "traits": { - "smithy.api#documentation": "

The name of the volume. This value must match the volume name from the Volume object in\n\t\t\tthe task definition.

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

The name of the volume. This value must match the volume name from the\n\t\t\t\tVolume object in the task definition.

", "smithy.api#required": {} } }, "managedEBSVolume": { "target": "com.amazonaws.ecs#ServiceManagedEBSVolumeConfiguration", "traits": { - "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings\n\t\t\tare used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS\n\t\t\tvolumes are visible in your account in the Amazon EC2 console once they are created.

" + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf.\n\t\t\tThese settings are used to create each Amazon EBS volume, with one volume created for each\n\t\t\ttask in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console\n\t\t\tonce they are created.

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

The configuration for a volume specified in the task definition as a volume that is configured at\n\t\t\tlaunch time. Currently, the only supported volume type is an Amazon EBS volume.

" + "smithy.api#documentation": "

The configuration for a volume specified in the task definition as a volume that is\n\t\t\tconfigured at launch time. Currently, the only supported volume type is an Amazon EBS\n\t\t\tvolume.

" } }, "com.amazonaws.ecs#ServiceVolumeConfigurations": { @@ -11287,13 +11287,13 @@ "streamUrl": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A URL to the managed agent on the container that the SSM Session Manager client uses to send commands\n\t\t\tand receive output from the container.

" + "smithy.api#documentation": "

A URL to the managed agent on the container that the SSM Session Manager client uses\n\t\t\tto send commands and receive output from the container.

" } }, "tokenValue": { "target": "com.amazonaws.ecs#SensitiveString", "traits": { - "smithy.api#documentation": "

An encrypted token value containing session and caller information. It's used to authenticate the\n\t\t\tconnection to the container.

" + "smithy.api#documentation": "

An encrypted token value containing session and caller information. It's used to\n\t\t\tauthenticate the connection to the container.

" } } }, @@ -11319,13 +11319,13 @@ "principalArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The ARN of the principal. It can be a user, role, or the root user. If this field is omitted, the\n\t\t\tauthenticated user is assumed.

" + "smithy.api#documentation": "

The ARN of the principal. It can be a user, role, or the root user. If this field is\n\t\t\tomitted, the authenticated user is assumed.

" } }, "type": { "target": "com.amazonaws.ecs#SettingType", "traits": { - "smithy.api#documentation": "

Indicates whether Amazon Web Services manages the account setting, or if the user manages it.

\n

\n aws_managed account settings are read-only, as Amazon Web Services manages such on the customer's\n\t\t\tbehalf. Currently, the guardDutyActivate account setting is the only one Amazon Web Services\n\t\t\tmanages.

" + "smithy.api#documentation": "

Indicates whether Amazon Web Services manages the account setting, or if the user manages it.

\n

\n aws_managed account settings are read-only, as Amazon Web Services manages such on the\n\t\t\tcustomer's behalf. Currently, the guardDutyActivate account setting is the\n\t\t\tonly one Amazon Web Services manages.

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

Starts a new task from the specified task definition on the specified container instance or\n\t\t\tinstances.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

Alternatively, you can useRunTask to place tasks for you. For more information, see\n\t\t\t\tScheduling\n\t\t\t\tTasks in the Amazon Elastic Container Service Developer Guide.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a\n\t\t\tservice. For more infomation, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Starts a new task from the specified task definition on the specified container\n\t\t\tinstance or instances.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n \n

Amazon Elastic Inference (EI) is no longer available to customers.

\n
\n

Alternatively, you can useRunTask to place tasks for you. For more\n\t\t\tinformation, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or\n\t\t\tupdating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#StartTaskRequest": { @@ -11490,7 +11490,7 @@ "containerInstances": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The container instance IDs or full ARN entries for the container instances where you would like to\n\t\t\tplace your task. You can specify up to 10 container instances.

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

The container instance IDs or full ARN entries for the container instances where you\n\t\t\twould like to place your task. You can specify up to 10 container instances.

", "smithy.api#required": {} } }, @@ -11498,20 +11498,20 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Whether or not the execute command functionality is turned on for the task. If true,\n\t\t\tthis turns on the execute command functionality on all containers in the task.

" + "smithy.api#documentation": "

Whether or not the execute command functionality is turned on for the task. If\n\t\t\t\ttrue, this turns on the execute command functionality on all containers\n\t\t\tin the task.

" } }, "group": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family name of the\n\t\t\ttask definition (for example, family:my-family-name).

" + "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family\n\t\t\tname of the task definition (for example, family:my-family-name).

" } }, "networkConfiguration": { @@ -11523,13 +11523,13 @@ "overrides": { "target": "com.amazonaws.ecs#TaskOverride", "traits": { - "smithy.api#documentation": "

A list of container overrides in JSON format that specify the name of a container in the specified\n\t\t\ttask definition and the overrides it receives. You can override the default command for a container\n\t\t\t(that's specified in the task definition or Docker image) with a command override. You can\n\t\t\talso override existing environment variables (that are specified in the task definition or Docker\n\t\t\timage) on a container or add new environment variables to it with an environment\n\t\t\toverride.

\n \n

A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting\n\t\t\t\tcharacters of the override structure.

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

A list of container overrides in JSON format that specify the name of a container in\n\t\t\tthe specified task definition and the overrides it receives. You can override the\n\t\t\tdefault command for a container (that's specified in the task definition or Docker\n\t\t\timage) with a command override. You can also override existing environment\n\t\t\tvariables (that are specified in the task definition or Docker image) on a container or\n\t\t\tadd new environment variables to it with an environment override.

\n \n

A total of 8192 characters are allowed for overrides. This limit includes the JSON\n\t\t\t\tformatting characters of the override structure.

\n
" } }, "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition or the service to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated.

" + "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition or the service to the\n\t\t\ttask. If no value is specified, the tags aren't propagated.

" } }, "referenceId": { @@ -11541,26 +11541,26 @@ "startedBy": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically trigger\n\t\t\ta task to run a batch process job, you could apply a unique identifier for that job to\n\t\t\tyour task with the startedBy parameter. You can then identify which tasks\n\t\t\tbelong to that job by filtering the results of a ListTasks call with\n\t\t\tthe startedBy value. Up to 36 letters (uppercase and lowercase), numbers,\n\t\t\thyphens (-), forward slash (/), and underscores (_) are allowed.

\n

If a task is started by an Amazon ECS service, the startedBy parameter\n\t\t\tcontains the deployment ID of the service that starts it.

" + "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically\n\t\t\ttrigger a task to run a batch process job, you could apply a unique identifier for that\n\t\t\tjob to your task with the startedBy parameter. You can then identify which\n\t\t\ttasks belong to that job by filtering the results of a ListTasks call with\n\t\t\tthe startedBy value. Up to 36 letters (uppercase and lowercase), numbers,\n\t\t\thyphens (-), forward slash (/), and underscores (_) are allowed.

\n

If a task is started by an Amazon ECS service, the startedBy parameter\n\t\t\tcontains the deployment ID of the service that starts it.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize them. Each tag consists\n\t\t\tof a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task to help you categorize and organize them. Each\n\t\t\ttag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the\n\t\t\ttask definition to start. If a revision isn't specified, the latest ACTIVE\n\t\t\trevision is used.

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

The family and revision (family:revision) or\n\t\t\tfull ARN of the task definition to start. If a revision isn't specified,\n\t\t\tthe latest ACTIVE revision is used.

", "smithy.api#required": {} } }, "volumeConfigurations": { "target": "com.amazonaws.ecs#TaskVolumeConfigurations", "traits": { - "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size,\n\t\t\tvolumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must match the\n\t\t\t\tname from the task definition.

" + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure\n\t\t\tthe size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must\n\t\t\tmatch the name from the task definition.

" } } }, @@ -11574,7 +11574,7 @@ "tasks": { "target": "com.amazonaws.ecs#Tasks", "traits": { - "smithy.api#documentation": "

A full description of the tasks that were started. Each task that was successfully placed on your\n\t\t\tcontainer instances is described.

" + "smithy.api#documentation": "

A full description of the tasks that were started. Each task that was successfully\n\t\t\tplaced on your container instances is described.

" } }, "failures": { @@ -11617,7 +11617,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops a running task. Any tags associated with the task will be deleted.

\n

When you call StopTask on a task, the equivalent of docker stop is issued\n\t\t\tto the containers running in the task. This results in a SIGTERM value and a default\n\t\t\t30-second timeout, after which the SIGKILL value is sent and the containers are forcibly\n\t\t\tstopped. If the container handles the SIGTERM value gracefully and exits within 30 seconds\n\t\t\tfrom receiving it, no SIGKILL value is sent.

\n

For Windows containers, POSIX signals do not work and runtime stops the container by sending a\n\t\t\t\tCTRL_SHUTDOWN_EVENT. For more information, see Unable to react to graceful shutdown of (Windows)\n\t\t\t\tcontainer #25982 on GitHub.

\n \n

The default 30-second timeout can be configured on the Amazon ECS container agent with the\n\t\t\t\t\tECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS\n\t\t\t\t\tContainer Agent Configuration in the Amazon Elastic Container Service Developer Guide.

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

Stops a running task. Any tags associated with the task will be deleted.

\n

When you call StopTask on a task, the equivalent of docker\n\t\t\t\tstop is issued to the containers running in the task. This results in a\n\t\t\t\tSIGTERM value and a default 30-second timeout, after which the\n\t\t\t\tSIGKILL value is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the SIGTERM value gracefully and exits within 30 seconds\n\t\t\tfrom receiving it, no SIGKILL value is sent.

\n

For Windows containers, POSIX signals do not work and runtime stops the container by\n\t\t\tsending a CTRL_SHUTDOWN_EVENT. For more information, see Unable to react to graceful shutdown\n\t\t\t\tof (Windows) container #25982 on GitHub.

\n \n

The default 30-second timeout can be configured on the Amazon ECS container agent with\n\t\t\t\tthe ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see\n\t\t\t\t\tAmazon ECS Container Agent Configuration in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n
" } }, "com.amazonaws.ecs#StopTaskRequest": { @@ -11639,7 +11639,7 @@ "reason": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

An optional message specified when a task is stopped. For example, if you're using a custom\n\t\t\tscheduler, you can use this parameter to specify the reason for stopping the task here, and the message\n\t\t\tappears in subsequent DescribeTasks> API operations on\n\t\t\tthis task.

" + "smithy.api#documentation": "

An optional message specified when a task is stopped. For example, if you're using a\n\t\t\tcustom scheduler, you can use this parameter to specify the reason for stopping the task\n\t\t\there, and the message appears in subsequent DescribeTasks>\n\t\t\tAPI operations on this task.

" } } }, @@ -11711,7 +11711,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full ARN of the cluster that hosts the container instance the attachment belongs\n\t\t\tto.

" + "smithy.api#documentation": "

The short name or full ARN of the cluster that hosts the container instance the\n\t\t\tattachment belongs to.

" } }, "attachments": { @@ -11953,12 +11953,12 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The namespaced kernel parameter to set a value for.

\n

Valid IPC namespace values: \"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\"\n\t\t\t\t| \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\", and\n\t\t\t\tSysctls that start with \"fs.mqueue.*\"\n

\n

Valid network namespace values: Sysctls that start with \"net.*\"\n

\n

All of these values are supported by Fargate.

" + "smithy.api#documentation": "

The namespaced kernel parameter to set a value for.

\n

Valid IPC namespace values: \"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\"\n\t\t\t\t| \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" |\n\t\t\t\t\"kernel.shm_rmid_forced\", and Sysctls that start with\n\t\t\t\t\"fs.mqueue.*\"\n

\n

Valid network namespace values: Sysctls that start with\n\t\t\t\t\"net.*\"\n

\n

All of these values are supported by Fargate.

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

A list of namespaced kernel parameters to set in the container. This parameter maps to\n\t\t\t\tSysctls in the docker container create command and the --sysctl option to\n\t\t\tdocker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain\n\t\t\tlonger lived connections.

\n

We don't recommend that you specify network-related systemControls parameters for\n\t\t\tmultiple containers in a single task that also uses either the awsvpc or host\n\t\t\tnetwork mode. Doing this has the following disadvantages:

\n
    \n
  • \n

    For tasks that use the awsvpc network mode including Fargate, if you set\n\t\t\t\t\t\tsystemControls for any container, it applies to all containers in the task. If\n\t\t\t\t\tyou set different systemControls for multiple containers in a single task, the\n\t\t\t\t\tcontainer that's started last determines which systemControls take effect.

    \n
  • \n
  • \n

    For tasks that use the host network mode, the network namespace\n\t\t\t\t\t\tsystemControls aren't supported.

    \n
  • \n
\n

If you're setting an IPC resource namespace to use for the containers in the task, the following\n\t\t\tconditions apply to your system controls. For more information, see IPC\n\t\t\t\tmode.

\n
    \n
  • \n

    For tasks that use the host IPC mode, IPC namespace systemControls\n\t\t\t\t\taren't supported.

    \n
  • \n
  • \n

    For tasks that use the task IPC mode, IPC namespace systemControls\n\t\t\t\t\tvalues apply to all containers within a task.

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

\n
\n \n

This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

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

A list of namespaced kernel parameters to set in the container. This parameter maps to\n\t\t\t\tSysctls in the docker container create command and the\n\t\t\t\t--sysctl option to docker run. For example, you can configure\n\t\t\t\tnet.ipv4.tcp_keepalive_time setting to maintain longer lived\n\t\t\tconnections.

\n

We don't recommend that you specify network-related systemControls\n\t\t\tparameters for multiple containers in a single task that also uses either the\n\t\t\t\tawsvpc or host network mode. Doing this has the following\n\t\t\tdisadvantages:

\n
    \n
  • \n

    For tasks that use the awsvpc network mode including Fargate,\n\t\t\t\t\tif you set systemControls for any container, it applies to all\n\t\t\t\t\tcontainers in the task. If you set different systemControls for\n\t\t\t\t\tmultiple containers in a single task, the container that's started last\n\t\t\t\t\tdetermines which systemControls take effect.

    \n
  • \n
  • \n

    For tasks that use the host network mode, the network namespace\n\t\t\t\t\t\tsystemControls aren't supported.

    \n
  • \n
\n

If you're setting an IPC resource namespace to use for the containers in the task, the\n\t\t\tfollowing conditions apply to your system controls. For more information, see IPC mode.

\n
    \n
  • \n

    For tasks that use the host IPC mode, IPC namespace\n\t\t\t\t\t\tsystemControls aren't supported.

    \n
  • \n
  • \n

    For tasks that use the task IPC mode, IPC namespace\n\t\t\t\t\t\tsystemControls values apply to all containers within a\n\t\t\t\t\ttask.

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

\n
\n \n

This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

\n
" } }, "com.amazonaws.ecs#SystemControls": { @@ -11973,18 +11973,18 @@ "key": { "target": "com.amazonaws.ecs#TagKey", "traits": { - "smithy.api#documentation": "

One part of a key-value pair that make up a tag. A key is a general label that acts like\n\t\t\ta category for more specific tag values.

" + "smithy.api#documentation": "

One part of a key-value pair that make up a tag. A key is a general label\n\t\t\tthat acts like a category for more specific tag values.

" } }, "value": { "target": "com.amazonaws.ecs#TagValue", "traits": { - "smithy.api#documentation": "

The optional part of a key-value pair that make up a tag. A value acts as a descriptor\n\t\t\twithin a tag category (key).

" + "smithy.api#documentation": "

The optional part of a key-value pair that make up a tag. A value acts as\n\t\t\ta descriptor within a tag category (key).

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

The metadata that you apply to a resource to help you categorize and organize them. Each tag consists\n\t\t\tof a key and an optional value. You define them.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to a resource to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define them.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "com.amazonaws.ecs#TagKey": { @@ -12029,7 +12029,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn. If existing\n\t\t\ttags on a resource aren't specified in the request parameters, they aren't changed. When a resource is\n\t\t\tdeleted, the tags that are associated with that resource are deleted as well.

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

Associates the specified tags to a resource with the specified\n\t\t\t\tresourceArn. If existing tags on a resource aren't specified in the\n\t\t\trequest parameters, they aren't changed. When a resource is deleted, the tags that are\n\t\t\tassociated with that resource are deleted as well.

", "smithy.api#examples": [ { "title": "To tag a cluster.", @@ -12054,7 +12054,7 @@ "resourceArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are Amazon ECS capacity\n\t\t\tproviders, tasks, services, task definitions, clusters, and container instances.

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

The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are\n\t\t\tAmazon ECS capacity providers, tasks, services, task definitions, clusters, and container\n\t\t\tinstances.

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

The execute command cannot run. This error can be caused by any of the following configuration\n\t\t\tissues:

\n
    \n
  • \n

    Incorrect IAM permissions

    \n
  • \n
  • \n

    The SSM agent is not installed or is not running

    \n
  • \n
  • \n

    There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for Systems\n\t\t\t\t\tManager Session Manager

    \n
  • \n
\n

For information about how to troubleshoot the issues, see Troubleshooting issues with ECS Exec in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

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

The execute command cannot run. This error can be caused by any of the following\n\t\t\tconfiguration issues:

\n
    \n
  • \n

    Incorrect IAM permissions

    \n
  • \n
  • \n

    The SSM agent is not installed or is not running

    \n
  • \n
  • \n

    There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for\n\t\t\t\t\tSystems Manager Session Manager

    \n
  • \n
\n

For information about how to troubleshoot the issues, see Troubleshooting issues with ECS\n\t\t\t\tExec in the Amazon Elastic Container Service Developer Guide.

", "smithy.api#error": "client" } }, @@ -12125,7 +12125,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified target wasn't found. You can view your available container instances with ListContainerInstances. Amazon ECS container instances are cluster-specific and\n\t\t\tRegion-specific.

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

The specified target wasn't found. You can view your available container instances\n\t\t\twith ListContainerInstances. Amazon ECS container instances are cluster-specific and\n\t\t\tRegion-specific.

", "smithy.api#error": "client" } }, @@ -12146,7 +12146,7 @@ "attachments": { "target": "com.amazonaws.ecs#Attachments", "traits": { - "smithy.api#documentation": "

The Elastic Network Adapter that's associated with the task if the task uses the awsvpc\n\t\t\tnetwork mode.

" + "smithy.api#documentation": "

The Elastic Network Adapter that's associated with the task if the task uses the\n\t\t\t\tawsvpc network mode.

" } }, "attributes": { @@ -12182,7 +12182,7 @@ "connectivityAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp for the time when the task last went into CONNECTED status.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task last went into CONNECTED\n\t\t\tstatus.

" } }, "containerInstanceArn": { @@ -12200,26 +12200,26 @@ "cpu": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The number of CPU units used by the task as expressed in a task definition. It can be expressed as an\n\t\t\tinteger using CPU units (for example, 1024). It can also be expressed as a string using\n\t\t\tvCPUs (for example, 1 vCPU or 1 vcpu). String values are converted to an\n\t\t\tinteger that indicates the CPU units when the task definition is registered.

\n

If you use the EC2 launch type, this field is optional. Supported values are between\n\t\t\t\t128 CPU units (0.125 vCPUs) and 10240 CPU units\n\t\t\t\t(10 vCPUs).

\n

If you use the Fargate launch type, this field is required. You must use one of the\n\t\t\tfollowing values. These values determine the range of supported values for the memory\n\t\t\tparameter:

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The number of CPU units used by the task as expressed in a task definition. It can be\n\t\t\texpressed as an integer using CPU units (for example, 1024). It can also be\n\t\t\texpressed as a string using vCPUs (for example, 1 vCPU or 1\n\t\t\t\tvcpu). String values are converted to an integer that indicates the CPU units\n\t\t\twhen the task definition is registered.

\n

If you use the EC2 launch type, this field is optional. Supported values\n\t\t\tare between 128 CPU units (0.125 vCPUs) and 10240\n\t\t\tCPU units (10 vCPUs).

\n

If you use the Fargate launch type, this field is required. You must use\n\t\t\tone of the following values. These values determine the range of supported values for\n\t\t\tthe memory parameter:

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "createdAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp for the time when the task was created. More specifically, it's for the time when\n\t\t\tthe task entered the PENDING state.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task was created. More specifically, it's for\n\t\t\tthe time when the task entered the PENDING state.

" } }, "desiredStatus": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The desired status of the task. For more information, see Task Lifecycle.

" + "smithy.api#documentation": "

The desired status of the task. For more information, see Task\n\t\t\tLifecycle.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether execute command functionality is turned on for this task. If true,\n\t\t\texecute command functionality is turned on all the containers in the task.

" + "smithy.api#documentation": "

Determines whether execute command functionality is turned on for this task. If\n\t\t\t\ttrue, execute command functionality is turned on all the containers in\n\t\t\tthe task.

" } }, "executionStoppedAt": { @@ -12237,7 +12237,7 @@ "healthStatus": { "target": "com.amazonaws.ecs#HealthStatus", "traits": { - "smithy.api#documentation": "

The health status for the task. It's determined by the health of the essential containers in the\n\t\t\ttask. If all essential containers in the task are reporting as HEALTHY, the task status\n\t\t\talso reports as HEALTHY. If any essential containers in the task are reporting as\n\t\t\t\tUNHEALTHY or UNKNOWN, the task status also reports as\n\t\t\t\tUNHEALTHY or UNKNOWN.

\n \n

The Amazon ECS container agent doesn't monitor or report on Docker health checks that are embedded in\n\t\t\t\ta container image and not specified in the container definition. For example, this includes those\n\t\t\t\tspecified in a parent image or from the image's Dockerfile. Health check parameters that are\n\t\t\t\tspecified in a container definition override any Docker health checks that are found in the\n\t\t\t\tcontainer image.

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

The health status for the task. It's determined by the health of the essential\n\t\t\tcontainers in the task. If all essential containers in the task are reporting as\n\t\t\t\tHEALTHY, the task status also reports as HEALTHY. If any\n\t\t\tessential containers in the task are reporting as UNHEALTHY or\n\t\t\t\tUNKNOWN, the task status also reports as UNHEALTHY or\n\t\t\t\tUNKNOWN.

\n \n

The Amazon ECS container agent doesn't monitor or report on Docker health checks that\n\t\t\t\tare embedded in a container image and not specified in the container definition. For\n\t\t\t\texample, this includes those specified in a parent image or from the image's\n\t\t\t\tDockerfile. Health check parameters that are specified in a container definition\n\t\t\t\toverride any Docker health checks that are found in the container image.

\n
" } }, "inferenceAccelerators": { @@ -12249,19 +12249,19 @@ "lastStatus": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The last known status for the task. For more information, see Task Lifecycle.

" + "smithy.api#documentation": "

The last known status for the task. For more information, see Task\n\t\t\t\tLifecycle.

" } }, "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The infrastructure where your task runs on. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The infrastructure where your task runs on. For more information, see Amazon ECS\n\t\t\t\tlaunch types in the Amazon Elastic Container Service Developer Guide.

" } }, "memory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The amount of memory (in MiB) that the task uses as expressed in a task definition. It can be\n\t\t\texpressed as an integer using MiB (for example, 1024). If it's expressed as a string using\n\t\t\tGB (for example, 1GB or 1 GB), it's converted to an integer indicating the\n\t\t\tMiB when the task definition is registered.

\n

If you use the EC2 launch type, this field is optional.

\n

If you use the Fargate launch type, this field is required. You must use one of the\n\t\t\tfollowing values. The value that you choose determines the range of supported values for the\n\t\t\t\tcpu parameter.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The amount of memory (in MiB) that the task uses as expressed in a task definition. It\n\t\t\tcan be expressed as an integer using MiB (for example, 1024). If it's\n\t\t\texpressed as a string using GB (for example, 1GB or 1 GB),\n\t\t\tit's converted to an integer indicating the MiB when the task definition is\n\t\t\tregistered.

\n

If you use the EC2 launch type, this field is optional.

\n

If you use the Fargate launch type, this field is required. You must use\n\t\t\tone of the following values. The value that you choose determines the range of supported\n\t\t\tvalues for the cpu parameter.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "overrides": { @@ -12273,13 +12273,13 @@ "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version where your task runs on. A platform version is only specified for tasks that use\n\t\t\tthe Fargate launch type. If you didn't specify one, the LATEST platform\n\t\t\tversion is used. For more information, see Fargate Platform Versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version where your task runs on. A platform version is only specified for\n\t\t\ttasks that use the Fargate launch type. If you didn't specify one, the\n\t\t\t\tLATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" } }, "platformFamily": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The operating system that your tasks are running on. A platform family is specified only for tasks\n\t\t\tthat use the Fargate launch type.

\n

All tasks that run as part of this service must use the same platformFamily value as\n\t\t\tthe service (for example, LINUX.).

" + "smithy.api#documentation": "

The operating system that your tasks are running on. A platform family is specified\n\t\t\tonly for tasks that use the Fargate launch type.

\n

All tasks that run as part of this service must use the same\n\t\t\t\tplatformFamily value as the service (for example,\n\t\t\tLINUX.).

" } }, "pullStartedAt": { @@ -12297,7 +12297,7 @@ "startedAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp for the time when the task started. More specifically, it's for the time when the\n\t\t\ttask transitioned from the PENDING state to the RUNNING state.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task started. More specifically, it's for the\n\t\t\ttime when the task transitioned from the PENDING state to the\n\t\t\t\tRUNNING state.

" } }, "startedBy": { @@ -12309,13 +12309,13 @@ "stopCode": { "target": "com.amazonaws.ecs#TaskStopCode", "traits": { - "smithy.api#documentation": "

The stop code indicating why a task was stopped. The stoppedReason might contain\n\t\t\tadditional details.

\n

For more information about stop code, see Stopped tasks error\n\t\t\t\tcodes in the Amazon ECS Developer Guide.

" + "smithy.api#documentation": "

The stop code indicating why a task was stopped. The stoppedReason might\n\t\t\tcontain additional details.

\n

For more information about stop code, see Stopped tasks\n\t\t\t\terror codes in the Amazon ECS Developer Guide.

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

The Unix timestamp for the time when the task was stopped. More specifically, it's for the time when\n\t\t\tthe task transitioned from the RUNNING state to the STOPPED state.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task was stopped. More specifically, it's for\n\t\t\tthe time when the task transitioned from the RUNNING state to the\n\t\t\t\tSTOPPED state.

" } }, "stoppedReason": { @@ -12327,13 +12327,13 @@ "stoppingAt": { "target": "com.amazonaws.ecs#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp for the time when the task stops. More specifically, it's for the time when the\n\t\t\ttask transitions from the RUNNING state to STOPPING.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task stops. More specifically, it's for the\n\t\t\ttime when the task transitions from the RUNNING state to\n\t\t\t\tSTOPPING.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize the task. Each tag\n\t\t\tconsists of a key and an optional value. You define both the key and value.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task to help you categorize and organize the task.\n\t\t\tEach tag consists of a key and an optional value. You define both the key and\n\t\t\tvalue.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "taskArn": { @@ -12352,7 +12352,7 @@ "target": "com.amazonaws.ecs#Long", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version counter for the task. Every time a task experiences a change that starts a CloudWatch event,\n\t\t\tthe version counter is incremented. If you replicate your Amazon ECS task state with CloudWatch Events, you can\n\t\t\tcompare the version of a task reported by the Amazon ECS API actions with the version reported in CloudWatch\n\t\t\tEvents for the task (inside the detail object) to verify that the version in your event\n\t\t\tstream is current.

" + "smithy.api#documentation": "

The version counter for the task. Every time a task experiences a change that starts a\n\t\t\tCloudWatch event, the version counter is incremented. If you replicate your Amazon ECS task state\n\t\t\twith CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API\n\t\t\tactions with the version reported in CloudWatch Events for the task (inside the\n\t\t\t\tdetail object) to verify that the version in your event stream is\n\t\t\tcurrent.

" } }, "ephemeralStorage": { @@ -12384,19 +12384,19 @@ "containerDefinitions": { "target": "com.amazonaws.ecs#ContainerDefinitions", "traits": { - "smithy.api#documentation": "

A list of container definitions in JSON format that describe the different containers that make up\n\t\t\tyour task. For more information about container definition parameters and defaults, see Amazon ECS Task\n\t\t\t\tDefinitions in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

A list of container definitions in JSON format that describe the different containers\n\t\t\tthat make up your task. For more information about container definition parameters and\n\t\t\tdefaults, see Amazon ECS Task\n\t\t\t\tDefinitions in the Amazon Elastic Container Service Developer Guide.

" } }, "family": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of a family that this task definition is registered to. Up to 255 characters are allowed.\n\t\t\tLetters (both uppercase and lowercase letters), numbers, hyphens (-), and underscores (_) are\n\t\t\tallowed.

\n

A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that\n\t\t\tyou registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task\n\t\t\tdefinition that you add.

" + "smithy.api#documentation": "

The name of a family that this task definition is registered to. Up to 255 characters\n\t\t\tare allowed. Letters (both uppercase and lowercase letters), numbers, hyphens (-), and\n\t\t\tunderscores (_) are allowed.

\n

A family groups multiple versions of a task definition. Amazon ECS gives the first task\n\t\t\tdefinition that you registered to a family a revision number of 1. Amazon ECS gives\n\t\t\tsequential revision numbers to each task definition that you add.

" } }, "taskRoleArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the Identity and Access Management role that grants containers in the task permission\n\t\t\tto call Amazon Web Services APIs on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the Identity and Access Management role that grants containers in the\n\t\t\ttask permission to call Amazon Web Services APIs on your behalf. For informationabout the required\n\t\t\tIAM roles for Amazon ECS, see IAM\n\t\t\t\troles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" } }, "executionRoleArn": { @@ -12415,13 +12415,13 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The revision of the task in a particular family. The revision is a version number of a task\n\t\t\tdefinition in a family. When you register a task definition for the first time, the revision is\n\t\t\t\t1. Each time that you register a new revision of a task definition in the same family,\n\t\t\tthe revision value always increases by one. This is even if you deregistered previous revisions in this\n\t\t\tfamily.

" + "smithy.api#documentation": "

The revision of the task in a particular family. The revision is a version number of a\n\t\t\ttask definition in a family. When you register a task definition for the first time, the\n\t\t\trevision is 1. Each time that you register a new revision of a task\n\t\t\tdefinition in the same family, the revision value always increases by one. This is even\n\t\t\tif you deregistered previous revisions in this family.

" } }, "volumes": { "target": "com.amazonaws.ecs#VolumeList", "traits": { - "smithy.api#documentation": "

The list of data volume definitions for the task. For more information, see Using data\n\t\t\t\tvolumes in tasks in the Amazon Elastic Container Service Developer Guide.

\n \n

The host and sourcePath parameters aren't supported for tasks run on\n\t\t\t\tFargate.

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

The list of data volume definitions for the task. For more information, see Using data volumes in tasks in the Amazon Elastic Container Service Developer Guide.

\n \n

The host and sourcePath parameters aren't supported for\n\t\t\t\ttasks run on Fargate.

\n
" } }, "status": { @@ -12433,7 +12433,7 @@ "requiresAttributes": { "target": "com.amazonaws.ecs#RequiresAttributes", "traits": { - "smithy.api#documentation": "

The container instance attributes required by your task. When an Amazon EC2 instance is registered to your\n\t\t\tcluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply\n\t\t\tcustom attributes. These are specified as key-value pairs using the Amazon ECS console or the PutAttributes API. These attributes are used when determining task placement for tasks\n\t\t\thosted on Amazon EC2 instances. For more information, see Attributes\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

\n \n

This parameter isn't supported for tasks run on Fargate.

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

The container instance attributes required by your task. When an Amazon EC2 instance is\n\t\t\tregistered to your cluster, the Amazon ECS container agent assigns some standard attributes\n\t\t\tto the instance. You can apply custom attributes. These are specified as key-value pairs\n\t\t\tusing the Amazon ECS console or the PutAttributes\n\t\t\tAPI. These attributes are used when determining task placement for tasks hosted on Amazon EC2\n\t\t\tinstances. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

\n \n

This parameter isn't supported for tasks run on Fargate.

\n
" } }, "placementConstraints": { @@ -12445,31 +12445,31 @@ "compatibilities": { "target": "com.amazonaws.ecs#CompatibilityList", "traits": { - "smithy.api#documentation": "

Amazon ECS validates the task definition parameters with those supported by the launch type. For more\n\t\t\tinformation, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Amazon ECS validates the task definition parameters with those supported by the launch\n\t\t\ttype. For more information, see Amazon ECS launch types\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "runtimePlatform": { "target": "com.amazonaws.ecs#RuntimePlatform", "traits": { - "smithy.api#documentation": "

The operating system that your task definitions are running on. A platform family is specified only\n\t\t\tfor tasks using the Fargate launch type.

\n

When you specify a task in a service, this value must match the runtimePlatform value of\n\t\t\tthe service.

" + "smithy.api#documentation": "

The operating system that your task definitions are running on. A platform family is\n\t\t\tspecified only for tasks using the Fargate launch type.

\n

When you specify a task in a service, this value must match the\n\t\t\t\truntimePlatform value of the service.

" } }, "requiresCompatibilities": { "target": "com.amazonaws.ecs#CompatibilityList", "traits": { - "smithy.api#documentation": "

The task launch types the task definition was validated against. The valid values are\n\t\t\t\tEC2, FARGATE, and EXTERNAL. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The task launch types the task definition was validated against. The valid values are\n\t\t\t\tEC2, FARGATE, and EXTERNAL. For more\n\t\t\tinformation, see Amazon ECS launch types\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "cpu": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The number of cpu units used by the task. If you use the EC2 launch type, this field is\n\t\t\toptional. Any value can be used. If you use the Fargate launch type, this field is required. You must\n\t\t\tuse one of the following values. The value that you choose determines your range of valid values for\n\t\t\tthe memory parameter.

\n

If you use the EC2 launch type, this field is optional. Supported values are between\n\t\t\t\t128 CPU units (0.125 vCPUs) and 10240 CPU units\n\t\t\t\t(10 vCPUs).

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The number of cpu units used by the task. If you use the EC2 launch type,\n\t\t\tthis field is optional. Any value can be used. If you use the Fargate launch type, this\n\t\t\tfield is required. You must use one of the following values. The value that you choose\n\t\t\tdetermines your range of valid values for the memory parameter.

\n

If you use the EC2 launch type, this field is optional. Supported values\n\t\t\tare between 128 CPU units (0.125 vCPUs) and 10240\n\t\t\tCPU units (10 vCPUs).

\n

The CPU units cannot be less than 1 vCPU when you use Windows containers on\n\t\t\tFargate.

\n
    \n
  • \n

    256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

    \n
  • \n
  • \n

    512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

    \n
  • \n
  • \n

    1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

    \n
  • \n
  • \n

    2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

    \n
  • \n
  • \n

    8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "memory": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The amount (in MiB) of memory used by the task.

\n

If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a\n\t\t\tcontainer-level memory value. This field is optional and any value can be used. If a task-level memory\n\t\t\tvalue is specified, the container-level memory value is optional. For more information regarding\n\t\t\tcontainer-level memory and memory reservation, see ContainerDefinition.

\n

If your tasks runs on Fargate, this field is required. You must use one of the following values.\n\t\t\tThe value you choose determines your range of valid values for the cpu parameter.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

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

The amount (in MiB) of memory used by the task.

\n

If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory\n\t\t\tvalue or a container-level memory value. This field is optional and any value can be\n\t\t\tused. If a task-level memory value is specified, the container-level memory value is\n\t\t\toptional. For more information regarding container-level memory and memory reservation,\n\t\t\tsee ContainerDefinition.

\n

If your tasks runs on Fargate, this field is required. You must use one of the\n\t\t\tfollowing values. The value you choose determines your range of valid values for the\n\t\t\t\tcpu parameter.

\n
    \n
  • \n

    512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

    \n
  • \n
  • \n

    1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

    \n
  • \n
  • \n

    2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

    \n
  • \n
  • \n

    Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

    \n
  • \n
  • \n

    Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

    \n
  • \n
  • \n

    Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
  • \n

    Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    \n

    This option requires Linux platform 1.4.0 or\n later.

    \n
  • \n
" } }, "inferenceAccelerators": { @@ -12493,7 +12493,7 @@ "proxyConfiguration": { "target": "com.amazonaws.ecs#ProxyConfiguration", "traits": { - "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n

Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least\n\t\t\tversion 1.26.0-1 of the ecs-init package to use a proxy configuration. If your container\n\t\t\tinstances are launched from the Amazon ECS optimized AMI version 20190301 or later, they\n\t\t\tcontain the required versions of the container agent and ecs-init. For more information,\n\t\t\tsee Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tand at least version 1.26.0-1 of the ecs-init package to use a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS optimized AMI\n\t\t\tversion 20190301 or later, they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" } }, "registeredAt": { @@ -12522,7 +12522,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details of a task definition which describes the container and volume definitions of an Amazon Elastic Container Service\n\t\t\ttask. You can specify which Docker images to use, the required resources, and other configurations\n\t\t\trelated to launching the task definition through an Amazon ECS service or task.

" + "smithy.api#documentation": "

The details of a task definition which describes the container and volume definitions\n\t\t\tof an Amazon Elastic Container Service task. You can specify which Docker images to use, the required\n\t\t\tresources, and other configurations related to launching the task definition through an\n\t\t\tAmazon ECS service or task.

" } }, "com.amazonaws.ecs#TaskDefinitionFamilyStatus": { @@ -12577,18 +12577,18 @@ "type": { "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraintType", "traits": { - "smithy.api#documentation": "

The type of constraint. The MemberOf constraint restricts selection to be from a group\n\t\t\tof valid candidates.

" + "smithy.api#documentation": "

The type of constraint. The MemberOf constraint restricts selection to be\n\t\t\tfrom a group of valid candidates.

" } }, "expression": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. For more information, see Cluster\n\t\t\t\tquery language in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. For more information,\n\t\t\tsee Cluster query language in the Amazon Elastic Container Service Developer Guide.

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

The constraint on task placement in the task definition. For more information, see Task\n\t\t\t\tplacement constraints in the Amazon Elastic Container Service Developer Guide.

\n \n

Task placement constraints aren't supported for tasks run on Fargate.

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

The constraint on task placement in the task definition. For more information, see\n\t\t\t\tTask placement constraints in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

\n \n

Task placement constraints aren't supported for tasks run on Fargate.

\n
" } }, "com.amazonaws.ecs#TaskDefinitionPlacementConstraintType": { @@ -12638,13 +12638,13 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The total amount, in GiB, of the ephemeral storage to set for the task. The minimum supported value\n\t\t\tis 20 GiB and the maximum supported value is\u2028 200 GiB.

" + "smithy.api#documentation": "

The total amount, in GiB, of the ephemeral storage to set for the task. The minimum\n\t\t\tsupported value is 20 GiB and the maximum supported value is\u2028\n\t\t\t\t200 GiB.

" } }, "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for the task.

" + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for the\n\t\t\ttask.

" } } }, @@ -12704,73 +12704,73 @@ "encrypted": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on\n\t\t\tby default. This parameter maps 1:1 with the Encrypted parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference.

" + "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If no value is specified, encryption\n\t\t\tis turned on by default. This parameter maps 1:1 with the Encrypted\n\t\t\tparameter of the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

" } }, "kmsKeyId": { "target": "com.amazonaws.ecs#EBSKMSKeyId", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When encryption is turned\n\t\t\ton and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key for Amazon EBS volumes is used. This\n\t\t\tparameter maps 1:1 with the KmsKeyId parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n \n

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or\n\t\t\t\tARN that is invalid, the action can appear to complete, but eventually fails.

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

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When\n\t\t\tencryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key\n\t\t\tfor Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId\n\t\t\tparameter of the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

\n \n

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an\n\t\t\t\tID, alias, or ARN that is invalid, the action can appear to complete, but\n\t\t\t\teventually fails.

\n
" } }, "volumeType": { "target": "com.amazonaws.ecs#EBSVolumeType", "traits": { - "smithy.api#documentation": "

The volume type. This parameter maps 1:1 with the VolumeType parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types\n\t\t\tin the Amazon EC2 User Guide.

\n

The following are the supported volume types.

\n
    \n
  • \n

    General Purpose SSD: gp2|gp3\n

    \n
  • \n
  • \n

    Provisioned IOPS SSD: io1|io2\n

    \n
  • \n
  • \n

    Throughput Optimized HDD: st1\n

    \n
  • \n
  • \n

    Cold HDD: sc1\n

    \n
  • \n
  • \n

    Magnetic: standard\n

    \n \n

    The magnetic volume type is not supported on Fargate.

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

The volume type. This parameter maps 1:1 with the VolumeType parameter of\n\t\t\tthe CreateVolume API in the Amazon EC2 API Reference. For more\n\t\t\tinformation, see Amazon EBS volume types in\n\t\t\tthe Amazon EC2 User Guide.

\n

The following are the supported volume types.

\n
    \n
  • \n

    General Purpose SSD: gp2|gp3\n

    \n
  • \n
  • \n

    Provisioned IOPS SSD: io1|io2\n

    \n
  • \n
  • \n

    Throughput Optimized HDD: st1\n

    \n
  • \n
  • \n

    Cold HDD: sc1\n

    \n
  • \n
  • \n

    Magnetic: standard\n

    \n \n

    The magnetic volume type is not supported on Fargate.

    \n
    \n
  • \n
" } }, "sizeInGiB": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify\n\t\t\ta snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a\n\t\t\tvolume size greater than or equal to the snapshot size. This parameter maps 1:1 with the\n\t\t\t\tSize parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n

The following are the supported volume size values for each volume type.

\n
    \n
  • \n

    \n gp2 and gp3: 1-16,384

    \n
  • \n
  • \n

    \n io1 and io2: 4-16,384

    \n
  • \n
  • \n

    \n st1 and sc1: 125-16,384

    \n
  • \n
  • \n

    \n standard: 1-1,024

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

The size of the volume in GiB. You must specify either a volume size or a snapshot ID.\n\t\t\tIf you specify a snapshot ID, the snapshot size is used for the volume size by default.\n\t\t\tYou can optionally specify a volume size greater than or equal to the snapshot size.\n\t\t\tThis parameter maps 1:1 with the Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

\n

The following are the supported volume size values for each volume type.

\n
    \n
  • \n

    \n gp2 and gp3: 1-16,384

    \n
  • \n
  • \n

    \n io1 and io2: 4-16,384

    \n
  • \n
  • \n

    \n st1 and sc1: 125-16,384

    \n
  • \n
  • \n

    \n standard: 1-1,024

    \n
  • \n
" } }, "snapshotId": { "target": "com.amazonaws.ecs#EBSSnapshotId", "traits": { - "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot ID or a volume\n\t\t\tsize. This parameter maps 1:1 with the SnapshotId parameter of the CreateVolume\n\t\t\t\tAPI in the Amazon EC2 API Reference.

" + "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot\n\t\t\tID or a volume size. This parameter maps 1:1 with the SnapshotId parameter\n\t\t\tof the CreateVolume API in\n\t\t\tthe Amazon EC2 API Reference.

" } }, "iops": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and\n\t\t\t\tio2 volumes, this represents the number of IOPS that are provisioned for the volume.\n\t\t\tFor gp2 volumes, this represents the baseline performance of the volume and the rate at\n\t\t\twhich the volume accumulates I/O credits for bursting.

\n

The following are the supported values for each volume type.

\n
    \n
  • \n

    \n gp3: 3,000 - 16,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

This parameter is required for io1 and io2 volume types. The default for\n\t\t\t\tgp3 volumes is 3,000 IOPS. This parameter is not supported for\n\t\t\t\tst1, sc1, or standard volume types.

\n

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

" + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3,\n\t\t\tio1, and io2 volumes, this represents the number of IOPS that\n\t\t\tare provisioned for the volume. For gp2 volumes, this represents the\n\t\t\tbaseline performance of the volume and the rate at which the volume accumulates I/O\n\t\t\tcredits for bursting.

\n

The following are the supported values for each volume type.

\n
    \n
  • \n

    \n gp3: 3,000 - 16,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

This parameter is required for io1 and io2 volume types. The\n\t\t\tdefault for gp3 volumes is 3,000 IOPS. This parameter is not\n\t\t\tsupported for st1, sc1, or standard volume\n\t\t\ttypes.

\n

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

" } }, "throughput": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter\n\t\t\tmaps 1:1 with the Throughput parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

\n \n

This parameter is only supported for the gp3 volume type.

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

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s.\n\t\t\tThis parameter maps 1:1 with the Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

\n \n

This parameter is only supported for the gp3 volume type.

\n
" } }, "tagSpecifications": { "target": "com.amazonaws.ecs#EBSTagSpecifications", "traits": { - "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps\n\t\t\t1:1 with the TagSpecifications.N parameter of the CreateVolume API in the\n\t\t\t\tAmazon EC2 API Reference.

" + "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This\n\t\t\tparameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

" } }, "roleArn": { "target": "com.amazonaws.ecs#IAMRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role\n\t\t\tthat is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed\n\t\t\t\tAmazonECSInfrastructureRolePolicyForVolumes IAM policy with this role. For more\n\t\t\tinformation, see Amazon ECS infrastructure IAM\n\t\t\t\trole in the Amazon ECS Developer Guide.

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

The ARN of the IAM role to associate with this volume. This is the Amazon ECS\n\t\t\tinfrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend\n\t\t\tusing the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes IAM\n\t\t\tpolicy with this role. For more information, see Amazon ECS\n\t\t\t\tinfrastructure IAM role in the Amazon ECS Developer\n\t\t\tGuide.

", "smithy.api#required": {} } }, "terminationPolicy": { "target": "com.amazonaws.ecs#TaskManagedEBSVolumeTerminationPolicy", "traits": { - "smithy.api#documentation": "

The termination policy for the volume when the task exits. This provides a way to control whether\n\t\t\tAmazon ECS terminates the Amazon EBS volume when the task stops.

" + "smithy.api#documentation": "

The termination policy for the volume when the task exits. This provides a way to\n\t\t\tcontrol whether Amazon ECS terminates the Amazon EBS volume when the task stops.

" } }, "filesystemType": { "target": "com.amazonaws.ecs#TaskFilesystemType", "traits": { - "smithy.api#documentation": "

The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the\n\t\t\tsame filesystem type that the volume was using when the snapshot was created. If there is a filesystem\n\t\t\ttype mismatch, the task will fail to start.

\n

The available filesystem types are\u2028 ext3, ext4, and xfs. If no\n\t\t\tvalue is specified, the xfs filesystem type is used by default.

" + "smithy.api#documentation": "

The Linux filesystem type for the volume. For volumes created from a snapshot, you\n\t\t\tmust specify the same filesystem type that the volume was using when the snapshot was\n\t\t\tcreated. If there is a filesystem type mismatch, the task will fail to start.

\n

The available filesystem types are\u2028 ext3, ext4, and\n\t\t\t\txfs. If no value is specified, the xfs filesystem type is\n\t\t\tused by default.

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

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings\n\t\t\tare used to create each Amazon EBS volume, with one volume created for each task.

" + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf.\n\t\t\tThese settings are used to create each Amazon EBS volume, with one volume created for each\n\t\t\ttask.

" } }, "com.amazonaws.ecs#TaskManagedEBSVolumeTerminationPolicy": { @@ -12779,13 +12779,13 @@ "deleteOnTermination": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Indicates whether the volume should be deleted on when the task stops. If a value of\n\t\t\t\ttrue is specified, \u2028Amazon ECS deletes the Amazon EBS volume on your behalf when the task goes\n\t\t\tinto the STOPPED state. If no value is specified, the \u2028default value is true\n\t\t\tis used. When set to false, Amazon ECS leaves the volume in your \u2028account.

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

Indicates whether the volume should be deleted on when the task stops. If a value of\n\t\t\t\ttrue is specified, \u2028Amazon ECS deletes the Amazon EBS volume on your behalf when\n\t\t\tthe task goes into the STOPPED state. If no value is specified, the\n\t\t\t\u2028default value is true is used. When set to false, Amazon ECS\n\t\t\tleaves the volume in your \u2028account.

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

The termination policy for the Amazon EBS volume when the task exits. For more information, see Amazon ECS\n\t\t\t\tvolume termination policy.

" + "smithy.api#documentation": "

The termination policy for the Amazon EBS volume when the task exits. For more information,\n\t\t\tsee Amazon ECS volume termination policy.

" } }, "com.amazonaws.ecs#TaskOverride": { @@ -12812,7 +12812,7 @@ "executionRoleArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, see Amazon ECS task\n\t\t\t\texecution IAM role in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role override for the task. For more information,\n\t\t\tsee Amazon ECS task\n\t\t\t\texecution IAM role in the Amazon Elastic Container Service Developer Guide.

" } }, "memory": { @@ -12824,13 +12824,13 @@ "taskRoleArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in this task are\n\t\t\tgranted the permissions that are specified in this role. For more information, see IAM Role for\n\t\t\t\tTasks in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in\n\t\t\tthis task are granted the permissions that are specified in this role. For more\n\t\t\tinformation, see IAM Role for Tasks\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

" } }, "ephemeralStorage": { "target": "com.amazonaws.ecs#EphemeralStorage", "traits": { - "smithy.api#documentation": "

The ephemeral storage setting override for the task.

\n \n

This parameter is only supported for tasks hosted on Fargate that use the following\n\t\t\t\tplatform versions:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

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

The ephemeral storage setting override for the task.

\n \n

This parameter is only supported for tasks hosted on Fargate that\n\t\t\t\tuse the following platform versions:

\n
    \n
  • \n

    Linux platform version 1.4.0 or later.

    \n
  • \n
  • \n

    Windows platform version 1.0.0 or later.

    \n
  • \n
\n
" } } }, @@ -12862,25 +12862,25 @@ "clusterArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists\n\t\t\tin.

" } }, "startedBy": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The tag specified when a task set is started. If an CodeDeploy deployment created the task set, the\n\t\t\t\tstartedBy parameter is CODE_DEPLOY. If an external deployment created the\n\t\t\ttask set, the startedBy field isn't used.

" + "smithy.api#documentation": "

The tag specified when a task set is started. If an CodeDeploy deployment created the task\n\t\t\tset, the startedBy parameter is CODE_DEPLOY. If an external\n\t\t\tdeployment created the task set, the startedBy field isn't used.

" } }, "externalId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The external ID associated with the task set.

\n

If an CodeDeploy deployment created a task set, the externalId parameter contains the CodeDeploy\n\t\t\tdeployment ID.

\n

If a task set is created for an external deployment and is associated with a service discovery\n\t\t\tregistry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID\n\t\t\tCloud Map attribute.

" + "smithy.api#documentation": "

The external ID associated with the task set.

\n

If an CodeDeploy deployment created a task set, the externalId parameter\n\t\t\tcontains the CodeDeploy deployment ID.

\n

If a task set is created for an external deployment and is associated with a service\n\t\t\tdiscovery registry, the externalId parameter contains the\n\t\t\t\tECS_TASK_SET_EXTERNAL_ID Cloud Map attribute.

" } }, "status": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The status of the task set. The following describes each state.

\n
\n
PRIMARY
\n
\n

The task set is serving production traffic.

\n
\n
ACTIVE
\n
\n

The task set isn't serving production traffic.

\n
\n
DRAINING
\n
\n

The tasks in the task set are being stopped, and their corresponding targets are being\n\t\t\t\t\t\tderegistered from their target group.

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

The status of the task set. The following describes each state.

\n
\n
PRIMARY
\n
\n

The task set is serving production traffic.

\n
\n
ACTIVE
\n
\n

The task set isn't serving production traffic.

\n
\n
DRAINING
\n
\n

The tasks in the task set are being stopped, and their corresponding\n\t\t\t\t\t\ttargets are being deregistered from their target group.

\n
\n
" } }, "taskDefinition": { @@ -12893,21 +12893,21 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The computed desired count for the task set. This is calculated by multiplying the service's\n\t\t\t\tdesiredCount by the task set's scale percentage. The result is always\n\t\t\trounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.

" + "smithy.api#documentation": "

The computed desired count for the task set. This is calculated by multiplying the\n\t\t\tservice's desiredCount by the task set's scale percentage. The\n\t\t\tresult is always rounded up. For example, if the computed desired count is 1.2, it\n\t\t\trounds up to 2 tasks.

" } }, "pendingCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks in the task set that are in the PENDING status during a deployment.\n\t\t\tA task in the PENDING state is preparing to enter the RUNNING state. A task\n\t\t\tset enters the PENDING status when it launches for the first time or when it's restarted\n\t\t\tafter being in the STOPPED state.

" + "smithy.api#documentation": "

The number of tasks in the task set that are in the PENDING status during\n\t\t\ta deployment. A task in the PENDING state is preparing to enter the\n\t\t\t\tRUNNING state. A task set enters the PENDING status when\n\t\t\tit launches for the first time or when it's restarted after being in the\n\t\t\t\tSTOPPED state.

" } }, "runningCount": { "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of tasks in the task set that are in the RUNNING status during a deployment.\n\t\t\tA task in the RUNNING state is running and ready for use.

" + "smithy.api#documentation": "

The number of tasks in the task set that are in the RUNNING status during\n\t\t\ta deployment. A task in the RUNNING state is running and ready for\n\t\t\tuse.

" } }, "createdAt": { @@ -12925,7 +12925,7 @@ "launchType": { "target": "com.amazonaws.ecs#LaunchType", "traits": { - "smithy.api#documentation": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS launch\n\t\t\t\ttypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS\n\t\t\t\tlaunch types in the Amazon Elastic Container Service Developer Guide.

" } }, "capacityProviderStrategy": { @@ -12937,13 +12937,13 @@ "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Fargate platform version where the tasks in the task set are running. A platform version is\n\t\t\tonly specified for tasks run on Fargate. For more information, see Fargate platform versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The Fargate platform version where the tasks in the task set are running. A platform\n\t\t\tversion is only specified for tasks run on Fargate. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

" } }, "platformFamily": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The operating system that your tasks in the set are running on. A platform family is specified only\n\t\t\tfor tasks that use the Fargate launch type.

\n

All tasks in the set must have the same value.

" + "smithy.api#documentation": "

The operating system that your tasks in the set are running on. A platform family is\n\t\t\tspecified only for tasks that use the Fargate launch type.

\n

All tasks in the set must have the same value.

" } }, "networkConfiguration": { @@ -12961,31 +12961,31 @@ "serviceRegistries": { "target": "com.amazonaws.ecs#ServiceRegistries", "traits": { - "smithy.api#documentation": "

The details for the service discovery registries to assign to this task set. For more information,\n\t\t\tsee Service\n\t\t\t\tdiscovery.

" + "smithy.api#documentation": "

The details for the service discovery registries to assign to this task set. For more\n\t\t\tinformation, see Service\n\t\t\t\tdiscovery.

" } }, "scale": { "target": "com.amazonaws.ecs#Scale", "traits": { - "smithy.api#documentation": "

A floating-point percentage of your desired number of tasks to place and keep running in the task\n\t\t\tset.

" + "smithy.api#documentation": "

A floating-point percentage of your desired number of tasks to place and keep running\n\t\t\tin the task set.

" } }, "stabilityStatus": { "target": "com.amazonaws.ecs#StabilityStatus", "traits": { - "smithy.api#documentation": "

The stability status. This indicates whether the task set has reached a steady state. If the\n\t\t\tfollowing conditions are met, the task set are in STEADY_STATE:

\n
    \n
  • \n

    The task runningCount is equal to the computedDesiredCount.

    \n
  • \n
  • \n

    The pendingCount is 0.

    \n
  • \n
  • \n

    There are no tasks that are running on container instances in the DRAINING\n\t\t\t\t\tstatus.

    \n
  • \n
  • \n

    All tasks are reporting a healthy status from the load balancers, service discovery, and\n\t\t\t\t\tcontainer health checks.

    \n
  • \n
\n

If any of those conditions aren't met, the stability status returns STABILIZING.

" + "smithy.api#documentation": "

The stability status. This indicates whether the task set has reached a steady state.\n\t\t\tIf the following conditions are met, the task set are in\n\t\t\tSTEADY_STATE:

\n
    \n
  • \n

    The task runningCount is equal to the\n\t\t\t\t\t\tcomputedDesiredCount.

    \n
  • \n
  • \n

    The pendingCount is 0.

    \n
  • \n
  • \n

    There are no tasks that are running on container instances in the\n\t\t\t\t\t\tDRAINING status.

    \n
  • \n
  • \n

    All tasks are reporting a healthy status from the load balancers, service\n\t\t\t\t\tdiscovery, and container health checks.

    \n
  • \n
\n

If any of those conditions aren't met, the stability status returns\n\t\t\t\tSTABILIZING.

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

The Unix timestamp for the time when the task set stability status was retrieved.

" + "smithy.api#documentation": "

The Unix timestamp for the time when the task set stability status was\n\t\t\tretrieved.

" } }, "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

The metadata that you apply to the task set to help you categorize and organize them. Each tag\n\t\t\tconsists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

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

The metadata that you apply to the task set to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define both.

\n

The following basic restrictions apply to tags:

\n
    \n
  • \n

    Maximum number of tags per resource - 50

    \n
  • \n
  • \n

    For each resource, each tag key must be unique, and each tag key can have only\n one value.

    \n
  • \n
  • \n

    Maximum key length - 128 Unicode characters in UTF-8

    \n
  • \n
  • \n

    Maximum value length - 256 Unicode characters in UTF-8

    \n
  • \n
  • \n

    If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

    \n
  • \n
  • \n

    Tag keys and values are case-sensitive.

    \n
  • \n
  • \n

    Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

    \n
  • \n
" } }, "fargateEphemeralStorage": { @@ -12996,7 +12996,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. An\n\t\t\tAmazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and\n\t\t\twhether the task set serves production traffic.

" + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL\n\t\t\tdeployment. An Amazon ECS task set includes details such as the desired number of tasks, how\n\t\t\tmany tasks are running, and whether the task set serves production traffic.

" } }, "com.amazonaws.ecs#TaskSetField": { @@ -13027,7 +13027,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified task set wasn't found. You can view your available task sets with DescribeTaskSets. Task sets are specific to each cluster, service and Region.

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

The specified task set wasn't found. You can view your available task sets with DescribeTaskSets. Task sets are specific to each cluster, service and\n\t\t\tRegion.

", "smithy.api#error": "client" } }, @@ -13084,19 +13084,19 @@ "name": { "target": "com.amazonaws.ecs#ECSVolumeName", "traits": { - "smithy.api#documentation": "

The name of the volume. This value must match the volume name from the Volume object in\n\t\t\tthe task definition.

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

The name of the volume. This value must match the volume name from the\n\t\t\t\tVolume object in the task definition.

", "smithy.api#required": {} } }, "managedEBSVolume": { "target": "com.amazonaws.ecs#TaskManagedEBSVolumeConfiguration", "traits": { - "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings\n\t\t\tare used to create each Amazon EBS volume, with one volume created for each task. The Amazon EBS volumes are\n\t\t\tvisible in your account in the Amazon EC2 console once they are created.

" + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf.\n\t\t\tThese settings are used to create each Amazon EBS volume, with one volume created for each\n\t\t\ttask. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are\n\t\t\tcreated.

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

Configuration settings for the task volume that was configuredAtLaunch that weren't set\n\t\t\tduring RegisterTaskDef.

" + "smithy.api#documentation": "

Configuration settings for the task volume that was configuredAtLaunch\n\t\t\tthat weren't set during RegisterTaskDef.

" } }, "com.amazonaws.ecs#TaskVolumeConfigurations": { @@ -13117,18 +13117,18 @@ "idleTimeoutSeconds": { "target": "com.amazonaws.ecs#Duration", "traits": { - "smithy.api#documentation": "

The amount of time in seconds a connection will stay active while idle. A value of 0 can\n\t\t\tbe set to disable idleTimeout.

\n

The idleTimeout default for HTTP/HTTP2/GRPC is 5\n\t\t\tminutes.

\n

The idleTimeout default for TCP is 1 hour.

" + "smithy.api#documentation": "

The amount of time in seconds a connection will stay active while idle. A value of\n\t\t\t\t0 can be set to disable idleTimeout.

\n

The idleTimeout default for\n\t\t\t\tHTTP/HTTP2/GRPC is 5 minutes.

\n

The idleTimeout default for TCP is 1 hour.

" } }, "perRequestTimeoutSeconds": { "target": "com.amazonaws.ecs#Duration", "traits": { - "smithy.api#documentation": "

The amount of time waiting for the upstream to respond with a complete response per request. A value\n\t\t\tof 0 can be set to disable perRequestTimeout. perRequestTimeout\n\t\t\tcan only be set if Service Connect appProtocol isn't TCP. Only\n\t\t\t\tidleTimeout is allowed for TCP\n appProtocol.

" + "smithy.api#documentation": "

The amount of time waiting for the upstream to respond with a complete response per\n\t\t\trequest. A value of 0 can be set to disable perRequestTimeout.\n\t\t\t\tperRequestTimeout can only be set if Service Connect\n\t\t\t\tappProtocol isn't TCP. Only idleTimeout is\n\t\t\tallowed for TCP\n appProtocol.

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

An object that represents the timeout configurations for Service Connect.

\n \n

If idleTimeout is set to a time that is less than perRequestTimeout,\n\t\t\t\tthe connection will close when the idleTimeout is reached and not the\n\t\t\t\t\tperRequestTimeout.

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

An object that represents the timeout configurations for Service Connect.

\n \n

If idleTimeout is set to a time that is less than\n\t\t\t\t\tperRequestTimeout, the connection will close when the\n\t\t\t\t\tidleTimeout is reached and not the\n\t\t\t\tperRequestTimeout.

\n
" } }, "com.amazonaws.ecs#Timestamp": { @@ -13155,7 +13155,7 @@ "mountOptions": { "target": "com.amazonaws.ecs#StringList", "traits": { - "smithy.api#documentation": "

The list of tmpfs volume mount options.

\n

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" |\n\t\t\t\t\"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" |\n\t\t\t\t\"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" |\n\t\t\t\t\"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\"\n\t\t\t\t| \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"\n

" + "smithy.api#documentation": "

The list of tmpfs volume mount options.

\n

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" |\n\t\t\t\t\"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" |\n\t\t\t\t\"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" |\n\t\t\t\t\"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" |\n\t\t\t\t\"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\"\n\t\t\t\t| \"nr_inodes\" | \"nr_blocks\" | \"mpol\"\n

" } } }, @@ -13200,7 +13200,7 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The soft limit for the ulimit type. The value can be specified in bytes, seconds, or as\n\t\t\ta count, depending on the type of the ulimit.

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

The soft limit for the ulimit type. The value can be specified in bytes,\n\t\t\tseconds, or as a count, depending on the type of the\n\t\t\tulimit.

", "smithy.api#required": {} } }, @@ -13208,13 +13208,13 @@ "target": "com.amazonaws.ecs#Integer", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The hard limit for the ulimit type. The value can be specified in bytes, seconds, or as\n\t\t\ta count, depending on the type of the ulimit.

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

The hard limit for the ulimit type. The value can be specified in bytes,\n\t\t\tseconds, or as a count, depending on the type of the\n\t\t\tulimit.

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

The ulimit settings to pass to the container.

\n

Amazon ECS tasks hosted on Fargate use the default\n\t\t\t\t\t\t\tresource limit values set by the operating system with the exception of\n\t\t\t\t\t\t\tthe nofile resource limit parameter which Fargate\n\t\t\t\t\t\t\toverrides. The nofile resource limit sets a restriction on\n\t\t\t\t\t\t\tthe number of open files that a container can use. The default\n\t\t\t\t\t\t\t\tnofile soft limit is 65535 and the default hard limit\n\t\t\t\t\t\t\tis 65535.

\n

You can specify the ulimit settings for a container in a task definition.

" + "smithy.api#documentation": "

The ulimit settings to pass to the container.

\n

Amazon ECS tasks hosted on Fargate use the default\n\t\t\t\t\t\t\tresource limit values set by the operating system with the exception of\n\t\t\t\t\t\t\tthe nofile resource limit parameter which Fargate\n\t\t\t\t\t\t\toverrides. The nofile resource limit sets a restriction on\n\t\t\t\t\t\t\tthe number of open files that a container can use. The default\n\t\t\t\t\t\t\t\tnofile soft limit is 65535 and the default hard limit\n\t\t\t\t\t\t\tis 65535.

\n

You can specify the ulimit settings for a container in a task\n\t\t\tdefinition.

" } }, "com.amazonaws.ecs#UlimitList": { @@ -13381,7 +13381,7 @@ "resourceArn": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resources are Amazon ECS\n\t\t\tcapacity providers, tasks, services, task definitions, clusters, and container instances.

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

The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resources\n\t\t\tare Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container\n\t\t\tinstances.

", "smithy.api#required": {} } }, @@ -13578,7 +13578,7 @@ "settings": { "target": "com.amazonaws.ecs#ClusterSettings", "traits": { - "smithy.api#documentation": "

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch Container\n\t\t\tInsights for a cluster. If this value is specified, it overrides the containerInsights\n\t\t\tvalue set with PutAccountSetting or PutAccountSettingDefault.

\n \n

Currently, if you delete an existing cluster that does not have Container Insights turned on, and\n\t\t\t\tthen create a new cluster with the same name with Container Insights tuned on, Container Insights\n\t\t\t\twill not actually be turned on. If you want to preserve the same name for your existing cluster and\n\t\t\t\tturn on Container Insights, you must wait 7 days before you can re-create it.

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

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or PutAccountSettingDefault.

\n \n

Currently, if you delete an existing cluster that does not have Container Insights\n\t\t\t\tturned on, and then create a new cluster with the same name with Container Insights\n\t\t\t\ttuned on, Container Insights will not actually be turned on. If you want to preserve\n\t\t\t\tthe same name for your existing cluster and turn on Container Insights, you must\n\t\t\t\twait 7 days before you can re-create it.

\n
", "smithy.api#required": {} } } @@ -13633,7 +13633,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container\n\t\t\tagent doesn't interrupt running tasks or services on the container instance. The process for updating\n\t\t\tthe agent differs depending on whether your container instance was launched with the Amazon ECS-optimized\n\t\t\tAMI or another operating system.

\n \n

The UpdateContainerAgent API isn't supported for container instances using the\n\t\t\t\tAmazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the\n\t\t\t\t\tecs-init package. This updates the agent. For more information, see Updating\n\t\t\t\t\tthe Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

\n
\n \n

Agent updates with the UpdateContainerAgent API operation do not apply to Windows\n\t\t\t\tcontainer instances. We recommend that you launch new container instances to update the agent\n\t\t\t\tversion in your Windows clusters.

\n
\n

The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon Linux AMI with\n\t\t\tthe ecs-init service installed and running. For help updating the Amazon ECS container agent on\n\t\t\tother operating systems, see Manually updating\n\t\t\t\tthe Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Updates the Amazon ECS container agent on a specified container instance. Updating the\n\t\t\tAmazon ECS container agent doesn't interrupt running tasks or services on the container\n\t\t\tinstance. The process for updating the agent differs depending on whether your container\n\t\t\tinstance was launched with the Amazon ECS-optimized AMI or another operating system.

\n \n

The UpdateContainerAgent API isn't supported for container instances\n\t\t\t\tusing the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent,\n\t\t\t\tyou can update the ecs-init package. This updates the agent. For more\n\t\t\t\tinformation, see Updating the\n\t\t\t\t\tAmazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

\n
\n \n

Agent updates with the UpdateContainerAgent API operation do not\n\t\t\t\tapply to Windows container instances. We recommend that you launch new container\n\t\t\t\tinstances to update the agent version in your Windows clusters.

\n
\n

The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon\n\t\t\tLinux AMI with the ecs-init service installed and running. For help\n\t\t\tupdating the Amazon ECS container agent on other operating systems, see Manually updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#UpdateContainerAgentRequest": { @@ -13642,13 +13642,13 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is\n\t\t\trunning on. If you do not specify a cluster, the default cluster is assumed.

" } }, "containerInstance": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The container instance ID or full ARN entries for the container instance where you would like to\n\t\t\tupdate the Amazon ECS container agent.

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

The container instance ID or full ARN entries for the container instance where you\n\t\t\twould like to update the Amazon ECS container agent.

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

Modifies the status of an Amazon ECS container instance.

\n

Once a container instance has reached an ACTIVE state, you can change the status of a\n\t\t\tcontainer instance to DRAINING to manually remove an instance from a cluster, for example\n\t\t\tto perform system updates, update the Docker daemon, or scale down the cluster size.

\n \n

A container instance can't be changed to DRAINING until it has reached an\n\t\t\t\t\tACTIVE status. If the instance is in any other status, an error will be\n\t\t\t\treceived.

\n
\n

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being\n\t\t\tscheduled for placement on the container instance and replacement service tasks are started on other\n\t\t\tcontainer instances in the cluster if the resources are available. Service tasks on the container\n\t\t\tinstance that are in the PENDING state are stopped immediately.

\n

Service tasks on the container instance that are in the RUNNING state are stopped and\n\t\t\treplaced according to the service's deployment configuration parameters,\n\t\t\t\tminimumHealthyPercent and maximumPercent. You can change the deployment\n\t\t\tconfiguration of your service using UpdateService.

\n
    \n
  • \n

    If minimumHealthyPercent is below 100%, the scheduler can ignore\n\t\t\t\t\t\tdesiredCount temporarily during task replacement. For example,\n\t\t\t\t\t\tdesiredCount is four tasks, a minimum of 50% allows the scheduler to stop two\n\t\t\t\t\texisting tasks before starting two new tasks. If the minimum is 100%, the service scheduler\n\t\t\t\t\tcan't remove existing tasks until the replacement tasks are considered healthy. Tasks for\n\t\t\t\t\tservices that do not use a load balancer are considered healthy if they're in the\n\t\t\t\t\t\tRUNNING state. Tasks for services that use a load balancer are considered\n\t\t\t\t\thealthy if they're in the RUNNING state and are reported as healthy by the load\n\t\t\t\t\tbalancer.

    \n
  • \n
  • \n

    The maximumPercent parameter represents an upper limit on the number of running\n\t\t\t\t\ttasks during task replacement. You can use this to define the replacement batch size. For\n\t\t\t\t\texample, if desiredCount is four tasks, a maximum of 200% starts four new tasks\n\t\t\t\t\tbefore stopping the four tasks to be drained, provided that the cluster resources required to\n\t\t\t\t\tdo this are available. If the maximum is 100%, then replacement tasks can't start until the\n\t\t\t\t\tdraining tasks have stopped.

    \n
  • \n
\n

Any PENDING or RUNNING tasks that do not belong to a service aren't\n\t\t\taffected. You must wait for them to finish or stop them manually.

\n

A container instance has completed draining when it has no more RUNNING tasks. You can\n\t\t\tverify this using ListTasks.

\n

When a container instance has been drained, you can set a container instance to ACTIVE\n\t\t\tstatus and once it has reached that status the Amazon ECS scheduler can begin scheduling tasks on the\n\t\t\tinstance again.

" + "smithy.api#documentation": "

Modifies the status of an Amazon ECS container instance.

\n

Once a container instance has reached an ACTIVE state, you can change the\n\t\t\tstatus of a container instance to DRAINING to manually remove an instance\n\t\t\tfrom a cluster, for example to perform system updates, update the Docker daemon, or\n\t\t\tscale down the cluster size.

\n \n

A container instance can't be changed to DRAINING until it has\n\t\t\t\treached an ACTIVE status. If the instance is in any other status, an\n\t\t\t\terror will be received.

\n
\n

When you set a container instance to DRAINING, Amazon ECS prevents new tasks\n\t\t\tfrom being scheduled for placement on the container instance and replacement service\n\t\t\ttasks are started on other container instances in the cluster if the resources are\n\t\t\tavailable. Service tasks on the container instance that are in the PENDING\n\t\t\tstate are stopped immediately.

\n

Service tasks on the container instance that are in the RUNNING state are\n\t\t\tstopped and replaced according to the service's deployment configuration parameters,\n\t\t\t\tminimumHealthyPercent and maximumPercent. You can change\n\t\t\tthe deployment configuration of your service using UpdateService.

\n
    \n
  • \n

    If minimumHealthyPercent is below 100%, the scheduler can ignore\n\t\t\t\t\t\tdesiredCount temporarily during task replacement. For example,\n\t\t\t\t\t\tdesiredCount is four tasks, a minimum of 50% allows the\n\t\t\t\t\tscheduler to stop two existing tasks before starting two new tasks. If the\n\t\t\t\t\tminimum is 100%, the service scheduler can't remove existing tasks until the\n\t\t\t\t\treplacement tasks are considered healthy. Tasks for services that do not use a\n\t\t\t\t\tload balancer are considered healthy if they're in the RUNNING\n\t\t\t\t\tstate. Tasks for services that use a load balancer are considered healthy if\n\t\t\t\t\tthey're in the RUNNING state and are reported as healthy by the\n\t\t\t\t\tload balancer.

    \n
  • \n
  • \n

    The maximumPercent parameter represents an upper limit on the\n\t\t\t\t\tnumber of running tasks during task replacement. You can use this to define the\n\t\t\t\t\treplacement batch size. For example, if desiredCount is four tasks,\n\t\t\t\t\ta maximum of 200% starts four new tasks before stopping the four tasks to be\n\t\t\t\t\tdrained, provided that the cluster resources required to do this are available.\n\t\t\t\t\tIf the maximum is 100%, then replacement tasks can't start until the draining\n\t\t\t\t\ttasks have stopped.

    \n
  • \n
\n

Any PENDING or RUNNING tasks that do not belong to a service\n\t\t\taren't affected. You must wait for them to finish or stop them manually.

\n

A container instance has completed draining when it has no more RUNNING\n\t\t\ttasks. You can verify this using ListTasks.

\n

When a container instance has been drained, you can set a container instance to\n\t\t\t\tACTIVE status and once it has reached that status the Amazon ECS scheduler\n\t\t\tcan begin scheduling tasks on the instance again.

" } }, "com.amazonaws.ecs#UpdateContainerInstancesStateRequest": { @@ -13703,7 +13703,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update.\n\t\t\tIf you do not specify a cluster, the default cluster is assumed.

" + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to\n\t\t\tupdate. If you do not specify a cluster, the default cluster is assumed.

" } }, "containerInstances": { @@ -13716,7 +13716,7 @@ "status": { "target": "com.amazonaws.ecs#ContainerInstanceStatus", "traits": { - "smithy.api#documentation": "

The container instance state to update the container instance with. The only valid values for this\n\t\t\taction are ACTIVE and DRAINING. A container instance can only be updated to\n\t\t\t\tDRAINING status once it has reached an ACTIVE state. If a container\n\t\t\tinstance is in REGISTERING, DEREGISTERING, or\n\t\t\t\tREGISTRATION_FAILED state you can describe the container instance but can't update the\n\t\t\tcontainer instance state.

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

The container instance state to update the container instance with. The only valid\n\t\t\tvalues for this action are ACTIVE and DRAINING. A container\n\t\t\tinstance can only be updated to DRAINING status once it has reached an\n\t\t\t\tACTIVE state. If a container instance is in REGISTERING,\n\t\t\t\tDEREGISTERING, or REGISTRATION_FAILED state you can\n\t\t\tdescribe the container instance but can't update the container instance state.

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

There's already a current Amazon ECS container agent update in progress on the container instance that's\n\t\t\tspecified. If the container agent becomes disconnected while it's in a transitional stage, such as\n\t\t\t\tPENDING or STAGING, the update process can get stuck in that state.\n\t\t\tHowever, when the agent reconnects, it resumes where it stopped previously.

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

There's already a current Amazon ECS container agent update in progress on the container\n\t\t\tinstance that's specified. If the container agent becomes disconnected while it's in a\n\t\t\ttransitional stage, such as PENDING or STAGING, the update\n\t\t\tprocess can get stuck in that state. However, when the agent reconnects, it resumes\n\t\t\twhere it stopped previously.

", "smithy.api#error": "client" } }, @@ -13804,7 +13804,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies the parameters of a service.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n

For services using the rolling update (ECS) you can update the desired count, deployment\n\t\t\tconfiguration, network configuration, load balancers, service registries, enable ECS managed tags\n\t\t\toption, propagate tags option, task placement constraints and strategies, and task definition. When you\n\t\t\tupdate any of these parameters, Amazon ECS starts new tasks with the new configuration.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a\n\t\t\ttask, or when creating or updating a service. For more infomation, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide. You can update your volume configurations and trigger a new\n\t\t\tdeployment. volumeConfigurations is only supported for REPLICA service and not DAEMON\n\t\t\tservice. If you leave volumeConfigurations\n null, it doesn't trigger a new deployment. For more infomation on volumes, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide.

\n

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired\n\t\t\tcount, deployment configuration, health check grace period, task placement constraints and strategies,\n\t\t\tenable ECS managed tags option, and propagate tags can be updated using this API. If the network\n\t\t\tconfiguration, platform version, task definition, or load balancer need to be updated, create a new\n\t\t\tCodeDeploy deployment. For more information, see CreateDeployment in the\n\t\t\tCodeDeploy API Reference.

\n

For services using an external deployment controller, you can update only the desired count, task\n\t\t\tplacement constraints and strategies, health check grace period, enable ECS managed tags option, and\n\t\t\tpropagate tags option, using this API. If the launch type, load balancer, network configuration,\n\t\t\tplatform version, or task definition need to be updated, create a new task set For more information,\n\t\t\tsee CreateTaskSet.

\n

You can add to or subtract from the number of instantiations of a task definition in a service by\n\t\t\tspecifying the cluster that the service is running in and a new desiredCount\n\t\t\tparameter.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a\n\t\t\ttask, or when creating or updating a service. For more infomation, see Amazon EBS\n\t\t\t\tvolumes in the Amazon Elastic Container Service Developer Guide.

\n

If you have updated the container image of your application, you can create a new task definition\n\t\t\twith that image and deploy it to your service. The service scheduler uses the minimum healthy percent\n\t\t\tand maximum percent parameters (in the service's deployment configuration) to determine the deployment\n\t\t\tstrategy.

\n \n

If your updated Docker image uses the same tag as what is in the existing task definition for\n\t\t\t\tyour service (for example, my_image:latest), you don't need to create a new revision\n\t\t\t\tof your task definition. You can update the service using the forceNewDeployment\n\t\t\t\toption. The new tasks launched by the deployment pull the current image/tag combination from your\n\t\t\t\trepository when they start.

\n
\n

You can also update the deployment configuration of a service. When a deployment is triggered by\n\t\t\tupdating the task definition of a service, the service scheduler uses the deployment configuration\n\t\t\tparameters, minimumHealthyPercent and maximumPercent, to determine the\n\t\t\tdeployment strategy.

\n
    \n
  • \n

    If minimumHealthyPercent is below 100%, the scheduler can ignore\n\t\t\t\t\t\tdesiredCount temporarily during a deployment. For example, if\n\t\t\t\t\t\tdesiredCount is four tasks, a minimum of 50% allows the scheduler to stop two\n\t\t\t\t\texisting tasks before starting two new tasks. Tasks for services that don't use a load balancer\n\t\t\t\t\tare considered healthy if they're in the RUNNING state. Tasks for services that\n\t\t\t\t\tuse a load balancer are considered healthy if they're in the RUNNING state and are\n\t\t\t\t\treported as healthy by the load balancer.

    \n
  • \n
  • \n

    The maximumPercent parameter represents an upper limit on the number of running\n\t\t\t\t\ttasks during a deployment. You can use it to define the deployment batch size. For example, if\n\t\t\t\t\t\tdesiredCount is four tasks, a maximum of 200% starts four new tasks before\n\t\t\t\t\tstopping the four older tasks (provided that the cluster resources required to do this are\n\t\t\t\t\tavailable).

    \n
  • \n
\n

When UpdateService stops a task during a deployment, the equivalent of docker stop\n\t\t\tis issued to the containers running in the task. This results in a SIGTERM and a 30-second\n\t\t\ttimeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no\n\t\t\t\tSIGKILL is sent.

\n

When the service scheduler launches new tasks, it determines task placement in your cluster with the\n\t\t\tfollowing logic.

\n
    \n
  • \n

    Determine which of the container instances in your cluster can support your service's task\n\t\t\t\t\tdefinition. For example, they have the required CPU, memory, ports, and container instance\n\t\t\t\t\tattributes.

    \n
  • \n
  • \n

    By default, the service scheduler attempts to balance tasks across Availability Zones in this\n\t\t\t\t\tmanner even though you can choose a different placement strategy.

    \n
      \n
    • \n

      Sort the valid container instances by the fewest number of running tasks for this\n\t\t\t\t\t\t\tservice in the same Availability Zone as the instance. For example, if zone A has one\n\t\t\t\t\t\t\trunning service task and zones B and C each have zero, valid container instances in\n\t\t\t\t\t\t\teither zone B or C are considered optimal for placement.

      \n
    • \n
    • \n

      Place the new service task on a valid container instance in an optimal Availability\n\t\t\t\t\t\t\tZone (based on the previous steps), favoring container instances with the fewest number\n\t\t\t\t\t\t\tof running tasks for this service.

      \n
    • \n
    \n
  • \n
\n

When the service scheduler stops running tasks, it attempts to maintain balance across the\n\t\t\tAvailability Zones in your cluster using the following logic:

\n
    \n
  • \n

    Sort the container instances by the largest number of running tasks for this service in the\n\t\t\t\t\tsame Availability Zone as the instance. For example, if zone A has one running service task and\n\t\t\t\t\tzones B and C each have two, container instances in either zone B or C are considered optimal\n\t\t\t\t\tfor termination.

    \n
  • \n
  • \n

    Stop the task on a container instance in an optimal Availability Zone (based on the previous\n\t\t\t\t\tsteps), favoring container instances with the largest number of running tasks for this\n\t\t\t\t\tservice.

    \n
  • \n
\n \n

You must have a service-linked role when you update any of the following service\n\t\t\t\tproperties:

\n
    \n
  • \n

    \n loadBalancers,

    \n
  • \n
  • \n

    \n serviceRegistries\n

    \n
  • \n
\n

For more information about the role see the CreateService request parameter \n role\n .

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

Modifies the parameters of a service.

\n \n

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

\n
\n

For services using the rolling update (ECS) you can update the desired\n\t\t\tcount, deployment configuration, network configuration, load balancers, service\n\t\t\tregistries, enable ECS managed tags option, propagate tags option, task placement\n\t\t\tconstraints and strategies, and task definition. When you update any of these\n\t\t\tparameters, Amazon ECS starts new tasks with the new configuration.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or\n\t\t\trunning a task, or when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide. You can update\n\t\t\tyour volume configurations and trigger a new deployment.\n\t\t\t\tvolumeConfigurations is only supported for REPLICA service and not\n\t\t\tDAEMON service. If you leave volumeConfigurations\n null, it doesn't trigger a new deployment. For more infomation on volumes,\n\t\t\tsee Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

\n

For services using the blue/green (CODE_DEPLOY) deployment controller,\n\t\t\tonly the desired count, deployment configuration, health check grace period, task\n\t\t\tplacement constraints and strategies, enable ECS managed tags option, and propagate tags\n\t\t\tcan be updated using this API. If the network configuration, platform version, task\n\t\t\tdefinition, or load balancer need to be updated, create a new CodeDeploy deployment. For more\n\t\t\tinformation, see CreateDeployment in the CodeDeploy API Reference.

\n

For services using an external deployment controller, you can update only the desired\n\t\t\tcount, task placement constraints and strategies, health check grace period, enable ECS\n\t\t\tmanaged tags option, and propagate tags option, using this API. If the launch type, load\n\t\t\tbalancer, network configuration, platform version, or task definition need to be\n\t\t\tupdated, create a new task set For more information, see CreateTaskSet.

\n

You can add to or subtract from the number of instantiations of a task definition in a\n\t\t\tservice by specifying the cluster that the service is running in and a new\n\t\t\t\tdesiredCount parameter.

\n

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or\n\t\t\trunning a task, or when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

\n

If you have updated the container image of your application, you can create a new task\n\t\t\tdefinition with that image and deploy it to your service. The service scheduler uses the\n\t\t\tminimum healthy percent and maximum percent parameters (in the service's deployment\n\t\t\tconfiguration) to determine the deployment strategy.

\n \n

If your updated Docker image uses the same tag as what is in the existing task\n\t\t\t\tdefinition for your service (for example, my_image:latest), you don't\n\t\t\t\tneed to create a new revision of your task definition. You can update the service\n\t\t\t\tusing the forceNewDeployment option. The new tasks launched by the\n\t\t\t\tdeployment pull the current image/tag combination from your repository when they\n\t\t\t\tstart.

\n
\n

You can also update the deployment configuration of a service. When a deployment is\n\t\t\ttriggered by updating the task definition of a service, the service scheduler uses the\n\t\t\tdeployment configuration parameters, minimumHealthyPercent and\n\t\t\t\tmaximumPercent, to determine the deployment strategy.

\n
    \n
  • \n

    If minimumHealthyPercent is below 100%, the scheduler can ignore\n\t\t\t\t\t\tdesiredCount temporarily during a deployment. For example, if\n\t\t\t\t\t\tdesiredCount is four tasks, a minimum of 50% allows the\n\t\t\t\t\tscheduler to stop two existing tasks before starting two new tasks. Tasks for\n\t\t\t\t\tservices that don't use a load balancer are considered healthy if they're in the\n\t\t\t\t\t\tRUNNING state. Tasks for services that use a load balancer are\n\t\t\t\t\tconsidered healthy if they're in the RUNNING state and are reported\n\t\t\t\t\tas healthy by the load balancer.

    \n
  • \n
  • \n

    The maximumPercent parameter represents an upper limit on the\n\t\t\t\t\tnumber of running tasks during a deployment. You can use it to define the\n\t\t\t\t\tdeployment batch size. For example, if desiredCount is four tasks,\n\t\t\t\t\ta maximum of 200% starts four new tasks before stopping the four older tasks\n\t\t\t\t\t(provided that the cluster resources required to do this are available).

    \n
  • \n
\n

When UpdateService\n\t\t\tstops a task during a deployment, the equivalent of docker stop is issued\n\t\t\tto the containers running in the task. This results in a SIGTERM and a\n\t\t\t30-second timeout. After this, SIGKILL is sent and the containers are\n\t\t\tforcibly stopped. If the container handles the SIGTERM gracefully and exits\n\t\t\twithin 30 seconds from receiving it, no SIGKILL is sent.

\n

When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster with the following logic.

\n
    \n
  • \n

    Determine which of the container instances in your cluster can support your\n\t\t\t\t\tservice's task definition. For example, they have the required CPU, memory,\n\t\t\t\t\tports, and container instance attributes.

    \n
  • \n
  • \n

    By default, the service scheduler attempts to balance tasks across\n\t\t\t\t\tAvailability Zones in this manner even though you can choose a different\n\t\t\t\t\tplacement strategy.

    \n
      \n
    • \n

      Sort the valid container instances by the fewest number of running\n\t\t\t\t\t\t\ttasks for this service in the same Availability Zone as the instance.\n\t\t\t\t\t\t\tFor example, if zone A has one running service task and zones B and C\n\t\t\t\t\t\t\teach have zero, valid container instances in either zone B or C are\n\t\t\t\t\t\t\tconsidered optimal for placement.

      \n
    • \n
    • \n

      Place the new service task on a valid container instance in an optimal\n\t\t\t\t\t\t\tAvailability Zone (based on the previous steps), favoring container\n\t\t\t\t\t\t\tinstances with the fewest number of running tasks for this\n\t\t\t\t\t\t\tservice.

      \n
    • \n
    \n
  • \n
\n

When the service scheduler stops running tasks, it attempts to maintain balance across\n\t\t\tthe Availability Zones in your cluster using the following logic:

\n
    \n
  • \n

    Sort the container instances by the largest number of running tasks for this\n\t\t\t\t\tservice in the same Availability Zone as the instance. For example, if zone A\n\t\t\t\t\thas one running service task and zones B and C each have two, container\n\t\t\t\t\tinstances in either zone B or C are considered optimal for termination.

    \n
  • \n
  • \n

    Stop the task on a container instance in an optimal Availability Zone (based\n\t\t\t\t\ton the previous steps), favoring container instances with the largest number of\n\t\t\t\t\trunning tasks for this service.

    \n
  • \n
\n \n

You must have a service-linked role when you update any of the following service\n\t\t\t\tproperties:

\n
    \n
  • \n

    \n loadBalancers,

    \n
  • \n
  • \n

    \n serviceRegistries\n

    \n
  • \n
\n

For more information about the role see the CreateService request\n\t\t\t\tparameter \n role\n .

\n
", "smithy.api#examples": [ { "title": "To change the number of tasks in a service", @@ -13865,7 +13865,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies which task set in a service is the primary task set. Any parameters that are updated on the\n\t\t\tprimary task set in a service will transition to the service. This is used when a service uses the\n\t\t\t\tEXTERNAL deployment controller type. For more information, see Amazon ECS Deployment\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Modifies which task set in a service is the primary task set. Any parameters that are\n\t\t\tupdated on the primary task set in a service will transition to the service. This is\n\t\t\tused when a service uses the EXTERNAL deployment controller type. For more\n\t\t\tinformation, see Amazon ECS Deployment\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#UpdateServicePrimaryTaskSetRequest": { @@ -13874,7 +13874,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tset exists in.

", "smithy.api#required": {} } }, @@ -13930,25 +13930,25 @@ "desiredCount": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The number of instantiations of the task to place and keep running in your service.

" + "smithy.api#documentation": "

The number of instantiations of the task to place and keep running in your\n\t\t\tservice.

" } }, "taskDefinition": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the\n\t\t\ttask definition to run in your service. If a revision is not specified, the latest\n\t\t\t\tACTIVE revision is used. If you modify the task definition with\n\t\t\t\tUpdateService, Amazon ECS spawns a task with the new version of the task definition and\n\t\t\tthen stops an old task after the new version is running.

" + "smithy.api#documentation": "

The family and revision (family:revision) or\n\t\t\tfull ARN of the task definition to run in your service. If a revision is\n\t\t\tnot specified, the latest ACTIVE revision is used. If you modify the task\n\t\t\tdefinition with UpdateService, Amazon ECS spawns a task with the new version of\n\t\t\tthe task definition and then stops an old task after the new version is running.

" } }, "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

The capacity provider strategy to update the service to use.

\n

if the service uses the default capacity provider strategy for the cluster, the service can be\n\t\t\tupdated to use one or more capacity providers as opposed to the default capacity provider strategy.\n\t\t\tHowever, when a service is using a capacity provider strategy that's not the default capacity provider\n\t\t\tstrategy, the service can't be updated to use the cluster's default capacity provider strategy.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider must be associated\n\t\t\twith the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.\n\t\t\tOnly capacity providers with an ACTIVE or UPDATING status can be used.

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are available to all\n\t\t\taccounts and only need to be associated with a cluster to be used.

\n

The PutClusterCapacityProvidersAPI operation is used to update the list of available capacity\n\t\t\tproviders for a cluster after the cluster is created.

\n

" + "smithy.api#documentation": "

The capacity provider strategy to update the service to use.

\n

if the service uses the default capacity provider strategy for the cluster, the\n\t\t\tservice can be updated to use one or more capacity providers as opposed to the default\n\t\t\tcapacity provider strategy. However, when a service is using a capacity provider\n\t\t\tstrategy that's not the default capacity provider strategy, the service can't be updated\n\t\t\tto use the cluster's default capacity provider strategy.

\n

A capacity provider strategy consists of one or more capacity providers along with the\n\t\t\t\tbase and weight to assign to them. A capacity provider\n\t\t\tmust be associated with the cluster to be used in a capacity provider strategy. The\n\t\t\t\tPutClusterCapacityProviders API is used to associate a capacity provider\n\t\t\twith a cluster. Only capacity providers with an ACTIVE or\n\t\t\t\tUPDATING status can be used.

\n

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

\n

To use a Fargate capacity provider, specify either the FARGATE or\n\t\t\t\tFARGATE_SPOT capacity providers. The Fargate capacity providers are\n\t\t\tavailable to all accounts and only need to be associated with a cluster to be\n\t\t\tused.

\n

The PutClusterCapacityProvidersAPI operation is used to update the list of\n\t\t\tavailable capacity providers for a cluster after the cluster is created.

\n

" } }, "deploymentConfiguration": { "target": "com.amazonaws.ecs#DeploymentConfiguration", "traits": { - "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering\n\t\t\tof stopping and starting tasks.

" + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment\n\t\t\tand the ordering of stopping and starting tasks.

" } }, "availabilityZoneRebalancing": { @@ -13966,62 +13966,62 @@ "placementConstraints": { "target": "com.amazonaws.ecs#PlacementConstraints", "traits": { - "smithy.api#documentation": "

An array of task placement constraint objects to update the service to use. If no value is specified,\n\t\t\tthe existing placement constraints for the service will remain unchanged. If this value is specified,\n\t\t\tit will override any existing placement constraints defined for the service. To remove all existing\n\t\t\tplacement constraints, specify an empty array.

\n

You can specify a maximum of 10 constraints for each task. This limit includes constraints in the\n\t\t\ttask definition and those specified at runtime.

" + "smithy.api#documentation": "

An array of task placement constraint objects to update the service to use. If no\n\t\t\tvalue is specified, the existing placement constraints for the service will remain\n\t\t\tunchanged. If this value is specified, it will override any existing placement\n\t\t\tconstraints defined for the service. To remove all existing placement constraints,\n\t\t\tspecify an empty array.

\n

You can specify a maximum of 10 constraints for each task. This limit includes\n\t\t\tconstraints in the task definition and those specified at runtime.

" } }, "placementStrategy": { "target": "com.amazonaws.ecs#PlacementStrategies", "traits": { - "smithy.api#documentation": "

The task placement strategy objects to update the service to use. If no value is specified, the\n\t\t\texisting placement strategy for the service will remain unchanged. If this value is specified, it will\n\t\t\toverride the existing placement strategy defined for the service. To remove an existing placement\n\t\t\tstrategy, specify an empty object.

\n

You can specify a maximum of five strategy rules for each service.

" + "smithy.api#documentation": "

The task placement strategy objects to update the service to use. If no value is\n\t\t\tspecified, the existing placement strategy for the service will remain unchanged. If\n\t\t\tthis value is specified, it will override the existing placement strategy defined for\n\t\t\tthe service. To remove an existing placement strategy, specify an empty object.

\n

You can specify a maximum of five strategy rules for each service.

" } }, "platformVersion": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only specified for\n\t\t\ttasks using the Fargate launch type. If a platform version is not specified, the\n\t\t\t\tLATEST platform version is used. For more information, see Fargate Platform Versions in\n\t\t\tthe Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only\n\t\t\tspecified for tasks using the Fargate launch type. If a platform version\n\t\t\tis not specified, the LATEST platform version is used. For more\n\t\t\tinformation, see Fargate Platform\n\t\t\t\tVersions in the Amazon Elastic Container Service Developer Guide.

" } }, "forceNewDeployment": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Determines whether to force a new deployment of the service. By default, deployments aren't forced.\n\t\t\tYou can use this option to start a new deployment with no service definition changes. For example, you\n\t\t\tcan update a service's tasks to use a newer Docker image with the same image/tag combination\n\t\t\t\t(my_image:latest) or to roll Fargate tasks onto a newer platform version.

" + "smithy.api#documentation": "

Determines whether to force a new deployment of the service. By default, deployments\n\t\t\taren't forced. You can use this option to start a new deployment with no service\n\t\t\tdefinition changes. For example, you can update a service's tasks to use a newer Docker\n\t\t\timage with the same image/tag combination (my_image:latest) or to roll\n\t\t\tFargate tasks onto a newer platform version.

" } }, "healthCheckGracePeriodSeconds": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container \n\t\t\thealth checks after a task has first started. If you don't specify a health check grace\n\t\t\tperiod value, the default value of 0 is used. If you don't use any of the health checks, \n\t\t\tthen healthCheckGracePeriodSeconds is unused.

\n

If your service's tasks take a while to start and respond to health checks, you can specify a\n\t\t\thealth check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS\n\t\t\tservice scheduler ignores health check status. This grace period can prevent the service scheduler from\n\t\t\tmarking tasks as unhealthy and stopping them before they have time to come up.

" + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't\n\t\t\tspecify a health check grace period value, the default value of 0 is used.\n\t\t\tIf you don't use any of the health checks, then\n\t\t\t\thealthCheckGracePeriodSeconds is unused.

\n

If your service's tasks take a while to start and respond to health checks, you can\n\t\t\tspecify a health check grace period of up to 2,147,483,647 seconds (about 69 years).\n\t\t\tDuring that time, the Amazon ECS service scheduler ignores health check status. This grace\n\t\t\tperiod can prevent the service scheduler from marking tasks as unhealthy and stopping\n\t\t\tthem before they have time to come up.

" } }, "enableExecuteCommand": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If true, this enables execute command functionality on all task containers.

\n

If you do not want to override the value that was set when the service was created, you can set this\n\t\t\tto null when performing this action.

" + "smithy.api#documentation": "

If true, this enables execute command functionality on all task\n\t\t\tcontainers.

\n

If you do not want to override the value that was set when the service was created,\n\t\t\tyou can set this to null when performing this action.

" } }, "enableECSManagedTags": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For more information,\n\t\t\tsee Tagging Your\n\t\t\t\tAmazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

\n

Only tasks launched after the update will reflect the update. To update the tags on all tasks, set\n\t\t\t\tforceNewDeployment to true, so that Amazon ECS starts new tasks with the\n\t\t\tupdated tags.

" + "smithy.api#documentation": "

Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For\n\t\t\tmore information, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

\n

Only tasks launched after the update will reflect the update. To update the tags on\n\t\t\tall tasks, set forceNewDeployment to true, so that Amazon ECS\n\t\t\tstarts new tasks with the updated tags.

" } }, "loadBalancers": { "target": "com.amazonaws.ecs#LoadBalancers", "traits": { - "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and\n\t\t\tthe container port to access from the load balancer. The container name is as it appears in a container\n\t\t\tdefinition.

\n

When you add, update, or remove a load balancer configuration, Amazon ECS starts new tasks with the\n\t\t\tupdated Elastic Load Balancing configuration, and then stops the old tasks when the new tasks are running.

\n

For services that use rolling updates, you can add, update, or remove Elastic Load Balancing target groups. You can\n\t\t\tupdate from a single target group to multiple target groups and from multiple target groups to a single\n\t\t\ttarget group.

\n

For services that use blue/green deployments, you can update Elastic Load Balancing target groups by using\n\t\t\t\t\t\n CreateDeployment\n \n\t\t\tthrough CodeDeploy. Note that multiple target groups are not supported for blue/green deployments. For more\n\t\t\tinformation see Register multiple target\n\t\t\t\tgroups with a service in the Amazon Elastic Container Service Developer Guide.

\n

For services that use the external deployment controller, you can add, update, or remove load\n\t\t\tbalancers by using CreateTaskSet. Note that\n\t\t\tmultiple target groups are not supported for external deployments. For more information see Register multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

\n

You can remove existing loadBalancers by passing an empty list.

" + "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the\n\t\t\tcontainer name, and the container port to access from the load balancer. The container\n\t\t\tname is as it appears in a container definition.

\n

When you add, update, or remove a load balancer configuration, Amazon ECS starts new tasks\n\t\t\twith the updated Elastic Load Balancing configuration, and then stops the old tasks when the new tasks\n\t\t\tare running.

\n

For services that use rolling updates, you can add, update, or remove Elastic Load Balancing target\n\t\t\tgroups. You can update from a single target group to multiple target groups and from\n\t\t\tmultiple target groups to a single target group.

\n

For services that use blue/green deployments, you can update Elastic Load Balancing target groups by\n\t\t\tusing \n CreateDeployment\n through CodeDeploy. Note that multiple target groups\n\t\t\tare not supported for blue/green deployments. For more information see Register\n\t\t\t\tmultiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

\n

For services that use the external deployment controller, you can add, update, or\n\t\t\tremove load balancers by using CreateTaskSet.\n\t\t\tNote that multiple target groups are not supported for external deployments. For more\n\t\t\tinformation see Register\n\t\t\t\tmultiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

\n

You can remove existing loadBalancers by passing an empty list.

" } }, "propagateTags": { "target": "com.amazonaws.ecs#PropagateTags", "traits": { - "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated.

\n

Only tasks launched after the update will reflect the update. To update the tags on all tasks, set\n\t\t\t\tforceNewDeployment to true, so that Amazon ECS starts new tasks with the\n\t\t\tupdated tags.

" + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to\n\t\t\tthe task. If no value is specified, the tags aren't propagated.

\n

Only tasks launched after the update will reflect the update. To update the tags on\n\t\t\tall tasks, set forceNewDeployment to true, so that Amazon ECS\n\t\t\tstarts new tasks with the updated tags.

" } }, "serviceRegistries": { "target": "com.amazonaws.ecs#ServiceRegistries", "traits": { - "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more information, see\n\t\t\t\tService\n\t\t\t\tDiscovery.

\n

When you add, update, or remove the service registries configuration, Amazon ECS starts new tasks with the\n\t\t\tupdated service registries configuration, and then stops the old tasks when the new tasks are\n\t\t\trunning.

\n

You can remove existing serviceRegistries by passing an empty list.

" + "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more\n\t\t\tinformation, see Service\n\t\t\t\tDiscovery.

\n

When you add, update, or remove the service registries configuration, Amazon ECS starts new\n\t\t\ttasks with the updated service registries configuration, and then stops the old tasks\n\t\t\twhen the new tasks are running.

\n

You can remove existing serviceRegistries by passing an empty\n\t\t\tlist.

" } }, "serviceConnectConfiguration": { @@ -14033,13 +14033,13 @@ "volumeConfigurations": { "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", "traits": { - "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size,\n\t\t\tvolumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name of the volume must match the\n\t\t\t\tname from the task definition. If set to null, no new deployment is triggered.\n\t\t\tOtherwise, if this configuration differs from the existing one, it triggers a new deployment.

" + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure\n\t\t\tthe size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name of the volume\n\t\t\tmust match the name from the task definition. If set to null, no new\n\t\t\tdeployment is triggered. Otherwise, if this configuration differs from the existing one,\n\t\t\tit triggers a new deployment.

" } }, "vpcLatticeConfigurations": { "target": "com.amazonaws.ecs#VpcLatticeConfigurations", "traits": { - "smithy.api#documentation": "

An object representing the VPC Lattice configuration for the service being updated.

" + "smithy.api#documentation": "

An object representing the VPC Lattice configuration for the service being\n\t\t\tupdated.

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

Updates the protection status of a task. You can set protectionEnabled to\n\t\t\t\ttrue to protect your task from termination during scale-in events from Service\n\t\t\t\tAutoscaling or deployments.

\n

Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the\n\t\t\t\tprotectionEnabled property making the task eligible for termination by a subsequent\n\t\t\tscale-in event.

\n

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes\n\t\t\t(48 hours). To specify the custom expiration period, set the expiresInMinutes property.\n\t\t\tThe expiresInMinutes property is always reset when you invoke this operation for a task\n\t\t\tthat already has protectionEnabled set to true. You can keep extending the\n\t\t\tprotection expiration period of a task by invoking this operation repeatedly.

\n

To learn more about Amazon ECS task protection, see Task scale-in\n\t\t\t\tprotection in the \n Amazon Elastic Container Service Developer Guide\n .

\n \n

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation\n\t\t\t\tfor a standalone task will result in an TASK_NOT_VALID failure. For more information,\n\t\t\t\tsee API failure reasons.

\n
\n \n

If you prefer to set task protection from within the container, we recommend using the Task scale-in\n\t\t\t\t\tprotection endpoint.

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

Updates the protection status of a task. You can set protectionEnabled to\n\t\t\t\ttrue to protect your task from termination during scale-in events from\n\t\t\t\tService\n\t\t\t\tAutoscaling or deployments.

\n

Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the\n\t\t\t\tprotectionEnabled property making the task eligible for termination by\n\t\t\ta subsequent scale-in event.

\n

You can specify a custom expiration period for task protection from 1 minute to up to\n\t\t\t2,880 minutes (48 hours). To specify the custom expiration period, set the\n\t\t\t\texpiresInMinutes property. The expiresInMinutes property\n\t\t\tis always reset when you invoke this operation for a task that already has\n\t\t\t\tprotectionEnabled set to true. You can keep extending the\n\t\t\tprotection expiration period of a task by invoking this operation repeatedly.

\n

To learn more about Amazon ECS task protection, see Task scale-in\n\t\t\t\tprotection in the \n Amazon Elastic Container Service Developer Guide\n .

\n \n

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking\n\t\t\t\tthis operation for a standalone task will result in an TASK_NOT_VALID\n\t\t\t\tfailure. For more information, see API failure\n\t\t\t\t\treasons.

\n
\n \n

If you prefer to set task protection from within the container, we recommend using\n\t\t\t\tthe Task scale-in protection endpoint.

\n
", "smithy.api#examples": [ { "title": "To remove task scale-in protection", @@ -14167,7 +14167,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tsets exist in.

", "smithy.api#required": {} } }, @@ -14182,14 +14182,14 @@ "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specify true to mark a task for protection and false to unset protection,\n\t\t\tmaking it eligible for termination.

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

Specify true to mark a task for protection and false to\n\t\t\tunset protection, making it eligible for termination.

", "smithy.api#required": {} } }, "expiresInMinutes": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

If you set protectionEnabled to true, you can specify the duration for task\n\t\t\tprotection in minutes. You can specify a value from 1 minute to up to 2,880 minutes (48 hours). During\n\t\t\tthis time, your task will not be terminated by scale-in events from Service Auto Scaling or\n\t\t\tdeployments. After this time period lapses, protectionEnabled will be reset to\n\t\t\t\tfalse.

\n

If you don’t specify the time, then the task is automatically protected for 120 minutes (2\n\t\t\thours).

" + "smithy.api#documentation": "

If you set protectionEnabled to true, you can specify the\n\t\t\tduration for task protection in minutes. You can specify a value from 1 minute to up to\n\t\t\t2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in\n\t\t\tevents from Service Auto Scaling or deployments. After this time period lapses,\n\t\t\t\tprotectionEnabled will be reset to false.

\n

If you don’t specify the time, then the task is automatically protected for 120\n\t\t\tminutes (2 hours).

" } } }, @@ -14203,7 +14203,7 @@ "protectedTasks": { "target": "com.amazonaws.ecs#ProtectedTasks", "traits": { - "smithy.api#documentation": "

A list of tasks with the following information.

\n
    \n
  • \n

    \n taskArn: The task ARN.

    \n
  • \n
  • \n

    \n protectionEnabled: The protection status of the task. If scale-in protection is\n\t\t\t\t\tturned on for a task, the value is true. Otherwise, it is\n\t\t\t\t\tfalse.

    \n
  • \n
  • \n

    \n expirationDate: The epoch time when protection for the task will expire.

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

A list of tasks with the following information.

\n
    \n
  • \n

    \n taskArn: The task ARN.

    \n
  • \n
  • \n

    \n protectionEnabled: The protection status of the task. If scale-in\n\t\t\t\t\tprotection is turned on for a task, the value is true. Otherwise,\n\t\t\t\t\tit is false.

    \n
  • \n
  • \n

    \n expirationDate: The epoch time when protection for the task will\n\t\t\t\t\texpire.

    \n
  • \n
" } }, "failures": { @@ -14255,7 +14255,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies a task set. This is used when a service uses the EXTERNAL deployment controller\n\t\t\ttype. For more information, see Amazon ECS Deployment Types in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Modifies a task set. This is used when a service uses the EXTERNAL\n\t\t\tdeployment controller type. For more information, see Amazon ECS Deployment\n\t\t\t\tTypes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#UpdateTaskSetRequest": { @@ -14264,7 +14264,7 @@ "cluster": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set is found\n\t\t\tin.

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

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task\n\t\t\tset is found in.

", "smithy.api#required": {} } }, @@ -14285,7 +14285,7 @@ "scale": { "target": "com.amazonaws.ecs#Scale", "traits": { - "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task\n\t\t\tset.

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

A floating-point percentage of the desired number of tasks to place and keep running\n\t\t\tin the task set.

", "smithy.api#required": {} } } @@ -14337,7 +14337,7 @@ "agentHash": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub\n\t\t\trepository.

" + "smithy.api#documentation": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent\n\t\t\t GitHub repository.

" } }, "dockerVersion": { @@ -14348,7 +14348,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Docker and Amazon ECS container agent version information about a container instance.

" + "smithy.api#documentation": "

The Docker and Amazon ECS container agent version information about a container\n\t\t\tinstance.

" } }, "com.amazonaws.ecs#Volume": { @@ -14357,42 +14357,42 @@ "name": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

\n

When using a volume configured at launch, the name is required and must also be\n\t\t\tspecified as the volume name in the ServiceVolumeConfiguration or\n\t\t\t\tTaskVolumeConfiguration parameter when creating your service or standalone\n\t\t\ttask.

\n

For all other types of volumes, this name is referenced in the sourceVolume parameter of\n\t\t\tthe mountPoints object in the container definition.

\n

When a volume is using the efsVolumeConfiguration, the name is required.

" + "smithy.api#documentation": "

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

\n

When using a volume configured at launch, the name is required and must\n\t\t\talso be specified as the volume name in the ServiceVolumeConfiguration or\n\t\t\t\tTaskVolumeConfiguration parameter when creating your service or\n\t\t\tstandalone task.

\n

For all other types of volumes, this name is referenced in the\n\t\t\t\tsourceVolume parameter of the mountPoints object in the\n\t\t\tcontainer definition.

\n

When a volume is using the efsVolumeConfiguration, the name is\n\t\t\trequired.

" } }, "host": { "target": "com.amazonaws.ecs#HostVolumeProperties", "traits": { - "smithy.api#documentation": "

This parameter is specified when you use bind mount host volumes. The contents of the\n\t\t\t\thost parameter determine whether your bind mount host volume persists on the host\n\t\t\tcontainer instance and where it's stored. If the host parameter is empty, then the Docker\n\t\t\tdaemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after\n\t\t\tthe containers that are associated with it stop running.

\n

Windows containers can mount whole directories on the same drive as $env:ProgramData.\n\t\t\tWindows containers can't mount directories on a different drive, and mount point can't be across\n\t\t\tdrives. For example, you can mount C:\\my\\path:C:\\my\\path and D:\\:D:\\, but not\n\t\t\t\tD:\\my\\path:C:\\my\\path or D:\\:C:\\my\\path.

" + "smithy.api#documentation": "

This parameter is specified when you use bind mount host volumes. The contents of the\n\t\t\t\thost parameter determine whether your bind mount host volume persists\n\t\t\ton the host container instance and where it's stored. If the host parameter\n\t\t\tis empty, then the Docker daemon assigns a host path for your data volume. However, the\n\t\t\tdata isn't guaranteed to persist after the containers that are associated with it stop\n\t\t\trunning.

\n

Windows containers can mount whole directories on the same drive as\n\t\t\t\t$env:ProgramData. Windows containers can't mount directories on a\n\t\t\tdifferent drive, and mount point can't be across drives. For example, you can mount\n\t\t\t\tC:\\my\\path:C:\\my\\path and D:\\:D:\\, but not\n\t\t\t\tD:\\my\\path:C:\\my\\path or D:\\:C:\\my\\path.

" } }, "dockerVolumeConfiguration": { "target": "com.amazonaws.ecs#DockerVolumeConfiguration", "traits": { - "smithy.api#documentation": "

This parameter is specified when you use Docker volumes.

\n

Windows containers only support the use of the local driver. To use bind mounts, specify\n\t\t\tthe host parameter instead.

\n \n

Docker volumes aren't supported by tasks run on Fargate.

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

This parameter is specified when you use Docker volumes.

\n

Windows containers only support the use of the local driver. To use bind\n\t\t\tmounts, specify the host parameter instead.

\n \n

Docker volumes aren't supported by tasks run on Fargate.

\n
" } }, "efsVolumeConfiguration": { "target": "com.amazonaws.ecs#EFSVolumeConfiguration", "traits": { - "smithy.api#documentation": "

This parameter is specified when you use an Amazon Elastic File System file system for task storage.

" + "smithy.api#documentation": "

This parameter is specified when you use an Amazon Elastic File System file system for task\n\t\t\tstorage.

" } }, "fsxWindowsFileServerVolumeConfiguration": { "target": "com.amazonaws.ecs#FSxWindowsFileServerVolumeConfiguration", "traits": { - "smithy.api#documentation": "

This parameter is specified when you use Amazon FSx for Windows File Server file system for task storage.

" + "smithy.api#documentation": "

This parameter is specified when you use Amazon FSx for Windows File Server file system for task\n\t\t\tstorage.

" } }, "configuredAtLaunch": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS\n\t\t\tvolumes for standalone tasks or tasks created as part of a service. Each task definition revision may\n\t\t\tonly have one volume configured at launch in the volume configuration.

\n

To configure a volume at launch time, use this task definition revision and specify a\n\t\t\t\tvolumeConfigurations object when calling the CreateService,\n\t\t\t\tUpdateService, RunTask or StartTask APIs.

" + "smithy.api#documentation": "

Indicates whether the volume should be configured at launch time. This is used to\n\t\t\tcreate Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each\n\t\t\ttask definition revision may only have one volume configured at launch in the volume\n\t\t\tconfiguration.

\n

To configure a volume at launch time, use this task definition revision and specify a\n\t\t\t\tvolumeConfigurations object when calling the\n\t\t\tCreateService, UpdateService, RunTask or\n\t\t\t\tStartTask APIs.

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

The data volume configuration for tasks launched using this task definition. Specifying a volume\n\t\t\tconfiguration in a task definition is optional. The volume configuration may contain multiple volumes\n\t\t\tbut only one volume configured at launch is supported. Each volume defined in the volume configuration\n\t\t\tmay only specify a name and one of either configuredAtLaunch,\n\t\t\t\tdockerVolumeConfiguration, efsVolumeConfiguration,\n\t\t\t\tfsxWindowsFileServerVolumeConfiguration, or host. If an empty volume\n\t\t\tconfiguration is specified, by default Amazon ECS uses a host volume. For more information, see Using data\n\t\t\t\tvolumes in tasks.

" + "smithy.api#documentation": "

The data volume configuration for tasks launched using this task definition.\n\t\t\tSpecifying a volume configuration in a task definition is optional. The volume\n\t\t\tconfiguration may contain multiple volumes but only one volume configured at launch is\n\t\t\tsupported. Each volume defined in the volume configuration may only specify a\n\t\t\t\tname and one of either configuredAtLaunch,\n\t\t\t\tdockerVolumeConfiguration, efsVolumeConfiguration,\n\t\t\t\tfsxWindowsFileServerVolumeConfiguration, or host. If an\n\t\t\tempty volume configuration is specified, by default Amazon ECS uses a host volume. For more\n\t\t\tinformation, see Using data volumes in\n\t\t\t\ttasks.

" } }, "com.amazonaws.ecs#VolumeFrom": { @@ -14401,13 +14401,13 @@ "sourceContainer": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of another container within the same task definition to mount volumes from.

" + "smithy.api#documentation": "

The name of another container within the same task definition to mount volumes\n\t\t\tfrom.

" } }, "readOnly": { "target": "com.amazonaws.ecs#BoxedBoolean", "traits": { - "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume. If this value\n\t\t\tis false, then the container can write to the volume. The default value is\n\t\t\t\tfalse.

" + "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume.\n\t\t\tIf this value is false, then the container can write to the volume. The\n\t\t\tdefault value is false.

" } } }, @@ -14433,7 +14433,7 @@ "roleArn": { "target": "com.amazonaws.ecs#IAMRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028\n\t\t\tinfrastructure IAM role that is used to manage your VPC Lattice infrastructure.

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

The ARN of the IAM role to associate with this VPC Lattice configuration. This is the\n\t\t\tAmazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice\n\t\t\tinfrastructure.

", "smithy.api#required": {} } }, @@ -14447,13 +14447,13 @@ "portName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The name of the port mapping to register in the VPC Lattice target group. This is the \n\t\t\tname of the portMapping you defined in your task definition.

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

The name of the port mapping to register in the VPC Lattice target group. This is the name\n\t\t\tof the portMapping you defined in your task definition.

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

The VPC Lattice configuration for your service that holds the information for the target group(s) \n\t\t\tAmazon ECS tasks will be registered to.

" + "smithy.api#documentation": "

The VPC Lattice configuration for your service that holds the information for the target\n\t\t\tgroup(s) Amazon ECS tasks will be registered to.

" } }, "com.amazonaws.ecs#VpcLatticeConfigurations": { diff --git a/codegen/sdk-codegen/aws-models/keyspaces.json b/codegen/sdk-codegen/aws-models/keyspaces.json index b35628be07d..578603ca15f 100644 --- a/codegen/sdk-codegen/aws-models/keyspaces.json +++ b/codegen/sdk-codegen/aws-models/keyspaces.json @@ -3584,7 +3584,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

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

" + "smithy.api#documentation": "

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

\n

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

\n
    \n
  • \n

    \n cassandra:Alter\n

    \n
  • \n
  • \n

    \n cassandra:AlterMultiRegionResource\n

    \n
  • \n
  • \n

    \n cassandra:Create\n

    \n
  • \n
  • \n

    \n cassandra:CreateMultiRegionResource\n

    \n
  • \n
  • \n

    \n cassandra:Select\n

    \n
  • \n
  • \n

    \n cassandra:SelectMultiRegionResource\n

    \n
  • \n
  • \n

    \n cassandra:Modify\n

    \n
  • \n
  • \n

    \n cassandra:ModifyMultiRegionResource\n

    \n
  • \n
\n

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

\n
    \n
  • \n

    \n application-autoscaling:RegisterScalableTarget\n

    \n
  • \n
  • \n

    \n application-autoscaling:DeregisterScalableTarget\n

    \n
  • \n
  • \n

    \n application-autoscaling:DescribeScalableTargets\n

    \n
  • \n
  • \n

    \n application-autoscaling:PutScalingPolicy\n

    \n
  • \n
  • \n

    \n application-autoscaling:DescribeScalingPolicies\n

    \n
  • \n
\n

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

\n
    \n
  • \n

    \n iam:CreateServiceLinkedRole - The action the principal can perform.

    \n
  • \n
  • \n

    \n arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication\n - The resource that the action can be\n performed on.

    \n
  • \n
  • \n

    \n iam:AWSServiceName: replication.cassandra.amazonaws.com\n - The only Amazon Web Services service that this role can be attached to is Amazon Keyspaces.

    \n
  • \n
\n

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

" } }, "com.amazonaws.keyspaces#UpdateKeyspaceRequest": { diff --git a/codegen/sdk-codegen/aws-models/medialive.json b/codegen/sdk-codegen/aws-models/medialive.json index ee2f344e0bf..acee1eed363 100644 --- a/codegen/sdk-codegen/aws-models/medialive.json +++ b/codegen/sdk-codegen/aws-models/medialive.json @@ -16518,6 +16518,26 @@ "smithy.api#documentation": "H265 Color Space Settings" } }, + "com.amazonaws.medialive#H265Deblocking": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "H265 Deblocking" + } + }, "com.amazonaws.medialive#H265FilterSettings": { "type": "structure", "members": { @@ -17087,6 +17107,13 @@ "smithy.api#documentation": "Sets the minimum QP. If you aren't familiar with quantization adjustment, leave the field empty. MediaLive will\napply an appropriate value.", "smithy.api#jsonName": "minQp" } + }, + "Deblocking": { + "target": "com.amazonaws.medialive#H265Deblocking", + "traits": { + "smithy.api#documentation": "Enable or disable the deblocking filter for this codec. The filter reduces blocking artifacts at block boundaries,\nwhich improves overall video quality. If the filter is disabled, visible block edges might appear in the output,\nespecially at lower bitrates.", + "smithy.api#jsonName": "deblocking" + } } }, "traits": { @@ -35050,6 +35077,10 @@ "Tags": { "target": "com.amazonaws.medialive#Tags", "traits": { + "smithy.api#deprecated": { + "since": "2024-11-20", + "message": "This API is deprecated. You must use UpdateTagsForResource instead." + }, "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } diff --git a/codegen/sdk-codegen/aws-models/workspaces.json b/codegen/sdk-codegen/aws-models/workspaces.json index bc58c84cf02..8d64aa31b1b 100644 --- a/codegen/sdk-codegen/aws-models/workspaces.json +++ b/codegen/sdk-codegen/aws-models/workspaces.json @@ -11152,7 +11152,7 @@ "UserName": { "target": "com.amazonaws.workspaces#UserName", "traits": { - "smithy.api#documentation": "

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

\n

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

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

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

\n

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

\n

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

", "smithy.api#required": {} } }, From 629dd49bf188f287604ccc536c184da6fec4d42e Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 9 Dec 2024 19:29:34 +0000 Subject: [PATCH 10/21] Update endpoints model --- .../smithy/aws/go/codegen/endpoints.json | 241 ++++++++++++++++-- 1 file changed, 213 insertions(+), 28 deletions(-) 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 1cbdc68d02c..7f973b234b4 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 @@ -4505,27 +4505,132 @@ }, "cognito-identity" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.af-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-4.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ca-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ca-west-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-central-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-north-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -4554,32 +4659,76 @@ "deprecated" : true, "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.il-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.me-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.me-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "cognito-identity.sa-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-east-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-east-2.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-west-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-west-2.amazonaws.com", + "tags" : [ "dualstack" ] } ] } } @@ -23840,7 +23989,12 @@ }, "cognito-identity" : { "endpoints" : { - "cn-north-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "cognito-identity.cn-north-1.amazonaws.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "compute-optimizer" : { @@ -26118,8 +26272,14 @@ }, "us-gov-west-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-gov-west-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] } } @@ -30481,6 +30641,23 @@ "us-iso-west-1" : { } } }, + "bedrock" : { + "endpoints" : { + "bedrock-runtime-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "bedrock-runtime.us-iso-east-1.c2s.ic.gov" + }, + "bedrock-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "bedrock.us-iso-east-1.c2s.ic.gov" + }, + "us-iso-east-1" : { } + } + }, "cloudcontrolapi" : { "endpoints" : { "us-iso-east-1" : { }, @@ -31455,13 +31632,21 @@ }, "budgets" : { "endpoints" : { + "aws-iso-b-global" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "budgets.global.sc2s.sgov.gov" + }, "us-isob-east-1" : { "credentialScope" : { "region" : "us-isob-east-1" }, - "hostname" : "budgets.us-isob-east-1.sc2s.sgov.gov" + "hostname" : "budgets.global.sc2s.sgov.gov" } - } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-b-global" }, "cloudcontrolapi" : { "endpoints" : { From 6dd4f0585a5b84c33c3bc4c80e0b9ba0e0b81bfe Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 9 Dec 2024 19:49:25 +0000 Subject: [PATCH 11/21] Regenerated Clients --- .../27a7688f5c2044b0b2078cd87c80bd11.json | 8 + .../7e42f1828f8b4840be3fc134aba8fe4f.json | 8 + .../a8f773ba9afe4ee3973c90d77a8a7362.json | 8 + .../b1fd4a476d7d4b09abbcd8426a4b34da.json | 8 + .../b40ba78d34ad45ea8258cf5f11c1dbb2.json | 8 + .../c64d90e39b86435fa7fd8e1c2b891187.json | 8 + .../ec5b4859331f49ba9dfe1286b219c6e0.json | 8 + service/appsync/types/types.go | 2 + .../bedrock/internal/endpoints/endpoints.go | 21 ++ .../budgets/internal/endpoints/endpoints.go | 15 +- .../internal/endpoints/endpoints.go | 216 +++++++++++ .../api_op_UpdateUserPoolDomain.go | 28 +- service/cognitoidentityprovider/validators.go | 4 +- .../ec2/api_op_DescribeInstanceTopology.go | 3 +- service/ec2/api_op_DescribeInstanceTypes.go | 3 + service/ec2/api_op_DescribeInstances.go | 3 + .../ec2/api_op_DescribeNetworkInterfaces.go | 6 - ...ModifyInstanceNetworkPerformanceOptions.go | 183 +++++++++ service/ec2/api_op_RunInstances.go | 3 + service/ec2/deserializers.go | 353 ++++++++++++++++++ service/ec2/generated.json | 1 + service/ec2/serializers.go | 130 +++++++ ...yInstanceNetworkPerformanceOptions.go.snap | 41 ++ service/ec2/snapshot_test.go | 24 ++ service/ec2/types/enums.go | 42 +++ service/ec2/types/types.go | 82 ++++ service/ec2/validators.go | 42 +++ service/ecs/api_op_CreateService.go | 2 +- service/ecs/api_op_PutAccountSetting.go | 5 + service/ecs/api_op_RunTask.go | 2 +- service/ecs/types/types.go | 17 +- service/keyspaces/api_op_UpdateKeyspace.go | 61 ++- .../api_op_UpdateInputSecurityGroup.go | 2 + service/medialive/deserializers.go | 9 + service/medialive/serializers.go | 5 + service/medialive/types/enums.go | 19 + service/medialive/types/types.go | 6 + service/workspaces/types/types.go | 3 + 38 files changed, 1351 insertions(+), 38 deletions(-) create mode 100644 .changelog/27a7688f5c2044b0b2078cd87c80bd11.json create mode 100644 .changelog/7e42f1828f8b4840be3fc134aba8fe4f.json create mode 100644 .changelog/a8f773ba9afe4ee3973c90d77a8a7362.json create mode 100644 .changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json create mode 100644 .changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json create mode 100644 .changelog/c64d90e39b86435fa7fd8e1c2b891187.json create mode 100644 .changelog/ec5b4859331f49ba9dfe1286b219c6e0.json create mode 100644 service/ec2/api_op_ModifyInstanceNetworkPerformanceOptions.go create mode 100644 service/ec2/snapshot/api_op_ModifyInstanceNetworkPerformanceOptions.go.snap diff --git a/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json b/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json new file mode 100644 index 00000000000..ab2bf2a238a --- /dev/null +++ b/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json @@ -0,0 +1,8 @@ +{ + "id": "27a7688f-5c20-44b0-b207-8cd87c80bd11", + "type": "documentation", + "description": "Added text to clarify case-sensitivity", + "modules": [ + "service/workspaces" + ] +} \ No newline at end of file diff --git a/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json b/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json new file mode 100644 index 00000000000..96d70c19642 --- /dev/null +++ b/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json @@ -0,0 +1,8 @@ +{ + "id": "7e42f182-8f8b-4840-be3f-c134aba8fe4f", + "type": "feature", + "description": "Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation.", + "modules": [ + "service/cognitoidentityprovider" + ] +} \ No newline at end of file diff --git a/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json b/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json new file mode 100644 index 00000000000..b1ba551b7cc --- /dev/null +++ b/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json @@ -0,0 +1,8 @@ +{ + "id": "a8f773ba-9afe-4ee3-973c-90d77a8a7362", + "type": "feature", + "description": "H265 outputs now support disabling the deblocking filter.", + "modules": [ + "service/medialive" + ] +} \ No newline at end of file diff --git a/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json b/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json new file mode 100644 index 00000000000..a19b65987cf --- /dev/null +++ b/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json @@ -0,0 +1,8 @@ +{ + "id": "b1fd4a47-6d7d-4b09-abbc-d8426a4b34da", + "type": "documentation", + "description": "This is a documentation only update to address various tickets for Amazon ECS.", + "modules": [ + "service/ecs" + ] +} \ No newline at end of file diff --git a/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json b/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json new file mode 100644 index 00000000000..2208d3cd608 --- /dev/null +++ b/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json @@ -0,0 +1,8 @@ +{ + "id": "b40ba78d-34ad-45ea-8258-cf5f11c1dbb2", + "type": "documentation", + "description": "Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API.", + "modules": [ + "service/keyspaces" + ] +} \ No newline at end of file diff --git a/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json b/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json new file mode 100644 index 00000000000..2daab05b655 --- /dev/null +++ b/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json @@ -0,0 +1,8 @@ +{ + "id": "c64d90e3-9b86-435f-a7fd-8e1c2b891187", + "type": "documentation", + "description": "Provides description of new Amazon Bedrock runtime datasource.", + "modules": [ + "service/appsync" + ] +} \ No newline at end of file diff --git a/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json b/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json new file mode 100644 index 00000000000..cea52db8c8c --- /dev/null +++ b/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json @@ -0,0 +1,8 @@ +{ + "id": "ec5b4859-331f-49ba-9dfe-1286b219c6e0", + "type": "feature", + "description": "This release includes a new API for modifying instance network-performance-options after launch.", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/service/appsync/types/types.go b/service/appsync/types/types.go index e9708ceb319..516bd4ae3c8 100644 --- a/service/appsync/types/types.go +++ b/service/appsync/types/types.go @@ -532,6 +532,8 @@ type DataSource struct { // // - AMAZON_EVENTBRIDGE: The data source is an Amazon EventBridge configuration. // + // - AMAZON_BEDROCK_RUNTIME: The data source is the Amazon Bedrock runtime. + // // - NONE: There is no data source. Use this type when you want to invoke a // GraphQL operation without connecting to a data source, such as when you're // performing data transformation with resolvers or invoking a subscription from a diff --git a/service/bedrock/internal/endpoints/endpoints.go b/service/bedrock/internal/endpoints/endpoints.go index bc9c9869b79..5496d9f642b 100644 --- a/service/bedrock/internal/endpoints/endpoints.go +++ b/service/bedrock/internal/endpoints/endpoints.go @@ -545,6 +545,27 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "bedrock-runtime-us-iso-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock-runtime.us-iso-east-1.c2s.ic.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-iso-east-1", + }, + }, + endpoints.EndpointKey{ + Region: "bedrock-us-iso-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock.us-iso-east-1.c2s.ic.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-iso-east-1", + }, + }, + endpoints.EndpointKey{ + Region: "us-iso-east-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso-b", diff --git a/service/budgets/internal/endpoints/endpoints.go b/service/budgets/internal/endpoints/endpoints.go index aa033b14c70..8dedbe9986c 100644 --- a/service/budgets/internal/endpoints/endpoints.go +++ b/service/budgets/internal/endpoints/endpoints.go @@ -235,13 +235,22 @@ var defaultPartitions = endpoints.Partitions{ SignatureVersions: []string{"v4"}, }, }, - RegionRegex: partitionRegexp.AwsIsoB, - IsRegionalized: true, + RegionRegex: partitionRegexp.AwsIsoB, + IsRegionalized: false, + PartitionEndpoint: "aws-iso-b-global", Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "aws-iso-b-global", + }: endpoints.Endpoint{ + Hostname: "budgets.global.sc2s.sgov.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-isob-east-1", + }, + }, endpoints.EndpointKey{ Region: "us-isob-east-1", }: endpoints.Endpoint{ - Hostname: "budgets.us-isob-east-1.sc2s.sgov.gov", + Hostname: "budgets.global.sc2s.sgov.gov", CredentialScope: endpoints.CredentialScope{ Region: "us-isob-east-1", }, diff --git a/service/cognitoidentity/internal/endpoints/endpoints.go b/service/cognitoidentity/internal/endpoints/endpoints.go index 173af6c0061..5bca5e97d0d 100644 --- a/service/cognitoidentity/internal/endpoints/endpoints.go +++ b/service/cognitoidentity/internal/endpoints/endpoints.go @@ -142,66 +142,192 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "af-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "af-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.af-south-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-east-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-northeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-northeast-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-northeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-northeast-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-northeast-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-northeast-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-south-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-south-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-south-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-southeast-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-southeast-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-southeast-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-4", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ap-southeast-4.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ca-central-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ca-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.ca-west-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-central-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-central-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-central-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-north-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-north-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-north-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-south-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-south-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-south-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-west-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-west-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-west-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.eu-west-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "fips-us-east-1", }: endpoints.Endpoint{ @@ -241,51 +367,123 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "il-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "il-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.il-central-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "me-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "me-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.me-central-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "me-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "me-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.me-south-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "sa-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "sa-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.sa-east-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity-fips.us-east-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-east-1", Variant: endpoints.FIPSVariant, }: { Hostname: "cognito-identity-fips.us-east-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.us-east-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity-fips.us-east-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-east-2", Variant: endpoints.FIPSVariant, }: { Hostname: "cognito-identity-fips.us-east-2.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.us-east-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity-fips.us-west-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-west-1", Variant: endpoints.FIPSVariant, }: { Hostname: "cognito-identity-fips.us-west-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.us-west-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity-fips.us-west-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-west-2", Variant: endpoints.FIPSVariant, }: { Hostname: "cognito-identity-fips.us-west-2.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.us-west-2.amazonaws.com", + }, }, }, { @@ -326,6 +524,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "cn-north-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "cn-north-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.cn-north-1.amazonaws.com.cn", + }, }, }, { @@ -459,12 +663,24 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-gov-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-gov-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity-fips.us-gov-west-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-gov-west-1", Variant: endpoints.FIPSVariant, }: { Hostname: "cognito-identity-fips.us-gov-west-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-gov-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cognito-identity.us-gov-west-1.amazonaws.com", + }, }, }, } diff --git a/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go b/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go index 9ace7f803d1..4b2e90c9a95 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go @@ -72,21 +72,6 @@ func (c *Client) UpdateUserPoolDomain(ctx context.Context, params *UpdateUserPoo // The UpdateUserPoolDomain request input. type UpdateUserPoolDomainInput struct { - // The configuration for a custom domain that hosts the sign-up and sign-in pages - // for your application. Use this object to specify an SSL certificate that is - // managed by ACM. - // - // When you create a custom domain, the passkey RP ID defaults to the custom - // domain. If you had a prefix domain active, this will cause passkey integration - // for your prefix domain to stop working due to a mismatch in RP ID. To keep the - // prefix domain passkey integration working, you can explicitly set RP ID to the - // prefix domain. Update the RP ID in a [SetUserPoolMfaConfig]request. - // - // [SetUserPoolMfaConfig]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html - // - // This member is required. - CustomDomainConfig *types.CustomDomainConfigType - // The domain name for the custom domain that hosts the sign-up and sign-in pages // for your application. One example might be auth.example.com . // @@ -103,6 +88,19 @@ type UpdateUserPoolDomainInput struct { // This member is required. UserPoolId *string + // The configuration for a custom domain that hosts the sign-up and sign-in pages + // for your application. Use this object to specify an SSL certificate that is + // managed by ACM. + // + // When you create a custom domain, the passkey RP ID defaults to the custom + // domain. If you had a prefix domain active, this will cause passkey integration + // for your prefix domain to stop working due to a mismatch in RP ID. To keep the + // prefix domain passkey integration working, you can explicitly set RP ID to the + // prefix domain. Update the RP ID in a [SetUserPoolMfaConfig]request. + // + // [SetUserPoolMfaConfig]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html + CustomDomainConfig *types.CustomDomainConfigType + // A version number that indicates the state of managed login for your domain. // Version 1 is hosted UI (classic). Version 2 is the newer managed login with the // branding designer. For more information, see [Managed login]. diff --git a/service/cognitoidentityprovider/validators.go b/service/cognitoidentityprovider/validators.go index 286e613ac43..b86bd1dbdd9 100644 --- a/service/cognitoidentityprovider/validators.go +++ b/service/cognitoidentityprovider/validators.go @@ -5258,9 +5258,7 @@ func validateOpUpdateUserPoolDomainInput(v *UpdateUserPoolDomainInput) error { if v.UserPoolId == nil { invalidParams.Add(smithy.NewErrParamRequired("UserPoolId")) } - if v.CustomDomainConfig == nil { - invalidParams.Add(smithy.NewErrParamRequired("CustomDomainConfig")) - } else if v.CustomDomainConfig != nil { + if v.CustomDomainConfig != nil { if err := validateCustomDomainConfigType(v.CustomDomainConfig); err != nil { invalidParams.AddNested("CustomDomainConfig", err.(smithy.InvalidParamsError)) } diff --git a/service/ec2/api_op_DescribeInstanceTopology.go b/service/ec2/api_op_DescribeInstanceTopology.go index 643ef986ec4..235d7d8f45d 100644 --- a/service/ec2/api_op_DescribeInstanceTopology.go +++ b/service/ec2/api_op_DescribeInstanceTopology.go @@ -30,7 +30,8 @@ import ( // hpc7a.48xlarge | hpc7a.96xlarge | hpc7g.4xlarge | hpc7g.8xlarge | // hpc7g.16xlarge // -// - p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | p5.48xlarge | p5e.48xlarge +// - p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | p5.48xlarge | p5e.48xlarge | +// p5en.48xlarge // // - trn1.2xlarge | trn1.32xlarge | trn1n.32xlarge // diff --git a/service/ec2/api_op_DescribeInstanceTypes.go b/service/ec2/api_op_DescribeInstanceTypes.go index aa15e536c57..68fff0b6b94 100644 --- a/service/ec2/api_op_DescribeInstanceTypes.go +++ b/service/ec2/api_op_DescribeInstanceTypes.go @@ -110,6 +110,9 @@ type DescribeInstanceTypesInput struct { // // - memory-info.size-in-mib - The memory size. // + // - network-info.bandwidth-weightings - For instances that support bandwidth + // weighting to boost performance ( default , vpc-1 , ebs-1 ). + // // - network-info.efa-info.maximum-efa-interfaces - The maximum number of Elastic // Fabric Adapters (EFAs) per instance. // diff --git a/service/ec2/api_op_DescribeInstances.go b/service/ec2/api_op_DescribeInstances.go index cbe95ea2f27..9f5ede5cfe5 100644 --- a/service/ec2/api_op_DescribeInstances.go +++ b/service/ec2/api_op_DescribeInstances.go @@ -351,6 +351,9 @@ type DescribeInstancesInput struct { // // - network-interface.vpc-id - The ID of the VPC for the network interface. // + // - network-performance-options.bandwidth-weighting - Where the performance + // boost is applied, if applicable. Valid values: default , vpc-1 , ebs-1 . + // // - operator.managed - A Boolean that indicates whether this is a managed // instance. // diff --git a/service/ec2/api_op_DescribeNetworkInterfaces.go b/service/ec2/api_op_DescribeNetworkInterfaces.go index de391af27ba..68b379cfac1 100644 --- a/service/ec2/api_op_DescribeNetworkInterfaces.go +++ b/service/ec2/api_op_DescribeNetworkInterfaces.go @@ -118,12 +118,6 @@ type DescribeNetworkInterfacesInput struct { // // - network-interface-id - The ID of the network interface. // - // - operator.managed - A Boolean that indicates whether this is a managed - // network interface. - // - // - operator.principal - The principal that manages the network interface. Only - // valid for managed network interfaces, where managed is true . - // // - owner-id - The Amazon Web Services account ID of the network interface owner. // // - private-dns-name - The private DNS name of the network interface (IPv4). diff --git a/service/ec2/api_op_ModifyInstanceNetworkPerformanceOptions.go b/service/ec2/api_op_ModifyInstanceNetworkPerformanceOptions.go new file mode 100644 index 00000000000..ac61ba9e742 --- /dev/null +++ b/service/ec2/api_op_ModifyInstanceNetworkPerformanceOptions.go @@ -0,0 +1,183 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Change the configuration of the network performance options for an existing +// instance. +func (c *Client) ModifyInstanceNetworkPerformanceOptions(ctx context.Context, params *ModifyInstanceNetworkPerformanceOptionsInput, optFns ...func(*Options)) (*ModifyInstanceNetworkPerformanceOptionsOutput, error) { + if params == nil { + params = &ModifyInstanceNetworkPerformanceOptionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ModifyInstanceNetworkPerformanceOptions", params, optFns, c.addOperationModifyInstanceNetworkPerformanceOptionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ModifyInstanceNetworkPerformanceOptionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ModifyInstanceNetworkPerformanceOptionsInput struct { + + // Specify the bandwidth weighting option to boost the associated type of baseline + // bandwidth, as follows: + // + // default This option uses the standard bandwidth configuration for your instance + // type. + // + // vpc-1 This option boosts your networking baseline bandwidth and reduces your + // EBS baseline bandwidth. + // + // ebs-1 This option boosts your EBS baseline bandwidth and reduces your + // networking baseline bandwidth. + // + // This member is required. + BandwidthWeighting types.InstanceBandwidthWeighting + + // The ID of the instance to update. + // + // This member is required. + InstanceId *string + + // Checks whether you have the required permissions for the operation, without + // actually making the request, and provides an error response. If you have the + // required permissions, the error response is DryRunOperation . Otherwise, it is + // UnauthorizedOperation . + DryRun *bool + + noSmithyDocumentSerde +} + +type ModifyInstanceNetworkPerformanceOptionsOutput struct { + + // Contains the updated configuration for bandwidth weighting on the specified + // instance. + BandwidthWeighting types.InstanceBandwidthWeighting + + // The instance ID that was updated. + InstanceId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationModifyInstanceNetworkPerformanceOptionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsEc2query_serializeOpModifyInstanceNetworkPerformanceOptions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpModifyInstanceNetworkPerformanceOptions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ModifyInstanceNetworkPerformanceOptions"); 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 = addOpModifyInstanceNetworkPerformanceOptionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opModifyInstanceNetworkPerformanceOptions(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_opModifyInstanceNetworkPerformanceOptions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ModifyInstanceNetworkPerformanceOptions", + } +} diff --git a/service/ec2/api_op_RunInstances.go b/service/ec2/api_op_RunInstances.go index 2d32bf2037a..0209c28f103 100644 --- a/service/ec2/api_op_RunInstances.go +++ b/service/ec2/api_op_RunInstances.go @@ -309,6 +309,9 @@ type RunInstancesInput struct { // The network interfaces to associate with the instance. NetworkInterfaces []types.InstanceNetworkInterfaceSpecification + // Contains settings for the network performance options for the instance. + NetworkPerformanceOptions *types.InstanceNetworkPerformanceOptionsRequest + // Reserved for internal use. Operator *types.OperatorRequest diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 08427909d60..51ce478d97e 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -50057,6 +50057,101 @@ func awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response *smith } } +type awsEc2query_deserializeOpModifyInstanceNetworkPerformanceOptions struct { +} + +func (*awsEc2query_deserializeOpModifyInstanceNetworkPerformanceOptions) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpModifyInstanceNetworkPerformanceOptions) HandleDeserialize(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, awsEc2query_deserializeOpErrorModifyInstanceNetworkPerformanceOptions(response, &metadata) + } + output := &ModifyInstanceNetworkPerformanceOptionsOutput{} + 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) + err = awsEc2query_deserializeOpDocumentModifyInstanceNetworkPerformanceOptionsOutput(&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 awsEc2query_deserializeOpErrorModifyInstanceNetworkPerformanceOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpModifyInstancePlacement struct { } @@ -66177,6 +66272,86 @@ func awsEc2query_deserializeDocumentAvailableInstanceCapacityListUnwrapped(v *[] *v = sv return nil } +func awsEc2query_deserializeDocumentBandwidthWeightingTypeList(v *[]types.BandwidthWeightingType, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.BandwidthWeightingType + if *v == nil { + sv = make([]types.BandwidthWeightingType, 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("item", t.Name.Local): + var col types.BandwidthWeightingType + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + col = types.BandwidthWeightingType(xtv) + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentBandwidthWeightingTypeListUnwrapped(v *[]types.BandwidthWeightingType, decoder smithyxml.NodeDecoder) error { + var sv []types.BandwidthWeightingType + if *v == nil { + sv = make([]types.BandwidthWeightingType, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.BandwidthWeightingType + t := decoder.StartEl + _ = t + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + mv = types.BandwidthWeightingType(xtv) + } + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentBaselineEbsBandwidthMbps(v **types.BaselineEbsBandwidthMbps, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -90349,6 +90524,12 @@ func awsEc2query_deserializeDocumentInstance(v **types.Instance, decoder smithyx return err } + case strings.EqualFold("networkPerformanceOptions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentInstanceNetworkPerformanceOptions(&sv.NetworkPerformanceOptions, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("operator", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) if err := awsEc2query_deserializeDocumentOperatorResponse(&sv.Operator, nodeDecoder); err != nil { @@ -94194,6 +94375,55 @@ func awsEc2query_deserializeDocumentInstanceNetworkInterfaceSpecificationListUnw *v = sv return nil } +func awsEc2query_deserializeDocumentInstanceNetworkPerformanceOptions(v **types.InstanceNetworkPerformanceOptions, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.InstanceNetworkPerformanceOptions + if *v == nil { + sv = &types.InstanceNetworkPerformanceOptions{} + } 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("bandwidthWeighting", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.BandwidthWeighting = types.InstanceBandwidthWeighting(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 awsEc2query_deserializeDocumentInstancePrivateIpAddress(v **types.InstancePrivateIpAddress, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -105601,6 +105831,55 @@ func awsEc2query_deserializeDocumentLaunchTemplateLicenseListUnwrapped(v *[]type *v = sv return nil } +func awsEc2query_deserializeDocumentLaunchTemplateNetworkPerformanceOptions(v **types.LaunchTemplateNetworkPerformanceOptions, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.LaunchTemplateNetworkPerformanceOptions + if *v == nil { + sv = &types.LaunchTemplateNetworkPerformanceOptions{} + } 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("bandwidthWeighting", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.BandwidthWeighting = types.InstanceBandwidthWeighting(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 awsEc2query_deserializeDocumentLaunchTemplateOverrides(v **types.LaunchTemplateOverrides, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -111413,6 +111692,12 @@ func awsEc2query_deserializeDocumentNetworkInfo(v **types.NetworkInfo, decoder s originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("bandwidthWeightings", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentBandwidthWeightingTypeList(&sv.BandwidthWeightings, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("defaultNetworkCardIndex", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -123179,6 +123464,12 @@ func awsEc2query_deserializeDocumentResponseLaunchTemplateData(v **types.Respons return err } + case strings.EqualFold("networkPerformanceOptions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentLaunchTemplateNetworkPerformanceOptions(&sv.NetworkPerformanceOptions, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("operator", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) if err := awsEc2query_deserializeDocumentOperatorResponse(&sv.Operator, nodeDecoder); err != nil { @@ -179202,6 +179493,68 @@ func awsEc2query_deserializeOpDocumentModifyInstanceMetadataOptionsOutput(v **Mo return nil } +func awsEc2query_deserializeOpDocumentModifyInstanceNetworkPerformanceOptionsOutput(v **ModifyInstanceNetworkPerformanceOptionsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ModifyInstanceNetworkPerformanceOptionsOutput + if *v == nil { + sv = &ModifyInstanceNetworkPerformanceOptionsOutput{} + } 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("bandwidthWeighting", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.BandwidthWeighting = types.InstanceBandwidthWeighting(xtv) + } + + case strings.EqualFold("instanceId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceId = 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 awsEc2query_deserializeOpDocumentModifyInstancePlacementOutput(v **ModifyInstancePlacementOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ec2/generated.json b/service/ec2/generated.json index bf43711e92a..c897c5b8af5 100644 --- a/service/ec2/generated.json +++ b/service/ec2/generated.json @@ -547,6 +547,7 @@ "api_op_ModifyInstanceMaintenanceOptions.go", "api_op_ModifyInstanceMetadataDefaults.go", "api_op_ModifyInstanceMetadataOptions.go", + "api_op_ModifyInstanceNetworkPerformanceOptions.go", "api_op_ModifyInstancePlacement.go", "api_op_ModifyIpam.go", "api_op_ModifyIpamPool.go", diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index 70b5fe15d92..34ff494bb5d 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -37538,6 +37538,76 @@ func (m *awsEc2query_serializeOpModifyInstanceMetadataOptions) HandleSerialize(c return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpModifyInstanceNetworkPerformanceOptions struct { +} + +func (*awsEc2query_serializeOpModifyInstanceNetworkPerformanceOptions) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpModifyInstanceNetworkPerformanceOptions) 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.(*ModifyInstanceNetworkPerformanceOptionsInput) + _ = 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("ModifyInstanceNetworkPerformanceOptions") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentModifyInstanceNetworkPerformanceOptionsInput(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 awsEc2query_serializeOpModifyInstancePlacement struct { } @@ -49405,6 +49475,18 @@ func awsEc2query_serializeDocumentInstanceNetworkInterfaceSpecificationList(v [] return nil } +func awsEc2query_serializeDocumentInstanceNetworkPerformanceOptionsRequest(v *types.InstanceNetworkPerformanceOptionsRequest, value query.Value) error { + object := value.Object() + _ = object + + if len(v.BandwidthWeighting) > 0 { + objectKey := object.Key("BandwidthWeighting") + objectKey.String(string(v.BandwidthWeighting)) + } + + return nil +} + func awsEc2query_serializeDocumentInstanceRequirements(v *types.InstanceRequirements, value query.Value) error { object := value.Object() _ = object @@ -50771,6 +50853,18 @@ func awsEc2query_serializeDocumentLaunchTemplateNameStringList(v []string, value return nil } +func awsEc2query_serializeDocumentLaunchTemplateNetworkPerformanceOptionsRequest(v *types.LaunchTemplateNetworkPerformanceOptionsRequest, value query.Value) error { + object := value.Object() + _ = object + + if len(v.BandwidthWeighting) > 0 { + objectKey := object.Key("BandwidthWeighting") + objectKey.String(string(v.BandwidthWeighting)) + } + + return nil +} + func awsEc2query_serializeDocumentLaunchTemplateOverrides(v *types.LaunchTemplateOverrides, value query.Value) error { object := value.Object() _ = object @@ -53286,6 +53380,13 @@ func awsEc2query_serializeDocumentRequestLaunchTemplateData(v *types.RequestLaun } } + if v.NetworkPerformanceOptions != nil { + objectKey := object.Key("NetworkPerformanceOptions") + if err := awsEc2query_serializeDocumentLaunchTemplateNetworkPerformanceOptionsRequest(v.NetworkPerformanceOptions, objectKey); err != nil { + return err + } + } + if v.Operator != nil { objectKey := object.Key("Operator") if err := awsEc2query_serializeDocumentOperatorRequest(v.Operator, objectKey); err != nil { @@ -73166,6 +73267,28 @@ func awsEc2query_serializeOpDocumentModifyInstanceMetadataOptionsInput(v *Modify return nil } +func awsEc2query_serializeOpDocumentModifyInstanceNetworkPerformanceOptionsInput(v *ModifyInstanceNetworkPerformanceOptionsInput, value query.Value) error { + object := value.Object() + _ = object + + if len(v.BandwidthWeighting) > 0 { + objectKey := object.Key("BandwidthWeighting") + objectKey.String(string(v.BandwidthWeighting)) + } + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + if v.InstanceId != nil { + objectKey := object.Key("InstanceId") + objectKey.String(*v.InstanceId) + } + + return nil +} + func awsEc2query_serializeOpDocumentModifyInstancePlacementInput(v *ModifyInstancePlacementInput, value query.Value) error { object := value.Object() _ = object @@ -76842,6 +76965,13 @@ func awsEc2query_serializeOpDocumentRunInstancesInput(v *RunInstancesInput, valu } } + if v.NetworkPerformanceOptions != nil { + objectKey := object.Key("NetworkPerformanceOptions") + if err := awsEc2query_serializeDocumentInstanceNetworkPerformanceOptionsRequest(v.NetworkPerformanceOptions, objectKey); err != nil { + return err + } + } + if v.Operator != nil { objectKey := object.Key("Operator") if err := awsEc2query_serializeDocumentOperatorRequest(v.Operator, objectKey); err != nil { diff --git a/service/ec2/snapshot/api_op_ModifyInstanceNetworkPerformanceOptions.go.snap b/service/ec2/snapshot/api_op_ModifyInstanceNetworkPerformanceOptions.go.snap new file mode 100644 index 00000000000..529dc5d02e1 --- /dev/null +++ b/service/ec2/snapshot/api_op_ModifyInstanceNetworkPerformanceOptions.go.snap @@ -0,0 +1,41 @@ +ModifyInstanceNetworkPerformanceOptions + 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/ec2/snapshot_test.go b/service/ec2/snapshot_test.go index 32cf6d79ba6..6abae6e3d85 100644 --- a/service/ec2/snapshot_test.go +++ b/service/ec2/snapshot_test.go @@ -6494,6 +6494,18 @@ func TestCheckSnapshot_ModifyInstanceMetadataOptions(t *testing.T) { } } +func TestCheckSnapshot_ModifyInstanceNetworkPerformanceOptions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ModifyInstanceNetworkPerformanceOptions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ModifyInstanceNetworkPerformanceOptions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ModifyInstancePlacement(t *testing.T) { svc := New(Options{}) _, err := svc.ModifyInstancePlacement(context.Background(), nil, func(o *Options) { @@ -14377,6 +14389,18 @@ func TestUpdateSnapshot_ModifyInstanceMetadataOptions(t *testing.T) { } } +func TestUpdateSnapshot_ModifyInstanceNetworkPerformanceOptions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ModifyInstanceNetworkPerformanceOptions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ModifyInstanceNetworkPerformanceOptions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ModifyInstancePlacement(t *testing.T) { svc := New(Options{}) _, err := svc.ModifyInstancePlacement(context.Background(), nil, func(o *Options) { diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index 9b1c9d3d758..1ede60e15c5 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -664,6 +664,27 @@ func (AvailabilityZoneState) Values() []AvailabilityZoneState { } } +type BandwidthWeightingType string + +// Enum values for BandwidthWeightingType +const ( + BandwidthWeightingTypeDefault BandwidthWeightingType = "default" + BandwidthWeightingTypeVpc1 BandwidthWeightingType = "vpc-1" + BandwidthWeightingTypeEbs1 BandwidthWeightingType = "ebs-1" +) + +// Values returns all known values for BandwidthWeightingType. 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 (BandwidthWeightingType) Values() []BandwidthWeightingType { + return []BandwidthWeightingType{ + "default", + "vpc-1", + "ebs-1", + } +} + type BareMetal string // Enum values for BareMetal @@ -3010,6 +3031,27 @@ func (InstanceAutoRecoveryState) Values() []InstanceAutoRecoveryState { } } +type InstanceBandwidthWeighting string + +// Enum values for InstanceBandwidthWeighting +const ( + InstanceBandwidthWeightingDefault InstanceBandwidthWeighting = "default" + InstanceBandwidthWeightingVpc1 InstanceBandwidthWeighting = "vpc-1" + InstanceBandwidthWeightingEbs1 InstanceBandwidthWeighting = "ebs-1" +) + +// Values returns all known values for InstanceBandwidthWeighting. 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 (InstanceBandwidthWeighting) Values() []InstanceBandwidthWeighting { + return []InstanceBandwidthWeighting{ + "default", + "vpc-1", + "ebs-1", + } +} + type InstanceBootModeValues string // Enum values for InstanceBootModeValues diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index 161665c7204..2a262e00819 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -6909,6 +6909,9 @@ type Instance struct { // The network interfaces for the instance. NetworkInterfaces []InstanceNetworkInterface + // Contains settings for the network performance options for your instance. + NetworkPerformanceOptions *InstanceNetworkPerformanceOptions + // The service provider that manages the instance. Operator *OperatorResponse @@ -7845,6 +7848,39 @@ type InstanceNetworkInterfaceSpecification struct { noSmithyDocumentSerde } +// With network performance options, you can adjust your bandwidth preferences to +// meet the needs of the workload that runs on your instance. +type InstanceNetworkPerformanceOptions struct { + + // When you configure network bandwidth weighting, you can boost your baseline + // bandwidth for either networking or EBS by up to 25%. The total available + // baseline bandwidth for your instance remains the same. The default option uses + // the standard bandwidth configuration for your instance type. + BandwidthWeighting InstanceBandwidthWeighting + + noSmithyDocumentSerde +} + +// Configure network performance options for your instance that are geared towards +// performance improvements based on the workload that it runs. +type InstanceNetworkPerformanceOptionsRequest struct { + + // Specify the bandwidth weighting option to boost the associated type of baseline + // bandwidth, as follows: + // + // default This option uses the standard bandwidth configuration for your instance + // type. + // + // vpc-1 This option boosts your networking baseline bandwidth and reduces your + // EBS baseline bandwidth. + // + // ebs-1 This option boosts your EBS baseline bandwidth and reduces your + // networking baseline bandwidth. + BandwidthWeighting InstanceBandwidthWeighting + + noSmithyDocumentSerde +} + // Describes a private IPv4 address. type InstancePrivateIpAddress struct { @@ -11163,6 +11199,40 @@ type LaunchTemplateLicenseConfigurationRequest struct { noSmithyDocumentSerde } +// With network performance options, you can adjust your bandwidth preferences to +// meet the needs of the workload that runs on your instance at launch. +type LaunchTemplateNetworkPerformanceOptions struct { + + // When you configure network bandwidth weighting, you can boost baseline + // bandwidth for either networking or EBS by up to 25%. The total available + // baseline bandwidth for your instance remains the same. The default option uses + // the standard bandwidth configuration for your instance type. + BandwidthWeighting InstanceBandwidthWeighting + + noSmithyDocumentSerde +} + +// When you configure network performance options in your launch template, your +// instance is geared for performance improvements based on the workload that it +// runs as soon as it's available. +type LaunchTemplateNetworkPerformanceOptionsRequest struct { + + // Specify the bandwidth weighting option to boost the associated type of baseline + // bandwidth, as follows: + // + // default This option uses the standard bandwidth configuration for your instance + // type. + // + // vpc-1 This option boosts your networking baseline bandwidth and reduces your + // EBS baseline bandwidth. + // + // ebs-1 This option boosts your EBS baseline bandwidth and reduces your + // networking baseline bandwidth. + BandwidthWeighting InstanceBandwidthWeighting + + noSmithyDocumentSerde +} + // Describes overrides for a launch template. type LaunchTemplateOverrides struct { @@ -12755,6 +12825,10 @@ type NetworkCardInfo struct { // Describes the networking features of the instance type. type NetworkInfo struct { + // A list of valid settings for configurable bandwidth weighting for the instance + // type, if supported. + BandwidthWeightings []BandwidthWeightingType + // The index of the default network card, starting at 0. DefaultNetworkCardIndex *int32 @@ -14963,6 +15037,10 @@ type RequestLaunchTemplateData struct { // The network interfaces for the instance. NetworkInterfaces []LaunchTemplateInstanceNetworkInterfaceSpecificationRequest + // Contains launch template settings to boost network performance for the type of + // workload that runs on your instance. + NetworkPerformanceOptions *LaunchTemplateNetworkPerformanceOptionsRequest + // The entity that manages the launch template. Operator *OperatorRequest @@ -15603,6 +15681,10 @@ type ResponseLaunchTemplateData struct { // The network interfaces. NetworkInterfaces []LaunchTemplateInstanceNetworkInterfaceSpecification + // Contains the launch template settings for network performance options for your + // instance. + NetworkPerformanceOptions *LaunchTemplateNetworkPerformanceOptions + // The entity that manages the launch template. Operator *OperatorResponse diff --git a/service/ec2/validators.go b/service/ec2/validators.go index 9ba77560cd5..d58ba2af50c 100644 --- a/service/ec2/validators.go +++ b/service/ec2/validators.go @@ -6970,6 +6970,26 @@ func (m *validateOpModifyInstanceMetadataOptions) HandleInitialize(ctx context.C return next.HandleInitialize(ctx, in) } +type validateOpModifyInstanceNetworkPerformanceOptions struct { +} + +func (*validateOpModifyInstanceNetworkPerformanceOptions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpModifyInstanceNetworkPerformanceOptions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ModifyInstanceNetworkPerformanceOptionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpModifyInstanceNetworkPerformanceOptionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpModifyInstancePlacement struct { } @@ -10622,6 +10642,10 @@ func addOpModifyInstanceMetadataOptionsValidationMiddleware(stack *middleware.St return stack.Initialize.Add(&validateOpModifyInstanceMetadataOptions{}, middleware.After) } +func addOpModifyInstanceNetworkPerformanceOptionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpModifyInstanceNetworkPerformanceOptions{}, middleware.After) +} + func addOpModifyInstancePlacementValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpModifyInstancePlacement{}, middleware.After) } @@ -17782,6 +17806,24 @@ func validateOpModifyInstanceMetadataOptionsInput(v *ModifyInstanceMetadataOptio } } +func validateOpModifyInstanceNetworkPerformanceOptionsInput(v *ModifyInstanceNetworkPerformanceOptionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ModifyInstanceNetworkPerformanceOptionsInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if len(v.BandwidthWeighting) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("BandwidthWeighting")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpModifyInstancePlacementInput(v *ModifyInstancePlacementInput) error { if v == nil { return nil diff --git a/service/ecs/api_op_CreateService.go b/service/ecs/api_op_CreateService.go index 6a6e6b7fe3c..72aac5c3e46 100644 --- a/service/ecs/api_op_CreateService.go +++ b/service/ecs/api_op_CreateService.go @@ -153,7 +153,7 @@ type CreateServiceInput struct { // omitted. If no capacityProviderStrategy or launchType is specified, the // defaultCapacityProviderStrategy for the cluster is used. // - // A capacity provider strategy may contain a maximum of 6 capacity providers. + // A capacity provider strategy can contain a maximum of 20 capacity providers. CapacityProviderStrategy []types.CapacityProviderStrategyItem // An identifier that you provide to ensure the idempotency of the request. It diff --git a/service/ecs/api_op_PutAccountSetting.go b/service/ecs/api_op_PutAccountSetting.go index 265208356b7..02bcf1bf50f 100644 --- a/service/ecs/api_op_PutAccountSetting.go +++ b/service/ecs/api_op_PutAccountSetting.go @@ -55,6 +55,10 @@ type PutAccountSettingInput struct { // resource. You must turn on this setting to use Amazon ECS features such as // resource tagging. // + // - fargateFIPSMode - When turned on, you can run Fargate workloads in a manner + // that is compliant with Federal Information Processing Standard (FIPS-140). For + // more information, see [Fargate Federal Information Processing Standard (FIPS-140)]. + // // - containerInstanceLongArnFormat - When modified, the Amazon Resource Name // (ARN) and resource ID format of the resource type for a specified user, role, or // the root user for an account is affected. The opt-in and opt-out account setting @@ -113,6 +117,7 @@ type PutAccountSettingInput struct { // // [Grant permission to tag resources on creation]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html // [Using a VPC in dual-stack mode]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html#fargate-task-networking-vpc-dual-stack + // [Fargate Federal Information Processing Standard (FIPS-140)]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-fips-compliance.html // [Amazon Web Services Fargate task maintenance]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html // [Elastic Network Interface Trunking]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html // [Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-integration.html diff --git a/service/ecs/api_op_RunTask.go b/service/ecs/api_op_RunTask.go index 346dbeeecd3..8a10fd153b0 100644 --- a/service/ecs/api_op_RunTask.go +++ b/service/ecs/api_op_RunTask.go @@ -105,7 +105,7 @@ type RunTaskInput struct { // When you use cluster auto scaling, you must specify capacityProviderStrategy // and not launchType . // - // A capacity provider strategy may contain a maximum of 6 capacity providers. + // A capacity provider strategy can contain a maximum of 20 capacity providers. CapacityProviderStrategy []types.CapacityProviderStrategyItem // An identifier that you provide to ensure the idempotency of the request. It diff --git a/service/ecs/types/types.go b/service/ecs/types/types.go index 6bb681a50c4..ef2d83dab9a 100644 --- a/service/ecs/types/types.go +++ b/service/ecs/types/types.go @@ -274,7 +274,7 @@ type CapacityProvider struct { // supports Linux tasks with the ARM64 architecture on platform version 1.4.0 or // later. // -// A capacity provider strategy may contain a maximum of 6 capacity providers. +// A capacity provider strategy can contain a maximum of 20 capacity providers. // // [PutClusterCapacityProviders]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html // [RunTask]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html @@ -1867,6 +1867,11 @@ type DeploymentConfiguration struct { // cluster resources required to do this are available). The default maximumPercent // value for a service using the REPLICA service scheduler is 200%. // + // The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by + // starting replacement tasks first and then stopping the unhealthy tasks, as long + // as cluster resources for starting replacement tasks are available. For more + // information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services]. + // // If a service is using either the blue/green ( CODE_DEPLOY ) or EXTERNAL // deployment types, and tasks in the service use the EC2 launch type, the maximum // percent value is set to the default value. The maximum percent value is used to @@ -1879,6 +1884,8 @@ type DeploymentConfiguration struct { // // If the tasks in the service use the Fargate launch type, the maximum percent // value is not used, although it is returned when describing your service. + // + // [Amazon ECS services]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html MaximumPercent *int32 // If a service is using the rolling update ( ECS ) deployment type, the @@ -1890,6 +1897,12 @@ type DeploymentConfiguration struct { // minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks // to free up cluster capacity before starting two new tasks. // + // If any tasks are unhealthy and if maximumPercent doesn't allow the Amazon ECS + // scheduler to start replacement tasks, the scheduler stops the unhealthy tasks + // one-by-one — using the minimumHealthyPercent as a constraint — to clear up + // capacity to launch replacement tasks. For more information about how the + // scheduler replaces unhealthy tasks, see [Amazon ECS services]. + // // For services that do not use a load balancer, the following should be noted: // // - A service is considered healthy if all essential containers within the @@ -1942,6 +1955,8 @@ type DeploymentConfiguration struct { // deployment types and is running tasks that use the Fargate launch type, the // minimum healthy percent value is not used, although it is returned when // describing your service. + // + // [Amazon ECS services]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html MinimumHealthyPercent *int32 noSmithyDocumentSerde diff --git a/service/keyspaces/api_op_UpdateKeyspace.go b/service/keyspaces/api_op_UpdateKeyspace.go index cd96819341e..c6d0a142a87 100644 --- a/service/keyspaces/api_op_UpdateKeyspace.go +++ b/service/keyspaces/api_op_UpdateKeyspace.go @@ -13,16 +13,63 @@ import ( // Adds a new Amazon Web Services Region to the keyspace. You can add a new // -// Region to a keyspace that is either a single or a multi-Region keyspace. The new -// replica Region is applied to all tables in the keyspace. For more information, -// see [Add an Amazon Web Services Region to a keyspace in Amazon Keyspaces]in the Amazon Keyspaces Developer Guide. +// Region to a keyspace that is either a single or a multi-Region keyspace. Amazon +// Keyspaces is going to replicate all tables in the keyspace to the new Region. To +// successfully replicate all tables to the new Region, they must use client-side +// timestamps for conflict resolution. To enable client-side timestamps, specify +// clientSideTimestamps.status = enabled when invoking the API. For more +// information about client-side timestamps, see [Client-side timestamps in Amazon Keyspaces]in the Amazon Keyspaces Developer +// Guide. // -// To change a single-Region to a multi-Region keyspace, you have to enable -// client-side timestamps for all tables in the keyspace. For more information, see -// [Client-side timestamps in Amazon Keyspaces]in the Amazon Keyspaces Developer Guide. +// To add a Region to a keyspace using the UpdateKeyspace API, the IAM principal +// needs permissions for the following IAM actions: +// +// - cassandra:Alter +// +// - cassandra:AlterMultiRegionResource +// +// - cassandra:Create +// +// - cassandra:CreateMultiRegionResource +// +// - cassandra:Select +// +// - cassandra:SelectMultiRegionResource +// +// - cassandra:Modify +// +// - cassandra:ModifyMultiRegionResource +// +// If the keyspace contains a table that is configured in provisioned mode with +// auto scaling enabled, the following additional IAM actions need to be allowed. +// +// - application-autoscaling:RegisterScalableTarget +// +// - application-autoscaling:DeregisterScalableTarget +// +// - application-autoscaling:DescribeScalableTargets +// +// - application-autoscaling:PutScalingPolicy +// +// - application-autoscaling:DescribeScalingPolicies +// +// To use the UpdateKeyspace API, the IAM principal also needs permissions to +// create a service-linked role with the following elements: +// +// - iam:CreateServiceLinkedRole - The action the principal can perform. +// +// - +// arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication +// +// - The resource that the action can be performed on. +// +// - iam:AWSServiceName: replication.cassandra.amazonaws.com - The only Amazon +// Web Services service that this role can be attached to is Amazon Keyspaces. +// +// For more information, see [Configure the IAM permissions required to add an Amazon Web Services Region to a keyspace] in the Amazon Keyspaces Developer Guide. // // [Client-side timestamps in Amazon Keyspaces]: https://docs.aws.amazon.com/keyspaces/latest/devguide/client-side-timestamps.html -// [Add an Amazon Web Services Region to a keyspace in Amazon Keyspaces]: https://docs.aws.amazon.com/keyspaces/latest/devguide/keyspaces-multi-region-add-replica.html +// [Configure the IAM permissions required to add an Amazon Web Services Region to a keyspace]: https://docs.aws.amazon.com/keyspaces/latest/devguide/howitworks_replication_permissions_addReplica.html func (c *Client) UpdateKeyspace(ctx context.Context, params *UpdateKeyspaceInput, optFns ...func(*Options)) (*UpdateKeyspaceOutput, error) { if params == nil { params = &UpdateKeyspaceInput{} diff --git a/service/medialive/api_op_UpdateInputSecurityGroup.go b/service/medialive/api_op_UpdateInputSecurityGroup.go index c846cf39428..a5532047e22 100644 --- a/service/medialive/api_op_UpdateInputSecurityGroup.go +++ b/service/medialive/api_op_UpdateInputSecurityGroup.go @@ -37,6 +37,8 @@ type UpdateInputSecurityGroupInput struct { InputSecurityGroupId *string // A collection of key-value pairs. + // + // Deprecated: This API is deprecated. You must use UpdateTagsForResource instead. Tags map[string]string // List of IPv4 CIDR addresses to whitelist diff --git a/service/medialive/deserializers.go b/service/medialive/deserializers.go index 81e5d089000..b815bbd2d8e 100644 --- a/service/medialive/deserializers.go +++ b/service/medialive/deserializers.go @@ -33887,6 +33887,15 @@ func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value return err } + case "deblocking": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H265Deblocking to be of type string, got %T instead", value) + } + sv.Deblocking = types.H265Deblocking(jtv) + } + case "filterSettings": if err := awsRestjson1_deserializeDocumentH265FilterSettings(&sv.FilterSettings, value); err != nil { return err diff --git a/service/medialive/serializers.go b/service/medialive/serializers.go index 1f6e06d7b65..184885ac03f 100644 --- a/service/medialive/serializers.go +++ b/service/medialive/serializers.go @@ -13633,6 +13633,11 @@ func awsRestjson1_serializeDocumentH265Settings(v *types.H265Settings, value smi } } + if len(v.Deblocking) > 0 { + ok := object.Key("deblocking") + ok.String(string(v.Deblocking)) + } + if v.FilterSettings != nil { ok := object.Key("filterSettings") if err := awsRestjson1_serializeDocumentH265FilterSettings(v.FilterSettings, ok); err != nil { diff --git a/service/medialive/types/enums.go b/service/medialive/types/enums.go index 2a31e59933c..94e57f6c358 100644 --- a/service/medialive/types/enums.go +++ b/service/medialive/types/enums.go @@ -2872,6 +2872,25 @@ func (H265ColorMetadata) Values() []H265ColorMetadata { } } +type H265Deblocking string + +// Enum values for H265Deblocking +const ( + H265DeblockingDisabled H265Deblocking = "DISABLED" + H265DeblockingEnabled H265Deblocking = "ENABLED" +) + +// Values returns all known values for H265Deblocking. 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 (H265Deblocking) Values() []H265Deblocking { + return []H265Deblocking{ + "DISABLED", + "ENABLED", + } +} + type H265FlickerAq string // Enum values for H265FlickerAq diff --git a/service/medialive/types/types.go b/service/medialive/types/types.go index e9a568a02de..24ac11d14af 100644 --- a/service/medialive/types/types.go +++ b/service/medialive/types/types.go @@ -2928,6 +2928,12 @@ type H265Settings struct { // Color Space settings ColorSpaceSettings *H265ColorSpaceSettings + // Enable or disable the deblocking filter for this codec. The filter reduces + // blocking artifacts at block boundaries, which improves overall video quality. If + // the filter is disabled, visible block edges might appear in the output, + // especially at lower bitrates. + Deblocking H265Deblocking + // Optional. Both filters reduce bandwidth by removing imperceptible details. You // can enable one of the filters. We recommend that you try both filters and // observe the results to decide which one to use. diff --git a/service/workspaces/types/types.go b/service/workspaces/types/types.go index d148fcb767c..9ecec3d1bb8 100644 --- a/service/workspaces/types/types.go +++ b/service/workspaces/types/types.go @@ -1729,6 +1729,9 @@ type WorkspaceRequest struct { // The user name of the user for the WorkSpace. This user name must exist in the // Directory Service directory for the WorkSpace. // + // The username is not case-sensitive, but we recommend matching the case in the + // Directory Service directory to avoid potential incompatibilities. + // // The reserved keyword, [UNDEFINED] , is used when creating user-decoupled // WorkSpaces. // From 8f0ae4b43c8e2070d6b4fb049fbd568d81d3e692 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 9 Dec 2024 19:49:34 +0000 Subject: [PATCH 12/21] Release 2024-12-09 --- .../27a7688f5c2044b0b2078cd87c80bd11.json | 8 -------- .../7e42f1828f8b4840be3fc134aba8fe4f.json | 8 -------- .../a8f773ba9afe4ee3973c90d77a8a7362.json | 8 -------- .../b1fd4a476d7d4b09abbcd8426a4b34da.json | 8 -------- .../b40ba78d34ad45ea8258cf5f11c1dbb2.json | 8 -------- .../c64d90e39b86435fa7fd8e1c2b891187.json | 8 -------- .../ec5b4859331f49ba9dfe1286b219c6e0.json | 8 -------- CHANGELOG.md | 18 ++++++++++++++++++ service/appsync/CHANGELOG.md | 4 ++++ service/appsync/go_module_metadata.go | 2 +- service/bedrock/CHANGELOG.md | 4 ++++ service/bedrock/go_module_metadata.go | 2 +- service/budgets/CHANGELOG.md | 4 ++++ service/budgets/go_module_metadata.go | 2 +- service/cognitoidentity/CHANGELOG.md | 4 ++++ service/cognitoidentity/go_module_metadata.go | 2 +- service/cognitoidentityprovider/CHANGELOG.md | 4 ++++ .../go_module_metadata.go | 2 +- service/ec2/CHANGELOG.md | 4 ++++ service/ec2/go_module_metadata.go | 2 +- service/ecs/CHANGELOG.md | 4 ++++ service/ecs/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 8 ++++---- service/keyspaces/CHANGELOG.md | 4 ++++ service/keyspaces/go_module_metadata.go | 2 +- service/medialive/CHANGELOG.md | 4 ++++ service/medialive/go_module_metadata.go | 2 +- service/workspaces/CHANGELOG.md | 4 ++++ service/workspaces/go_module_metadata.go | 2 +- 29 files changed, 72 insertions(+), 70 deletions(-) delete mode 100644 .changelog/27a7688f5c2044b0b2078cd87c80bd11.json delete mode 100644 .changelog/7e42f1828f8b4840be3fc134aba8fe4f.json delete mode 100644 .changelog/a8f773ba9afe4ee3973c90d77a8a7362.json delete mode 100644 .changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json delete mode 100644 .changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json delete mode 100644 .changelog/c64d90e39b86435fa7fd8e1c2b891187.json delete mode 100644 .changelog/ec5b4859331f49ba9dfe1286b219c6e0.json diff --git a/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json b/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json deleted file mode 100644 index ab2bf2a238a..00000000000 --- a/.changelog/27a7688f5c2044b0b2078cd87c80bd11.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "27a7688f-5c20-44b0-b207-8cd87c80bd11", - "type": "documentation", - "description": "Added text to clarify case-sensitivity", - "modules": [ - "service/workspaces" - ] -} \ No newline at end of file diff --git a/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json b/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json deleted file mode 100644 index 96d70c19642..00000000000 --- a/.changelog/7e42f1828f8b4840be3fc134aba8fe4f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7e42f182-8f8b-4840-be3f-c134aba8fe4f", - "type": "feature", - "description": "Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation.", - "modules": [ - "service/cognitoidentityprovider" - ] -} \ No newline at end of file diff --git a/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json b/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json deleted file mode 100644 index b1ba551b7cc..00000000000 --- a/.changelog/a8f773ba9afe4ee3973c90d77a8a7362.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a8f773ba-9afe-4ee3-973c-90d77a8a7362", - "type": "feature", - "description": "H265 outputs now support disabling the deblocking filter.", - "modules": [ - "service/medialive" - ] -} \ No newline at end of file diff --git a/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json b/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json deleted file mode 100644 index a19b65987cf..00000000000 --- a/.changelog/b1fd4a476d7d4b09abbcd8426a4b34da.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "b1fd4a47-6d7d-4b09-abbc-d8426a4b34da", - "type": "documentation", - "description": "This is a documentation only update to address various tickets for Amazon ECS.", - "modules": [ - "service/ecs" - ] -} \ No newline at end of file diff --git a/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json b/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json deleted file mode 100644 index 2208d3cd608..00000000000 --- a/.changelog/b40ba78d34ad45ea8258cf5f11c1dbb2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "b40ba78d-34ad-45ea-8258-cf5f11c1dbb2", - "type": "documentation", - "description": "Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API.", - "modules": [ - "service/keyspaces" - ] -} \ No newline at end of file diff --git a/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json b/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json deleted file mode 100644 index 2daab05b655..00000000000 --- a/.changelog/c64d90e39b86435fa7fd8e1c2b891187.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c64d90e3-9b86-435f-a7fd-8e1c2b891187", - "type": "documentation", - "description": "Provides description of new Amazon Bedrock runtime datasource.", - "modules": [ - "service/appsync" - ] -} \ No newline at end of file diff --git a/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json b/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json deleted file mode 100644 index cea52db8c8c..00000000000 --- a/.changelog/ec5b4859331f49ba9dfe1286b219c6e0.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "ec5b4859-331f-49ba-9dfe-1286b219c6e0", - "type": "feature", - "description": "This release includes a new API for modifying instance network-performance-options after launch.", - "modules": [ - "service/ec2" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index cb7bc96a091..fa65a8e13ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# Release (2024-12-09) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/appsync`: [v1.40.2](service/appsync/CHANGELOG.md#v1402-2024-12-09) + * **Documentation**: Provides description of new Amazon Bedrock runtime datasource. +* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.48.0](service/cognitoidentityprovider/CHANGELOG.md#v1480-2024-12-09) + * **Feature**: Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation. +* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.196.0](service/ec2/CHANGELOG.md#v11960-2024-12-09) + * **Feature**: This release includes a new API for modifying instance network-performance-options after launch. +* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.52.2](service/ecs/CHANGELOG.md#v1522-2024-12-09) + * **Documentation**: This is a documentation only update to address various tickets for Amazon ECS. +* `github.com/aws/aws-sdk-go-v2/service/keyspaces`: [v1.16.2](service/keyspaces/CHANGELOG.md#v1162-2024-12-09) + * **Documentation**: Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API. +* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.63.0](service/medialive/CHANGELOG.md#v1630-2024-12-09) + * **Feature**: H265 outputs now support disabling the deblocking filter. +* `github.com/aws/aws-sdk-go-v2/service/workspaces`: [v1.50.3](service/workspaces/CHANGELOG.md#v1503-2024-12-09) + * **Documentation**: Added text to clarify case-sensitivity + # Release (2024-12-06) ## Module Highlights diff --git a/service/appsync/CHANGELOG.md b/service/appsync/CHANGELOG.md index 0343c93cc5f..a921d4c61ca 100644 --- a/service/appsync/CHANGELOG.md +++ b/service/appsync/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.40.2 (2024-12-09) + +* **Documentation**: Provides description of new Amazon Bedrock runtime datasource. + # v1.40.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/appsync/go_module_metadata.go b/service/appsync/go_module_metadata.go index 66abf003877..4660b869e47 100644 --- a/service/appsync/go_module_metadata.go +++ b/service/appsync/go_module_metadata.go @@ -3,4 +3,4 @@ package appsync // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.40.1" +const goModuleVersion = "1.40.2" diff --git a/service/bedrock/CHANGELOG.md b/service/bedrock/CHANGELOG.md index 2fce2260c28..a0ec24d6e66 100644 --- a/service/bedrock/CHANGELOG.md +++ b/service/bedrock/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.25.1 (2024-12-09) + +* No change notes available for this release. + # v1.25.0 (2024-12-04) * **Feature**: Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability. diff --git a/service/bedrock/go_module_metadata.go b/service/bedrock/go_module_metadata.go index 60238988ded..0af9944a8b8 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.25.0" +const goModuleVersion = "1.25.1" diff --git a/service/budgets/CHANGELOG.md b/service/budgets/CHANGELOG.md index f3d817c2fe0..5e5c3eb4139 100644 --- a/service/budgets/CHANGELOG.md +++ b/service/budgets/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.8 (2024-12-09) + +* No change notes available for this release. + # v1.28.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/budgets/go_module_metadata.go b/service/budgets/go_module_metadata.go index 39e18a5835d..dc1c6969970 100644 --- a/service/budgets/go_module_metadata.go +++ b/service/budgets/go_module_metadata.go @@ -3,4 +3,4 @@ package budgets // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.28.7" +const goModuleVersion = "1.28.8" diff --git a/service/cognitoidentity/CHANGELOG.md b/service/cognitoidentity/CHANGELOG.md index 77af70ab2d3..4ee03ebd43a 100644 --- a/service/cognitoidentity/CHANGELOG.md +++ b/service/cognitoidentity/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.27.8 (2024-12-09) + +* No change notes available for this release. + # v1.27.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/cognitoidentity/go_module_metadata.go b/service/cognitoidentity/go_module_metadata.go index b2361e9a93b..c4d481580d7 100644 --- a/service/cognitoidentity/go_module_metadata.go +++ b/service/cognitoidentity/go_module_metadata.go @@ -3,4 +3,4 @@ package cognitoidentity // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.7" +const goModuleVersion = "1.27.8" diff --git a/service/cognitoidentityprovider/CHANGELOG.md b/service/cognitoidentityprovider/CHANGELOG.md index 9912cf45d28..38a7f8d5d60 100644 --- a/service/cognitoidentityprovider/CHANGELOG.md +++ b/service/cognitoidentityprovider/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.48.0 (2024-12-09) + +* **Feature**: Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation. + # v1.47.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/cognitoidentityprovider/go_module_metadata.go b/service/cognitoidentityprovider/go_module_metadata.go index b4ef3d94081..66503c819d6 100644 --- a/service/cognitoidentityprovider/go_module_metadata.go +++ b/service/cognitoidentityprovider/go_module_metadata.go @@ -3,4 +3,4 @@ package cognitoidentityprovider // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.47.1" +const goModuleVersion = "1.48.0" diff --git a/service/ec2/CHANGELOG.md b/service/ec2/CHANGELOG.md index c9a157df888..b2af84774c7 100644 --- a/service/ec2/CHANGELOG.md +++ b/service/ec2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.196.0 (2024-12-09) + +* **Feature**: This release includes a new API for modifying instance network-performance-options after launch. + # v1.195.0 (2024-12-02) * **Feature**: Adds support for declarative policies that allow you to enforce desired configuration across an AWS organization through configuring account attributes. Adds support for Allowed AMIs that allows you to limit the use of AMIs in AWS accounts. Adds support for connectivity over non-HTTP protocols. diff --git a/service/ec2/go_module_metadata.go b/service/ec2/go_module_metadata.go index fcb33eed6a9..cf182b2779f 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.195.0" +const goModuleVersion = "1.196.0" diff --git a/service/ecs/CHANGELOG.md b/service/ecs/CHANGELOG.md index 4cf36ad72df..d06c483e8b7 100644 --- a/service/ecs/CHANGELOG.md +++ b/service/ecs/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.52.2 (2024-12-09) + +* **Documentation**: This is a documentation only update to address various tickets for Amazon ECS. + # v1.52.1 (2024-12-02) * **Documentation**: This release adds support for Container Insights with Enhanced Observability for Amazon ECS. diff --git a/service/ecs/go_module_metadata.go b/service/ecs/go_module_metadata.go index a63f2a1a4a3..7bd536a7418 100644 --- a/service/ecs/go_module_metadata.go +++ b/service/ecs/go_module_metadata.go @@ -3,4 +3,4 @@ package ecs // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.52.1" +const goModuleVersion = "1.52.2" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 1efced457a7..0c6e35728dc 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -20,7 +20,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 github.com/aws/aws-sdk-go-v2/service/codedeploy v1.29.7 github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.47.1 + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.48.0 github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.7 github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 @@ -29,9 +29,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.195.0 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0 github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 - github.com/aws/aws-sdk-go-v2/service/ecs v1.52.1 + github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1 github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.7 @@ -80,7 +80,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/waf v1.25.7 github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.7 github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.6 - github.com/aws/aws-sdk-go-v2/service/workspaces v1.50.2 + github.com/aws/aws-sdk-go-v2/service/workspaces v1.50.3 github.com/aws/smithy-go v1.22.1 ) diff --git a/service/keyspaces/CHANGELOG.md b/service/keyspaces/CHANGELOG.md index 45b78df8e1a..8c615c5bcd2 100644 --- a/service/keyspaces/CHANGELOG.md +++ b/service/keyspaces/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.16.2 (2024-12-09) + +* **Documentation**: Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API. + # v1.16.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/keyspaces/go_module_metadata.go b/service/keyspaces/go_module_metadata.go index ef4c6fedea7..d13000c392a 100644 --- a/service/keyspaces/go_module_metadata.go +++ b/service/keyspaces/go_module_metadata.go @@ -3,4 +3,4 @@ package keyspaces // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.16.1" +const goModuleVersion = "1.16.2" diff --git a/service/medialive/CHANGELOG.md b/service/medialive/CHANGELOG.md index 7957f349922..6cf02389d9d 100644 --- a/service/medialive/CHANGELOG.md +++ b/service/medialive/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.63.0 (2024-12-09) + +* **Feature**: H265 outputs now support disabling the deblocking filter. + # v1.62.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/medialive/go_module_metadata.go b/service/medialive/go_module_metadata.go index d6a75ce6a8b..77252ae423f 100644 --- a/service/medialive/go_module_metadata.go +++ b/service/medialive/go_module_metadata.go @@ -3,4 +3,4 @@ package medialive // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.62.7" +const goModuleVersion = "1.63.0" diff --git a/service/workspaces/CHANGELOG.md b/service/workspaces/CHANGELOG.md index 80860c68921..c69f602c171 100644 --- a/service/workspaces/CHANGELOG.md +++ b/service/workspaces/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.50.3 (2024-12-09) + +* **Documentation**: Added text to clarify case-sensitivity + # v1.50.2 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/workspaces/go_module_metadata.go b/service/workspaces/go_module_metadata.go index 592fd66f203..04ea9b2a8d3 100644 --- a/service/workspaces/go_module_metadata.go +++ b/service/workspaces/go_module_metadata.go @@ -3,4 +3,4 @@ package workspaces // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.50.2" +const goModuleVersion = "1.50.3" From 00f1cffb912734acc8b001ec9756f3346d57d846 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 10 Dec 2024 19:41:01 +0000 Subject: [PATCH 13/21] Update API model --- .../aws-models/application-auto-scaling.json | 2 +- .../aws-models/bcm-pricing-calculator.json | 9 +- codegen/sdk-codegen/aws-models/connect.json | 291 +++++++++++++++++- codegen/sdk-codegen/aws-models/dsql.json | 8 +- codegen/sdk-codegen/aws-models/finspace.json | 2 +- .../sdk-codegen/aws-models/ivs-realtime.json | 156 +++++++++- codegen/sdk-codegen/aws-models/sesv2.json | 172 ++++++++++- 7 files changed, 601 insertions(+), 39 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/application-auto-scaling.json b/codegen/sdk-codegen/aws-models/application-auto-scaling.json index c43f482884c..152d7e04d7d 100644 --- a/codegen/sdk-codegen/aws-models/application-auto-scaling.json +++ b/codegen/sdk-codegen/aws-models/application-auto-scaling.json @@ -3015,7 +3015,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Represents a predictive scaling policy configuration.\n

" + "smithy.api#documentation": "

\n Represents a predictive scaling policy configuration. Predictive scaling is supported on Amazon ECS services.\n

" } }, "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedLoadMetricSpecification": { diff --git a/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json b/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json index 459da874ef5..e1576c97812 100644 --- a/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json +++ b/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json @@ -647,7 +647,7 @@ "min": 0, "max": 32 }, - "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:, \\/()]*$" } }, "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModification": { @@ -2395,6 +2395,7 @@ "template": "bill-estimate/{billEstimateId}" }, "aws.api#taggable": {}, + "aws.iam#disableConditionKeyInference": {}, "aws.iam#iamResource": { "name": "bill-estimate" }, @@ -2941,6 +2942,7 @@ "template": "bill-scenario/{billScenarioId}" }, "aws.api#taggable": {}, + "aws.iam#disableConditionKeyInference": {}, "aws.iam#iamResource": { "name": "bill-scenario" }, @@ -5710,7 +5712,7 @@ "min": 0, "max": 32 }, - "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:, \\/()]*$" } }, "com.amazonaws.bcmpricingcalculator#PurchaseAgreementType": { @@ -6592,7 +6594,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:, \\/()]*$" } }, "com.amazonaws.bcmpricingcalculator#Uuid": { @@ -6763,6 +6765,7 @@ "template": "workload-estimate/{workloadEstimateId}" }, "aws.api#taggable": {}, + "aws.iam#disableConditionKeyInference": {}, "aws.iam#iamResource": { "name": "workload-estimate" }, diff --git a/codegen/sdk-codegen/aws-models/connect.json b/codegen/sdk-codegen/aws-models/connect.json index fa7e3be5118..206fb10c275 100644 --- a/codegen/sdk-codegen/aws-models/connect.json +++ b/codegen/sdk-codegen/aws-models/connect.json @@ -997,6 +997,9 @@ { "target": "com.amazonaws.connect#CreatePrompt" }, + { + "target": "com.amazonaws.connect#CreatePushNotificationRegistration" + }, { "target": "com.amazonaws.connect#CreateQueue" }, @@ -1072,6 +1075,9 @@ { "target": "com.amazonaws.connect#DeletePrompt" }, + { + "target": "com.amazonaws.connect#DeletePushNotificationRegistration" + }, { "target": "com.amazonaws.connect#DeleteQueue" }, @@ -1712,7 +1718,7 @@ "name": "connect" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "\n

Amazon Connect is a cloud-based contact center solution that you use to set up and\n manage a customer contact center and provide reliable customer engagement at any scale.

\n

Amazon Connect provides metrics and real-time reporting that enable you to optimize\n contact routing. You can also resolve customer issues more efficiently by getting customers in\n touch with the appropriate agents.

\n

There are limits to the number of Amazon Connect resources that you can create. There\n are also limits to the number of requests that you can make per second. For more information, see\n Amazon Connect Service Quotas in the Amazon Connect Administrator\n Guide.

\n

You can use an endpoint to connect programmatically to an Amazon Web Services service. For\n a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

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

Amazon Connect is a cloud-based contact center solution that you use to set up and\n manage a customer contact center and provide reliable customer engagement at any scale.

\n

Amazon Connect provides metrics and real-time reporting that enable you to optimize\n contact routing. You can also resolve customer issues more efficiently by getting customers in\n touch with the appropriate agents.

\n

There are limits to the number of Amazon Connect resources that you can create. There\n are also limits to the number of requests that you can make per second. For more information, see\n Amazon Connect Service Quotas in the Amazon Connect Administrator\n Guide.

\n

You can use an endpoint to connect programmatically to an Amazon Web Services service. For a\n list of Amazon Connect endpoints, see Amazon Connect Endpoints.

", "smithy.api#title": "Amazon Connect Service", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -3092,7 +3098,7 @@ "ResourceId": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using WHATSAPP_MESSAGING_PHONE_NUMBER\n

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

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using\n SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using\n WHATSAPP_MESSAGING_PHONE_NUMBER\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -4706,7 +4712,7 @@ "ResourceIds": { "target": "com.amazonaws.connect#resourceArnListMaxLimit100", "traits": { - "smithy.api#documentation": "

A list of resource identifiers to retrieve flow associations.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using WHATSAPP_MESSAGING_PHONE_NUMBER\n

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

A list of resource identifiers to retrieve flow associations.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using\n SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using\n WHATSAPP_MESSAGING_PHONE_NUMBER\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -5266,7 +5272,7 @@ "SourcePhoneNumberArn": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The claimed phone number ARN that was previously imported from the external service, such as\n Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks like the ARN of the phone number\n that was imported from Amazon Web Services End User Messaging.

" + "smithy.api#documentation": "

The claimed phone number ARN that was previously imported from the external service, such as\n Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it\n looks like the ARN of the phone number that was imported from Amazon Web Services End User\n Messaging.

" } } }, @@ -5723,6 +5729,34 @@ "smithy.api#documentation": "

A structure that defines search criteria for contacts using analysis outputs from Amazon Connect Contact Lens.

" } }, + "com.amazonaws.connect#ContactConfiguration": { + "type": "structure", + "members": { + "ContactId": { + "target": "com.amazonaws.connect#ContactId", + "traits": { + "smithy.api#documentation": "

The identifier of the contact within the Amazon Connect instance.

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

The role of the participant in the chat conversation.

" + } + }, + "IncludeRawMessage": { + "target": "com.amazonaws.connect#IncludeRawMessage", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Whether to include raw connect message in the push notification payload. Default is\n False.

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

The contact configuration for push notification registration.

" + } + }, "com.amazonaws.connect#ContactDataRequest": { "type": "structure", "members": { @@ -8013,7 +8047,7 @@ "IntegrationArn": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the integration.

\n \n

When integrating with Amazon Web Services End User Messaging, the Amazon Connect and Amazon Web Services End User Messaging\n instances must be in the same account.

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

The Amazon Resource Name (ARN) of the integration.

\n \n

When integrating with Amazon Web Services End User Messaging, the Amazon Connect and\n Amazon Web Services End User Messaging instances must be in the same account.

\n
", "smithy.api#required": {} } }, @@ -8420,6 +8454,109 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#CreatePushNotificationRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#CreatePushNotificationRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.connect#CreatePushNotificationRegistrationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates registration for a device token and a chat contact to receive real-time push\n notifications. For more information about push notifications, see Set up push\n notifications in Amazon Connect for mobile chat in the Amazon Connect\n Administrator Guide.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/push-notification/{InstanceId}/registrations", + "code": 200 + } + } + }, + "com.amazonaws.connect#CreatePushNotificationRegistrationRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instance ID in the\n Amazon Resource Name (ARN) of the instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.connect#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. If not provided, the Amazon Web Services\n SDK populates this field. For more information about idempotency, see\n Making retries safe with idempotent APIs.

", + "smithy.api#idempotencyToken": {} + } + }, + "PinpointAppArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Pinpoint application.

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

The push notification token issued by the Apple or Google gateways.

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

The device type to use when sending the message.

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

The contact configuration for push notification registration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#CreatePushNotificationRegistrationResponse": { + "type": "structure", + "members": { + "RegistrationId": { + "target": "com.amazonaws.connect#RegistrationId", + "traits": { + "smithy.api#documentation": "

The identifier for the registration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#CreateQueue": { "type": "operation", "input": { @@ -11100,6 +11237,79 @@ "smithy.api#input": {} } }, + "com.amazonaws.connect#DeletePushNotificationRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DeletePushNotificationRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.connect#DeletePushNotificationRegistrationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes registration for a device token and a chat contact.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/push-notification/{InstanceId}/registrations/{RegistrationId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DeletePushNotificationRegistrationRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instance ID in the\n Amazon Resource Name (ARN) of the instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "RegistrationId": { + "target": "com.amazonaws.connect#RegistrationId", + "traits": { + "smithy.api#documentation": "

The identifier for the registration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ContactId": { + "target": "com.amazonaws.connect#ContactId", + "traits": { + "smithy.api#documentation": "

The identifier of the contact within the Amazon Connect instance.

", + "smithy.api#httpQuery": "contactId", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#DeletePushNotificationRegistrationResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#DeleteQueue": { "type": "operation", "input": { @@ -12899,7 +13109,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets details and status of a phone number that’s claimed to your Amazon Connect instance\n or traffic distribution group.

\n \n

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region\n where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the\n PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group\n and you are calling this API in the alternate Amazon Web Services Region associated with the\n traffic distribution group, you must provide a full phone number ARN. If a UUID is provided\n in\n this scenario, you receive a\n ResourceNotFoundException.

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

Gets details and status of a phone number that’s claimed to your Amazon Connect instance\n or traffic distribution group.

\n \n

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region\n where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the\n PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group\n and you are calling this API in the alternate Amazon Web Services Region associated with the\n traffic distribution group, you must provide a full phone number ARN. If a UUID is provided\n in\n this scenario, you receive a ResourceNotFoundException.

\n
", "smithy.api#http": { "method": "GET", "uri": "/phone-number/{PhoneNumberId}", @@ -13937,6 +14147,38 @@ "smithy.api#documentation": "

Information regarding the device.

" } }, + "com.amazonaws.connect#DeviceToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.connect#DeviceType": { + "type": "enum", + "members": { + "GCM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GCM" + } + }, + "APNS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APNS" + } + }, + "APNS_SANDBOX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APNS_SANDBOX" + } + } + } + }, "com.amazonaws.connect#Dimensions": { "type": "structure", "members": { @@ -14256,7 +14498,7 @@ "ResourceId": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using WHATSAPP_MESSAGING_PHONE_NUMBER\n

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

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using\n SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using\n WHATSAPP_MESSAGING_PHONE_NUMBER\n

    \n
  • \n
", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18004,7 +18246,7 @@ "ResourceId": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using WHATSAPP_MESSAGING_PHONE_NUMBER\n

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

The identifier of the resource.

\n
    \n
  • \n

    Amazon Web Services End User Messaging SMS phone number ARN when using\n SMS_PHONE_NUMBER\n

    \n
  • \n
  • \n

    Amazon Web Services End User Messaging Social phone number ARN when using\n WHATSAPP_MESSAGING_PHONE_NUMBER\n

    \n
  • \n
", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -19726,7 +19968,7 @@ } ], "traits": { - "smithy.api#documentation": "

Imports a claimed phone number from an external service, such as Amazon Web Services End User Messaging, into an\n Amazon Connect instance. You can call this API only in the same Amazon Web Services Region\n where the Amazon Connect instance was created.

\n \n

Call the DescribePhoneNumber API\n to verify the status of a previous ImportPhoneNumber operation.

\n
\n

If you plan to claim or import numbers and then release numbers frequently, contact us for a\n service quota exception. Otherwise, it is possible you will be blocked from claiming and\n releasing any more numbers until up to 180 days past the oldest number released has expired.

\n

By default you can claim or import and then release up to 200% of your maximum number of\n active phone numbers. If you claim or import and then release phone numbers using the UI or API\n during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you\n will be blocked from claiming or importing any more numbers until 180 days past the oldest number\n released has expired.

\n

For example, if you already have 99 claimed or imported numbers and a service level quota of\n 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you\n will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers\n until you open an Amazon Web Services Support ticket.

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

Imports a claimed phone number from an external service, such as Amazon Web Services End User\n Messaging, into an Amazon Connect instance. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance was created.

\n \n

Call the DescribePhoneNumber API\n to verify the status of a previous ImportPhoneNumber operation.

\n
\n

If you plan to claim or import numbers and then release numbers frequently, contact us for a\n service quota exception. Otherwise, it is possible you will be blocked from claiming and\n releasing any more numbers until up to 180 days past the oldest number released has expired.

\n

By default you can claim or import and then release up to 200% of your maximum number of\n active phone numbers. If you claim or import and then release phone numbers using the UI or API\n during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you\n will be blocked from claiming or importing any more numbers until 180 days past the oldest number\n released has expired.

\n

For example, if you already have 99 claimed or imported numbers and a service level quota of\n 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you\n will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers\n until you open an Amazon Web Services Support ticket.

", "smithy.api#http": { "method": "POST", "uri": "/phone-number/import", @@ -19747,7 +19989,7 @@ "SourcePhoneNumberArn": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The claimed phone number ARN being imported from the external service, such as Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks like the ARN of the phone number to\n import from Amazon Web Services End User Messaging.

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

The claimed phone number ARN being imported from the external service, such as Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks\n like the ARN of the phone number to import from Amazon Web Services End User Messaging.

", "smithy.api#required": {} } }, @@ -19895,6 +20137,12 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.connect#IncludeRawMessage": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.connect#Index": { "type": "integer" }, @@ -23220,7 +23468,7 @@ "SourcePhoneNumberArn": { "target": "com.amazonaws.connect#ARN", "traits": { - "smithy.api#documentation": "

The claimed phone number ARN that was previously imported from the external service, such as\n Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks like the ARN of the phone number\n that was imported from Amazon Web Services End User Messaging.

" + "smithy.api#documentation": "

The claimed phone number ARN that was previously imported from the external service, such as\n Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it\n looks like the ARN of the phone number that was imported from Amazon Web Services End User\n Messaging.

" } } }, @@ -25914,7 +26162,7 @@ "MetricFilterValues": { "target": "com.amazonaws.connect#MetricFilterValueList", "traits": { - "smithy.api#documentation": "

The values to use for filtering data. Values for metric-level filters can be either a fixed\n set of values or a customized list, depending on the use case.

\n

For valid values of metric-level filters INITIATION_METHOD,\n DISCONNECT_REASON, and ANSWERING_MACHINE_DETECTION_STATUS, see ContactTraceRecord in the Amazon Connect Administrator Guide.

\n

For valid values of the metric-level filter FLOWS_OUTCOME_TYPE, see the\n description for the Flow outcome metric in the Amazon Connect Administrator\n Guide.

\n

For valid values of the metric-level filter BOT_CONVERSATION_OUTCOME_TYPE, see the\n description for the \n Bot conversations completed\n \n in the Amazon Connect Administrator\n Guide.

\n

For valid values of the metric-level filter BOT_INTENT_OUTCOME_TYPE, see the description for\n the \n Bot intents completed\n \n metric in the Amazon Connect Administrator\n Guide.

" + "smithy.api#documentation": "

The values to use for filtering data. Values for metric-level filters can be either a fixed\n set of values or a customized list, depending on the use case.

\n

For valid values of metric-level filters INITIATION_METHOD,\n DISCONNECT_REASON, and ANSWERING_MACHINE_DETECTION_STATUS, see ContactTraceRecord in the Amazon Connect Administrator Guide.

\n

For valid values of the metric-level filter FLOWS_OUTCOME_TYPE, see the\n description for the Flow outcome metric in the Amazon Connect Administrator\n Guide.

\n

For valid values of the metric-level filter BOT_CONVERSATION_OUTCOME_TYPE, see\n the description for the Bot\n conversations completed in the Amazon Connect Administrator\n Guide.

\n

For valid values of the metric-level filter BOT_INTENT_OUTCOME_TYPE, see the\n description for the Bot intents\n completed metric in the Amazon Connect Administrator\n Guide.

" } }, "Negate": { @@ -31014,6 +31262,15 @@ "smithy.api#pattern": "^[a-z]{2}(-[a-z]+){1,2}(-[0-9])?$" } }, + "com.amazonaws.connect#RegistrationId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, "com.amazonaws.connect#RehydrationType": { "type": "enum", "members": { @@ -34958,7 +35215,7 @@ } ], "traits": { - "smithy.api#documentation": "

Processes chat integration events from Amazon Web Services or external integrations to\n Amazon Connect. A chat integration event includes:

\n
    \n
  • \n

    SourceId, DestinationId, and Subtype: a set of identifiers, uniquely representing a\n chat

    \n
  • \n
  • \n

    ChatEvent: details of the chat action to perform such as sending a message, event, or\n disconnecting from a chat

    \n
  • \n
\n

When a chat integration event is sent with chat identifiers that do not map to an active\n chat contact, a new chat contact is also created before handling chat action.

\n

Access to this API is currently restricted to Amazon Web Services End User Messaging for supporting SMS\n integration.

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

Processes chat integration events from Amazon Web Services or external integrations to\n Amazon Connect. A chat integration event includes:

\n
    \n
  • \n

    SourceId, DestinationId, and Subtype: a set of identifiers, uniquely representing a\n chat

    \n
  • \n
  • \n

    ChatEvent: details of the chat action to perform such as sending a message, event, or\n disconnecting from a chat

    \n
  • \n
\n

When a chat integration event is sent with chat identifiers that do not map to an active\n chat contact, a new chat contact is also created before handling chat action.

\n

Access to this API is currently restricted to Amazon Web Services End User Messaging for\n supporting SMS integration.

", "smithy.api#http": { "method": "POST", "uri": "/chat-integration-event", @@ -34979,7 +35236,7 @@ "DestinationId": { "target": "com.amazonaws.connect#DestinationId", "traits": { - "smithy.api#documentation": "

Chat system identifier, used in part to uniquely identify chat. This is associated with the\n Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is the phone\n number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number\n ARN.

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

Chat system identifier, used in part to uniquely identify chat. This is associated with the\n Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is\n the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.

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

Initiates a new outbound SMS contact to a customer. Response of this API provides the\n ContactId of the outbound SMS contact created.

\n

\n SourceEndpoint only supports Endpoints with\n CONNECT_PHONENUMBER_ARN as Type and DestinationEndpoint only supports Endpoints with TELEPHONE_NUMBER as\n Type. ContactFlowId initiates the flow to manage the new SMS\n contact created.

\n

This API can be used to initiate outbound SMS contacts for an agent, or it can also deflect\n an ongoing contact to an outbound SMS contact by using the StartOutboundChatContact Flow Action.

\n

For more information about using SMS in Amazon Connect, see the following topics in the\n Amazon Connect Administrator Guide:

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

Initiates a new outbound SMS contact to a customer. Response of this API provides the\n ContactId of the outbound SMS contact created.

\n

\n SourceEndpoint only supports Endpoints with\n CONNECT_PHONENUMBER_ARN as Type and DestinationEndpoint only supports Endpoints with TELEPHONE_NUMBER as\n Type. ContactFlowId initiates the flow to manage the new SMS\n contact created.

\n

This API can be used to initiate outbound SMS contacts for an agent, or it can also deflect\n an ongoing contact to an outbound SMS contact by using the StartOutboundChatContact Flow Action.

\n

For more information about using SMS in Amazon Connect, see the following topics in the\n Amazon Connect Administrator Guide:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/contact/outbound-chat", @@ -39853,13 +40110,13 @@ "CustomerEndpoint": { "target": "com.amazonaws.connect#Endpoint", "traits": { - "smithy.api#documentation": "

The endpoint of the customer for which the contact was initiated. For external audio\n contacts, this is usually the end customer's phone number. This value can only be updated for\n external audio contacts. For more information, see Amazon Connect\n Contact Lens integration in the Amazon Connect Administrator Guide.

" + "smithy.api#documentation": "

The endpoint of the customer for which the contact was initiated. For external audio\n contacts, this is usually the end customer's phone number. This value can only be updated for\n external audio contacts. For more information, see Amazon Connect Contact Lens\n integration in the Amazon Connect Administrator Guide.

" } }, "SystemEndpoint": { "target": "com.amazonaws.connect#Endpoint", "traits": { - "smithy.api#documentation": "

External system endpoint for the contact was initiated. For external audio contacts, this is\n the phone number of the external system such as the contact center. This value can only be\n updated for external audio contacts. For more information, see Amazon Connect\n Contact Lens integration in the Amazon Connect Administrator Guide.

" + "smithy.api#documentation": "

External system endpoint for the contact was initiated. For external audio contacts, this is\n the phone number of the external system such as the contact center. This value can only be\n updated for external audio contacts. For more information, see Amazon Connect Contact Lens\n integration in the Amazon Connect Administrator Guide.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/dsql.json b/codegen/sdk-codegen/aws-models/dsql.json index 0807319d06c..ac03126cd09 100644 --- a/codegen/sdk-codegen/aws-models/dsql.json +++ b/codegen/sdk-codegen/aws-models/dsql.json @@ -385,8 +385,8 @@ }, "output": { "linkedClusterArns": [ - "arn:aws:xanadu:us-east-1:111122223333:cluster/abcdefghijklmnopqrst12345", - "arn:aws:xanadu:us-east-2:111122223333:cluster/klmnopqrstuvwxyzabcd54321" + "arn:aws:dsql:us-east-1:111122223333:cluster/abcdefghijklmnopqrst12345", + "arn:aws:dsql:us-east-2:111122223333:cluster/klmnopqrstuvwxyzabcd54321" ] } } @@ -973,8 +973,8 @@ "title": "Delete Multi Region Clusters", "input": { "linkedClusterArns": [ - "arn:aws:xanadu:us-east-1:111122223333:cluster/abcdefghijklmnopqrst12345", - "arn:aws:xanadu:us-east-2:111122223333:cluster/klmnopqrstuvwxyzabcd54321" + "arn:aws:dsql:us-east-1:111122223333:cluster/abcdefghijklmnopqrst12345", + "arn:aws:dsql:us-east-2:111122223333:cluster/klmnopqrstuvwxyzabcd54321" ] } } diff --git a/codegen/sdk-codegen/aws-models/finspace.json b/codegen/sdk-codegen/aws-models/finspace.json index 14533a31136..0d850b0733a 100644 --- a/codegen/sdk-codegen/aws-models/finspace.json +++ b/codegen/sdk-codegen/aws-models/finspace.json @@ -5723,7 +5723,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "^[a-zA-Z0-9_:./,]+$" + "smithy.api#pattern": "^[a-zA-Z0-9_:./,; ]+$" } }, "com.amazonaws.finspace#KxCommandLineArguments": { diff --git a/codegen/sdk-codegen/aws-models/ivs-realtime.json b/codegen/sdk-codegen/aws-models/ivs-realtime.json index 4f32146ef92..d8fed37e168 100644 --- a/codegen/sdk-codegen/aws-models/ivs-realtime.json +++ b/codegen/sdk-codegen/aws-models/ivs-realtime.json @@ -854,6 +854,12 @@ "traits": { "smithy.api#documentation": "

Types of media to be recorded. Default: AUDIO_VIDEO.

" } + }, + "thumbnailConfiguration": { + "target": "com.amazonaws.ivsrealtime#ParticipantThumbnailConfiguration", + "traits": { + "smithy.api#documentation": "

A complex type that allows you to enable/disable the recording of thumbnails for individual participant recording\n and modify the interval at which thumbnails are generated for the live session.

" + } } }, "traits": { @@ -1084,6 +1090,38 @@ "target": "com.amazonaws.ivsrealtime#CompositionSummary" } }, + "com.amazonaws.ivsrealtime#CompositionThumbnailConfiguration": { + "type": "structure", + "members": { + "targetIntervalSeconds": { + "target": "com.amazonaws.ivsrealtime#ThumbnailIntervalSeconds", + "traits": { + "smithy.api#documentation": "

The targeted thumbnail-generation interval in seconds. Default: 60.

" + } + }, + "storage": { + "target": "com.amazonaws.ivsrealtime#ThumbnailStorageTypeList", + "traits": { + "smithy.api#documentation": "

Indicates the format in which thumbnails are recorded. SEQUENTIAL records all generated thumbnails\n in a serial manner, to the media/thumbnails/(width)x(height) directory, where (width) and (height) are the width\n\t and height of the thumbnail. LATEST saves the latest thumbnail in\n\t media/latest_thumbnail/(width)x(height)/thumb.jpg and overwrites it at the interval specified by\n\t targetIntervalSeconds. You can enable both SEQUENTIAL and LATEST.\n\t Default: SEQUENTIAL.

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

An object representing a configuration of thumbnails for recorded video for a Composition.

" + } + }, + "com.amazonaws.ivsrealtime#CompositionThumbnailConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ivsrealtime#CompositionThumbnailConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } + } + }, "com.amazonaws.ivsrealtime#ConflictException": { "type": "structure", "members": { @@ -4318,18 +4356,26 @@ } }, "com.amazonaws.ivsrealtime#ParticipantRecordingMediaType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "AUDIO_VIDEO", - "name": "AUDIO_VIDEO" - }, - { - "value": "AUDIO_ONLY", - "name": "AUDIO_ONLY" + "type": "enum", + "members": { + "AUDIO_VIDEO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUDIO_VIDEO" } - ] + }, + "AUDIO_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUDIO_ONLY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } } }, "com.amazonaws.ivsrealtime#ParticipantRecordingMediaTypeList": { @@ -4455,6 +4501,32 @@ "smithy.api#documentation": "

Summary object describing a participant that has joined a stage.

" } }, + "com.amazonaws.ivsrealtime#ParticipantThumbnailConfiguration": { + "type": "structure", + "members": { + "targetIntervalSeconds": { + "target": "com.amazonaws.ivsrealtime#ThumbnailIntervalSeconds", + "traits": { + "smithy.api#documentation": "

The targeted thumbnail-generation interval in seconds. This is configurable only if\n recordingMode is INTERVAL. Default: 60.

" + } + }, + "storage": { + "target": "com.amazonaws.ivsrealtime#ThumbnailStorageTypeList", + "traits": { + "smithy.api#documentation": "

Indicates the format in which thumbnails are recorded. SEQUENTIAL records all generated thumbnails\n in a serial manner, to the media/thumbnails/high directory. LATEST saves the latest thumbnail\n\t in media/latest_thumbnail/high/thumb.jpg and overwrites it at the interval specified by\n\t targetIntervalSeconds. You can enable both SEQUENTIAL and LATEST.\n\t Default: SEQUENTIAL.

" + } + }, + "recordingMode": { + "target": "com.amazonaws.ivsrealtime#ThumbnailRecordingMode", + "traits": { + "smithy.api#documentation": "

Thumbnail recording mode. Default: DISABLED.

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

An object representing a configuration of thumbnails for recorded video from an individual participant.

" + } + }, "com.amazonaws.ivsrealtime#ParticipantToken": { "type": "structure", "members": { @@ -4970,6 +5042,12 @@ "traits": { "smithy.api#documentation": "

Array of maps, each of the form string:string (key:value). \n\t This is an optional customer specification, currently used only to specify \n\t the recording format for storing a recording in Amazon S3.

" } + }, + "thumbnailConfigurations": { + "target": "com.amazonaws.ivsrealtime#CompositionThumbnailConfigurationList", + "traits": { + "smithy.api#documentation": "

A complex type that allows you to enable/disable the recording of thumbnails for a Composition\n and modify the interval at which thumbnails are generated for the live session.

" + } } }, "traits": { @@ -5584,6 +5662,62 @@ } } }, + "com.amazonaws.ivsrealtime#ThumbnailIntervalSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 86400 + } + } + }, + "com.amazonaws.ivsrealtime#ThumbnailRecordingMode": { + "type": "enum", + "members": { + "INTERVAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERVAL" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ivsrealtime#ThumbnailStorageType": { + "type": "enum", + "members": { + "SEQUENTIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SEQUENTIAL" + } + }, + "LATEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LATEST" + } + } + } + }, + "com.amazonaws.ivsrealtime#ThumbnailStorageTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ivsrealtime#ThumbnailStorageType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + }, + "smithy.api#uniqueItems": {} + } + }, "com.amazonaws.ivsrealtime#Time": { "type": "timestamp", "traits": { diff --git a/codegen/sdk-codegen/aws-models/sesv2.json b/codegen/sdk-codegen/aws-models/sesv2.json index ee582febf83..bbbda9dbc68 100644 --- a/codegen/sdk-codegen/aws-models/sesv2.json +++ b/codegen/sdk-codegen/aws-models/sesv2.json @@ -2939,7 +2939,7 @@ "SigningAttributesOrigin": { "target": "com.amazonaws.sesv2#DkimSigningAttributesOrigin", "traits": { - "smithy.api#documentation": "

A string that indicates how DKIM was configured for the identity. These are the\n possible values:

\n
    \n
  • \n

    \n AWS_SES – Indicates that DKIM was configured for the\n identity by using Easy DKIM.

    \n
  • \n
  • \n

    \n EXTERNAL – Indicates that DKIM was configured for the\n identity by using Bring Your Own DKIM (BYODKIM).

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

A string that indicates how DKIM was configured for the identity. These are the\n possible values:

\n
    \n
  • \n

    \n AWS_SES – Indicates that DKIM was configured for the\n identity by using Easy DKIM.

    \n
  • \n
  • \n

    \n EXTERNAL – Indicates that DKIM was configured for the\n identity by using Bring Your Own DKIM (BYODKIM).

    \n
  • \n
  • \n

    \n AWS_SES_AF_SOUTH_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Africa (Cape Town) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_NORTH_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (Stockholm) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTH_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Mumbai) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_3 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (Paris) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_2 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (London) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_SOUTH_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (Milan) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (Ireland) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_3 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Osaka) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_2 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Seoul) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_ME_SOUTH_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Middle East (Bahrain) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Tokyo) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_IL_CENTRAL_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Israel (Tel Aviv) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_SA_EAST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in South America (São Paulo) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_CA_CENTRAL_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Canada (Central) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Singapore) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_2 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Sydney) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_3 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Asia Pacific (Jakarta) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_CENTRAL_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in Europe (Frankfurt) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_EAST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in US East (N. Virginia) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_EAST_2 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in US East (Ohio) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_WEST_1 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in US West (N. California) region using Deterministic Easy-DKIM\n (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_WEST_2 – Indicates that DKIM was configured for the identity by\n replicating signing attributes from a parent identity in US West (Oregon) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
" } }, "NextSigningKeyLength": { @@ -2985,6 +2985,12 @@ "traits": { "smithy.api#documentation": "

[Easy DKIM] The key length of the future DKIM key pair to be generated. This can be\n changed at most once per day.

" } + }, + "DomainSigningAttributesOrigin": { + "target": "com.amazonaws.sesv2#DkimSigningAttributesOrigin", + "traits": { + "smithy.api#documentation": "

The attribute to use for configuring DKIM for the identity depends on the\n operation:\n

\n
    \n
  1. \n

    For PutEmailIdentityDkimSigningAttributes:\n

    \n \n
  2. \n
  3. \n

    For CreateEmailIdentity when replicating a parent identity's DKIM\n configuration:\n

    \n
      \n
    • \n

      Allowed values: All values except AWS_SES and\n EXTERNAL\n

      \n
    • \n
    \n
  4. \n
\n
    \n
  • \n

    \n AWS_SES – Configure DKIM for the identity by using Easy DKIM.\n

    \n
  • \n
  • \n

    \n EXTERNAL – Configure DKIM for the identity by using Bring Your Own DKIM\n (BYODKIM).\n

    \n
  • \n
  • \n

    \n AWS_SES_AF_SOUTH_1 – Configure DKIM for the identity by replicating from a parent\n identity in Africa (Cape Town) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_NORTH_1 – Configure DKIM for the identity by replicating from a parent\n identity in Europe (Stockholm) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTH_1 – Configure DKIM for the identity by replicating from a parent\n identity in Asia Pacific (Mumbai) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_3 – Configure DKIM for the identity by replicating from a parent\n identity in Europe (Paris) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_2 – Configure DKIM for the identity by replicating from a parent\n identity in Europe (London) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_SOUTH_1 – Configure DKIM for the identity by replicating from a parent\n identity in Europe (Milan) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_WEST_1 – Configure DKIM for the identity by replicating from a parent\n identity in Europe (Ireland) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_3 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Osaka) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_2 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Seoul) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_ME_SOUTH_1 – Configure DKIM for the identity by replicating from a parent\n identity in Middle East (Bahrain) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_NORTHEAST_1 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Tokyo) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_IL_CENTRAL_1 – Configure DKIM for the identity by replicating from a\n parent identity in Israel (Tel Aviv) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_SA_EAST_1 – Configure DKIM for the identity by replicating from a parent\n identity in South America (São Paulo) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_CA_CENTRAL_1 – Configure DKIM for the identity by replicating from a\n parent identity in Canada (Central) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_1 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Singapore) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_2 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Sydney) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_AP_SOUTHEAST_3 – Configure DKIM for the identity by replicating from a\n parent identity in Asia Pacific (Jakarta) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_EU_CENTRAL_1 – Configure DKIM for the identity by replicating from a\n parent identity in Europe (Frankfurt) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_EAST_1 – Configure DKIM for the identity by replicating from a parent\n identity in US East (N. Virginia) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_EAST_2 – Configure DKIM for the identity by replicating from a parent\n identity in US East (Ohio) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_WEST_1 – Configure DKIM for the identity by replicating from a parent\n identity in US West (N. California) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
  • \n

    \n AWS_SES_US_WEST_2 – Configure DKIM for the identity by replicating from a parent\n identity in US West (Oregon) region using Deterministic Easy-DKIM (DEED).\n

    \n
  • \n
" + } } }, "traits": { @@ -3005,6 +3011,138 @@ "traits": { "smithy.api#enumValue": "EXTERNAL" } + }, + "AWS_SES_AF_SOUTH_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AF_SOUTH_1" + } + }, + "AWS_SES_EU_NORTH_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_NORTH_1" + } + }, + "AWS_SES_AP_SOUTH_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_SOUTH_1" + } + }, + "AWS_SES_EU_WEST_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_WEST_3" + } + }, + "AWS_SES_EU_WEST_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_WEST_2" + } + }, + "AWS_SES_EU_SOUTH_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_SOUTH_1" + } + }, + "AWS_SES_EU_WEST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_WEST_1" + } + }, + "AWS_SES_AP_NORTHEAST_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_NORTHEAST_3" + } + }, + "AWS_SES_AP_NORTHEAST_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_NORTHEAST_2" + } + }, + "AWS_SES_ME_SOUTH_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_ME_SOUTH_1" + } + }, + "AWS_SES_AP_NORTHEAST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_NORTHEAST_1" + } + }, + "AWS_SES_IL_CENTRAL_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_IL_CENTRAL_1" + } + }, + "AWS_SES_SA_EAST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_SA_EAST_1" + } + }, + "AWS_SES_CA_CENTRAL_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_CA_CENTRAL_1" + } + }, + "AWS_SES_AP_SOUTHEAST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_SOUTHEAST_1" + } + }, + "AWS_SES_AP_SOUTHEAST_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_SOUTHEAST_2" + } + }, + "AWS_SES_AP_SOUTHEAST_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_AP_SOUTHEAST_3" + } + }, + "AWS_SES_EU_CENTRAL_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_EU_CENTRAL_1" + } + }, + "AWS_SES_US_EAST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_US_EAST_1" + } + }, + "AWS_SES_US_EAST_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_US_EAST_2" + } + }, + "AWS_SES_US_WEST_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_US_WEST_1" + } + }, + "AWS_SES_US_WEST_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SES_US_WEST_2" + } } } }, @@ -12618,6 +12756,36 @@ "traits": { "smithy.api#enumValue": "INVALID_VALUE" } + }, + "REPLICATION_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICATION_ACCESS_DENIED" + } + }, + "REPLICATION_PRIMARY_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICATION_PRIMARY_NOT_FOUND" + } + }, + "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED" + } + }, + "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED" + } + }, + "REPLICATION_PRIMARY_INVALID_REGION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICATION_PRIMARY_INVALID_REGION" + } } } }, @@ -12639,7 +12807,7 @@ "ErrorType": { "target": "com.amazonaws.sesv2#VerificationError", "traits": { - "smithy.api#documentation": "

Provides the reason for the failure describing why Amazon SES was not able to successfully\n verify the identity. Below are the possible values:

\n
    \n
  • \n

    \n INVALID_VALUE – Amazon SES was able to find the record, but the\n value contained within the record was invalid. Ensure you have published the\n correct values for the record.

    \n
  • \n
  • \n

    \n TYPE_NOT_FOUND – The queried hostname exists but does not\n have the requested type of DNS record. Ensure that you have published the\n correct type of DNS record.

    \n
  • \n
  • \n

    \n HOST_NOT_FOUND – The queried hostname does not exist or was\n not reachable at the time of the request. Ensure that you have published the\n required DNS record(s).

    \n
  • \n
  • \n

    \n SERVICE_ERROR – A temporary issue is preventing Amazon SES from\n determining the verification status of the domain.

    \n
  • \n
  • \n

    \n DNS_SERVER_ERROR – The DNS server encountered an issue and\n was unable to complete the request.

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

Provides the reason for the failure describing why Amazon SES was not able to successfully\n verify the identity. Below are the possible values:

\n
    \n
  • \n

    \n INVALID_VALUE – Amazon SES was able to find the record, but the\n value contained within the record was invalid. Ensure you have published the\n correct values for the record.

    \n
  • \n
  • \n

    \n TYPE_NOT_FOUND – The queried hostname exists but does not\n have the requested type of DNS record. Ensure that you have published the\n correct type of DNS record.

    \n
  • \n
  • \n

    \n HOST_NOT_FOUND – The queried hostname does not exist or was\n not reachable at the time of the request. Ensure that you have published the\n required DNS record(s).

    \n
  • \n
  • \n

    \n SERVICE_ERROR – A temporary issue is preventing Amazon SES from\n determining the verification status of the domain.

    \n
  • \n
  • \n

    \n DNS_SERVER_ERROR – The DNS server encountered an issue and\n was unable to complete the request.

    \n
  • \n
  • \n

    \n REPLICATION_ACCESS_DENIED – The verification failed because the user does not\n have the required permissions to replicate the DKIM key from the primary region. Ensure you have the\n necessary permissions in both primary and replica regions.\n

    \n
  • \n
  • \n

    \n REPLICATION_PRIMARY_NOT_FOUND – The verification failed because no corresponding\n identity was found in the specified primary region. Ensure the identity exists in the primary region\n before attempting replication.\n

    \n
  • \n
  • \n

    \n REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED – The verification failed because the\n identity in the primary region is configured with Bring Your Own DKIM (BYODKIM). DKIM key\n replication is only supported for identities using Easy DKIM.\n

    \n
  • \n
  • \n

    \n REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED – The verification failed because\n the specified primary identity is a replica of another identity, and multi-level replication is not\n supported; the primary identity must be a non-replica identity.\n

    \n
  • \n
  • \n

    \n REPLICATION_PRIMARY_INVALID_REGION – The verification failed due to an invalid\n primary region specified. Ensure you provide a valid AWS region where Amazon SES is available and different\n from the replica region.\n

    \n
  • \n
" } }, "SOARecord": { From 0414321faea2c9d6ee0ad27b59450009a4458fed Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 10 Dec 2024 19:41:01 +0000 Subject: [PATCH 14/21] Update endpoints model --- .../amazon/smithy/aws/go/codegen/endpoints.json | 17 +++++++++++++++++ 1 file changed, 17 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 7f973b234b4..79bb797e8a0 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 @@ -30564,6 +30564,23 @@ } }, "services" : { + "agreement-marketplace" : { + "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov" + }, + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } + } + }, "api.ecr" : { "endpoints" : { "us-iso-east-1" : { From 00d45b958fe01b030932a0c598e815b7ba77d8b9 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 10 Dec 2024 20:01:31 +0000 Subject: [PATCH 15/21] Regenerated Clients --- .../12659648a3074e19bc0aa0f0b0ee6928.json | 8 + .../1663b7a4b7e745ae9d611d24dd25ec83.json | 8 + .../4ea9c355e6b54bbda80350a7b486a50b.json | 8 + .../61fb913176e94bcfb2724ba1064987fa.json | 8 + .../7acd60b316ce4c309a041258bbc4d824.json | 8 + .../8dbd2253fe7d4235945c9d9ca5814ba5.json | 8 + .../fd1431c3174e44c69e30fc1a066deba8.json | 8 + service/applicationautoscaling/types/types.go | 4 +- ...i_op_CreatePushNotificationRegistration.go | 229 +++++++++++++++ ...i_op_DeletePushNotificationRegistration.go | 165 +++++++++++ service/connect/deserializers.go | 271 ++++++++++++++++++ service/connect/generated.json | 2 + service/connect/serializers.go | 222 ++++++++++++++ ...CreatePushNotificationRegistration.go.snap | 42 +++ ...DeletePushNotificationRegistration.go.snap | 41 +++ service/connect/snapshot_test.go | 48 ++++ service/connect/types/enums.go | 21 ++ service/connect/types/types.go | 26 +- service/connect/validators.go | 115 ++++++++ service/ivsrealtime/deserializers.go | 187 ++++++++++++ service/ivsrealtime/serializers.go | 81 ++++++ service/ivsrealtime/types/enums.go | 40 +++ service/ivsrealtime/types/types.go | 49 ++++ .../internal/endpoints/endpoints.go | 20 ++ service/sesv2/serializers.go | 5 + service/sesv2/types/enums.go | 68 ++++- service/sesv2/types/types.go | 214 ++++++++++++++ 27 files changed, 1892 insertions(+), 14 deletions(-) create mode 100644 .changelog/12659648a3074e19bc0aa0f0b0ee6928.json create mode 100644 .changelog/1663b7a4b7e745ae9d611d24dd25ec83.json create mode 100644 .changelog/4ea9c355e6b54bbda80350a7b486a50b.json create mode 100644 .changelog/61fb913176e94bcfb2724ba1064987fa.json create mode 100644 .changelog/7acd60b316ce4c309a041258bbc4d824.json create mode 100644 .changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json create mode 100644 .changelog/fd1431c3174e44c69e30fc1a066deba8.json create mode 100644 service/connect/api_op_CreatePushNotificationRegistration.go create mode 100644 service/connect/api_op_DeletePushNotificationRegistration.go create mode 100644 service/connect/snapshot/api_op_CreatePushNotificationRegistration.go.snap create mode 100644 service/connect/snapshot/api_op_DeletePushNotificationRegistration.go.snap diff --git a/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json b/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json new file mode 100644 index 00000000000..8430b60beb4 --- /dev/null +++ b/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json @@ -0,0 +1,8 @@ +{ + "id": "12659648-a307-4e19-bc0a-a0f0b0ee6928", + "type": "feature", + "description": "Updated condition key inference from Workload Estimate, Bill Scenario, and Bill Estimate resources. Updated documentation links.", + "modules": [ + "service/bcmpricingcalculator" + ] +} \ No newline at end of file diff --git a/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json b/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json new file mode 100644 index 00000000000..b0d1ffcb1e8 --- /dev/null +++ b/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json @@ -0,0 +1,8 @@ +{ + "id": "1663b7a4-b7e7-45ae-9d61-1d24dd25ec83", + "type": "documentation", + "description": "Doc only update to examples for DeleteMultiRegionClusters \u0026 CreateMultiRegionClusters", + "modules": [ + "service/dsql" + ] +} \ No newline at end of file diff --git a/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json b/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json new file mode 100644 index 00000000000..3f1876b5233 --- /dev/null +++ b/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json @@ -0,0 +1,8 @@ +{ + "id": "4ea9c355-e6b5-4bbd-a803-50a7b486a50b", + "type": "feature", + "description": "Introduces support for creating DEED (Deterministic Easy-DKIM) identities.", + "modules": [ + "service/sesv2" + ] +} \ No newline at end of file diff --git a/.changelog/61fb913176e94bcfb2724ba1064987fa.json b/.changelog/61fb913176e94bcfb2724ba1064987fa.json new file mode 100644 index 00000000000..ebccf29b423 --- /dev/null +++ b/.changelog/61fb913176e94bcfb2724ba1064987fa.json @@ -0,0 +1,8 @@ +{ + "id": "61fb9131-76e9-4bcf-b272-4ba1064987fa", + "type": "documentation", + "description": "Doc only update for AAS Predictive Scaling policy configuration API.", + "modules": [ + "service/applicationautoscaling" + ] +} \ No newline at end of file diff --git a/.changelog/7acd60b316ce4c309a041258bbc4d824.json b/.changelog/7acd60b316ce4c309a041258bbc4d824.json new file mode 100644 index 00000000000..964bfd2191e --- /dev/null +++ b/.changelog/7acd60b316ce4c309a041258bbc4d824.json @@ -0,0 +1,8 @@ +{ + "id": "7acd60b3-16ce-4c30-9a04-1258bbc4d824", + "type": "feature", + "description": "Update KxCommandLineArgument value parameter regex to allow for spaces and semicolons", + "modules": [ + "service/finspace" + ] +} \ No newline at end of file diff --git a/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json b/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json new file mode 100644 index 00000000000..28be32936ba --- /dev/null +++ b/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json @@ -0,0 +1,8 @@ +{ + "id": "8dbd2253-fe7d-4235-945c-9d9ca5814ba5", + "type": "feature", + "description": "Add support for Push Notifications for Amazon Connect chat. With Push Notifications enabled an alert could be sent to customers about new messages even when they aren't actively using the mobile application.", + "modules": [ + "service/connect" + ] +} \ No newline at end of file diff --git a/.changelog/fd1431c3174e44c69e30fc1a066deba8.json b/.changelog/fd1431c3174e44c69e30fc1a066deba8.json new file mode 100644 index 00000000000..366c94108c0 --- /dev/null +++ b/.changelog/fd1431c3174e44c69e30fc1a066deba8.json @@ -0,0 +1,8 @@ +{ + "id": "fd1431c3-174e-44c6-9e30-fc1a066deba8", + "type": "feature", + "description": "IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC).", + "modules": [ + "service/ivsrealtime" + ] +} \ No newline at end of file diff --git a/service/applicationautoscaling/types/types.go b/service/applicationautoscaling/types/types.go index 7a37ccdeb14..56056c46afd 100644 --- a/service/applicationautoscaling/types/types.go +++ b/service/applicationautoscaling/types/types.go @@ -385,7 +385,9 @@ type PredictiveScalingMetricStat struct { noSmithyDocumentSerde } -// Represents a predictive scaling policy configuration. +// Represents a predictive scaling policy configuration. Predictive scaling is +// +// supported on Amazon ECS services. type PredictiveScalingPolicyConfiguration struct { // This structure includes the metrics and target utilization to use for diff --git a/service/connect/api_op_CreatePushNotificationRegistration.go b/service/connect/api_op_CreatePushNotificationRegistration.go new file mode 100644 index 00000000000..295703fe44d --- /dev/null +++ b/service/connect/api_op_CreatePushNotificationRegistration.go @@ -0,0 +1,229 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates registration for a device token and a chat contact to receive real-time +// push notifications. For more information about push notifications, see [Set up push notifications in Amazon Connect for mobile chat]in the +// Amazon Connect Administrator Guide. +// +// [Set up push notifications in Amazon Connect for mobile chat]: https://docs.aws.amazon.com/connect/latest/adminguide/set-up-push-notifications-for-mobile-chat.html +func (c *Client) CreatePushNotificationRegistration(ctx context.Context, params *CreatePushNotificationRegistrationInput, optFns ...func(*Options)) (*CreatePushNotificationRegistrationOutput, error) { + if params == nil { + params = &CreatePushNotificationRegistrationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreatePushNotificationRegistration", params, optFns, c.addOperationCreatePushNotificationRegistrationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreatePushNotificationRegistrationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreatePushNotificationRegistrationInput struct { + + // The contact configuration for push notification registration. + // + // This member is required. + ContactConfiguration *types.ContactConfiguration + + // The push notification token issued by the Apple or Google gateways. + // + // This member is required. + DeviceToken *string + + // The device type to use when sending the message. + // + // This member is required. + DeviceType types.DeviceType + + // The identifier of the Amazon Connect instance. You can [find the instance ID] in the Amazon Resource + // Name (ARN) of the instance. + // + // [find the instance ID]: https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html + // + // This member is required. + InstanceId *string + + // The Amazon Resource Name (ARN) of the Pinpoint application. + // + // This member is required. + PinpointAppArn *string + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see [Making retries safe with idempotent APIs]. + // + // [Making retries safe with idempotent APIs]: https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/ + ClientToken *string + + noSmithyDocumentSerde +} + +type CreatePushNotificationRegistrationOutput struct { + + // The identifier for the registration. + // + // This member is required. + RegistrationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreatePushNotificationRegistrationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreatePushNotificationRegistration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreatePushNotificationRegistration{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreatePushNotificationRegistration"); 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_opCreatePushNotificationRegistrationMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreatePushNotificationRegistrationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreatePushNotificationRegistration(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_initializeOpCreatePushNotificationRegistration struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreatePushNotificationRegistration) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreatePushNotificationRegistration) 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.(*CreatePushNotificationRegistrationInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreatePushNotificationRegistrationInput ") + } + + 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_opCreatePushNotificationRegistrationMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreatePushNotificationRegistration{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreatePushNotificationRegistration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreatePushNotificationRegistration", + } +} diff --git a/service/connect/api_op_DeletePushNotificationRegistration.go b/service/connect/api_op_DeletePushNotificationRegistration.go new file mode 100644 index 00000000000..417b697df58 --- /dev/null +++ b/service/connect/api_op_DeletePushNotificationRegistration.go @@ -0,0 +1,165 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +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 registration for a device token and a chat contact. +func (c *Client) DeletePushNotificationRegistration(ctx context.Context, params *DeletePushNotificationRegistrationInput, optFns ...func(*Options)) (*DeletePushNotificationRegistrationOutput, error) { + if params == nil { + params = &DeletePushNotificationRegistrationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeletePushNotificationRegistration", params, optFns, c.addOperationDeletePushNotificationRegistrationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeletePushNotificationRegistrationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeletePushNotificationRegistrationInput struct { + + // The identifier of the contact within the Amazon Connect instance. + // + // This member is required. + ContactId *string + + // The identifier of the Amazon Connect instance. You can [find the instance ID] in the Amazon Resource + // Name (ARN) of the instance. + // + // [find the instance ID]: https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html + // + // This member is required. + InstanceId *string + + // The identifier for the registration. + // + // This member is required. + RegistrationId *string + + noSmithyDocumentSerde +} + +type DeletePushNotificationRegistrationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeletePushNotificationRegistrationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeletePushNotificationRegistration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeletePushNotificationRegistration{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeletePushNotificationRegistration"); 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 = addOpDeletePushNotificationRegistrationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeletePushNotificationRegistration(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_opDeletePushNotificationRegistration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeletePushNotificationRegistration", + } +} diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 46f98c729fb..87579ca350b 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -5559,6 +5559,177 @@ func awsRestjson1_deserializeOpDocumentCreatePromptOutput(v **CreatePromptOutput return nil } +type awsRestjson1_deserializeOpCreatePushNotificationRegistration struct { +} + +func (*awsRestjson1_deserializeOpCreatePushNotificationRegistration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreatePushNotificationRegistration) HandleDeserialize(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_deserializeOpErrorCreatePushNotificationRegistration(response, &metadata) + } + output := &CreatePushNotificationRegistrationOutput{} + 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_deserializeOpDocumentCreatePushNotificationRegistrationOutput(&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_deserializeOpErrorCreatePushNotificationRegistration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(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) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreatePushNotificationRegistrationOutput(v **CreatePushNotificationRegistrationOutput, 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 *CreatePushNotificationRegistrationOutput + if *v == nil { + sv = &CreatePushNotificationRegistrationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "RegistrationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RegistrationId to be of type string, got %T instead", value) + } + sv.RegistrationId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateQueue struct { } @@ -9262,6 +9433,106 @@ func awsRestjson1_deserializeOpErrorDeletePrompt(response *smithyhttp.Response, } } +type awsRestjson1_deserializeOpDeletePushNotificationRegistration struct { +} + +func (*awsRestjson1_deserializeOpDeletePushNotificationRegistration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeletePushNotificationRegistration) HandleDeserialize(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_deserializeOpErrorDeletePushNotificationRegistration(response, &metadata) + } + output := &DeletePushNotificationRegistrationOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeletePushNotificationRegistration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(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 + + } +} + type awsRestjson1_deserializeOpDeleteQueue struct { } diff --git a/service/connect/generated.json b/service/connect/generated.json index 7b1acded4a9..f8fd5c4ffde 100644 --- a/service/connect/generated.json +++ b/service/connect/generated.json @@ -44,6 +44,7 @@ "api_op_CreatePersistentContactAssociation.go", "api_op_CreatePredefinedAttribute.go", "api_op_CreatePrompt.go", + "api_op_CreatePushNotificationRegistration.go", "api_op_CreateQueue.go", "api_op_CreateQuickConnect.go", "api_op_CreateRoutingProfile.go", @@ -69,6 +70,7 @@ "api_op_DeleteIntegrationAssociation.go", "api_op_DeletePredefinedAttribute.go", "api_op_DeletePrompt.go", + "api_op_DeletePushNotificationRegistration.go", "api_op_DeleteQueue.go", "api_op_DeleteQuickConnect.go", "api_op_DeleteRoutingProfile.go", diff --git a/service/connect/serializers.go b/service/connect/serializers.go index d52ca6d4d0b..ebffa71fc5c 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -3846,6 +3846,122 @@ func awsRestjson1_serializeOpDocumentCreatePromptInput(v *CreatePromptInput, val return nil } +type awsRestjson1_serializeOpCreatePushNotificationRegistration struct { +} + +func (*awsRestjson1_serializeOpCreatePushNotificationRegistration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreatePushNotificationRegistration) 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.(*CreatePushNotificationRegistrationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/push-notification/{InstanceId}/registrations") + 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_serializeOpHttpBindingsCreatePushNotificationRegistrationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreatePushNotificationRegistrationInput(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_serializeOpHttpBindingsCreatePushNotificationRegistrationInput(v *CreatePushNotificationRegistrationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.InstanceId == nil || len(*v.InstanceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member InstanceId must not be empty")} + } + if v.InstanceId != nil { + if err := encoder.SetURI("InstanceId").String(*v.InstanceId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreatePushNotificationRegistrationInput(v *CreatePushNotificationRegistrationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.ContactConfiguration != nil { + ok := object.Key("ContactConfiguration") + if err := awsRestjson1_serializeDocumentContactConfiguration(v.ContactConfiguration, ok); err != nil { + return err + } + } + + if v.DeviceToken != nil { + ok := object.Key("DeviceToken") + ok.String(*v.DeviceToken) + } + + if len(v.DeviceType) > 0 { + ok := object.Key("DeviceType") + ok.String(string(v.DeviceType)) + } + + if v.PinpointAppArn != nil { + ok := object.Key("PinpointAppArn") + ok.String(*v.PinpointAppArn) + } + + return nil +} + type awsRestjson1_serializeOpCreateQueue struct { } @@ -6425,6 +6541,90 @@ func awsRestjson1_serializeOpHttpBindingsDeletePromptInput(v *DeletePromptInput, return nil } +type awsRestjson1_serializeOpDeletePushNotificationRegistration struct { +} + +func (*awsRestjson1_serializeOpDeletePushNotificationRegistration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeletePushNotificationRegistration) 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.(*DeletePushNotificationRegistrationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/push-notification/{InstanceId}/registrations/{RegistrationId}") + 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_serializeOpHttpBindingsDeletePushNotificationRegistrationInput(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_serializeOpHttpBindingsDeletePushNotificationRegistrationInput(v *DeletePushNotificationRegistrationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ContactId != nil { + encoder.SetQuery("contactId").String(*v.ContactId) + } + + if v.InstanceId == nil || len(*v.InstanceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member InstanceId must not be empty")} + } + if v.InstanceId != nil { + if err := encoder.SetURI("InstanceId").String(*v.InstanceId); err != nil { + return err + } + } + + if v.RegistrationId == nil || len(*v.RegistrationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member RegistrationId must not be empty")} + } + if v.RegistrationId != nil { + if err := encoder.SetURI("RegistrationId").String(*v.RegistrationId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteQueue struct { } @@ -27001,6 +27201,28 @@ func awsRestjson1_serializeDocumentContactAnalysis(v *types.ContactAnalysis, val return nil } +func awsRestjson1_serializeDocumentContactConfiguration(v *types.ContactConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ContactId != nil { + ok := object.Key("ContactId") + ok.String(*v.ContactId) + } + + if v.IncludeRawMessage { + ok := object.Key("IncludeRawMessage") + ok.Boolean(v.IncludeRawMessage) + } + + if len(v.ParticipantRole) > 0 { + ok := object.Key("ParticipantRole") + ok.String(string(v.ParticipantRole)) + } + + return nil +} + func awsRestjson1_serializeDocumentContactDataRequest(v *types.ContactDataRequest, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/connect/snapshot/api_op_CreatePushNotificationRegistration.go.snap b/service/connect/snapshot/api_op_CreatePushNotificationRegistration.go.snap new file mode 100644 index 00000000000..ac3bc4092f7 --- /dev/null +++ b/service/connect/snapshot/api_op_CreatePushNotificationRegistration.go.snap @@ -0,0 +1,42 @@ +CreatePushNotificationRegistration + 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/connect/snapshot/api_op_DeletePushNotificationRegistration.go.snap b/service/connect/snapshot/api_op_DeletePushNotificationRegistration.go.snap new file mode 100644 index 00000000000..d8c15602b95 --- /dev/null +++ b/service/connect/snapshot/api_op_DeletePushNotificationRegistration.go.snap @@ -0,0 +1,41 @@ +DeletePushNotificationRegistration + 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/connect/snapshot_test.go b/service/connect/snapshot_test.go index f94fc1c135a..844221ba5ac 100644 --- a/service/connect/snapshot_test.go +++ b/service/connect/snapshot_test.go @@ -494,6 +494,18 @@ func TestCheckSnapshot_CreatePrompt(t *testing.T) { } } +func TestCheckSnapshot_CreatePushNotificationRegistration(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePushNotificationRegistration(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreatePushNotificationRegistration") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateQueue(t *testing.T) { svc := New(Options{}) _, err := svc.CreateQueue(context.Background(), nil, func(o *Options) { @@ -794,6 +806,18 @@ func TestCheckSnapshot_DeletePrompt(t *testing.T) { } } +func TestCheckSnapshot_DeletePushNotificationRegistration(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeletePushNotificationRegistration(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeletePushNotificationRegistration") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteQueue(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteQueue(context.Background(), nil, func(o *Options) { @@ -3733,6 +3757,18 @@ func TestUpdateSnapshot_CreatePrompt(t *testing.T) { } } +func TestUpdateSnapshot_CreatePushNotificationRegistration(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreatePushNotificationRegistration(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreatePushNotificationRegistration") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateQueue(t *testing.T) { svc := New(Options{}) _, err := svc.CreateQueue(context.Background(), nil, func(o *Options) { @@ -4033,6 +4069,18 @@ func TestUpdateSnapshot_DeletePrompt(t *testing.T) { } } +func TestUpdateSnapshot_DeletePushNotificationRegistration(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeletePushNotificationRegistration(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeletePushNotificationRegistration") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteQueue(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteQueue(context.Background(), nil, func(o *Options) { diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 5340cf2039f..1f0bc62e180 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -522,6 +522,27 @@ func (CurrentMetricName) Values() []CurrentMetricName { } } +type DeviceType string + +// Enum values for DeviceType +const ( + DeviceTypeGcm DeviceType = "GCM" + DeviceTypeApns DeviceType = "APNS" + DeviceTypeApnsSandbox DeviceType = "APNS_SANDBOX" +) + +// Values returns all known values for DeviceType. 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 (DeviceType) Values() []DeviceType { + return []DeviceType{ + "GCM", + "APNS", + "APNS_SANDBOX", + } +} + type DirectoryType string // Enum values for DirectoryType diff --git a/service/connect/types/types.go b/service/connect/types/types.go index ab486d49a4a..1e92336922a 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -1032,6 +1032,24 @@ type ContactAnalysis struct { noSmithyDocumentSerde } +// The contact configuration for push notification registration. +type ContactConfiguration struct { + + // The identifier of the contact within the Amazon Connect instance. + // + // This member is required. + ContactId *string + + // Whether to include raw connect message in the push notification payload. + // Default is False . + IncludeRawMessage bool + + // The role of the participant in the chat conversation. + ParticipantRole ParticipantRole + + noSmithyDocumentSerde +} + // Request object with information to create a contact. type ContactDataRequest struct { @@ -3727,14 +3745,10 @@ type MetricFilterV2 struct { // description for the [Flow outcome]metric in the Amazon Connect Administrator Guide. // // For valid values of the metric-level filter BOT_CONVERSATION_OUTCOME_TYPE , see - // the description for the [Bot conversations completed] - // - // in the Amazon Connect Administrator Guide. + // the description for the [Bot conversations completed]in the Amazon Connect Administrator Guide. // // For valid values of the metric-level filter BOT_INTENT_OUTCOME_TYPE , see the - // description for the [Bot intents completed] - // - // metric in the Amazon Connect Administrator Guide. + // description for the [Bot intents completed]metric in the Amazon Connect Administrator Guide. // // [Bot intents completed]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#bot-intents-completed-metric // [ContactTraceRecord]: https://docs.aws.amazon.com/connect/latest/adminguide/ctr-data-model.html#ctr-ContactTraceRecord diff --git a/service/connect/validators.go b/service/connect/validators.go index 1b8e3f692ae..038a36e9e65 100644 --- a/service/connect/validators.go +++ b/service/connect/validators.go @@ -730,6 +730,26 @@ func (m *validateOpCreatePrompt) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpCreatePushNotificationRegistration struct { +} + +func (*validateOpCreatePushNotificationRegistration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreatePushNotificationRegistration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreatePushNotificationRegistrationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreatePushNotificationRegistrationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateQueue struct { } @@ -1230,6 +1250,26 @@ func (m *validateOpDeletePrompt) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpDeletePushNotificationRegistration struct { +} + +func (*validateOpDeletePushNotificationRegistration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeletePushNotificationRegistration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeletePushNotificationRegistrationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeletePushNotificationRegistrationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteQueue struct { } @@ -5494,6 +5534,10 @@ func addOpCreatePromptValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreatePrompt{}, middleware.After) } +func addOpCreatePushNotificationRegistrationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreatePushNotificationRegistration{}, middleware.After) +} + func addOpCreateQueueValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateQueue{}, middleware.After) } @@ -5594,6 +5638,10 @@ func addOpDeletePromptValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeletePrompt{}, middleware.After) } +func addOpDeletePushNotificationRegistrationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeletePushNotificationRegistration{}, middleware.After) +} + func addOpDeleteQueueValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteQueue{}, middleware.After) } @@ -6521,6 +6569,21 @@ func validateContactAnalysis(v *types.ContactAnalysis) error { } } +func validateContactConfiguration(v *types.ContactConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ContactConfiguration"} + if v.ContactId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ContactId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateContactReferences(v map[string]types.Reference) error { if v == nil { return nil @@ -9130,6 +9193,37 @@ func validateOpCreatePromptInput(v *CreatePromptInput) error { } } +func validateOpCreatePushNotificationRegistrationInput(v *CreatePushNotificationRegistrationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreatePushNotificationRegistrationInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.PinpointAppArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("PinpointAppArn")) + } + if v.DeviceToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("DeviceToken")) + } + if len(v.DeviceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("DeviceType")) + } + if v.ContactConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("ContactConfiguration")) + } else if v.ContactConfiguration != nil { + if err := validateContactConfiguration(v.ContactConfiguration); err != nil { + invalidParams.AddNested("ContactConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateQueueInput(v *CreateQueueInput) error { if v == nil { return nil @@ -9663,6 +9757,27 @@ func validateOpDeletePromptInput(v *DeletePromptInput) error { } } +func validateOpDeletePushNotificationRegistrationInput(v *DeletePushNotificationRegistrationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeletePushNotificationRegistrationInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.RegistrationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("RegistrationId")) + } + if v.ContactId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ContactId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteQueueInput(v *DeleteQueueInput) error { if v == nil { return nil diff --git a/service/ivsrealtime/deserializers.go b/service/ivsrealtime/deserializers.go index a63de8a63f9..d87d8686c1c 100644 --- a/service/ivsrealtime/deserializers.go +++ b/service/ivsrealtime/deserializers.go @@ -5703,6 +5703,11 @@ func awsRestjson1_deserializeDocumentAutoParticipantRecordingConfiguration(v **t sv.StorageConfigurationArn = ptr.String(jtv) } + case "thumbnailConfiguration": + if err := awsRestjson1_deserializeDocumentParticipantThumbnailConfiguration(&sv.ThumbnailConfiguration, value); err != nil { + return err + } + default: _, _ = key, value @@ -5988,6 +5993,89 @@ func awsRestjson1_deserializeDocumentCompositionSummaryList(v *[]types.Compositi return nil } +func awsRestjson1_deserializeDocumentCompositionThumbnailConfiguration(v **types.CompositionThumbnailConfiguration, 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.CompositionThumbnailConfiguration + if *v == nil { + sv = &types.CompositionThumbnailConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "storage": + if err := awsRestjson1_deserializeDocumentThumbnailStorageTypeList(&sv.Storage, value); err != nil { + return err + } + + case "targetIntervalSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ThumbnailIntervalSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TargetIntervalSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentCompositionThumbnailConfigurationList(v *[]types.CompositionThumbnailConfiguration, 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.CompositionThumbnailConfiguration + if *v == nil { + cv = []types.CompositionThumbnailConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.CompositionThumbnailConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentCompositionThumbnailConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7411,6 +7499,64 @@ func awsRestjson1_deserializeDocumentParticipantSummary(v **types.ParticipantSum return nil } +func awsRestjson1_deserializeDocumentParticipantThumbnailConfiguration(v **types.ParticipantThumbnailConfiguration, 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.ParticipantThumbnailConfiguration + if *v == nil { + sv = &types.ParticipantThumbnailConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "recordingMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ThumbnailRecordingMode to be of type string, got %T instead", value) + } + sv.RecordingMode = types.ThumbnailRecordingMode(jtv) + } + + case "storage": + if err := awsRestjson1_deserializeDocumentThumbnailStorageTypeList(&sv.Storage, value); err != nil { + return err + } + + case "targetIntervalSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ThumbnailIntervalSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TargetIntervalSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentParticipantToken(v **types.ParticipantToken, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8069,6 +8215,11 @@ func awsRestjson1_deserializeDocumentS3DestinationConfiguration(v **types.S3Dest sv.StorageConfigurationArn = ptr.String(jtv) } + case "thumbnailConfigurations": + if err := awsRestjson1_deserializeDocumentCompositionThumbnailConfigurationList(&sv.ThumbnailConfigurations, value); err != nil { + return err + } + default: _, _ = key, value @@ -8789,6 +8940,42 @@ func awsRestjson1_deserializeDocumentTags(v *map[string]string, value interface{ return nil } +func awsRestjson1_deserializeDocumentThumbnailStorageTypeList(v *[]types.ThumbnailStorageType, 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.ThumbnailStorageType + if *v == nil { + cv = []types.ThumbnailStorageType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ThumbnailStorageType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ThumbnailStorageType to be of type string, got %T instead", value) + } + col = types.ThumbnailStorageType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ivsrealtime/serializers.go b/service/ivsrealtime/serializers.go index 1582b45bc4e..dc720bd0d2c 100644 --- a/service/ivsrealtime/serializers.go +++ b/service/ivsrealtime/serializers.go @@ -3256,6 +3256,13 @@ func awsRestjson1_serializeDocumentAutoParticipantRecordingConfiguration(v *type ok.String(*v.StorageConfigurationArn) } + if v.ThumbnailConfiguration != nil { + ok := object.Key("thumbnailConfiguration") + if err := awsRestjson1_serializeDocumentParticipantThumbnailConfiguration(v.ThumbnailConfiguration, ok); err != nil { + return err + } + } + return nil } @@ -3276,6 +3283,38 @@ func awsRestjson1_serializeDocumentChannelDestinationConfiguration(v *types.Chan return nil } +func awsRestjson1_serializeDocumentCompositionThumbnailConfiguration(v *types.CompositionThumbnailConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Storage != nil { + ok := object.Key("storage") + if err := awsRestjson1_serializeDocumentThumbnailStorageTypeList(v.Storage, ok); err != nil { + return err + } + } + + if v.TargetIntervalSeconds != nil { + ok := object.Key("targetIntervalSeconds") + ok.Integer(*v.TargetIntervalSeconds) + } + + return nil +} + +func awsRestjson1_serializeDocumentCompositionThumbnailConfigurationList(v []types.CompositionThumbnailConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentCompositionThumbnailConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentDestinationConfiguration(v *types.DestinationConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3401,6 +3440,30 @@ func awsRestjson1_serializeDocumentParticipantRecordingMediaTypeList(v []types.P return nil } +func awsRestjson1_serializeDocumentParticipantThumbnailConfiguration(v *types.ParticipantThumbnailConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.RecordingMode) > 0 { + ok := object.Key("recordingMode") + ok.String(string(v.RecordingMode)) + } + + if v.Storage != nil { + ok := object.Key("storage") + if err := awsRestjson1_serializeDocumentThumbnailStorageTypeList(v.Storage, ok); err != nil { + return err + } + } + + if v.TargetIntervalSeconds != nil { + ok := object.Key("targetIntervalSeconds") + ok.Integer(*v.TargetIntervalSeconds) + } + + return nil +} + func awsRestjson1_serializeDocumentParticipantTokenAttributes(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3559,6 +3622,13 @@ func awsRestjson1_serializeDocumentS3DestinationConfiguration(v *types.S3Destina ok.String(*v.StorageConfigurationArn) } + if v.ThumbnailConfigurations != nil { + ok := object.Key("thumbnailConfigurations") + if err := awsRestjson1_serializeDocumentCompositionThumbnailConfigurationList(v.ThumbnailConfigurations, ok); err != nil { + return err + } + } + return nil } @@ -3585,6 +3655,17 @@ func awsRestjson1_serializeDocumentTags(v map[string]string, value smithyjson.Va return nil } +func awsRestjson1_serializeDocumentThumbnailStorageTypeList(v []types.ThumbnailStorageType, 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_serializeDocumentVideo(v *types.Video, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/ivsrealtime/types/enums.go b/service/ivsrealtime/types/enums.go index 927519b390a..fa353ee3348 100644 --- a/service/ivsrealtime/types/enums.go +++ b/service/ivsrealtime/types/enums.go @@ -223,6 +223,7 @@ type ParticipantRecordingMediaType string const ( ParticipantRecordingMediaTypeAudioVideo ParticipantRecordingMediaType = "AUDIO_VIDEO" ParticipantRecordingMediaTypeAudioOnly ParticipantRecordingMediaType = "AUDIO_ONLY" + ParticipantRecordingMediaTypeNone ParticipantRecordingMediaType = "NONE" ) // Values returns all known values for ParticipantRecordingMediaType. Note that @@ -234,6 +235,7 @@ func (ParticipantRecordingMediaType) Values() []ParticipantRecordingMediaType { return []ParticipantRecordingMediaType{ "AUDIO_VIDEO", "AUDIO_ONLY", + "NONE", } } @@ -362,6 +364,44 @@ func (RecordingConfigurationFormat) Values() []RecordingConfigurationFormat { } } +type ThumbnailRecordingMode string + +// Enum values for ThumbnailRecordingMode +const ( + ThumbnailRecordingModeInterval ThumbnailRecordingMode = "INTERVAL" + ThumbnailRecordingModeDisabled ThumbnailRecordingMode = "DISABLED" +) + +// Values returns all known values for ThumbnailRecordingMode. 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 (ThumbnailRecordingMode) Values() []ThumbnailRecordingMode { + return []ThumbnailRecordingMode{ + "INTERVAL", + "DISABLED", + } +} + +type ThumbnailStorageType string + +// Enum values for ThumbnailStorageType +const ( + ThumbnailStorageTypeSequential ThumbnailStorageType = "SEQUENTIAL" + ThumbnailStorageTypeLatest ThumbnailStorageType = "LATEST" +) + +// Values returns all known values for ThumbnailStorageType. 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 (ThumbnailStorageType) Values() []ThumbnailStorageType { + return []ThumbnailStorageType{ + "SEQUENTIAL", + "LATEST", + } +} + type VideoAspectRatio string // Enum values for VideoAspectRatio diff --git a/service/ivsrealtime/types/types.go b/service/ivsrealtime/types/types.go index 0db2b3933ea..c6cd1cdfcb9 100644 --- a/service/ivsrealtime/types/types.go +++ b/service/ivsrealtime/types/types.go @@ -21,6 +21,11 @@ type AutoParticipantRecordingConfiguration struct { // Types of media to be recorded. Default: AUDIO_VIDEO . MediaTypes []ParticipantRecordingMediaType + // A complex type that allows you to enable/disable the recording of thumbnails + // for individual participant recording and modify the interval at which thumbnails + // are generated for the live session. + ThumbnailConfiguration *ParticipantThumbnailConfiguration + noSmithyDocumentSerde } @@ -133,6 +138,24 @@ type CompositionSummary struct { noSmithyDocumentSerde } +// An object representing a configuration of thumbnails for recorded video for a Composition. +type CompositionThumbnailConfiguration struct { + + // Indicates the format in which thumbnails are recorded. SEQUENTIAL records all + // generated thumbnails in a serial manner, to the + // media/thumbnails/(width)x(height) directory, where (width) and (height) are the + // width and height of the thumbnail. LATEST saves the latest thumbnail in + // media/latest_thumbnail/(width)x(height)/thumb.jpg and overwrites it at the + // interval specified by targetIntervalSeconds . You can enable both SEQUENTIAL + // and LATEST . Default: SEQUENTIAL . + Storage []ThumbnailStorageType + + // The targeted thumbnail-generation interval in seconds. Default: 60. + TargetIntervalSeconds *int32 + + noSmithyDocumentSerde +} + // Object specifying the status of a Destination. type Destination struct { @@ -578,6 +601,27 @@ type ParticipantSummary struct { noSmithyDocumentSerde } +// An object representing a configuration of thumbnails for recorded video from an +// individual participant. +type ParticipantThumbnailConfiguration struct { + + // Thumbnail recording mode. Default: DISABLED . + RecordingMode ThumbnailRecordingMode + + // Indicates the format in which thumbnails are recorded. SEQUENTIAL records all + // generated thumbnails in a serial manner, to the media/thumbnails/high directory. + // LATEST saves the latest thumbnail in media/latest_thumbnail/high/thumb.jpg and + // overwrites it at the interval specified by targetIntervalSeconds . You can + // enable both SEQUENTIAL and LATEST . Default: SEQUENTIAL . + Storage []ThumbnailStorageType + + // The targeted thumbnail-generation interval in seconds. This is configurable + // only if recordingMode is INTERVAL . Default: 60. + TargetIntervalSeconds *int32 + + noSmithyDocumentSerde +} + // Object specifying a participant token in a stage. // // Important: Treat tokens as opaque; i.e., do not build functionality based on @@ -769,6 +813,11 @@ type S3DestinationConfiguration struct { // storing a recording in Amazon S3. RecordingConfiguration *RecordingConfiguration + // A complex type that allows you to enable/disable the recording of thumbnails + // for a Compositionand modify the interval at which thumbnails are generated for the live + // session. + ThumbnailConfigurations []CompositionThumbnailConfiguration + noSmithyDocumentSerde } diff --git a/service/marketplaceagreement/internal/endpoints/endpoints.go b/service/marketplaceagreement/internal/endpoints/endpoints.go index 511861167f0..582013756b8 100644 --- a/service/marketplaceagreement/internal/endpoints/endpoints.go +++ b/service/marketplaceagreement/internal/endpoints/endpoints.go @@ -199,6 +199,26 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "fips-us-iso-east-1", + }: endpoints.Endpoint{ + Hostname: "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: aws.TrueTernary, + }, + endpoints.EndpointKey{ + Region: "us-iso-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-east-1", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov", + }, + }, }, { ID: "aws-iso-b", diff --git a/service/sesv2/serializers.go b/service/sesv2/serializers.go index 4d76342e454..3e4951a2702 100644 --- a/service/sesv2/serializers.go +++ b/service/sesv2/serializers.go @@ -8233,6 +8233,11 @@ func awsRestjson1_serializeDocumentDkimSigningAttributes(v *types.DkimSigningAtt object := value.Object() defer object.Close() + if len(v.DomainSigningAttributesOrigin) > 0 { + ok := object.Key("DomainSigningAttributesOrigin") + ok.String(string(v.DomainSigningAttributesOrigin)) + } + if v.DomainSigningPrivateKey != nil { ok := object.Key("DomainSigningPrivateKey") ok.String(*v.DomainSigningPrivateKey) diff --git a/service/sesv2/types/enums.go b/service/sesv2/types/enums.go index 6b312ae8d86..f620ab19455 100644 --- a/service/sesv2/types/enums.go +++ b/service/sesv2/types/enums.go @@ -235,8 +235,30 @@ type DkimSigningAttributesOrigin string // Enum values for DkimSigningAttributesOrigin const ( - DkimSigningAttributesOriginAwsSes DkimSigningAttributesOrigin = "AWS_SES" - DkimSigningAttributesOriginExternal DkimSigningAttributesOrigin = "EXTERNAL" + DkimSigningAttributesOriginAwsSes DkimSigningAttributesOrigin = "AWS_SES" + DkimSigningAttributesOriginExternal DkimSigningAttributesOrigin = "EXTERNAL" + DkimSigningAttributesOriginAwsSesAfSouth1 DkimSigningAttributesOrigin = "AWS_SES_AF_SOUTH_1" + DkimSigningAttributesOriginAwsSesEuNorth1 DkimSigningAttributesOrigin = "AWS_SES_EU_NORTH_1" + DkimSigningAttributesOriginAwsSesApSouth1 DkimSigningAttributesOrigin = "AWS_SES_AP_SOUTH_1" + DkimSigningAttributesOriginAwsSesEuWest3 DkimSigningAttributesOrigin = "AWS_SES_EU_WEST_3" + DkimSigningAttributesOriginAwsSesEuWest2 DkimSigningAttributesOrigin = "AWS_SES_EU_WEST_2" + DkimSigningAttributesOriginAwsSesEuSouth1 DkimSigningAttributesOrigin = "AWS_SES_EU_SOUTH_1" + DkimSigningAttributesOriginAwsSesEuWest1 DkimSigningAttributesOrigin = "AWS_SES_EU_WEST_1" + DkimSigningAttributesOriginAwsSesApNortheast3 DkimSigningAttributesOrigin = "AWS_SES_AP_NORTHEAST_3" + DkimSigningAttributesOriginAwsSesApNortheast2 DkimSigningAttributesOrigin = "AWS_SES_AP_NORTHEAST_2" + DkimSigningAttributesOriginAwsSesMeSouth1 DkimSigningAttributesOrigin = "AWS_SES_ME_SOUTH_1" + DkimSigningAttributesOriginAwsSesApNortheast1 DkimSigningAttributesOrigin = "AWS_SES_AP_NORTHEAST_1" + DkimSigningAttributesOriginAwsSesIlCentral1 DkimSigningAttributesOrigin = "AWS_SES_IL_CENTRAL_1" + DkimSigningAttributesOriginAwsSesSaEast1 DkimSigningAttributesOrigin = "AWS_SES_SA_EAST_1" + DkimSigningAttributesOriginAwsSesCaCentral1 DkimSigningAttributesOrigin = "AWS_SES_CA_CENTRAL_1" + DkimSigningAttributesOriginAwsSesApSoutheast1 DkimSigningAttributesOrigin = "AWS_SES_AP_SOUTHEAST_1" + DkimSigningAttributesOriginAwsSesApSoutheast2 DkimSigningAttributesOrigin = "AWS_SES_AP_SOUTHEAST_2" + DkimSigningAttributesOriginAwsSesApSoutheast3 DkimSigningAttributesOrigin = "AWS_SES_AP_SOUTHEAST_3" + DkimSigningAttributesOriginAwsSesEuCentral1 DkimSigningAttributesOrigin = "AWS_SES_EU_CENTRAL_1" + DkimSigningAttributesOriginAwsSesUsEast1 DkimSigningAttributesOrigin = "AWS_SES_US_EAST_1" + DkimSigningAttributesOriginAwsSesUsEast2 DkimSigningAttributesOrigin = "AWS_SES_US_EAST_2" + DkimSigningAttributesOriginAwsSesUsWest1 DkimSigningAttributesOrigin = "AWS_SES_US_WEST_1" + DkimSigningAttributesOriginAwsSesUsWest2 DkimSigningAttributesOrigin = "AWS_SES_US_WEST_2" ) // Values returns all known values for DkimSigningAttributesOrigin. Note that this @@ -247,6 +269,28 @@ func (DkimSigningAttributesOrigin) Values() []DkimSigningAttributesOrigin { return []DkimSigningAttributesOrigin{ "AWS_SES", "EXTERNAL", + "AWS_SES_AF_SOUTH_1", + "AWS_SES_EU_NORTH_1", + "AWS_SES_AP_SOUTH_1", + "AWS_SES_EU_WEST_3", + "AWS_SES_EU_WEST_2", + "AWS_SES_EU_SOUTH_1", + "AWS_SES_EU_WEST_1", + "AWS_SES_AP_NORTHEAST_3", + "AWS_SES_AP_NORTHEAST_2", + "AWS_SES_ME_SOUTH_1", + "AWS_SES_AP_NORTHEAST_1", + "AWS_SES_IL_CENTRAL_1", + "AWS_SES_SA_EAST_1", + "AWS_SES_CA_CENTRAL_1", + "AWS_SES_AP_SOUTHEAST_1", + "AWS_SES_AP_SOUTHEAST_2", + "AWS_SES_AP_SOUTHEAST_3", + "AWS_SES_EU_CENTRAL_1", + "AWS_SES_US_EAST_1", + "AWS_SES_US_EAST_2", + "AWS_SES_US_WEST_1", + "AWS_SES_US_WEST_2", } } @@ -832,11 +876,16 @@ type VerificationError string // Enum values for VerificationError const ( - VerificationErrorServiceError VerificationError = "SERVICE_ERROR" - VerificationErrorDnsServerError VerificationError = "DNS_SERVER_ERROR" - VerificationErrorHostNotFound VerificationError = "HOST_NOT_FOUND" - VerificationErrorTypeNotFound VerificationError = "TYPE_NOT_FOUND" - VerificationErrorInvalidValue VerificationError = "INVALID_VALUE" + VerificationErrorServiceError VerificationError = "SERVICE_ERROR" + VerificationErrorDnsServerError VerificationError = "DNS_SERVER_ERROR" + VerificationErrorHostNotFound VerificationError = "HOST_NOT_FOUND" + VerificationErrorTypeNotFound VerificationError = "TYPE_NOT_FOUND" + VerificationErrorInvalidValue VerificationError = "INVALID_VALUE" + VerificationErrorReplicationAccessDenied VerificationError = "REPLICATION_ACCESS_DENIED" + VerificationErrorReplicationPrimaryNotFound VerificationError = "REPLICATION_PRIMARY_NOT_FOUND" + VerificationErrorReplicationPrimaryByoDkimNotSupported VerificationError = "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED" + VerificationErrorReplicationReplicaAsPrimaryNotSupported VerificationError = "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED" + VerificationErrorReplicationPrimaryInvalidRegion VerificationError = "REPLICATION_PRIMARY_INVALID_REGION" ) // Values returns all known values for VerificationError. Note that this can be @@ -850,6 +899,11 @@ func (VerificationError) Values() []VerificationError { "HOST_NOT_FOUND", "TYPE_NOT_FOUND", "INVALID_VALUE", + "REPLICATION_ACCESS_DENIED", + "REPLICATION_PRIMARY_NOT_FOUND", + "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED", + "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED", + "REPLICATION_PRIMARY_INVALID_REGION", } } diff --git a/service/sesv2/types/types.go b/service/sesv2/types/types.go index bc8def8bb34..1b968d6d8e0 100644 --- a/service/sesv2/types/types.go +++ b/service/sesv2/types/types.go @@ -676,6 +676,94 @@ type DkimAttributes struct { // - EXTERNAL – Indicates that DKIM was configured for the identity by using // Bring Your Own DKIM (BYODKIM). // + // - AWS_SES_AF_SOUTH_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Africa (Cape Town) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_NORTH_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Europe (Stockholm) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTH_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Asia Pacific (Mumbai) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_WEST_3 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Europe (Paris) region + // using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_WEST_2 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Europe (London) region + // using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_SOUTH_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Europe (Milan) region + // using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_WEST_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Europe (Ireland) region + // using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_NORTHEAST_3 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific (Osaka) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_NORTHEAST_2 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific (Seoul) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_ME_SOUTH_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in Middle East (Bahrain) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_NORTHEAST_1 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific (Tokyo) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_IL_CENTRAL_1 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Israel (Tel Aviv) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_SA_EAST_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in South America (São + // Paulo) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_CA_CENTRAL_1 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Canada (Central) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTHEAST_1 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific + // (Singapore) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTHEAST_2 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific + // (Sydney) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTHEAST_3 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Asia Pacific + // (Jakarta) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_CENTRAL_1 – Indicates that DKIM was configured for the identity + // by replicating signing attributes from a parent identity in Europe (Frankfurt) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_US_EAST_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in US East (N. Virginia) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_US_EAST_2 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in US East (Ohio) region + // using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_US_WEST_1 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in US West (N. California) + // region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_US_WEST_2 – Indicates that DKIM was configured for the identity by + // replicating signing attributes from a parent identity in US West (Oregon) region + // using Deterministic Easy-DKIM (DEED). + // // [Easy DKIM]: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html SigningAttributesOrigin DkimSigningAttributesOrigin @@ -726,6 +814,109 @@ type DkimAttributes struct { // for Easy DKIM type DkimSigningAttributes struct { + // The attribute to use for configuring DKIM for the identity depends on the + // operation: + // + // - For PutEmailIdentityDkimSigningAttributes : + // + // - None of the values are allowed - use the [SigningAttributesOrigin]SigningAttributesOrigin parameter + // instead + // + // - For CreateEmailIdentity when replicating a parent identity's DKIM + // configuration: + // + // - Allowed values: All values except AWS_SES and EXTERNAL + // + // - AWS_SES – Configure DKIM for the identity by using Easy DKIM. + // + // - EXTERNAL – Configure DKIM for the identity by using Bring Your Own DKIM + // (BYODKIM). + // + // - AWS_SES_AF_SOUTH_1 – Configure DKIM for the identity by replicating from a + // parent identity in Africa (Cape Town) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_EU_NORTH_1 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (Stockholm) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_AP_SOUTH_1 – Configure DKIM for the identity by replicating from a + // parent identity in Asia Pacific (Mumbai) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_EU_WEST_3 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (Paris) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_WEST_2 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (London) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_SOUTH_1 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (Milan) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_EU_WEST_1 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (Ireland) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_NORTHEAST_3 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Osaka) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_AP_NORTHEAST_2 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Seoul) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_ME_SOUTH_1 – Configure DKIM for the identity by replicating from a + // parent identity in Middle East (Bahrain) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_AP_NORTHEAST_1 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Tokyo) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_IL_CENTRAL_1 – Configure DKIM for the identity by replicating from a + // parent identity in Israel (Tel Aviv) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_SA_EAST_1 – Configure DKIM for the identity by replicating from a + // parent identity in South America (São Paulo) region using Deterministic + // Easy-DKIM (DEED). + // + // - AWS_SES_CA_CENTRAL_1 – Configure DKIM for the identity by replicating from a + // parent identity in Canada (Central) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTHEAST_1 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Singapore) region using Deterministic + // Easy-DKIM (DEED). + // + // - AWS_SES_AP_SOUTHEAST_2 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Sydney) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_AP_SOUTHEAST_3 – Configure DKIM for the identity by replicating from + // a parent identity in Asia Pacific (Jakarta) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_EU_CENTRAL_1 – Configure DKIM for the identity by replicating from a + // parent identity in Europe (Frankfurt) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_US_EAST_1 – Configure DKIM for the identity by replicating from a + // parent identity in US East (N. Virginia) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_US_EAST_2 – Configure DKIM for the identity by replicating from a + // parent identity in US East (Ohio) region using Deterministic Easy-DKIM (DEED). + // + // - AWS_SES_US_WEST_1 – Configure DKIM for the identity by replicating from a + // parent identity in US West (N. California) region using Deterministic Easy-DKIM + // (DEED). + // + // - AWS_SES_US_WEST_2 – Configure DKIM for the identity by replicating from a + // parent identity in US West (Oregon) region using Deterministic Easy-DKIM (DEED). + // + // + // [SigningAttributesOrigin]: https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_PutEmailIdentityDkimSigningAttributes.html#SES-PutEmailIdentityDkimSigningAttributes-request-SigningAttributesOrigin + DomainSigningAttributesOrigin DkimSigningAttributesOrigin + // [Bring Your Own DKIM] A private key that's used to generate a DKIM signature. // // The private key must use 1024 or 2048-bit RSA encryption, and must be encoded @@ -2338,6 +2529,29 @@ type VerificationInfo struct { // // - DNS_SERVER_ERROR – The DNS server encountered an issue and was unable to // complete the request. + // + // - REPLICATION_ACCESS_DENIED – The verification failed because the user does + // not have the required permissions to replicate the DKIM key from the primary + // region. Ensure you have the necessary permissions in both primary and replica + // regions. + // + // - REPLICATION_PRIMARY_NOT_FOUND – The verification failed because no + // corresponding identity was found in the specified primary region. Ensure the + // identity exists in the primary region before attempting replication. + // + // - REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED – The verification failed because + // the identity in the primary region is configured with Bring Your Own DKIM + // (BYODKIM). DKIM key replication is only supported for identities using Easy + // DKIM. + // + // - REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED – The verification failed + // because the specified primary identity is a replica of another identity, and + // multi-level replication is not supported; the primary identity must be a + // non-replica identity. + // + // - REPLICATION_PRIMARY_INVALID_REGION – The verification failed due to an + // invalid primary region specified. Ensure you provide a valid AWS region where + // Amazon SES is available and different from the replica region. ErrorType VerificationError // The last time a verification attempt was made for this identity. From 68ac5e346a49f1bda84c4450606114619d46ea66 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 10 Dec 2024 20:01:40 +0000 Subject: [PATCH 16/21] Release 2024-12-10 --- .changelog/12659648a3074e19bc0aa0f0b0ee6928.json | 8 -------- .changelog/1663b7a4b7e745ae9d611d24dd25ec83.json | 8 -------- .changelog/4ea9c355e6b54bbda80350a7b486a50b.json | 8 -------- .changelog/61fb913176e94bcfb2724ba1064987fa.json | 8 -------- .changelog/7acd60b316ce4c309a041258bbc4d824.json | 8 -------- .changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json | 8 -------- .changelog/fd1431c3174e44c69e30fc1a066deba8.json | 8 -------- CHANGELOG.md | 12 ++++++++++++ service/applicationautoscaling/CHANGELOG.md | 4 ++++ service/applicationautoscaling/go_module_metadata.go | 2 +- service/connect/CHANGELOG.md | 4 ++++ service/connect/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 2 +- service/ivsrealtime/CHANGELOG.md | 4 ++++ service/ivsrealtime/go_module_metadata.go | 2 +- service/marketplaceagreement/CHANGELOG.md | 4 ++++ service/marketplaceagreement/go_module_metadata.go | 2 +- service/sesv2/CHANGELOG.md | 4 ++++ service/sesv2/go_module_metadata.go | 2 +- 19 files changed, 38 insertions(+), 62 deletions(-) delete mode 100644 .changelog/12659648a3074e19bc0aa0f0b0ee6928.json delete mode 100644 .changelog/1663b7a4b7e745ae9d611d24dd25ec83.json delete mode 100644 .changelog/4ea9c355e6b54bbda80350a7b486a50b.json delete mode 100644 .changelog/61fb913176e94bcfb2724ba1064987fa.json delete mode 100644 .changelog/7acd60b316ce4c309a041258bbc4d824.json delete mode 100644 .changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json delete mode 100644 .changelog/fd1431c3174e44c69e30fc1a066deba8.json diff --git a/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json b/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json deleted file mode 100644 index 8430b60beb4..00000000000 --- a/.changelog/12659648a3074e19bc0aa0f0b0ee6928.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "12659648-a307-4e19-bc0a-a0f0b0ee6928", - "type": "feature", - "description": "Updated condition key inference from Workload Estimate, Bill Scenario, and Bill Estimate resources. Updated documentation links.", - "modules": [ - "service/bcmpricingcalculator" - ] -} \ No newline at end of file diff --git a/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json b/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json deleted file mode 100644 index b0d1ffcb1e8..00000000000 --- a/.changelog/1663b7a4b7e745ae9d611d24dd25ec83.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "1663b7a4-b7e7-45ae-9d61-1d24dd25ec83", - "type": "documentation", - "description": "Doc only update to examples for DeleteMultiRegionClusters \u0026 CreateMultiRegionClusters", - "modules": [ - "service/dsql" - ] -} \ No newline at end of file diff --git a/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json b/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json deleted file mode 100644 index 3f1876b5233..00000000000 --- a/.changelog/4ea9c355e6b54bbda80350a7b486a50b.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "4ea9c355-e6b5-4bbd-a803-50a7b486a50b", - "type": "feature", - "description": "Introduces support for creating DEED (Deterministic Easy-DKIM) identities.", - "modules": [ - "service/sesv2" - ] -} \ No newline at end of file diff --git a/.changelog/61fb913176e94bcfb2724ba1064987fa.json b/.changelog/61fb913176e94bcfb2724ba1064987fa.json deleted file mode 100644 index ebccf29b423..00000000000 --- a/.changelog/61fb913176e94bcfb2724ba1064987fa.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "61fb9131-76e9-4bcf-b272-4ba1064987fa", - "type": "documentation", - "description": "Doc only update for AAS Predictive Scaling policy configuration API.", - "modules": [ - "service/applicationautoscaling" - ] -} \ No newline at end of file diff --git a/.changelog/7acd60b316ce4c309a041258bbc4d824.json b/.changelog/7acd60b316ce4c309a041258bbc4d824.json deleted file mode 100644 index 964bfd2191e..00000000000 --- a/.changelog/7acd60b316ce4c309a041258bbc4d824.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7acd60b3-16ce-4c30-9a04-1258bbc4d824", - "type": "feature", - "description": "Update KxCommandLineArgument value parameter regex to allow for spaces and semicolons", - "modules": [ - "service/finspace" - ] -} \ No newline at end of file diff --git a/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json b/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json deleted file mode 100644 index 28be32936ba..00000000000 --- a/.changelog/8dbd2253fe7d4235945c9d9ca5814ba5.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "8dbd2253-fe7d-4235-945c-9d9ca5814ba5", - "type": "feature", - "description": "Add support for Push Notifications for Amazon Connect chat. With Push Notifications enabled an alert could be sent to customers about new messages even when they aren't actively using the mobile application.", - "modules": [ - "service/connect" - ] -} \ No newline at end of file diff --git a/.changelog/fd1431c3174e44c69e30fc1a066deba8.json b/.changelog/fd1431c3174e44c69e30fc1a066deba8.json deleted file mode 100644 index 366c94108c0..00000000000 --- a/.changelog/fd1431c3174e44c69e30fc1a066deba8.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "fd1431c3-174e-44c6-9e30-fc1a066deba8", - "type": "feature", - "description": "IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC).", - "modules": [ - "service/ivsrealtime" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index fa65a8e13ac..e1c553740a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# Release (2024-12-10) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/applicationautoscaling`: [v1.34.2](service/applicationautoscaling/CHANGELOG.md#v1342-2024-12-10) + * **Documentation**: Doc only update for AAS Predictive Scaling policy configuration API. +* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.120.0](service/connect/CHANGELOG.md#v11200-2024-12-10) + * **Feature**: Add support for Push Notifications for Amazon Connect chat. With Push Notifications enabled an alert could be sent to customers about new messages even when they aren't actively using the mobile application. +* `github.com/aws/aws-sdk-go-v2/service/ivsrealtime`: [v1.21.0](service/ivsrealtime/CHANGELOG.md#v1210-2024-12-10) + * **Feature**: IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC). +* `github.com/aws/aws-sdk-go-v2/service/sesv2`: [v1.39.0](service/sesv2/CHANGELOG.md#v1390-2024-12-10) + * **Feature**: Introduces support for creating DEED (Deterministic Easy-DKIM) identities. + # Release (2024-12-09) ## Module Highlights diff --git a/service/applicationautoscaling/CHANGELOG.md b/service/applicationautoscaling/CHANGELOG.md index 9bdd2176cc0..6ddce109440 100644 --- a/service/applicationautoscaling/CHANGELOG.md +++ b/service/applicationautoscaling/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.34.2 (2024-12-10) + +* **Documentation**: Doc only update for AAS Predictive Scaling policy configuration API. + # v1.34.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/applicationautoscaling/go_module_metadata.go b/service/applicationautoscaling/go_module_metadata.go index b117dbeb69d..2f7c37404aa 100644 --- a/service/applicationautoscaling/go_module_metadata.go +++ b/service/applicationautoscaling/go_module_metadata.go @@ -3,4 +3,4 @@ package applicationautoscaling // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.34.1" +const goModuleVersion = "1.34.2" diff --git a/service/connect/CHANGELOG.md b/service/connect/CHANGELOG.md index 42ea6cd2d48..8283f6d0646 100644 --- a/service/connect/CHANGELOG.md +++ b/service/connect/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.120.0 (2024-12-10) + +* **Feature**: Add support for Push Notifications for Amazon Connect chat. With Push Notifications enabled an alert could be sent to customers about new messages even when they aren't actively using the mobile application. + # v1.119.0 (2024-12-02) * **Feature**: Adds support for WhatsApp Business messaging, IVR call recording, enabling Contact Lens for existing on-premise contact centers and telephony platforms, and enabling telephony and IVR migration to Amazon Connect independent of their contact center agents. diff --git a/service/connect/go_module_metadata.go b/service/connect/go_module_metadata.go index ae3768e2094..3cfb81a4ce6 100644 --- a/service/connect/go_module_metadata.go +++ b/service/connect/go_module_metadata.go @@ -3,4 +3,4 @@ package connect // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.119.0" +const goModuleVersion = "1.120.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 0c6e35728dc..25d4749d1b4 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -6,7 +6,7 @@ require ( github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.43 github.com/aws/aws-sdk-go-v2/service/acm v1.30.7 github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1 - github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.34.1 + github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.34.2 github.com/aws/aws-sdk-go-v2/service/applicationdiscoveryservice v1.29.1 github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7 github.com/aws/aws-sdk-go-v2/service/athena v1.49.0 diff --git a/service/ivsrealtime/CHANGELOG.md b/service/ivsrealtime/CHANGELOG.md index 57c7049c527..1260bc38e0b 100644 --- a/service/ivsrealtime/CHANGELOG.md +++ b/service/ivsrealtime/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.21.0 (2024-12-10) + +* **Feature**: IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC). + # v1.20.6 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/ivsrealtime/go_module_metadata.go b/service/ivsrealtime/go_module_metadata.go index 3132e7f66df..1dc5b0dca01 100644 --- a/service/ivsrealtime/go_module_metadata.go +++ b/service/ivsrealtime/go_module_metadata.go @@ -3,4 +3,4 @@ package ivsrealtime // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.20.6" +const goModuleVersion = "1.21.0" diff --git a/service/marketplaceagreement/CHANGELOG.md b/service/marketplaceagreement/CHANGELOG.md index 8132514db51..30d3c0ece4d 100644 --- a/service/marketplaceagreement/CHANGELOG.md +++ b/service/marketplaceagreement/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.6.8 (2024-12-10) + +* No change notes available for this release. + # v1.6.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/marketplaceagreement/go_module_metadata.go b/service/marketplaceagreement/go_module_metadata.go index 203843fac20..af715db7944 100644 --- a/service/marketplaceagreement/go_module_metadata.go +++ b/service/marketplaceagreement/go_module_metadata.go @@ -3,4 +3,4 @@ package marketplaceagreement // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.6.7" +const goModuleVersion = "1.6.8" diff --git a/service/sesv2/CHANGELOG.md b/service/sesv2/CHANGELOG.md index 1219a1d7688..a05bb0630b0 100644 --- a/service/sesv2/CHANGELOG.md +++ b/service/sesv2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.39.0 (2024-12-10) + +* **Feature**: Introduces support for creating DEED (Deterministic Easy-DKIM) identities. + # v1.38.4 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/sesv2/go_module_metadata.go b/service/sesv2/go_module_metadata.go index 04652e88310..0a47a97cd24 100644 --- a/service/sesv2/go_module_metadata.go +++ b/service/sesv2/go_module_metadata.go @@ -3,4 +3,4 @@ package sesv2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.38.4" +const goModuleVersion = "1.39.0" From 957d780586a5cc9f36c24159a27b46889fbdc645 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 11 Dec 2024 19:41:27 +0000 Subject: [PATCH 17/21] Merge customizations for SESv2 --- .../customization/AwsAuthResolution.java | 6 +- .../auth/BackfillSigV4ATrait.java | 2 +- .../auth/EndpointAuthResolution.java | 4 +- service/sesv2/api_client.go | 4 +- service/sesv2/auth.go | 9 ++ service/sesv2/endpoint_auth_resolver.go | 104 ++++++++++++++++++ 6 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 service/sesv2/endpoint_auth_resolver.go diff --git a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/AwsAuthResolution.java b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/AwsAuthResolution.java index 6f7eeba93a0..4e6a217532c 100644 --- a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/AwsAuthResolution.java +++ b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/AwsAuthResolution.java @@ -86,7 +86,9 @@ public void writeAdditionalFiles(GoSettings settings, Model model, SymbolProvide private boolean isEndpointAuthService(Model model, ServiceShape service) { final String sdkId = service.expectTrait(ServiceTrait.class).getSdkId(); - return sdkId.equalsIgnoreCase("s3") || sdkId.equalsIgnoreCase("eventbridge"); + return sdkId.equalsIgnoreCase("s3") + || sdkId.equalsIgnoreCase("eventbridge") + || sdkId.equalsIgnoreCase("sesv2"); }; private boolean isSigV4Service(Model model, ServiceShape service) { @@ -108,4 +110,4 @@ func bindAuthEndpointParams(ctx $P, params $P, input interface{}, options Option } """, GoStdlibTypes.Context.Context, AuthParametersGenerator.STRUCT_SYMBOL); } -} \ No newline at end of file +} diff --git a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/BackfillSigV4ATrait.java b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/BackfillSigV4ATrait.java index e0f6879cf1d..7264d807f60 100644 --- a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/BackfillSigV4ATrait.java +++ b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/BackfillSigV4ATrait.java @@ -31,7 +31,7 @@ public class BackfillSigV4ATrait implements GoIntegration { private boolean isBackfillService(ServiceShape service) { final String sdkId = service.expectTrait(ServiceTrait.class).getSdkId(); - return sdkId.equalsIgnoreCase("s3") || sdkId.equalsIgnoreCase("eventbridge"); + return sdkId.equalsIgnoreCase("s3") || sdkId.equalsIgnoreCase("eventbridge") || sdkId.equalsIgnoreCase("sesv2"); }; @Override diff --git a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/EndpointAuthResolution.java b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/EndpointAuthResolution.java index c9f026e78aa..3909fb0caf1 100644 --- a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/EndpointAuthResolution.java +++ b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/auth/EndpointAuthResolution.java @@ -44,7 +44,9 @@ public class EndpointAuthResolution implements GoIntegration { public static boolean isEndpointAuthService(Model model, ServiceShape service) { final String sdkId = service.expectTrait(ServiceTrait.class).getSdkId(); - return sdkId.equalsIgnoreCase("s3") || sdkId.equalsIgnoreCase("eventbridge"); + return sdkId.equalsIgnoreCase("s3") + || sdkId.equalsIgnoreCase("eventbridge") + || sdkId.equalsIgnoreCase("sesv2"); }; @Override diff --git a/service/sesv2/api_client.go b/service/sesv2/api_client.go index 3b30a595c8e..9574a7f8801 100644 --- a/service/sesv2/api_client.go +++ b/service/sesv2/api_client.go @@ -201,7 +201,7 @@ func New(options Options, optFns ...func(*Options)) *Client { ignoreAnonymousAuth(&options) - wrapWithAnonymousAuth(&options) + finalizeServiceEndpointAuthResolver(&options) resolveAuthSchemes(&options) @@ -243,6 +243,8 @@ func (c *Client) invokeOperation( finalizeClientEndpointResolverOptions(&options) + finalizeOperationEndpointAuthResolver(&options) + for _, fn := range stackFns { if err := fn(stack, options); err != nil { return nil, metadata, err diff --git a/service/sesv2/auth.go b/service/sesv2/auth.go index 9479855354b..da942e06bea 100644 --- a/service/sesv2/auth.go +++ b/service/sesv2/auth.go @@ -18,6 +18,10 @@ func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ inter params.Region = options.Region } +func bindAuthEndpointParams(ctx context.Context, params *AuthResolverParameters, input interface{}, options Options) { + params.endpointParams = bindEndpointParams(ctx, input, options) +} + type setLegacyContextSigningOptionsMiddleware struct { } @@ -88,6 +92,10 @@ type AuthResolverParameters struct { // The name of the operation being invoked. Operation string + // The endpoint resolver parameters for this operation. This service's default + // resolver delegates to endpoint rules. + endpointParams *EndpointParameters + // The region in which the operation is being invoked. Region string } @@ -97,6 +105,7 @@ func bindAuthResolverParams(ctx context.Context, operation string, input interfa Operation: operation, } + bindAuthEndpointParams(ctx, params, input, options) bindAuthParamsRegion(ctx, params, input, options) return params diff --git a/service/sesv2/endpoint_auth_resolver.go b/service/sesv2/endpoint_auth_resolver.go new file mode 100644 index 00000000000..a65be5503f4 --- /dev/null +++ b/service/sesv2/endpoint_auth_resolver.go @@ -0,0 +1,104 @@ +package sesv2 + +// copied from service/eventbridge/endpoint_auth_resolver.go +// +// we SHOULD never have to do this again since discussions about formal +// input-based auth are in the works + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +type endpointAuthResolver struct { + EndpointResolver EndpointResolverV2 +} + +var _ AuthSchemeResolver = (*endpointAuthResolver)(nil) + +func (r *endpointAuthResolver) ResolveAuthSchemes( + ctx context.Context, params *AuthResolverParameters, +) ( + []*smithyauth.Option, error, +) { + if params.endpointParams.Region == nil { + // #2502: We're correcting the endpoint binding behavior to treat empty + // Region as "unset" (nil), but auth resolution technically doesn't + // care and someone could be using V1 or non-default V2 endpoint + // resolution, both of which would bypass the required-region check. + // They shouldn't be broken because the region is technically required + // by this service's endpoint-based auth resolver, so we stub it here. + params.endpointParams.Region = aws.String("") + } + + opts, err := r.resolveAuthSchemes(ctx, params) + if err != nil { + return nil, err + } + + // preserve pre-SRA behavior where everything technically had anonymous + return append(opts, &smithyauth.Option{ + SchemeID: smithyauth.SchemeIDAnonymous, + }), nil +} + +func (r *endpointAuthResolver) resolveAuthSchemes( + ctx context.Context, params *AuthResolverParameters, +) ( + []*smithyauth.Option, error, +) { + endpt, err := r.EndpointResolver.ResolveEndpoint(ctx, *params.endpointParams) + if err != nil { + return nil, fmt.Errorf("resolve endpoint: %w", err) + } + + if opts, ok := smithyauth.GetAuthOptions(&endpt.Properties); ok { + return opts, nil + } + + // endpoint rules didn't specify, fallback to sigv4 + return []*smithyauth.Option{ + { + SchemeID: smithyauth.SchemeIDSigV4, + SignerProperties: func() smithy.Properties { + var props smithy.Properties + smithyhttp.SetSigV4SigningName(&props, "ses") + smithyhttp.SetSigV4SigningRegion(&props, params.Region) + return props + }(), + }, + { + SchemeID: smithyauth.SchemeIDSigV4A, + }, + }, nil +} + +func finalizeServiceEndpointAuthResolver(options *Options) { + if _, ok := options.AuthSchemeResolver.(*defaultAuthSchemeResolver); !ok { + return + } + + options.AuthSchemeResolver = &endpointAuthResolver{ + EndpointResolver: options.EndpointResolverV2, + } +} + +func finalizeOperationEndpointAuthResolver(options *Options) { + resolver, ok := options.AuthSchemeResolver.(*endpointAuthResolver) + if !ok { + return + } + + if resolver.EndpointResolver == options.EndpointResolverV2 { + return + } + + options.AuthSchemeResolver = &endpointAuthResolver{ + EndpointResolver: options.EndpointResolverV2, + } +} From c7fbf984667bc2ed7982b87b9cae9805366d02fb Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 11 Dec 2024 19:41:28 +0000 Subject: [PATCH 18/21] Update API model --- codegen/sdk-codegen/aws-models/artifact.json | 418 ++++++-- .../sdk-codegen/aws-models/cloudtrail.json | 4 +- .../aws-models/cognito-identity-provider.json | 540 +++++----- .../aws-models/controlcatalog.json | 2 +- .../aws-models/emr-serverless.json | 9 +- .../sdk-codegen/aws-models/migration-hub.json | 509 ++++++++- codegen/sdk-codegen/aws-models/sesv2.json | 965 +++++++++++++++++- .../aws-models/timestream-influxdb.json | 72 +- 8 files changed, 2102 insertions(+), 417 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/artifact.json b/codegen/sdk-codegen/aws-models/artifact.json index 2cbf6b493bc..90a54e27e54 100644 --- a/codegen/sdk-codegen/aws-models/artifact.json +++ b/codegen/sdk-codegen/aws-models/artifact.json @@ -2,20 +2,22 @@ "smithy": "2.0", "shapes": { "com.amazonaws.artifact#AcceptanceType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "documentation": "Do not require explicit click-through\nacceptance of the Term associated with\nthis Report.", - "value": "PASSTHROUGH", - "name": "PASSTHROUGH" - }, - { - "documentation": "Require explicit click-through acceptance of\nthe Term associated with this Report.", - "value": "EXPLICIT", - "name": "EXPLICIT" + "type": "enum", + "members": { + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "Do not require explicit click-through acceptance\nof the Term associated with this Report", + "smithy.api#enumValue": "PASSTHROUGH" } - ] + }, + "EXPLICIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "Require explicit click-through acceptance of the\nTerm associated with this Report.", + "smithy.api#enumValue": "EXPLICIT" + } + } } }, "com.amazonaws.artifact#AccessDeniedException": { @@ -59,6 +61,40 @@ } ] }, + "com.amazonaws.artifact#AgreementTerms": { + "type": "list", + "member": { + "target": "com.amazonaws.artifact#LongStringAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 10 + } + } + }, + "com.amazonaws.artifact#AgreementType": { + "type": "enum", + "members": { + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + }, + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEFAULT" + } + }, + "MODIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODIFIED" + } + } + } + }, "com.amazonaws.artifact#Artifact": { "type": "service", "version": "2018-05-10", @@ -66,6 +102,9 @@ { "target": "com.amazonaws.artifact#AccountSettingsResource" }, + { + "target": "com.amazonaws.artifact#CustomerAgreementResource" + }, { "target": "com.amazonaws.artifact#ReportResource" }, @@ -781,6 +820,135 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.artifact#CustomerAgreementIdAttribute": { + "type": "string", + "traits": { + "smithy.api#pattern": "^customer-agreement-[a-zA-Z0-9]{16}$" + } + }, + "com.amazonaws.artifact#CustomerAgreementList": { + "type": "list", + "member": { + "target": "com.amazonaws.artifact#CustomerAgreementSummary" + } + }, + "com.amazonaws.artifact#CustomerAgreementResource": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.artifact#ListCustomerAgreements" + } + ] + }, + "com.amazonaws.artifact#CustomerAgreementState": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "CUSTOMER_TERMINATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOMER_TERMINATED" + } + }, + "AWS_TERMINATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_TERMINATED" + } + } + } + }, + "com.amazonaws.artifact#CustomerAgreementSummary": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.artifact#LongStringAttribute", + "traits": { + "smithy.api#documentation": "

Name of the customer-agreement resource.

" + } + }, + "arn": { + "target": "com.amazonaws.artifact#LongStringAttribute", + "traits": { + "smithy.api#documentation": "

ARN of the customer-agreement resource.

" + } + }, + "id": { + "target": "com.amazonaws.artifact#CustomerAgreementIdAttribute", + "traits": { + "smithy.api#documentation": "

Identifier of the customer-agreement resource.

" + } + }, + "agreementArn": { + "target": "com.amazonaws.artifact#LongStringAttribute", + "traits": { + "smithy.api#documentation": "

ARN of the agreement resource the customer-agreement resource represents.

" + } + }, + "awsAccountId": { + "target": "com.amazonaws.artifact#ShortStringAttribute", + "traits": { + "smithy.api#documentation": "

AWS account Id that owns the resource.

" + } + }, + "organizationArn": { + "target": "com.amazonaws.artifact#LongStringAttribute", + "traits": { + "smithy.api#documentation": "

ARN of the organization that owns the resource.

" + } + }, + "effectiveStart": { + "target": "com.amazonaws.artifact#TimestampAttribute", + "traits": { + "smithy.api#documentation": "

Timestamp indicating when the agreement became effective.

" + } + }, + "effectiveEnd": { + "target": "com.amazonaws.artifact#TimestampAttribute", + "traits": { + "smithy.api#documentation": "

Timestamp indicating when the agreement was terminated.

" + } + }, + "state": { + "target": "com.amazonaws.artifact#CustomerAgreementState", + "traits": { + "smithy.api#documentation": "

State of the resource.

" + } + }, + "description": { + "target": "com.amazonaws.artifact#LongStringAttribute", + "traits": { + "smithy.api#documentation": "

Description of the resource.

" + } + }, + "acceptanceTerms": { + "target": "com.amazonaws.artifact#AgreementTerms", + "traits": { + "smithy.api#documentation": "

Terms required to accept the agreement resource.

" + } + }, + "terminateTerms": { + "target": "com.amazonaws.artifact#AgreementTerms", + "traits": { + "smithy.api#documentation": "

Terms required to terminate the customer-agreement resource.

" + } + }, + "type": { + "target": "com.amazonaws.artifact#AgreementType", + "traits": { + "smithy.api#documentation": "

Type of the customer-agreement resource.

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

Summary for customer-agreement resource.

" + } + }, "com.amazonaws.artifact#GetAccountSettings": { "type": "operation", "input": { @@ -890,8 +1058,8 @@ "title": "Invoke GetReport operation on the latest version of a specific report", "documentation": "The GetReport operation is invoked on a reportId and on a optional version.\n Callers must provide a termToken, which is provided by the GetTermForReport\n operation. If callers do not provide a version, it will default to the\n report's latest version", "input": { - "reportId": "report-1hVFddebtfDNJAUf", - "termToken": "term-token-gPFEGk7CF4wS901w7ppYclt7" + "reportId": "report-abcdef0123456789", + "termToken": "term-token-abcdefghijklm01234567890" }, "output": { "documentPresignedUrl": "" @@ -945,19 +1113,19 @@ }, "output": { "reportDetails": { - "arn": "arn:aws:artifact:us-east-1::report/report-bqhUJF3FrQZsMJpb:1", + "arn": "arn:aws:artifact:us-east-1::report/report-abcdef0123456789:1", "category": "Artifact Category", "companyName": "AWS", "createdAt": "2022-05-27T23:17:00.343940Z", "description": "Description of report", - "id": "report-bqhUJF3FrQZsMJpb", + "id": "report-abcdef0123456789", "name": "Name of report", "periodEnd": "2022-04-01T20:32:04Z", "periodStart": "2022-04-01T20:32:04Z", "productName": "Product of report", "series": "Artifact Series", "state": "PUBLISHED", - "termArn": "arn:aws:artifact:us-east-1::term/term-gLJGG12NyPtYcmtu:1", + "termArn": "arn:aws:artifact:us-east-1::term/term-abcdef0123456789:1", "version": 1 } } @@ -1095,10 +1263,10 @@ "title": "Invoke GetTermForReport operation on the latest version of a specific report", "documentation": "The GetTermForReport operation is invoked on a reportId and on a optional version.\n If callers do not provide a version, it will default to the report's latest version.", "input": { - "reportId": "report-bqhUJF3FrQZsMJpb" + "reportId": "report-abcdef0123456789" }, "output": { - "termToken": "term-token-gPFEGk7CF4wS901w7ppYclt7", + "termToken": "term-token-abcdefghijklm01234567890", "documentPresignedUrl": "" } } @@ -1182,6 +1350,116 @@ "smithy.api#retryable": {} } }, + "com.amazonaws.artifact#ListCustomerAgreements": { + "type": "operation", + "input": { + "target": "com.amazonaws.artifact#ListCustomerAgreementsRequest" + }, + "output": { + "target": "com.amazonaws.artifact#ListCustomerAgreementsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.artifact#AccessDeniedException" + }, + { + "target": "com.amazonaws.artifact#InternalServerException" + }, + { + "target": "com.amazonaws.artifact#ThrottlingException" + }, + { + "target": "com.amazonaws.artifact#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

List active customer-agreements applicable to calling identity.

", + "smithy.api#examples": [ + { + "title": "Invoke ListCustomerAgreements operation", + "documentation": "The ListCustomerAgreements operation returns a collection of customer-agreement resources in the ACTIVE state for the calling credential.", + "input": {}, + "output": { + "customerAgreements": [ + { + "name": "Name of agreement", + "arn": "arn:aws:artifact::111111111111:customer-agreement/customer-agreement-abcdef0123456789", + "id": "customer-agreement-abcdef0123456789", + "agreementArn": "arn:aws:artifact:::agreement/agreement-abcdef0123456789", + "awsAccountId": "111111111111", + "description": "Description of agreement", + "effectiveStart": "2022-04-01T20:32:04Z", + "type": "DEFAULT", + "state": "ACTIVE", + "acceptanceTerms": [ + "terms acknowledged when agreement was accepted" + ], + "terminateTerms": [ + "terms that must be acknowledged to terminate this agreement" + ] + } + ], + "nextToken": "gPFEGk7CF4wS901w7ppYclt7gPFEGk7CF4wS901w7ppYclt7gPFEGk7CF4wS901w7ppYclt7" + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/v1/customer-agreement/list" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "customerAgreements" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.artifact#ListCustomerAgreementsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.artifact#MaxResultsAttribute", + "traits": { + "smithy.api#documentation": "

Maximum number of resources to return in the paginated response.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.artifact#NextTokenAttribute", + "traits": { + "smithy.api#documentation": "

Pagination token to request the next page of resources.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.artifact#ListCustomerAgreementsResponse": { + "type": "structure", + "members": { + "customerAgreements": { + "target": "com.amazonaws.artifact#CustomerAgreementList", + "traits": { + "smithy.api#documentation": "

List of customer-agreement resources.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.artifact#NextTokenAttribute", + "traits": { + "smithy.api#documentation": "

Pagination token to request the next page of resources.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.artifact#ListReports": { "type": "operation", "input": { @@ -1220,11 +1498,11 @@ "output": { "reports": [ { - "arn": "arn:aws:artifact:us-east-1::report/report-bqhUJF3FrQZsMJpb", + "arn": "arn:aws:artifact:us-east-1::report/report-abcdef0123456789", "category": "Artifact Category", "companyName": "AWS", "description": "Description of report", - "id": "report-bqhUJF3FrQZsMJpb", + "id": "report-abcdef0123456789", "name": "Name of report", "periodEnd": "2022-04-01T20:32:04Z", "periodStart": "2022-04-01T20:32:04Z", @@ -1323,37 +1601,37 @@ } }, "com.amazonaws.artifact#NotificationSubscriptionStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "SUBSCRIBED", - "name": "SUBSCRIBED", - "documentation": "The account is subscribed for notification." - }, - { - "value": "NOT_SUBSCRIBED", - "name": "NOT_SUBSCRIBED", - "documentation": "The account is not subscribed for notification." + "type": "enum", + "members": { + "SUBSCRIBED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUBSCRIBED" } - ] + }, + "NOT_SUBSCRIBED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_SUBSCRIBED" + } + } } }, "com.amazonaws.artifact#PublishedState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PUBLISHED", - "name": "PUBLISHED", - "documentation": "The resource is published for consumption." - }, - { - "value": "UNPUBLISHED", - "name": "UNPUBLISHED", - "documentation": "The resource is not published for consumption." + "type": "enum", + "members": { + "PUBLISHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUBLISHED" } - ] + }, + "UNPUBLISHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNPUBLISHED" + } + } } }, "com.amazonaws.artifact#PutAccountSettings": { @@ -1850,26 +2128,32 @@ } }, "com.amazonaws.artifact#UploadState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PROCESSING", - "name": "PROCESSING" - }, - { - "value": "COMPLETE", - "name": "COMPLETE" - }, - { - "value": "FAILED", - "name": "FAILED" - }, - { - "value": "FAULT", - "name": "FAULT" + "type": "enum", + "members": { + "PROCESSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROCESSING" } - ] + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "FAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAULT" + } + } } }, "com.amazonaws.artifact#ValidationException": { diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.json b/codegen/sdk-codegen/aws-models/cloudtrail.json index eaa156e77a8..cd57d4a614f 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

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
" + "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

For information about configurable advanced event selector fields, see \n AdvancedEventSelector \n in the CloudTrailUser Guide.

" } }, "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\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#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 more information, see \n AdvancedFieldSelector \n in the CloudTrailUser Guide.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/cognito-identity-provider.json b/codegen/sdk-codegen/aws-models/cognito-identity-provider.json index 2854eda12ef..172de5b1d84 100644 --- a/codegen/sdk-codegen/aws-models/cognito-identity-provider.json +++ b/codegen/sdk-codegen/aws-models/cognito-identity-provider.json @@ -396,7 +396,7 @@ "name": "cognito-idp" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

With the Amazon Cognito user pools API, you can configure user pools and authenticate users. To\n authenticate users from third-party identity providers (IdPs) in this API, you can\n link IdP users to native user profiles. Learn more\n about the authentication and authorization of federated users at Adding user pool sign-in through a third party and in the User pool federation endpoints and hosted UI reference.

\n

This API reference provides detailed information about API operations and object types\n in Amazon Cognito.

\n

Along with resource management operations, the Amazon Cognito user pools API includes classes\n of operations and authorization models for client-side and server-side authentication of\n users. You can interact with operations in the Amazon Cognito user pools API as any of the\n following subjects.

\n
    \n
  1. \n

    An administrator who wants to configure user pools, app clients, users,\n groups, or other user pool functions.

    \n
  2. \n
  3. \n

    A server-side app, like a web application, that wants to use its Amazon Web Services\n privileges to manage, authenticate, or authorize a user.

    \n
  4. \n
  5. \n

    A client-side app, like a mobile app, that wants to make unauthenticated\n requests to manage, authenticate, or authorize a user.

    \n
  6. \n
\n

For more information, see Using the Amazon Cognito user pools API and user pool endpoints\n in the Amazon Cognito Developer Guide.

\n

With your Amazon Web Services SDK, you can build the logic to support operational flows in every use\n case for this API. You can also make direct REST API requests to Amazon Cognito user pools service endpoints. The following links can get you started\n with the CognitoIdentityProvider client in other supported Amazon Web Services\n SDKs.

\n \n

To get started with an Amazon Web Services SDK, see Tools to Build on Amazon Web Services. For example actions and scenarios, see Code examples for Amazon Cognito Identity Provider using Amazon Web Services\n SDKs.

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

With the Amazon Cognito user pools API, you can configure user pools and authenticate users. To\n authenticate users from third-party identity providers (IdPs) in this API, you can\n link IdP users to native user profiles. Learn more\n about the authentication and authorization of federated users at Adding user pool sign-in through a third party and in the User pool federation endpoints and hosted UI reference.

\n

This API reference provides detailed information about API operations and object types\n in Amazon Cognito.

\n

Along with resource management operations, the Amazon Cognito user pools API includes classes\n of operations and authorization models for client-side and server-side authentication of\n users. You can interact with operations in the Amazon Cognito user pools API as any of the\n following subjects.

\n
    \n
  1. \n

    An administrator who wants to configure user pools, app clients, users,\n groups, or other user pool functions.

    \n
  2. \n
  3. \n

    A server-side app, like a web application, that wants to use its Amazon Web Services\n privileges to manage, authenticate, or authorize a user.

    \n
  4. \n
  5. \n

    A client-side app, like a mobile app, that wants to make unauthenticated\n requests to manage, authenticate, or authorize a user.

    \n
  6. \n
\n

For more information, see Using the Amazon Cognito user pools API and user pool endpoints\n in the Amazon Cognito Developer Guide.

\n

With your Amazon Web Services SDK, you can build the logic to support operational flows in every use\n case for this API. You can also make direct REST API requests to Amazon Cognito user pools service endpoints. The following links can get you started\n with the CognitoIdentityProvider client in other supported Amazon Web Services\n SDKs.

\n \n

To get started with an Amazon Web Services SDK, see Tools to Build on Amazon Web Services. For example actions and scenarios, see Code examples for Amazon Cognito Identity Provider using Amazon Web Services\n SDKs.

", "smithy.api#title": "Amazon Cognito Identity Provider", "smithy.api#xmlNamespace": { "uri": "http://cognito-idp.amazonaws.com/doc/2016-04-18/" @@ -1461,7 +1461,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds additional user attributes to the user pool schema.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Adds additional user attributes to the user pool schema. Custom attributes can be\n mutable or immutable and have a custom: or dev: prefix. For\n more information, see Custom attributes.

\n

You can also create custom attributes in the Schema parameter of CreateUserPool and\n UpdateUserPool. You can't delete custom attributes after you\n create them.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AddCustomAttributesRequest": { @@ -1470,14 +1470,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to add custom attributes.

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

The ID of the user pool where you want to add custom attributes.

", "smithy.api#required": {} } }, "CustomAttributes": { "target": "com.amazonaws.cognitoidentityprovider#CustomAttributesListType", "traits": { - "smithy.api#documentation": "

An array of custom attributes, such as Mutable and Name.

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

An array of custom attribute names and other properties. Sets the following\n characteristics:

\n
\n
AttributeDataType
\n
\n

The expected data type. Can be a string, a number, a date and time, or a\n boolean.

\n
\n
Mutable
\n
\n

If true, you can grant app clients write access to the attribute value. If\n false, the attribute value can only be set up on sign-up or administrator\n creation of users.

\n
\n
Name
\n
\n

The attribute name. For an attribute like custom:myAttribute,\n enter myAttribute for this field.

\n
\n
Required
\n
\n

When true, users who sign up or are created must set a value for the\n attribute.

\n
\n
NumberAttributeConstraints
\n
\n

The minimum and maximum length of accepted values for a\n Number-type attribute.

\n
\n
StringAttributeConstraints
\n
\n

The minimum and maximum length of accepted values for a\n String-type attribute.

\n
\n
DeveloperOnlyAttribute
\n
\n

This legacy option creates an attribute with a dev: prefix.\n You can only set the value of a developer-only attribute with administrative\n IAM credentials.

\n
\n
", "smithy.api#required": {} } } @@ -1533,7 +1533,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

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

The ID of the user pool that contains the group that you want to add the user\n to.

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

This IAM-authenticated API operation confirms user sign-up as an administrator.\n Unlike ConfirmSignUp, your IAM credentials authorize user account confirmation.\n No confirmation code is required.

\n

This request sets a user account active in a user pool that requires confirmation of new user accounts before they can sign in. You can\n configure your user pool to not send confirmation codes to new users and instead confirm\n them with this API operation on the back end.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Confirms user sign-up as an administrator. Unlike ConfirmSignUp, your IAM credentials authorize user account confirmation.\n No confirmation code is required.

\n

This request sets a user account active in a user pool that requires confirmation of new user accounts before they can sign in. You can\n configure your user pool to not send confirmation codes to new users and instead confirm\n them with this API operation on the back end.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
\n

To configure your user pool to require administrative confirmation of users, set\n AllowAdminCreateUserOnly to true in a\n CreateUserPool or UpdateUserPool request.

" } }, "com.amazonaws.cognitoidentityprovider#AdminConfirmSignUpRequest": { @@ -1609,7 +1609,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for which you want to confirm user registration.

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

The ID of the user pool where you want to confirm a user's sign-up\n request.

", "smithy.api#required": {} } }, @@ -1623,7 +1623,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

If your user pool configuration includes triggers, the AdminConfirmSignUp API action\n invokes the Lambda function that is specified for the post\n confirmation trigger. When Amazon Cognito invokes this function, it passes a JSON\n payload, which the function receives as input. In this payload, the\n clientMetadata attribute provides the data that you assigned to the\n ClientMetadata parameter in your AdminConfirmSignUp request. In your function code in\n Lambda, you can process the ClientMetadata value to enhance your workflow for your\n specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

If your user pool configuration includes triggers, the AdminConfirmSignUp API action\n invokes the Lambda function that is specified for the post\n confirmation trigger. When Amazon Cognito invokes this function, it passes a JSON\n payload, which the function receives as input. In this payload, the\n clientMetadata attribute provides the data that you assigned to the\n ClientMetadata parameter in your AdminConfirmSignUp request. In your function code in\n Lambda, you can process the ClientMetadata value to enhance your workflow for your\n specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -1792,7 +1792,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where the user will be created.

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

The ID of the user pool where you want to create a user.

", "smithy.api#required": {} } }, @@ -1825,25 +1825,25 @@ "target": "com.amazonaws.cognitoidentityprovider#ForceAliasCreation", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

This parameter is used only if the phone_number_verified or\n email_verified attribute is set to True. Otherwise, it is\n ignored.

\n

If this parameter is set to True and the phone number or email address\n specified in the UserAttributes parameter already exists as an alias with a different\n user, the API call will migrate the alias from the previous user to the newly created\n user. The previous user will no longer be able to log in using that alias.

\n

If this parameter is set to False, the API throws an\n AliasExistsException error if the alias already exists. The default\n value is False.

" + "smithy.api#documentation": "

This parameter is used only if the phone_number_verified or\n email_verified attribute is set to True. Otherwise, it is\n ignored.

\n

If this parameter is set to True and the phone number or email address\n specified in the UserAttributes parameter already exists as an alias with a\n different user, this request migrates the alias from the previous user to the\n newly-created user. The previous user will no longer be able to log in using that\n alias.

\n

If this parameter is set to False, the API throws an\n AliasExistsException error if the alias already exists. The default\n value is False.

" } }, "MessageAction": { "target": "com.amazonaws.cognitoidentityprovider#MessageActionType", "traits": { - "smithy.api#documentation": "

Set to RESEND to resend the invitation message to a user that already\n exists and reset the expiration limit on the user's account. Set to\n SUPPRESS to suppress sending the message. You can specify only one\n value.

" + "smithy.api#documentation": "

Set to RESEND to resend the invitation message to a user that already\n exists, and to reset the temporary-password duration with a new temporary password. Set\n to SUPPRESS to suppress sending the message. You can specify only one\n value.

" } }, "DesiredDeliveryMediums": { "target": "com.amazonaws.cognitoidentityprovider#DeliveryMediumListType", "traits": { - "smithy.api#documentation": "

Specify \"EMAIL\" if email will be used to send the welcome message.\n Specify \"SMS\" if the phone number will be used. The default value is\n \"SMS\". You can specify more than one value.

" + "smithy.api#documentation": "

Specify EMAIL if email will be used to send the welcome message. Specify\n SMS if the phone number will be used. The default value is\n SMS. You can specify more than one value.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminCreateUser API action, Amazon Cognito invokes the function that is assigned\n to the pre sign-up trigger. When Amazon Cognito invokes this function, it\n passes a JSON payload, which the function receives as input. This payload contains a\n clientMetadata attribute, which provides the data that you assigned to\n the ClientMetadata parameter in your AdminCreateUser request. In your function code in\n Lambda, you can process the clientMetadata value to enhance your\n workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminCreateUser API action, Amazon Cognito invokes the function that is assigned\n to the pre sign-up trigger. When Amazon Cognito invokes this function, it\n passes a JSON payload, which the function receives as input. This payload contains a\n ClientMetadata attribute, which provides the data that you assigned to\n the ClientMetadata parameter in your AdminCreateUser request. In your function code in\n Lambda, you can process the clientMetadata value to enhance your\n workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -1858,7 +1858,7 @@ "User": { "target": "com.amazonaws.cognitoidentityprovider#UserType", "traits": { - "smithy.api#documentation": "

The newly created user.

" + "smithy.api#documentation": "

The new user's profile details.

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

Deletes a user as an administrator. Works on any user.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Deletes a user profile in your user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminDeleteUserAttributes": { @@ -1938,7 +1938,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the user attributes in a user pool as an administrator. Works on any\n user.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Deletes attribute values from a user. This operation doesn't affect tokens for\n existing user sessions. The next ID token that the user receives will no longer have\n this attribute.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminDeleteUserAttributesRequest": { @@ -1947,7 +1947,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to delete user attributes.

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

The ID of the user pool where you want to delete user attributes.

", "smithy.api#required": {} } }, @@ -1985,7 +1985,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to delete the user.

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

The ID of the user pool where you want to delete the user.

", "smithy.api#required": {} } }, @@ -2043,14 +2043,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

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

The ID of the user pool where you want to delete the user's linked\n identities.

", "smithy.api#required": {} } }, "User": { "target": "com.amazonaws.cognitoidentityprovider#ProviderUserIdentifierType", "traits": { - "smithy.api#documentation": "

The user to be disabled.

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

The user profile that you want to delete a linked identity from.

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

Deactivates a user and revokes all access tokens for the user. A deactivated user\n can't sign in, but still appears in the responses to GetUser and\n ListUsers API requests.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Deactivates a user profile and revokes all access tokens for the user. A deactivated\n user can't sign in, but still appears in the responses to ListUsers\n API requests.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminDisableUserRequest": { @@ -2104,7 +2104,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to disable the user.

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

The ID of the user pool where you want to disable the user.

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

Enables the specified user as an administrator. Works on any user.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Activate sign-in for a user profile that previously had sign-in access\n disabled.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminEnableUserRequest": { @@ -2167,7 +2167,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to enable the user.

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

The ID of the user pool where you want to activate sign-in for the user.

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

Forgets the device, as an administrator.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Forgets, or deletes, a remembered device from a user's profile. After you forget\n the device, the user can no longer complete device authentication with that device and\n when applicable, must submit MFA codes again. For more information, see Working with devices.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminForgetDeviceRequest": { @@ -2233,7 +2233,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where the device owner is a user.

", "smithy.api#required": {} } }, @@ -2247,7 +2247,7 @@ "DeviceKey": { "target": "com.amazonaws.cognitoidentityprovider#DeviceKeyType", "traits": { - "smithy.api#documentation": "

The device key.

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

The key ID of the device that you want to delete. You can get device keys in the\n response to an AdminListDevices request.

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

Gets the device, as an administrator.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Given the device key, returns details for a user' device. For more information,\n see Working with devices.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminGetDeviceRequest": { @@ -2295,14 +2295,14 @@ "DeviceKey": { "target": "com.amazonaws.cognitoidentityprovider#DeviceKeyType", "traits": { - "smithy.api#documentation": "

The device key.

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

The key of the device that you want to delete. You can get device IDs in the response\n to an AdminListDevices request.

", "smithy.api#required": {} } }, "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where the device owner is a user.

", "smithy.api#required": {} } }, @@ -2325,7 +2325,7 @@ "Device": { "target": "com.amazonaws.cognitoidentityprovider#DeviceType", "traits": { - "smithy.api#documentation": "

The device.

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

Details of the requested device. Includes device information, last-accessed and\n created dates, and the device key.

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

Gets the specified user by user name in a user pool as an administrator. Works on any\n user. This operation contributes to your monthly active user (MAU) count for the purpose\n of billing.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Given the username, returns details about a user profile in a user pool. This\n operation contributes to your monthly active user (MAU) count for the purpose of\n billing. You can specify alias attributes in the Username parameter.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminGetUserRequest": { @@ -2373,7 +2373,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to get information about the\n user.

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

The ID of the user pool where you want to get information about the user.

", "smithy.api#required": {} } }, @@ -2403,13 +2403,13 @@ "UserAttributes": { "target": "com.amazonaws.cognitoidentityprovider#AttributeListType", "traits": { - "smithy.api#documentation": "

An array of name-value pairs representing user attributes.

" + "smithy.api#documentation": "

An array of name-value pairs of user attributes and their values, for example\n \"email\": \"testuser@example.com\".

" } }, "UserCreateDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date the user was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "UserLastModifiedDate": { @@ -2422,13 +2422,13 @@ "target": "com.amazonaws.cognitoidentityprovider#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Indicates that the status is enabled.

" + "smithy.api#documentation": "

Indicates whether the user is activated for sign-in. The AdminDisableUser and AdminEnableUser API operations deactivate and activate\n user sign-in, respectively.

" } }, "UserStatus": { "target": "com.amazonaws.cognitoidentityprovider#UserStatusType", "traits": { - "smithy.api#documentation": "

The user status. Can be one of the following:

\n
    \n
  • \n

    UNCONFIRMED - User has been created but not confirmed.

    \n
  • \n
  • \n

    CONFIRMED - User has been confirmed.

    \n
  • \n
  • \n

    UNKNOWN - User status isn't known.

    \n
  • \n
  • \n

    RESET_REQUIRED - User is confirmed, but the user must request a code and reset\n their password before they can sign in.

    \n
  • \n
  • \n

    FORCE_CHANGE_PASSWORD - The user is confirmed and the user can sign in using a\n temporary password, but on first sign-in, the user must change their password to\n a new value before doing anything else.

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

The user's status. Can be one of the following:

\n
    \n
  • \n

    UNCONFIRMED - User has been created but not confirmed.

    \n
  • \n
  • \n

    CONFIRMED - User has been confirmed.

    \n
  • \n
  • \n

    UNKNOWN - User status isn't known.

    \n
  • \n
  • \n

    RESET_REQUIRED - User is confirmed, but the user must request a code and reset\n their password before they can sign in.

    \n
  • \n
  • \n

    FORCE_CHANGE_PASSWORD - The user is confirmed and the user can sign in using a\n temporary password, but on first sign-in, the user must change their password to\n a new value before doing anything else.

    \n
  • \n
  • \n

    EXTERNAL_PROVIDER - The user signed in with a third-party identity\n provider.

    \n
  • \n
" } }, "MFAOptions": { @@ -2440,13 +2440,13 @@ "PreferredMfaSetting": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The user's preferred MFA setting.

" + "smithy.api#documentation": "

The user's preferred MFA. Users can prefer SMS message, email message, or TOTP\n MFA.

" } }, "UserMFASettingList": { "target": "com.amazonaws.cognitoidentityprovider#UserMFASettingListType", "traits": { - "smithy.api#documentation": "

The MFA options that are activated for the user. The possible values in this list are\n SMS_MFA, EMAIL_OTP, and\n SOFTWARE_TOKEN_MFA.

" + "smithy.api#documentation": "

The MFA options that are activated for the user. The possible values in this list are\n SMS_MFA, EMAIL_OTP, and SOFTWARE_TOKEN_MFA.\n You can change the MFA preference for users who have more than one available MFA factor\n with AdminSetUserMFAPreference or SetUserMFAPreference.

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

Initiates the authentication flow, as an administrator.

\n \n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Starts sign-in for applications with a server-side component, for example a\n traditional web application. This operation specifies the authentication flow that\n you'd like to begin. The authentication flow that you specify must be supported in\n your app client configuration. For more information about authentication flows, see\n Authentication flows.

\n \n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminInitiateAuthRequest": { @@ -2523,21 +2523,21 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Cognito user pool.

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

The ID of the user pool where the user wants to sign in.

", "smithy.api#required": {} } }, "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID.

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

The ID of the app client where the user wants to sign in.

", "smithy.api#required": {} } }, "AuthFlow": { "target": "com.amazonaws.cognitoidentityprovider#AuthFlowType", "traits": { - "smithy.api#documentation": "

The authentication flow that you want to initiate. The AuthParameters\n that you must submit are linked to the flow that you submit. For example:

\n
    \n
  • \n

    \n USER_AUTH: Request a preferred authentication type or review\n available authentication types. From the offered authentication types, select\n one in a challenge response and then authenticate with that method in an\n additional challenge response.

    \n
  • \n
  • \n

    \n REFRESH_TOKEN_AUTH: Receive new ID and access tokens when you\n pass a REFRESH_TOKEN parameter with a valid refresh token as the\n value.

    \n
  • \n
  • \n

    \n USER_SRP_AUTH: Receive secure remote password (SRP) variables for\n the next challenge, PASSWORD_VERIFIER, when you pass\n USERNAME and SRP_A parameters..

    \n
  • \n
  • \n

    \n ADMIN_USER_PASSWORD_AUTH: Receive new tokens or the next\n challenge, for example SOFTWARE_TOKEN_MFA, when you pass\n USERNAME and PASSWORD parameters.

    \n
  • \n
\n

Valid values include the following:

\n
\n
USER_AUTH
\n
\n

The entry point for sign-in with passwords, one-time passwords, biometric\n devices, and security keys.

\n
\n
USER_SRP_AUTH
\n
\n

Username-password authentication with the Secure Remote Password (SRP)\n protocol. For more information, see Use SRP password verification in custom\n authentication flow.

\n
\n
REFRESH_TOKEN_AUTH and REFRESH_TOKEN
\n
\n

Provide a valid refresh token and receive new ID and access tokens. For\n more information, see Using the refresh token.

\n
\n
CUSTOM_AUTH
\n
\n

Custom authentication with Lambda triggers. For more information, see\n Custom authentication challenge Lambda\n triggers.

\n
\n
ADMIN_USER_PASSWORD_AUTH
\n
\n

Username-password authentication with the password sent directly in the\n request. For more information, see Admin authentication flow.

\n
\n
\n

\n USER_PASSWORD_AUTH is a flow type of InitiateAuth and isn't valid for\n AdminInitiateAuth.

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

The authentication flow that you want to initiate. Each AuthFlow has\n linked AuthParameters that you must submit. The following are some example\n flows and their parameters.

\n
    \n
  • \n

    \n USER_AUTH: Request a preferred authentication type or review\n available authentication types. From the offered authentication types, select\n one in a challenge response and then authenticate with that method in an\n additional challenge response.

    \n
  • \n
  • \n

    \n REFRESH_TOKEN_AUTH: Receive new ID and access tokens when you\n pass a REFRESH_TOKEN parameter with a valid refresh token as the\n value.

    \n
  • \n
  • \n

    \n USER_SRP_AUTH: Receive secure remote password (SRP) variables for\n the next challenge, PASSWORD_VERIFIER, when you pass\n USERNAME and SRP_A parameters..

    \n
  • \n
  • \n

    \n ADMIN_USER_PASSWORD_AUTH: Receive new tokens or the next\n challenge, for example SOFTWARE_TOKEN_MFA, when you pass\n USERNAME and PASSWORD parameters.

    \n
  • \n
\n

\n All flows\n

\n
\n
USER_AUTH
\n
\n

The entry point for sign-in with passwords, one-time passwords, and\n WebAuthN authenticators.

\n
\n
USER_SRP_AUTH
\n
\n

Username-password authentication with the Secure Remote Password (SRP)\n protocol. For more information, see Use SRP password verification in custom\n authentication flow.

\n
\n
REFRESH_TOKEN_AUTH and REFRESH_TOKEN
\n
\n

Provide a valid refresh token and receive new ID and access tokens. For\n more information, see Using the refresh token.

\n
\n
CUSTOM_AUTH
\n
\n

Custom authentication with Lambda triggers. For more information, see\n Custom authentication challenge Lambda\n triggers.

\n
\n
ADMIN_USER_PASSWORD_AUTH
\n
\n

Username-password authentication with the password sent directly in the\n request. For more information, see Admin authentication flow.

\n
\n
\n

\n USER_PASSWORD_AUTH is a flow type of InitiateAuth and isn't valid for\n AdminInitiateAuth.

", "smithy.api#required": {} } }, @@ -2550,25 +2550,25 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for certain custom\n workflows that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that\n are specified for various triggers. The ClientMetadata value is passed as input to the\n functions for only the following triggers:

\n
    \n
  • \n

    Pre signup

    \n
  • \n
  • \n

    Pre authentication

    \n
  • \n
  • \n

    User migration

    \n
  • \n
\n

When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which\n the function receives as input. This payload contains a validationData\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your AdminInitiateAuth request. In your function code in Lambda, you can process the\n validationData value to enhance your workflow for your specific\n needs.

\n

When you use the AdminInitiateAuth API action, Amazon Cognito also invokes the functions for\n the following triggers, but it doesn't provide the ClientMetadata value as input:

\n
    \n
  • \n

    Post authentication

    \n
  • \n
  • \n

    Custom message

    \n
  • \n
  • \n

    Pre token generation

    \n
  • \n
  • \n

    Create auth challenge

    \n
  • \n
  • \n

    Define auth challenge

    \n
  • \n
  • \n

    Custom email sender

    \n
  • \n
  • \n

    Custom SMS sender

    \n
  • \n
\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for certain custom\n workflows that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that\n are specified for various triggers. The ClientMetadata value is passed as input to the\n functions for only the following triggers:

\n
    \n
  • \n

    Pre signup

    \n
  • \n
  • \n

    Pre authentication

    \n
  • \n
  • \n

    User migration

    \n
  • \n
\n

When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which\n the function receives as input. This payload contains a validationData\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your AdminInitiateAuth request. In your function code in Lambda, you can process the\n validationData value to enhance your workflow for your specific\n needs.

\n

When you use the AdminInitiateAuth API action, Amazon Cognito also invokes the functions for\n the following triggers, but it doesn't provide the ClientMetadata value as input:

\n
    \n
  • \n

    Post authentication

    \n
  • \n
  • \n

    Custom message

    \n
  • \n
  • \n

    Pre token generation

    \n
  • \n
  • \n

    Create auth challenge

    \n
  • \n
  • \n

    Define auth challenge

    \n
  • \n
  • \n

    Custom email sender

    \n
  • \n
  • \n

    Custom SMS sender

    \n
  • \n
\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } }, "AnalyticsMetadata": { "target": "com.amazonaws.cognitoidentityprovider#AnalyticsMetadataType", "traits": { - "smithy.api#documentation": "

The analytics metadata for collecting Amazon Pinpoint metrics for\n AdminInitiateAuth calls.

" + "smithy.api#documentation": "

The analytics metadata for collecting Amazon Pinpoint metrics.

" } }, "ContextData": { "target": "com.amazonaws.cognitoidentityprovider#ContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The optional session ID from a ConfirmSignUp API request. You can sign in\n a user directly from the sign-up process with the USER_AUTH authentication\n flow.

" + "smithy.api#documentation": "

The optional session ID from a ConfirmSignUp API request. You can sign in\n a user directly from the sign-up process with an AuthFlow of\n USER_AUTH and AuthParameters of EMAIL_OTP or\n SMS_OTP, depending on how your user pool sent the confirmation-code\n message.

" } } }, @@ -2589,7 +2589,7 @@ "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The session that should be passed both ways in challenge-response calls to the\n service. If AdminInitiateAuth or AdminRespondToAuthChallenge\n API call determines that the caller must pass another challenge, they return a session\n with other challenge parameters. This session should be passed as it is to the next\n AdminRespondToAuthChallenge API call.

" + "smithy.api#documentation": "

The session that must be passed to challenge-response requests. If an\n AdminInitiateAuth or AdminRespondToAuthChallenge API\n request determines that the caller must pass another challenge, Amazon Cognito returns a session\n ID and the parameters of the next challenge. Pass this session Id in the\n Session parameter of AdminRespondToAuthChallenge.

" } }, "ChallengeParameters": { @@ -2601,7 +2601,7 @@ "AuthenticationResult": { "target": "com.amazonaws.cognitoidentityprovider#AuthenticationResultType", "traits": { - "smithy.api#documentation": "

The result of the authentication response. This is only returned if the caller doesn't\n need to pass another challenge. If the caller does need to pass another challenge before\n it gets tokens, ChallengeName, ChallengeParameters, and\n Session are returned.

" + "smithy.api#documentation": "

The outcome of successful authentication. This is only returned if the user pool has\n no additional challenges to return. If Amazon Cognito returns another challenge, the response\n includes ChallengeName, ChallengeParameters, and\n Session so that your user can answer the challenge.

" } } }, @@ -2654,7 +2654,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

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

The ID of the user pool where you want to link a federated identity.

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

Lists a user's registered devices.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Lists a user's registered devices. Remembered devices are used in authentication\n services where you offer a \"Remember me\" option for users who you want to permit to sign\n in without MFA from a trusted device. Users can bypass MFA while your application\n performs device SRP authentication on the back end. For more information, see Working with devices.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminListDevicesRequest": { @@ -2722,7 +2722,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where the device owner is a user.

", "smithy.api#required": {} } }, @@ -2736,7 +2736,7 @@ "Limit": { "target": "com.amazonaws.cognitoidentityprovider#QueryLimitType", "traits": { - "smithy.api#documentation": "

The limit of the devices request.

" + "smithy.api#documentation": "

The maximum number of devices that you want Amazon Cognito to return in the response.

" } }, "PaginationToken": { @@ -2757,7 +2757,7 @@ "Devices": { "target": "com.amazonaws.cognitoidentityprovider#DeviceListType", "traits": { - "smithy.api#documentation": "

The devices in the list of devices response.

" + "smithy.api#documentation": "

An array of devices and their information. Each entry that's returned includes\n device information, last-accessed and created dates, and the device key.

" } }, "PaginationToken": { @@ -2801,7 +2801,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the groups that a user belongs to.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Lists the groups that a user belongs to. User pool groups are identifiers that you can\n reference from the contents of ID and access tokens, and set preferred IAM roles for\n identity-pool authentication. For more information, see Adding groups to a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2823,20 +2823,20 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

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

The ID of the user pool where you want to view a user's groups.

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

The limit of the request to list groups.

" + "smithy.api#documentation": "

The maximum number of groups that you want Amazon Cognito to return in the response.

" } }, "NextToken": { "target": "com.amazonaws.cognitoidentityprovider#PaginationKey", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

" + "smithy.api#documentation": "

This API operation returns a limited number of results. The pagination token is\nan identifier that you can present in an additional API request with the same parameters. When\nyou include the pagination token, Amazon Cognito returns the next set of items after the current list. \nSubsequent requests return a new pagination token. By use of this token, you can paginate \nthrough the full list of items.

" } } }, @@ -2850,13 +2850,13 @@ "Groups": { "target": "com.amazonaws.cognitoidentityprovider#GroupListType", "traits": { - "smithy.api#documentation": "

The groups that the user belongs to.

" + "smithy.api#documentation": "

An array of groups and information about them.

" } }, "NextToken": { "target": "com.amazonaws.cognitoidentityprovider#PaginationKey", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

" + "smithy.api#documentation": "

The identifier that Amazon Cognito returned with the previous request to this operation. When \nyou include a pagination token in your request, Amazon Cognito returns the next set of items in \nthe list. By use of this token, you can paginate through the full list of items.

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

A history of user activity and any risks detected as part of Amazon Cognito advanced\n security.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Requests a history of user activity and any risks detected as part of Amazon Cognito threat\n protection. For more information, see Viewing user event history.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2911,7 +2911,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The Id of the user pool that contains the user profile with the logged events.

", "smithy.api#required": {} } }, @@ -2931,7 +2931,7 @@ "NextToken": { "target": "com.amazonaws.cognitoidentityprovider#PaginationKey", "traits": { - "smithy.api#documentation": "

A pagination token.

" + "smithy.api#documentation": "

This API operation returns a limited number of results. The pagination token is\nan identifier that you can present in an additional API request with the same parameters. When\nyou include the pagination token, Amazon Cognito returns the next set of items after the current list. \nSubsequent requests return a new pagination token. By use of this token, you can paginate \nthrough the full list of items.

" } } }, @@ -2951,7 +2951,7 @@ "NextToken": { "target": "com.amazonaws.cognitoidentityprovider#PaginationKey", "traits": { - "smithy.api#documentation": "

A pagination token.

" + "smithy.api#documentation": "

The identifier that Amazon Cognito returned with the previous request to this operation. When \nyou include a pagination token in your request, Amazon Cognito returns the next set of items in \nthe list. By use of this token, you can paginate through the full list of items.

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

Removes the specified user from the specified group.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Given a username and a group name. removes them from the group. User pool groups are\n identifiers that you can reference from the contents of ID and access tokens, and set\n preferred IAM roles for identity-pool authentication. For more information, see Adding groups to a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminRemoveUserFromGroupRequest": { @@ -2997,7 +2997,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

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

The ID of the user pool that contains the group and the user that you want to\n remove.

", "smithy.api#required": {} } }, @@ -3011,7 +3011,7 @@ "GroupName": { "target": "com.amazonaws.cognitoidentityprovider#GroupNameType", "traits": { - "smithy.api#documentation": "

The group name.

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

The name of the group that you want to remove the user from, for example\n MyTestGroup.

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

Resets the specified user's password in a user pool as an administrator. Works on any\n user.

\n

To use this API operation, your user pool must have self-service account recovery\n configured. Use AdminSetUserPassword if you manage passwords as an administrator.

\n \n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n

Deactivates a user's password, requiring them to change it. If a user tries to sign in\n after the API is called, Amazon Cognito responds with a\n PasswordResetRequiredException error. Your app must then perform the\n actions that reset your user's password: the forgot-password flow. In addition, if the\n user pool has phone verification selected and a verified phone number exists for the\n user, or if email verification is selected and a verified email exists for the user,\n calling this API will also result in sending a message to the end user with the code to\n change their password.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Resets the specified user's password in a user pool. This operation doesn't\n change the user's password, but sends a password-reset code. This operation is the\n administrative authentication API equivalent to ForgotPassword.

\n

This operation deactivates a user's password, requiring them to change it. If a user\n tries to sign in after the API request, Amazon Cognito responds with a\n PasswordResetRequiredException error. Your app must then complete the\n forgot-password flow by prompting the user for their code and a new password, then\n submitting those values in a ConfirmForgotPassword request. In addition, if the user\n pool has phone verification selected and a verified phone number exists for the user, or\n if email verification is selected and a verified email exists for the user, calling this\n API will also result in sending a message to the end user with the code to change their\n password.

\n

To use this API operation, your user pool must have self-service account recovery\n configured. Use AdminSetUserPassword if you manage passwords as an administrator.

\n \n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminResetUserPasswordRequest": { @@ -3079,7 +3079,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to reset the user's password.

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

The ID of the user pool where you want to reset the user's password.

", "smithy.api#required": {} } }, @@ -3093,7 +3093,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the AdminResetUserPassword API action, Amazon Cognito invokes the function\n that is assigned to the custom message trigger. When Amazon Cognito invokes\n this function, it passes a JSON payload, which the function receives as input. This\n payload contains a clientMetadata attribute, which provides the data that\n you assigned to the ClientMetadata parameter in your AdminResetUserPassword request. In\n your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. The AdminResetUserPassword API operation invokes the function\n that is assigned to the custom message trigger. When Amazon Cognito invokes\n this function, it passes a JSON payload, which the function receives as input. This\n payload contains a clientMetadata attribute, which provides the data that\n you assigned to the ClientMetadata parameter in your AdminResetUserPassword request. In\n your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -3196,21 +3196,21 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Cognito user pool.

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

The ID of the user pool where you want to respond to an authentication\n challenge.

", "smithy.api#required": {} } }, "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID.

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

The ID of the app client where you initiated sign-in.

", "smithy.api#required": {} } }, "ChallengeName": { "target": "com.amazonaws.cognitoidentityprovider#ChallengeNameType", "traits": { - "smithy.api#documentation": "

The challenge name. For more information, see AdminInitiateAuth.

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

The name of the challenge that you are responding to. You can find more information\n about values for ChallengeName in the response parameters of AdminInitiateAuth.

", "smithy.api#required": {} } }, @@ -3223,7 +3223,7 @@ "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The session that should be passed both ways in challenge-response calls to the\n service. If an InitiateAuth or RespondToAuthChallenge API call\n determines that the caller must pass another challenge, it returns a session with other\n challenge parameters. This session should be passed as it is to the next\n RespondToAuthChallenge API call.

" + "smithy.api#documentation": "

The session identifier that maintains the state of authentication requests and\n challenge responses. If an AdminInitiateAuth or\n AdminRespondToAuthChallenge API request results in a determination that\n your application must pass another challenge, Amazon Cognito returns a session with other\n challenge parameters. Send this session identifier, unmodified, to the next\n AdminRespondToAuthChallenge request.

" } }, "AnalyticsMetadata": { @@ -3235,13 +3235,13 @@ "ContextData": { "target": "com.amazonaws.cognitoidentityprovider#ContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminRespondToAuthChallenge API action, Amazon Cognito invokes any functions\n that you have assigned to the following triggers:

\n
    \n
  • \n

    pre sign-up

    \n
  • \n
  • \n

    custom message

    \n
  • \n
  • \n

    post authentication

    \n
  • \n
  • \n

    user migration

    \n
  • \n
  • \n

    pre token generation

    \n
  • \n
  • \n

    define auth challenge

    \n
  • \n
  • \n

    create auth challenge

    \n
  • \n
  • \n

    verify auth challenge response

    \n
  • \n
\n

When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the\n function receives as input. This payload contains a clientMetadata\n attribute that provides the data that you assigned to the ClientMetadata parameter in\n your AdminRespondToAuthChallenge request. In your function code in Lambda, you can\n process the clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the AdminRespondToAuthChallenge API action, Amazon Cognito invokes any functions\n that you have assigned to the following triggers:

\n
    \n
  • \n

    Pre sign-up

    \n
  • \n
  • \n

    custom message

    \n
  • \n
  • \n

    Post authentication

    \n
  • \n
  • \n

    User migration

    \n
  • \n
  • \n

    Pre token generation

    \n
  • \n
  • \n

    Define auth challenge

    \n
  • \n
  • \n

    Create auth challenge

    \n
  • \n
  • \n

    Verify auth challenge response

    \n
  • \n
\n

When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the\n function receives as input. This payload contains a clientMetadata\n attribute that provides the data that you assigned to the ClientMetadata parameter in\n your AdminRespondToAuthChallenge request. In your function code in Lambda, you can\n process the clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -3256,25 +3256,25 @@ "ChallengeName": { "target": "com.amazonaws.cognitoidentityprovider#ChallengeNameType", "traits": { - "smithy.api#documentation": "

The name of the challenge. For more information, see AdminInitiateAuth.

" + "smithy.api#documentation": "

The name of the challenge that you must next respond to. You can find more information\n about values for ChallengeName in the response parameters of AdminInitiateAuth.

" } }, "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The session that should be passed both ways in challenge-response calls to the\n service. If the caller must pass another challenge, they return a session with other\n challenge parameters. This session should be passed as it is to the next\n RespondToAuthChallenge API call.

" + "smithy.api#documentation": "

The session identifier that maintains the state of authentication requests and\n challenge responses. If an AdminInitiateAuth or\n AdminRespondToAuthChallenge API request results in a determination that\n your application must pass another challenge, Amazon Cognito returns a session with other\n challenge parameters. Send this session identifier, unmodified, to the next\n AdminRespondToAuthChallenge request.

" } }, "ChallengeParameters": { "target": "com.amazonaws.cognitoidentityprovider#ChallengeParametersType", "traits": { - "smithy.api#documentation": "

The challenge parameters. For more information, see AdminInitiateAuth.

" + "smithy.api#documentation": "

The parameters that define your response to the next challenge. Take the values in\n ChallengeParameters and provide values for them in the ChallengeResponses of the next AdminRespondToAuthChallenge\n request.

" } }, "AuthenticationResult": { "target": "com.amazonaws.cognitoidentityprovider#AuthenticationResultType", "traits": { - "smithy.api#documentation": "

The result returned by the server in response to the authentication request.

" + "smithy.api#documentation": "

The outcome of a successful authentication process. After your application has passed\n all challenges, Amazon Cognito returns an AuthenticationResult with the JSON web\n tokens (JWTs) that indicate successful sign-in.

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

Sets the user's multi-factor authentication (MFA) preference, including which MFA\n options are activated, and if any are preferred. Only one factor can be set as\n preferred. The preferred MFA factor will be used to authenticate a user if multiple\n factors are activated. If multiple options are activated and no preference is set, a\n challenge to choose an MFA option will be returned during sign-in.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Sets the user's multi-factor authentication (MFA) preference, including which MFA\n options are activated, and if any are preferred. Only one factor can be set as\n preferred. The preferred MFA factor will be used to authenticate a user if multiple\n factors are activated. If multiple options are activated and no preference is set, a\n challenge to choose an MFA option will be returned during sign-in.

\n

This operation doesn't reset an existing TOTP MFA for a user. To register a new\n TOTP factor for a user, make an AssociateSoftwareToken request. For more information,\n see TOTP software token MFA.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminSetUserMFAPreferenceRequest": { @@ -3400,7 +3400,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the specified user's password in a user pool as an administrator. Works on any\n user.

\n

The password can be temporary or permanent. If it is temporary, the user status enters\n the FORCE_CHANGE_PASSWORD state. When the user next tries to sign in, the\n InitiateAuth/AdminInitiateAuth response will contain the\n NEW_PASSWORD_REQUIRED challenge. If the user doesn't sign in before it\n expires, the user won't be able to sign in, and an administrator must reset their\n password.

\n

Once the user has set a new password, or the password is permanent, the user status is\n set to Confirmed.

\n

\n AdminSetUserPassword can set a password for the user profile that Amazon Cognito\n creates for third-party federated users. When you set a password, the federated user's\n status changes from EXTERNAL_PROVIDER to CONFIRMED. A user in\n this state can sign in as a federated user, and initiate authentication flows in the API\n like a linked native user. They can also modify their password and attributes in\n token-authenticated API requests like ChangePassword and\n UpdateUserAttributes. As a best security practice and to keep users in\n sync with your external IdP, don't set passwords on federated user profiles. To set up a\n federated user for native sign-in with a linked native user, refer to Linking federated users to an existing user\n profile.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Sets the specified user's password in a user pool. This operation administratively\n sets a temporary or permanent password for a user. With this operation, you can bypass\n self-service password changes and permit immediate sign-in with the password that you\n set. To do this, set Permanent to true.

\n

You can also set a new temporary password in this request, send it to a user, and\n require them to choose a new password on their next sign-in. To do this, set\n Permanent to false.

\n

If the password is temporary, the user's Status becomes\n FORCE_CHANGE_PASSWORD. When the user next tries to sign in, the\n InitiateAuth or AdminInitiateAuth response includes the\n NEW_PASSWORD_REQUIRED challenge. If the user doesn't sign in\n before the temporary password expires, they can no longer sign in and you must repeat\n this operation to set a temporary or permanent password for them.

\n

After the user sets a new password, or if you set a permanent password, their status\n becomes Confirmed.

\n

\n AdminSetUserPassword can set a password for the user profile that Amazon Cognito\n creates for third-party federated users. When you set a password, the federated user's\n status changes from EXTERNAL_PROVIDER to CONFIRMED. A user in\n this state can sign in as a federated user, and initiate authentication flows in the API\n like a linked native user. They can also modify their password and attributes in\n token-authenticated API requests like ChangePassword and\n UpdateUserAttributes. As a best security practice and to keep users in\n sync with your external IdP, don't set passwords on federated user profiles. To set up a\n federated user for native sign-in with a linked native user, refer to Linking federated users to an existing user\n profile.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminSetUserPasswordRequest": { @@ -3409,7 +3409,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to set the user's password.

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

The ID of the user pool where you want to set the user's password.

", "smithy.api#required": {} } }, @@ -3423,7 +3423,7 @@ "Password": { "target": "com.amazonaws.cognitoidentityprovider#PasswordType", "traits": { - "smithy.api#documentation": "

The password for the user.

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

The new temporary or permanent password that you want to set for the user. You\n can't remove the password for a user who already has a password so that they can\n only sign in with passwordless methods. In this scenario, you must create a new user\n without a password.

", "smithy.api#required": {} } }, @@ -3431,7 +3431,7 @@ "target": "com.amazonaws.cognitoidentityprovider#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

\n True if the password is permanent, False if it is\n temporary.

" + "smithy.api#documentation": "

Set to true to set a password that the user can immediately sign in with.\n Set to false to set a temporary password that the user must change on their\n next sign-in.

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

Provides feedback for an authentication event indicating if it was from a valid user.\n This feedback is used for improving the risk evaluation decision for the user pool as\n part of Amazon Cognito advanced security.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Provides feedback for an authentication event indicating if it was from a valid user.\n This feedback is used for improving the risk evaluation decision for the user pool as\n part of Amazon Cognito threat protection. To train the threat-protection model to recognize\n trusted and untrusted sign-in characteristics, configure threat protection in audit-only\n mode and provide a mechanism for users or administrators to submit feedback. Your\n feedback can tell Amazon Cognito that a risk rating was assigned at a level you don't agree\n with.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminUpdateAuthEventFeedbackRequest": { @@ -3554,7 +3554,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where you want to submit authentication-event feedback.

", "smithy.api#required": {} } }, @@ -3568,7 +3568,7 @@ "EventId": { "target": "com.amazonaws.cognitoidentityprovider#EventIdType", "traits": { - "smithy.api#documentation": "

The authentication event ID.

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

The authentication event ID. To query authentication events for a user, see AdminListUserAuthEvents.

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

Updates the device status as an administrator.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Updates the status of a user's device so that it is marked as remembered or not\n remembered for the purpose of device authentication. Device authentication is a\n \"remember me\" mechanism that silently completes sign-in from trusted devices with a\n device key instead of a user-provided MFA code. This operation changes the status of a\n device without deleting it, so you can enable it again later. For more information about\n device authentication, see Working with devices.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminUpdateDeviceStatusRequest": { @@ -3632,7 +3632,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where you want to change a user's device status.

", "smithy.api#required": {} } }, @@ -3646,14 +3646,14 @@ "DeviceKey": { "target": "com.amazonaws.cognitoidentityprovider#DeviceKeyType", "traits": { - "smithy.api#documentation": "

The device key.

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

The unique identifier, or device key, of the device that you want to update the status\n for.

", "smithy.api#required": {} } }, "DeviceRememberedStatus": { "target": "com.amazonaws.cognitoidentityprovider#DeviceRememberedStatusType", "traits": { - "smithy.api#documentation": "

The status indicating whether a device has been remembered or not.

" + "smithy.api#documentation": "

To enable device authentication with the specified device, set to\n remembered.To disable, set to not_remembered.

" } } }, @@ -3720,7 +3720,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n

Updates the specified user's attributes, including developer attributes, as an\n administrator. Works on any user. To delete an attribute from your user, submit the\n attribute in your API request with a blank value.

\n

For custom attributes, you must prepend the custom: prefix to the\n attribute name.

\n

In addition to updating user attributes, this API can also be used to mark phone and\n email as verified.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n

Updates the specified user's attributes. To delete an attribute from your user,\n submit the attribute in your API request with a blank value.

\n

For custom attributes, you must prepend the custom: prefix to the\n attribute name.

\n

This operation can set a user's email address or phone number as verified and\n permit immediate sign-in in user pools that require verification of these attributes. To\n do this, set the email_verified or phone_number_verified\n attribute to true.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminUpdateUserAttributesRequest": { @@ -3729,7 +3729,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to update user attributes.

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

The ID of the user pool where you want to update user attributes.

", "smithy.api#required": {} } }, @@ -3750,7 +3750,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the AdminUpdateUserAttributes API action, Amazon Cognito invokes the\n function that is assigned to the custom message trigger. When Amazon Cognito\n invokes this function, it passes a JSON payload, which the function receives as input.\n This payload contains a clientMetadata attribute, which provides the data\n that you assigned to the ClientMetadata parameter in your AdminUpdateUserAttributes\n request. In your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the AdminUpdateUserAttributes API action, Amazon Cognito invokes the\n function that is assigned to the custom message trigger. When Amazon Cognito\n invokes this function, it passes a JSON payload, which the function receives as input.\n This payload contains a clientMetadata attribute, which provides the data\n that you assigned to the ClientMetadata parameter in your AdminUpdateUserAttributes\n request. In your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -3796,7 +3796,7 @@ } ], "traits": { - "smithy.api#documentation": "

Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call\n this operation with your administrative credentials when your user signs out of your\n app. This results in the following behavior.

\n
    \n
  • \n

    Amazon Cognito no longer accepts token-authorized user operations\n that you authorize with a signed-out user's access tokens. For more information,\n see Using the Amazon Cognito user pools API and user pool\n endpoints.

    \n

    Amazon Cognito returns an Access Token has been revoked error when your\n app attempts to authorize a user pools API request with a revoked access token\n that contains the scope aws.cognito.signin.user.admin.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with\n ServerSideTokenCheck enabled for its user pool IdP\n configuration in CognitoIdentityProvider.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh\n requests.

    \n
  • \n
\n

Other requests might be valid until your user's token expires.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

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

Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call\n this operation with your administrative credentials when your user signs out of your\n app. This results in the following behavior.

\n
    \n
  • \n

    Amazon Cognito no longer accepts token-authorized user operations\n that you authorize with a signed-out user's access tokens. For more information,\n see Using the Amazon Cognito user pools API and user pool\n endpoints.

    \n

    Amazon Cognito returns an Access Token has been revoked error when your\n app attempts to authorize a user pools API request with a revoked access token\n that contains the scope aws.cognito.signin.user.admin.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with\n ServerSideTokenCheck enabled for its user pool IdP\n configuration in CognitoIdentityProvider.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh\n requests.

    \n
  • \n
\n

Other requests might be valid until your user's token expires. This operation\n doesn't clear the managed login session cookie. To clear the session for\n a user who signed in with managed login or the classic hosted UI, direct their browser\n session to the logout endpoint.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#AdminUserGlobalSignOutRequest": { @@ -3805,7 +3805,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

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

The ID of the user pool where you want to sign out a user.

", "smithy.api#required": {} } }, @@ -4229,7 +4229,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA)\n for a user, with a unique private key that Amazon Cognito generates and returns in the API\n response. You can authorize an AssociateSoftwareToken request with either\n the user's access token, or a session string from a challenge response that you received\n from Amazon Cognito.

\n \n

Amazon Cognito disassociates an existing software token when you verify the new token in a\n VerifySoftwareToken API request. If you don't verify the software\n token and your user pool doesn't require MFA, the user can then authenticate with\n user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito\n generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge\n each time your user signs in. Complete setup with\n AssociateSoftwareToken and VerifySoftwareToken.

\n

After you set up software token MFA for your user, Amazon Cognito generates a\n SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to\n this challenge with your user's TOTP.

\n
\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

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

Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA)\n for a user, with a unique private key that Amazon Cognito generates and returns in the API\n response. You can authorize an AssociateSoftwareToken request with either\n the user's access token, or a session string from a challenge response that you received\n from Amazon Cognito.

\n \n

Amazon Cognito disassociates an existing software token when you verify the new token in a\n VerifySoftwareToken API request. If you don't verify the software\n token and your user pool doesn't require MFA, the user can then authenticate with\n user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito\n generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge\n each time your user signs in. Complete setup with\n AssociateSoftwareToken and VerifySoftwareToken.

\n

After you set up software token MFA for your user, Amazon Cognito generates a\n SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to\n this challenge with your user's TOTP.

\n
\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

", "smithy.api#optionalAuth": {} } }, @@ -4239,13 +4239,13 @@ "AccessToken": { "target": "com.amazonaws.cognitoidentityprovider#TokenModelType", "traits": { - "smithy.api#documentation": "

A valid access token that Amazon Cognito issued to the user whose software token you want to\n generate.

" + "smithy.api#documentation": "

A valid access token that Amazon Cognito issued to the user whose software token you want to\n generate. You can provide either an access token or a session ID in the request.

" } }, "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The session that should be passed both ways in challenge-response calls to the\n service. This allows authentication of the user as part of the MFA setup process.

" + "smithy.api#documentation": "

The session identifier that maintains the state of authentication requests and\n challenge responses. In AssociateSoftwareToken, this is the session ID from\n a successful sign-in. You can provide either an access token or a session ID in the\n request.

" } } }, @@ -4259,13 +4259,13 @@ "SecretCode": { "target": "com.amazonaws.cognitoidentityprovider#SecretCodeType", "traits": { - "smithy.api#documentation": "

A unique generated shared secret code that is used in the TOTP algorithm to generate a\n one-time code.

" + "smithy.api#documentation": "

A unique generated shared secret code that is used by the TOTP algorithm to generate a\n one-time code.

" } }, "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

The session that should be passed both ways in challenge-response calls to the\n service. This allows authentication of the user as part of the MFA setup process.

" + "smithy.api#documentation": "

The session identifier that maintains the state of authentication requests and\n challenge responses. This session ID is valid for the next request in this flow, VerifySoftwareToken.

" } } }, @@ -4883,7 +4883,7 @@ "ProposedPassword": { "target": "com.amazonaws.cognitoidentityprovider#PasswordType", "traits": { - "smithy.api#documentation": "

The new password.

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

A new password that you prompted the user to enter in your application.

", "smithy.api#required": {} } }, @@ -5123,7 +5123,7 @@ "AccessToken": { "target": "com.amazonaws.cognitoidentityprovider#TokenModelType", "traits": { - "smithy.api#documentation": "

A valid access token that Amazon Cognito issued to the user whose passkey registration you want\n to verify.

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

A valid access token that Amazon Cognito issued to the user whose passkey registration you want\n to complete.

", "smithy.api#required": {} } }, @@ -5288,7 +5288,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Confirms tracking of the device. This API call is the call that begins device\n tracking. For more information about device authentication, see Working with user devices in your user pool.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

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

Confirms a device that a user wants to remember. A remembered device is a \"Remember me\n on this device\" option for user pools that perform authentication with the device key of\n a trusted device in the back end, instead of a user-provided MFA code. For more\n information about device authentication, see Working with user devices in your user pool.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -5305,7 +5305,7 @@ "DeviceKey": { "target": "com.amazonaws.cognitoidentityprovider#DeviceKeyType", "traits": { - "smithy.api#documentation": "

The device key.

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

The unique identifier, or device key, of the device that you want to update the status\n for.

", "smithy.api#required": {} } }, @@ -5318,12 +5318,12 @@ "DeviceName": { "target": "com.amazonaws.cognitoidentityprovider#DeviceNameType", "traits": { - "smithy.api#documentation": "

The device name.

" + "smithy.api#documentation": "

A friendly name for the device, for example MyMobilePhone.

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

Confirms the device request.

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

The confirm-device request.

", "smithy.api#input": {} } }, @@ -5334,12 +5334,12 @@ "target": "com.amazonaws.cognitoidentityprovider#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether the user confirmation must confirm the device response.

" + "smithy.api#documentation": "

When true, your user must confirm that they want to remember the device.\n Prompt the user for an answer. You must then make an UpdateUserDevice request that sets the device to\n remembered or not_remembered.

\n

When false, immediately sets the device as remembered and eligible for\n device authentication.

\n

You can configure your user pool to always remember devices, in which case this\n response is false, or to allow users to opt in, in which case this response\n is true. Configure this option under Device tracking\n in the Sign-in menu of your user pool. You can also configure this\n option with the DeviceConfiguration parameter of a CreateUserPool or UpdateUserPool request.

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

Confirms the device response.

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

The confirm-device response.

", "smithy.api#output": {} } }, @@ -5406,7 +5406,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Allows a user to enter a confirmation code to reset a forgotten password.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

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

This public API operation accepts a confirmation code that Amazon Cognito sent to a user and\n accepts a new password for that user.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -5416,7 +5416,7 @@ "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID of the app associated with the user pool.

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

The ID of the app client where the user wants to reset their password. This parameter\n is an identifier of the client application that users are resetting their password from,\n but this operation resets users' passwords for all app clients in the user\n pool.

", "smithy.api#required": {} } }, @@ -5436,7 +5436,7 @@ "ConfirmationCode": { "target": "com.amazonaws.cognitoidentityprovider#ConfirmationCodeType", "traits": { - "smithy.api#documentation": "

The confirmation code from your user's request to reset their password. For more\n information, see ForgotPassword.

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

The confirmation code that your user pool sent in response to an AdminResetUserPassword or a ForgotPassword request.

", "smithy.api#required": {} } }, @@ -5456,13 +5456,13 @@ "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the ConfirmForgotPassword API action, Amazon Cognito invokes the function that is\n assigned to the post confirmation trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ConfirmForgotPassword request. In your\n function code in Lambda, you can process the clientMetadata value to\n enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

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

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the ConfirmForgotPassword API action, Amazon Cognito invokes the function that is\n assigned to the post confirmation trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ConfirmForgotPassword request. In your\n function code in Lambda, you can process the clientMetadata value to\n enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -5536,7 +5536,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

This public API operation provides a code that Amazon Cognito sent to your user when they\n signed up in your user pool via the SignUp\n API operation. After your user enters their code, they confirm ownership of the email\n address or phone number that they provided, and their user account becomes active.\n Depending on your user pool configuration, your users will receive their confirmation\n code in an email or SMS message.

\n

Local users who signed up in your user pool are the only type of user who can confirm\n sign-up with a code. Users who federate through an external identity provider (IdP) have\n already been confirmed by their IdP. Administrator-created users, users created with the\n AdminCreateUser API operation, confirm their accounts when they respond to\n their invitation email message and choose a password. They do not receive a confirmation\n code. Instead, they receive a temporary password.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

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

This public API operation submits a code that Amazon Cognito sent to your user when they signed\n up in your user pool via the SignUp\n API operation. After your user enters their code, they confirm ownership of the email\n address or phone number that they provided, and their user account becomes active.\n Depending on your user pool configuration, your users will receive their confirmation\n code in an email or SMS message.

\n

Local users who signed up in your user pool are the only type of user who can confirm\n sign-up with a code. Users who federate through an external identity provider (IdP) have\n already been confirmed by their IdP. Administrator-created users, users created with the\n AdminCreateUser API operation, confirm their accounts when they respond to\n their invitation email message and choose a password. They do not receive a confirmation\n code. Instead, they receive a temporary password.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -5553,7 +5553,7 @@ "SecretHash": { "target": "com.amazonaws.cognitoidentityprovider#SecretHashType", "traits": { - "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message.

" + "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message. For more information\n about SecretHash, see Computing secret hash values.

" } }, "Username": { @@ -5566,7 +5566,7 @@ "ConfirmationCode": { "target": "com.amazonaws.cognitoidentityprovider#ConfirmationCodeType", "traits": { - "smithy.api#documentation": "

The confirmation code sent by a user's request to confirm registration.

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

The confirmation code that your user pool sent in response to the SignUp\n request.

", "smithy.api#required": {} } }, @@ -5574,7 +5574,7 @@ "target": "com.amazonaws.cognitoidentityprovider#ForceAliasCreation", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Boolean to be specified to force user confirmation irrespective of existing alias. By\n default set to False. If this parameter is set to True and the\n phone number/email used for sign up confirmation already exists as an alias with a\n different user, the API call will migrate the alias from the previous user to the newly\n created user being confirmed. If set to False, the API will throw an\n AliasExistsException error.

" + "smithy.api#documentation": "

When true, forces user confirmation despite any existing aliases.\n Defaults to false. A value of true migrates the alias from an\n existing user to the new user if an existing user already has the phone number or email\n address as an alias.

\n

Say, for example, that an existing user has an email attribute of\n bob@example.com and email is an alias in your user pool. If the new\n user also has an email of bob@example.com and your\n ConfirmSignUp response sets ForceAliasCreation to\n true, the new user can sign in with a username of\n bob@example.com and the existing user can no longer do so.

\n

If false and an attribute belongs to an existing alias, this request\n returns an AliasExistsException error.

\n

For more information about sign-in aliases, see Customizing sign-in attributes.

" } }, "AnalyticsMetadata": { @@ -5586,13 +5586,13 @@ "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the ConfirmSignUp API action, Amazon Cognito invokes the function that is\n assigned to the post confirmation trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ConfirmSignUp request. In your function\n code in Lambda, you can process the clientMetadata value to\n enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the ConfirmSignUp API action, Amazon Cognito invokes the function that is\n assigned to the post confirmation trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ConfirmSignUp request. In your function\n code in Lambda, you can process the clientMetadata value to\n enhance your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } }, "Session": { @@ -5613,7 +5613,7 @@ "Session": { "target": "com.amazonaws.cognitoidentityprovider#SessionType", "traits": { - "smithy.api#documentation": "

You can automatically sign users in with the one-time password that they provided in a\n successful ConfirmSignUp request. To do this, pass the Session\n parameter from the ConfirmSignUp response in the Session\n parameter of an InitiateAuth or AdminInitiateAuth request.

" + "smithy.api#documentation": "

A session identifier that you can use to immediately sign in the confirmed user. You\n can automatically sign users in with the one-time password that they provided in a\n successful ConfirmSignUp request. To do this, pass the Session\n parameter from this response in the Session parameter of an InitiateAuth or AdminInitiateAuth request.

" } } }, @@ -5706,7 +5706,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new group in the specified user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Creates a new group in the specified user pool. For more information about user pool\n groups see Adding groups to a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateGroupRequest": { @@ -5715,27 +5715,27 @@ "GroupName": { "target": "com.amazonaws.cognitoidentityprovider#GroupNameType", "traits": { - "smithy.api#documentation": "

The name of the group. Must be unique.

", + "smithy.api#documentation": "

A name for the group. This name must be unique in your user pool.

", "smithy.api#required": {} } }, "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool where you want to create a user group.

", "smithy.api#required": {} } }, "Description": { "target": "com.amazonaws.cognitoidentityprovider#DescriptionType", "traits": { - "smithy.api#documentation": "

A string containing the description of the group.

" + "smithy.api#documentation": "

A description of the group that you're creating.

" } }, "RoleArn": { "target": "com.amazonaws.cognitoidentityprovider#ArnType", "traits": { - "smithy.api#documentation": "

The role Amazon Resource Name (ARN) for the group.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that you want to associate with the\n group. A group role primarily declares a preferred role for the credentials that you get\n from an identity pool. Amazon Cognito ID tokens have a cognito:preferred_role claim\n that presents the highest-precedence group that a user belongs to. Both ID and access\n tokens also contain a cognito:groups claim that list all the groups that a\n user is a member of.

" } }, "Precedence": { @@ -5755,7 +5755,7 @@ "Group": { "target": "com.amazonaws.cognitoidentityprovider#GroupType", "traits": { - "smithy.api#documentation": "

The group object for the group.

" + "smithy.api#documentation": "

The response object for a created group.

" } } }, @@ -5795,7 +5795,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a configuration and trust relationship between a third-party identity provider\n (IdP) and a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Adds a configuration and trust relationship between a third-party identity provider\n (IdP) and a user pool. Amazon Cognito accepts sign-in with third-party identity providers through\n managed login and OIDC relying-party libraries. For more information, see Third-party IdP sign-in.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateIdentityProviderRequest": { @@ -5804,21 +5804,21 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

", + "smithy.api#documentation": "

The Id of the user pool where you want to create an IdP.

", "smithy.api#required": {} } }, "ProviderName": { "target": "com.amazonaws.cognitoidentityprovider#ProviderNameTypeV2", "traits": { - "smithy.api#documentation": "

The IdP name.

", + "smithy.api#documentation": "

The name that you want to assign to the IdP. You can pass the identity provider name\n in the identity_provider query parameter of requests to the Authorize endpoint to silently redirect to sign-in with the associated\n IdP.

", "smithy.api#required": {} } }, "ProviderType": { "target": "com.amazonaws.cognitoidentityprovider#IdentityProviderTypeType", "traits": { - "smithy.api#documentation": "

The IdP type.

", + "smithy.api#documentation": "

The type of IdP that you want to add. Amazon Cognito supports OIDC, SAML 2.0, Login With\n Amazon, Sign In With Apple, Google, and Facebook IdPs.

", "smithy.api#required": {} } }, @@ -5832,13 +5832,13 @@ "AttributeMapping": { "target": "com.amazonaws.cognitoidentityprovider#AttributeMappingType", "traits": { - "smithy.api#documentation": "

A mapping of IdP attributes to standard and custom user pool attributes.

" + "smithy.api#documentation": "

A mapping of IdP attributes to standard and custom user pool attributes. Specify a\n user pool attribute as the key of the key-value pair, and the IdP attribute claim name\n as the value.

" } }, "IdpIdentifiers": { "target": "com.amazonaws.cognitoidentityprovider#IdpIdentifiersListType", "traits": { - "smithy.api#documentation": "

A list of IdP identifiers.

" + "smithy.api#documentation": "

An array of IdP identifiers, for example \"IdPIdentifiers\": [ \"MyIdP\", \"MyIdP2\"\n ]. Identifiers are friendly names that you can pass in the\n idp_identifier query parameter of requests to the Authorize endpoint to silently redirect to sign-in with the associated IdP.\n Identifiers in a domain format also enable the use of email-address matching with SAML providers.

" } } }, @@ -5852,7 +5852,7 @@ "IdentityProvider": { "target": "com.amazonaws.cognitoidentityprovider#IdentityProviderType", "traits": { - "smithy.api#documentation": "

The newly created IdP object.

", + "smithy.api#documentation": "

The details of the new user pool IdP.

", "smithy.api#required": {} } } @@ -5896,7 +5896,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new set of branding settings for a user pool style and associates it with an\n app client. This operation is the programmatic option for the creation of a new style in\n the branding designer.

\n

Provides values for UI customization in a Settings JSON object and image\n files in an Assets array. To send the JSON object Document\n type parameter in Settings, you might need to update to the most recent\n version of your Amazon Web Services SDK.

\n

This operation has a 2-megabyte request-size limit and include the CSS settings and\n image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito\n doesn't require that you pass all parameters in one request and preserves existing\n style settings that you don't specify. If your request is larger than 2MB, separate it\n into multiple requests, each with a size smaller than the limit.

\n

For more information, see API and SDK operations for managed login branding\n

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Creates a new set of branding settings for a user pool style and associates it with an\n app client. This operation is the programmatic option for the creation of a new style in\n the branding designer.

\n

Provides values for UI customization in a Settings JSON object and image\n files in an Assets array. To send the JSON object Document\n type parameter in Settings, you might need to update to the most recent\n version of your Amazon Web Services SDK. To create a new style with default settings, set\n UseCognitoProvidedValues to true and don't provide\n values for any other options.

\n

This operation has a 2-megabyte request-size limit and include the CSS settings and\n image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito\n doesn't require that you pass all parameters in one request and preserves existing\n style settings that you don't specify. If your request is larger than 2MB, separate it\n into multiple requests, each with a size smaller than the limit.

\n

As a best practice, modify the output of DescribeManagedLoginBrandingByClient into the request parameters for this\n operation. To get all settings, set ReturnMergedResources to\n true. For more information, see API and SDK operations for managed login branding.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateManagedLoginBrandingRequest": { @@ -5920,7 +5920,7 @@ "target": "com.amazonaws.cognitoidentityprovider#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

When true, applies the default branding style options. This option reverts to default\n style options that are managed by Amazon Cognito. You can modify them later in the branding\n designer.

\n

When you specify true for this option, you must also omit values for\n Settings and Assets in the request.

" + "smithy.api#documentation": "

When true, applies the default branding style options. These default options are\n managed by Amazon Cognito. You can modify them later in the branding designer.

\n

When you specify true for this option, you must also omit values for\n Settings and Assets in the request.

" } }, "Settings": { @@ -5983,7 +5983,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new OAuth2.0 resource server and defines custom scopes within it.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Creates a new OAuth2.0 resource server and defines custom scopes within it. Resource\n servers are associated with custom scopes and machine-to-machine (M2M) authorization.\n For more information, see Access control with resource servers.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateResourceServerRequest": { @@ -5992,7 +5992,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool where you want to create a resource server.

", "smithy.api#required": {} } }, @@ -6013,7 +6013,7 @@ "Scopes": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerScopeListType", "traits": { - "smithy.api#documentation": "

A list of scopes. Each scope is a key-value map with the keys name and\n description.

" + "smithy.api#documentation": "

A list of custom scopes. Each scope is a key-value map with the keys\n ScopeName and ScopeDescription. The name of a custom scope\n is a combination of ScopeName and the resource server Name in\n this request, for example MyResourceServerName/MyScopeName.

" } } }, @@ -6027,7 +6027,7 @@ "ResourceServer": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerType", "traits": { - "smithy.api#documentation": "

The newly created resource server.

", + "smithy.api#documentation": "

The details of the new resource server.

", "smithy.api#required": {} } } @@ -6068,7 +6068,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a user import job.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Creates a user import job. You can import users into user pools from a comma-separated\n values (CSV) file without adding Amazon Cognito MAU costs to your Amazon Web Services bill. To generate a\n template for your import, see GetCSVHeader. To learn more about CSV import, see\n Importing users from a CSV file.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateUserImportJobRequest": { @@ -6077,21 +6077,21 @@ "JobName": { "target": "com.amazonaws.cognitoidentityprovider#UserImportJobNameType", "traits": { - "smithy.api#documentation": "

The job name for the user import job.

", + "smithy.api#documentation": "

A friendly name for the user import job.

", "smithy.api#required": {} } }, "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are being imported into.

", + "smithy.api#documentation": "

The ID of the user pool that you want to import users into.

", "smithy.api#required": {} } }, "CloudWatchLogsRoleArn": { "target": "com.amazonaws.cognitoidentityprovider#ArnType", "traits": { - "smithy.api#documentation": "

The role ARN for the Amazon CloudWatch Logs Logging role for the user import job.

", + "smithy.api#documentation": "

You must specify an IAM role that has permission to log import-job results to\n Amazon CloudWatch Logs. This parameter is the ARN of that role.

", "smithy.api#required": {} } } @@ -6107,7 +6107,7 @@ "UserImportJob": { "target": "com.amazonaws.cognitoidentityprovider#UserImportJobType", "traits": { - "smithy.api#documentation": "

The job object that represents the user import job.

" + "smithy.api#documentation": "

The details of the user import job.

" } } }, @@ -6160,7 +6160,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n

Creates a new Amazon Cognito user pool and sets the password policy for the\n pool.

\n \n

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", + "smithy.api#documentation": "\n

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers\n require you to register an origination phone number before you can send SMS messages\n to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a\n phone number with Amazon Pinpoint.\n Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must\n receive SMS messages might not be able to sign up, activate their accounts, or sign\n in.

\n

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service,\n Amazon Simple Notification Service might place your account in the SMS sandbox. In \n sandbox\n mode\n , you can send messages only to verified phone\n numbers. After you test your app while in the sandbox environment, you can move out\n of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito\n Developer Guide.

\n
\n

Creates a new Amazon Cognito user pool. This operation sets basic and advanced configuration\n options. You can create a user pool in the Amazon Cognito console to your preferences and use the\n output of DescribeUserPool to generate requests from that\n baseline.

\n \n

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", "smithy.api#examples": [ { "title": "Example user pool with email and username sign-in", @@ -6650,7 +6650,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates the user pool client.

\n

When you create a new user pool client, token revocation is automatically activated.\n For more information about revoking tokens, see RevokeToken.

\n \n

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", + "smithy.api#documentation": "

Creates an app client in a user pool. This operation sets basic and advanced\n configuration options. You can create an app client in the Amazon Cognito console to your\n preferences and use the output of DescribeUserPoolClient to generate requests from that\n baseline.

\n

New app clients activate token revocation by default. For more information about\n revoking tokens, see RevokeToken.

\n \n

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

\n
\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
", "smithy.api#examples": [ { "title": "Example user pool app client with email and username sign-in", @@ -6783,14 +6783,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to create a user pool client.

", + "smithy.api#documentation": "

The ID of the user pool where you want to create an app client.

", "smithy.api#required": {} } }, "ClientName": { "target": "com.amazonaws.cognitoidentityprovider#ClientNameType", "traits": { - "smithy.api#documentation": "

The client name for the user pool client you would like to create.

", + "smithy.api#documentation": "

A friendly name for the app client that you want to create.

", "smithy.api#required": {} } }, @@ -6798,7 +6798,7 @@ "target": "com.amazonaws.cognitoidentityprovider#GenerateSecret", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Boolean to specify whether you want to generate a secret for the user pool client\n being created.

" + "smithy.api#documentation": "

When true, generates a client secret for the app client. Client secrets\n are used with server-side and machine-to-machine applications. For more information, see\n App client types.

" } }, "RefreshTokenValidity": { @@ -6823,7 +6823,7 @@ "TokenValidityUnits": { "target": "com.amazonaws.cognitoidentityprovider#TokenValidityUnitsType", "traits": { - "smithy.api#documentation": "

The units in which the validity times are represented. The default unit for\n RefreshToken is days, and default for ID and access tokens are hours.

" + "smithy.api#documentation": "

The units that validity times are represented in. The default unit for refresh tokens\n is days, and the default for ID and access tokens are hours.

" } }, "ReadAttributes": { @@ -6847,25 +6847,25 @@ "SupportedIdentityProviders": { "target": "com.amazonaws.cognitoidentityprovider#SupportedIdentityProvidersListType", "traits": { - "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with the hosted\n UI and OAuth 2.0 authorization server. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" + "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with managed \n login. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" } }, "CallbackURLs": { "target": "com.amazonaws.cognitoidentityprovider#CallbackURLsListType", "traits": { - "smithy.api#documentation": "

A list of allowed redirect (callback) URLs for the IdPs.

\n

A redirect URI must:

\n
    \n
  • \n

    Be an absolute URI.

    \n
  • \n
  • \n

    Be registered with the authorization server.

    \n
  • \n
  • \n

    Not include a fragment component.

    \n
  • \n
\n

See OAuth 2.0 -\n Redirection Endpoint.

\n

Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes\n only.

\n

App callback URLs such as myapp://example are also supported.

" + "smithy.api#documentation": "

A list of allowed redirect (callback) URLs for the IdPs.

\n

A redirect URI must:

\n
    \n
  • \n

    Be an absolute URI.

    \n
  • \n
  • \n

    Be registered with the authorization server. Amazon Cognito doesn't accept\n authorization requests with redirect_uri values that aren't in\n the list of CallbackURLs that you provide in this parameter.

    \n
  • \n
  • \n

    Not include a fragment component.

    \n
  • \n
\n

See OAuth 2.0 -\n Redirection Endpoint.

\n

Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes\n only.

\n

App callback URLs such as myapp://example are also supported.

" } }, "LogoutURLs": { "target": "com.amazonaws.cognitoidentityprovider#LogoutURLsListType", "traits": { - "smithy.api#documentation": "

A list of allowed logout URLs for the IdPs.

" + "smithy.api#documentation": "

A list of allowed logout URLs for managed login authentication. For more information,\n see Logout endpoint.

" } }, "DefaultRedirectURI": { "target": "com.amazonaws.cognitoidentityprovider#RedirectUrlType", "traits": { - "smithy.api#documentation": "

The default redirect URI. In app clients with one assigned IdP, replaces\n redirect_uri in authentication requests. Must be in the\n CallbackURLs list.

\n

A redirect URI must:

\n
    \n
  • \n

    Be an absolute URI.

    \n
  • \n
  • \n

    Be registered with the authorization server.

    \n
  • \n
  • \n

    Not include a fragment component.

    \n
  • \n
\n

For more information, see Default redirect URI.

\n

Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes\n only.

\n

App callback URLs such as myapp://example are also supported.

" + "smithy.api#documentation": "

The default redirect URI. In app clients with one assigned IdP, replaces\n redirect_uri in authentication requests. Must be in the\n CallbackURLs list.

" } }, "AllowedOAuthFlows": { @@ -6877,7 +6877,7 @@ "AllowedOAuthScopes": { "target": "com.amazonaws.cognitoidentityprovider#ScopeListType", "traits": { - "smithy.api#documentation": "

The allowed OAuth scopes. Possible values provided by OAuth are phone,\n email, openid, and profile. Possible values\n provided by Amazon Web Services are aws.cognito.signin.user.admin. Custom\n scopes created in Resource Servers are also supported.

" + "smithy.api#documentation": "

The OAuth 2.0 scopes that you want to permit your app client to authorize. Scopes\n govern access control to user pool self-service API operations, user data from the\n userInfo endpoint, and third-party APIs. Possible values provided by\n OAuth are phone, email, openid, and\n profile. Possible values provided by Amazon Web Services are\n aws.cognito.signin.user.admin. Custom scopes created in Resource\n Servers are also supported.

" } }, "AllowedOAuthFlowsUserPoolClient": { @@ -6890,7 +6890,7 @@ "AnalyticsConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#AnalyticsConfigurationType", "traits": { - "smithy.api#documentation": "

The user pool analytics configuration for collecting metrics and sending them to your\n Amazon Pinpoint campaign.

\n \n

In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools only support sending\n events to Amazon Pinpoint projects in Amazon Web Services Region us-east-1. In Regions where Amazon Pinpoint is\n available, user pools support sending events to Amazon Pinpoint projects within that same\n Region.

\n
" + "smithy.api#documentation": "

The user pool analytics configuration for collecting metrics and sending them to your\n Amazon Pinpoint campaign.

\n

In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools might not have access to\n analytics or might be configurable with campaigns in the US East (N. Virginia) Region.\n For more information, see Using Amazon Pinpoint analytics.

" } }, "PreventUserExistenceErrors": { @@ -6929,7 +6929,7 @@ "UserPoolClient": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolClientType", "traits": { - "smithy.api#documentation": "

The user pool client that was just created.

" + "smithy.api#documentation": "

The details of the new app client.

" } } }, @@ -6967,7 +6967,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new domain for a user pool. The domain hosts user pool domain services like\n managed login, the hosted UI (classic), and the user pool authorization server.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

A user pool domain hosts managed login, an authorization server and web server for\n authentication in your application. This operation creates a new user pool prefix or\n custom domain and sets the managed login branding version. Set the branding version to\n 1 for hosted UI (classic) or 2 for managed login. When you\n choose a custom domain, you must provide an SSL certificate in the US East (N. Virginia)\n Amazon Web Services Region in your request.

\n

Your prefix domain might take up to one minute to take effect. Your custom domain is\n online within five minutes, but it can take up to one hour to distribute your SSL\n certificate.

\n

For more information about adding a custom domain to your user pool, see Configuring a user pool domain.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateUserPoolDomainRequest": { @@ -6976,7 +6976,7 @@ "Domain": { "target": "com.amazonaws.cognitoidentityprovider#DomainType", "traits": { - "smithy.api#documentation": "

The domain string. For custom domains, this is the fully-qualified domain name, such\n as auth.example.com. For Amazon Cognito prefix domains, this is the prefix alone,\n such as auth.

", + "smithy.api#documentation": "

The domain string. For custom domains, this is the fully-qualified domain name, such\n as auth.example.com. For prefix domains, this is the prefix alone, such as\n myprefix. A prefix value of myprefix for a user pool in\n the us-east-1 Region results in a domain of\n myprefix.auth.us-east-1.amazoncognito.com.

", "smithy.api#required": {} } }, @@ -6990,13 +6990,13 @@ "ManagedLoginVersion": { "target": "com.amazonaws.cognitoidentityprovider#WrappedIntegerType", "traits": { - "smithy.api#documentation": "

The version of managed login branding that you want to apply to your domain. A value\n of 1 indicates hosted UI (classic) branding and a version of 2\n indicates managed login branding.

\n

Managed login requires that your user pool be configured for any feature plan other than Lite.

" + "smithy.api#documentation": "

The version of managed login branding that you want to apply to your domain. A value\n of 1 indicates hosted UI (classic) and a version of 2\n indicates managed login.

\n

Managed login requires that your user pool be configured for any feature plan other than Lite.

" } }, "CustomDomainConfig": { "target": "com.amazonaws.cognitoidentityprovider#CustomDomainConfigType", "traits": { - "smithy.api#documentation": "

The configuration for a custom domain that hosts the sign-up and sign-in webpages for\n your application.

\n

Provide this parameter only if you want to use a custom domain for your user pool.\n Otherwise, you can exclude this parameter and use the Amazon Cognito hosted domain\n instead.

\n

For more information about the hosted domain and custom domains, see Configuring a User Pool Domain.

" + "smithy.api#documentation": "

The configuration for a custom domain. Configures your domain with an Certificate Manager\n certificate in the us-east-1 Region.

\n

Provide this parameter only if you want to use a custom domain for your user pool.\n Otherwise, you can exclude this parameter and use a prefix domain instead.

\n

For more information about the hosted domain and custom domains, see Configuring a User Pool Domain.

" } } }, @@ -7010,7 +7010,7 @@ "ManagedLoginVersion": { "target": "com.amazonaws.cognitoidentityprovider#WrappedIntegerType", "traits": { - "smithy.api#documentation": "

The version of managed login branding applied your domain. A value of 1\n indicates hosted UI (classic) branding and a version of 2 indicates managed\n login branding.

" + "smithy.api#documentation": "

The version of managed login branding applied your domain. A value of 1\n indicates hosted UI (classic) and a version of 2 indicates managed\n login.

" } }, "CloudFrontDomain": { @@ -7030,14 +7030,14 @@ "PoolName": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolNameType", "traits": { - "smithy.api#documentation": "

A string used to name the user pool.

", + "smithy.api#documentation": "

A friendlhy name for your user pool.

", "smithy.api#required": {} } }, "Policies": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolPolicyType", "traits": { - "smithy.api#documentation": "

The policies associated with the new user pool.

" + "smithy.api#documentation": "

The password policy and sign-in policy in the user pool. The password policy sets\n options like password complexity requirements and password history. The sign-in policy\n sets the options available to applications in choice-based authentication.

" } }, "DeletionProtection": { @@ -7055,19 +7055,19 @@ "AutoVerifiedAttributes": { "target": "com.amazonaws.cognitoidentityprovider#VerifiedAttributesListType", "traits": { - "smithy.api#documentation": "

The attributes to be auto-verified. Possible values: email, phone_number.

" + "smithy.api#documentation": "

The attributes that you want your user pool to automatically verify. Possible values:\n email, phone_number. For more information see Verifying contact information at sign-up.

" } }, "AliasAttributes": { "target": "com.amazonaws.cognitoidentityprovider#AliasAttributesListType", "traits": { - "smithy.api#documentation": "

Attributes supported as an alias for this user pool. Possible values: phone_number, email, or\n preferred_username.

" + "smithy.api#documentation": "

Attributes supported as an alias for this user pool. Possible values: phone_number, email, or\n preferred_username. For more information about\n alias attributes, see Customizing sign-in attributes.

" } }, "UsernameAttributes": { "target": "com.amazonaws.cognitoidentityprovider#UsernameAttributesListType", "traits": { - "smithy.api#documentation": "

Specifies whether a user can use an email address or phone number as a username when\n they sign up.

" + "smithy.api#documentation": "

Specifies whether a user can use an email address or phone number as a username when\n they sign up. For more information, see Customizing sign-in attributes.

" } }, "SmsVerificationMessage": { @@ -7103,7 +7103,7 @@ "MfaConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolMfaType", "traits": { - "smithy.api#documentation": "

Specifies MFA configuration details.

" + "smithy.api#documentation": "

Sets multi-factor authentication (MFA) to be on, off, or optional. When\n ON, all users must set up MFA before they can sign in. When\n OPTIONAL, your application must make a client-side determination of\n whether a user wants to register an MFA device. For user pools with adaptive\n authentication with threat protection, choose OPTIONAL.

" } }, "UserAttributeUpdateSettings": { @@ -7115,7 +7115,7 @@ "DeviceConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#DeviceConfigurationType", "traits": { - "smithy.api#documentation": "

The device-remembering configuration for a user pool. A null value indicates that you\n have deactivated device remembering in your user pool.

\n \n

When you provide a value for any DeviceConfiguration field, you\n activate the Amazon Cognito device-remembering feature.

\n
" + "smithy.api#documentation": "

The device-remembering configuration for a user pool. Device remembering or device\n tracking is a \"Remember me on this device\" option for user pools that perform\n authentication with the device key of a trusted device in the back end, instead of a\n user-provided MFA code. For more information about device authentication, see Working with user devices in your user pool. A null value indicates that\n you have deactivated device remembering in your user pool.

\n \n

When you provide a value for any DeviceConfiguration field, you\n activate the Amazon Cognito device-remembering feature. For more infor

\n
" } }, "EmailConfiguration": { @@ -7127,7 +7127,7 @@ "SmsConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#SmsConfigurationType", "traits": { - "smithy.api#documentation": "

The SMS configuration with the settings that your Amazon Cognito user pool must use to send an\n SMS message from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS messages\n with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management\n (IAM) role in your Amazon Web Services account.

" + "smithy.api#documentation": "

The SMS configuration with the settings that your Amazon Cognito user pool must use to send an\n SMS message from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS messages\n with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management\n (IAM) role in your Amazon Web Services account. For more information see SMS message settings.

" } }, "UserPoolTags": { @@ -7139,13 +7139,13 @@ "AdminCreateUserConfig": { "target": "com.amazonaws.cognitoidentityprovider#AdminCreateUserConfigType", "traits": { - "smithy.api#documentation": "

The configuration for AdminCreateUser requests.

" + "smithy.api#documentation": "

The configuration for AdminCreateUser requests. Includes the template for the\n invitation message for new users, the duration of temporary passwords, and permitting\n self-service sign-up.

" } }, "Schema": { "target": "com.amazonaws.cognitoidentityprovider#SchemaAttributesListType", "traits": { - "smithy.api#documentation": "

An array of schema attributes for the new user pool. These attributes can be standard\n or custom attributes.

" + "smithy.api#documentation": "

An array of attributes for the new user pool. You can add custom attributes and modify\n the properties of default attributes. The specifications in this parameter set the\n required attributes in your user pool. For more information, see Working with user attributes.

" } }, "UserPoolAddOns": { @@ -7157,7 +7157,7 @@ "UsernameConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#UsernameConfigurationType", "traits": { - "smithy.api#documentation": "

Case sensitivity on the username input for the selected sign-in option. When case\n sensitivity is set to False (case insensitive), users can sign in with any\n combination of capital and lowercase letters. For example, username,\n USERNAME, or UserName, or for email,\n email@example.com or EMaiL@eXamplE.Com. For most use\n cases, set case sensitivity to False (case insensitive) as a best practice.\n When usernames and email addresses are case insensitive, Amazon Cognito treats any variation in\n case as the same user, and prevents a case variation from being assigned to the same\n attribute for a different user.

\n

This configuration is immutable after you set it. For more information, see UsernameConfigurationType.

" + "smithy.api#documentation": "

Sets the case sensitivity option for sign-in usernames. When\n CaseSensitive is false (case insensitive), users can sign\n in with any combination of capital and lowercase letters. For example,\n username, USERNAME, or UserName, or for\n email, email@example.com or EMaiL@eXamplE.Com. For most use\n cases, set case sensitivity to false as a best practice. When usernames and\n email addresses are case insensitive, Amazon Cognito treats any variation in case as the same\n user, and prevents a case variation from being assigned to the same attribute for a\n different user.

\n

When CaseSensitive is true (case sensitive), Amazon Cognito\n interprets USERNAME and UserName as distinct users.

\n

This configuration is immutable after you set it.

" } }, "AccountRecoverySetting": { @@ -7184,7 +7184,7 @@ "UserPool": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolType", "traits": { - "smithy.api#documentation": "

A container for the user pool details.

" + "smithy.api#documentation": "

The details of the created user pool.

" } } }, @@ -7342,7 +7342,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a group.

\n

Calling this action requires developer credentials.

" + "smithy.api#documentation": "

Deletes a group from the specified user pool. When you delete a group, that group no\n longer contributes to users' cognito:preferred_group or\n cognito:groups claims, and no longer influence access-control decision\n that are based on group membership. For more information about user pool groups, see\n Adding groups to a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DeleteGroupRequest": { @@ -7351,14 +7351,14 @@ "GroupName": { "target": "com.amazonaws.cognitoidentityprovider#GroupNameType", "traits": { - "smithy.api#documentation": "

The name of the group.

", + "smithy.api#documentation": "

The name of the group that you want to delete.

", "smithy.api#required": {} } }, "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool where you want to delete the group.

", "smithy.api#required": {} } } @@ -7399,7 +7399,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an IdP for a user pool.

" + "smithy.api#documentation": "

Deletes a user pool identity provider (IdP). After you delete an IdP, users can no\n longer sign in to your user pool through that IdP. For more information about user pool\n IdPs, see Third-party IdP sign-in.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DeleteIdentityProviderRequest": { @@ -7408,14 +7408,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

", + "smithy.api#documentation": "

The ID of the user pool where you want to delete the identity provider.

", "smithy.api#required": {} } }, "ProviderName": { "target": "com.amazonaws.cognitoidentityprovider#ProviderNameType", "traits": { - "smithy.api#documentation": "

The IdP name.

", + "smithy.api#documentation": "

The name of the IdP that you want to delete.

", "smithy.api#required": {} } } @@ -7453,7 +7453,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a managed login branding style. When you delete a style, you delete the\n branding association for an app client and restore it to default settings.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Deletes a managed login branding style. When you delete a style, you delete the\n branding association for an app client. When an app client doesn't have a style\n assigned, your managed login pages for that app client are nonfunctional until you\n create a new style or switch the domain branding version.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DeleteManagedLoginBrandingRequest": { @@ -7504,7 +7504,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a resource server.

" + "smithy.api#documentation": "

Deletes a resource server. After you delete a resource server, users can no longer\n generate access tokens with scopes that are associate with that resource server.

\n

Resource servers are associated with custom scopes and machine-to-machine (M2M)\n authorization. For more information, see Access control with resource servers.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DeleteResourceServerRequest": { @@ -7513,14 +7513,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that hosts the resource server.

", + "smithy.api#documentation": "

The ID of the user pool where you want to delete the resource server.

", "smithy.api#required": {} } }, "Identifier": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerIdentifierType", "traits": { - "smithy.api#documentation": "

The identifier for the resource server.

", + "smithy.api#documentation": "

The identifier of the resource server that you want to delete.

", "smithy.api#required": {} } } @@ -7568,7 +7568,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Allows a user to delete their own user profile.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", + "smithy.api#documentation": "

Self-deletes a user profile. A deleted user profile can no longer be used to sign in\n and can't be restored.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -7611,7 +7611,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Deletes the attributes for a user.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", + "smithy.api#documentation": "

Self-deletes attributes for a user. For example, your application can submit a request\n to this operation when a user wants to remove their birthdate attribute\n value.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -7621,7 +7621,7 @@ "UserAttributeNames": { "target": "com.amazonaws.cognitoidentityprovider#AttributeNameListType", "traits": { - "smithy.api#documentation": "

An array of strings representing the user attribute names you want to delete.

\n

For custom attributes, you must prependattach the custom: prefix to the\n front of the attribute name.

", + "smithy.api#documentation": "

An array of strings representing the user attribute names you want to delete.

\n

For custom attributes, you must prepend the custom: prefix to the\n attribute name, for example custom:department.

", "smithy.api#required": {} } }, @@ -7675,7 +7675,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified Amazon Cognito user pool.

" + "smithy.api#documentation": "

Deletes a user pool. After you delete a user pool, users can no longer sign in to any\n associated applications.

\n

" } }, "com.amazonaws.cognitoidentityprovider#DeleteUserPoolClient": { @@ -7707,7 +7707,7 @@ } ], "traits": { - "smithy.api#documentation": "

Allows the developer to delete the user pool client.

" + "smithy.api#documentation": "

Deletes a user pool app client. After you delete an app client, users can no longer\n sign in to the associated application.

" } }, "com.amazonaws.cognitoidentityprovider#DeleteUserPoolClientRequest": { @@ -7716,14 +7716,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to delete the client.

", + "smithy.api#documentation": "

The ID of the user pool where you want to delete the client.

", "smithy.api#required": {} } }, "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID of the app associated with the user pool.

", + "smithy.api#documentation": "

The ID of the user pool app client that you want to delete.

", "smithy.api#required": {} } } @@ -7756,7 +7756,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a domain for a user pool.

" + "smithy.api#documentation": "

Given a user pool ID and domain identifier, deletes a user pool domain. After you\n delete a user pool domain, your managed login pages and authorization server are no\n longer available.

" } }, "com.amazonaws.cognitoidentityprovider#DeleteUserPoolDomainRequest": { @@ -7765,14 +7765,14 @@ "Domain": { "target": "com.amazonaws.cognitoidentityprovider#DomainType", "traits": { - "smithy.api#documentation": "

The domain string. For custom domains, this is the fully-qualified domain name, such\n as auth.example.com. For Amazon Cognito prefix domains, this is the prefix alone,\n such as auth.

", + "smithy.api#documentation": "

The domain that you want to delete. For custom domains, this is the fully-qualified\n domain name, such as auth.example.com. For Amazon Cognito prefix domains, this is\n the prefix alone, such as auth.

", "smithy.api#required": {} } }, "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

", + "smithy.api#documentation": "

The ID of the user pool where you want to delete the domain.

", "smithy.api#required": {} } } @@ -7794,7 +7794,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool you want to delete.

", + "smithy.api#documentation": "

The ID of the user pool that you want to delete.

", "smithy.api#required": {} } } @@ -7847,7 +7847,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Deletes a registered passkey, or webauthN, device for the currently signed-in\n user.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

", + "smithy.api#documentation": "

Deletes a registered passkey, or webauthN, authenticator for the currently signed-in\n user.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -7857,14 +7857,14 @@ "AccessToken": { "target": "com.amazonaws.cognitoidentityprovider#TokenModelType", "traits": { - "smithy.api#documentation": "

A valid access token that Amazon Cognito issued to the user whose passkey you want to\n delete.

", + "smithy.api#documentation": "

A valid access token that Amazon Cognito issued to the user whose passkey credential you want\n to delete.

", "smithy.api#required": {} } }, "CredentialId": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The unique identifier of the passkey that you want to delete. Look up registered\n devices with ListWebAuthnCredentials.

", + "smithy.api#documentation": "

The unique identifier of the passkey that you want to delete. Look up registered\n devices with ListWebAuthnCredentials.

", "smithy.api#required": {} } } @@ -7946,7 +7946,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a specific IdP.

" + "smithy.api#documentation": "

Given a user pool ID and identity provider (IdP) name, returns details about the\n IdP.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeIdentityProviderRequest": { @@ -7955,14 +7955,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

", + "smithy.api#documentation": "

The ID of the user pool that has the IdP that you want to describe..

", "smithy.api#required": {} } }, "ProviderName": { "target": "com.amazonaws.cognitoidentityprovider#ProviderNameType", "traits": { - "smithy.api#documentation": "

The IdP name.

", + "smithy.api#documentation": "

The name of the IdP that you want to describe.

", "smithy.api#required": {} } } @@ -7977,7 +7977,7 @@ "IdentityProvider": { "target": "com.amazonaws.cognitoidentityprovider#IdentityProviderType", "traits": { - "smithy.api#documentation": "

The identity provider details.

", + "smithy.api#documentation": "

The details of the requested IdP.

", "smithy.api#required": {} } } @@ -8012,7 +8012,7 @@ } ], "traits": { - "smithy.api#documentation": "

When given the ID of a managed login branding style, returns detailed information\n about the style.

" + "smithy.api#documentation": "

Given the ID of a managed login branding style, returns detailed information about the\n style.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeManagedLoginBrandingByClient": { @@ -8041,7 +8041,7 @@ } ], "traits": { - "smithy.api#documentation": "

When given the ID of a user pool app client, returns detailed information about the\n style assigned to the app client.

" + "smithy.api#documentation": "

Given the ID of a user pool app client, returns detailed information about the style\n assigned to the app client.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeManagedLoginBrandingByClientRequest": { @@ -8156,7 +8156,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a resource server.

" + "smithy.api#documentation": "

Describes a resource server. For more information about resource servers, see Access control with resource servers.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeResourceServerRequest": { @@ -8165,7 +8165,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that hosts the resource server.

", + "smithy.api#documentation": "

The ID of the user pool that hosts the resource server.

", "smithy.api#required": {} } }, @@ -8187,7 +8187,7 @@ "ResourceServer": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerType", "traits": { - "smithy.api#documentation": "

The resource server.

", + "smithy.api#documentation": "

The details of the requested resource server.

", "smithy.api#required": {} } } @@ -8225,7 +8225,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the risk configuration.

" + "smithy.api#documentation": "

Given an app client or user pool ID where threat protection is configured, describes\n the risk configuration. This operation returns details about adaptive authentication,\n compromised credentials, and IP-address allow- and denylists. For more information about\n threat protection, see Threat protection.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeRiskConfigurationRequest": { @@ -8234,14 +8234,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID.

", + "smithy.api#documentation": "

The ID of the user pool with the risk configuration that you want to inspect. You can\n apply default risk configuration at the user pool level and further customize it from\n user pool defaults at the app-client level. Specify ClientId to inspect\n client-level configuration, or UserPoolId to inspect pool-level\n configuration.

", "smithy.api#required": {} } }, "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID.

" + "smithy.api#documentation": "

The ID of the app client with the risk configuration that you want to inspect. You can\n apply default risk configuration at the user pool level and further customize it from\n user pool defaults at the app-client level. Specify ClientId to inspect\n client-level configuration, or UserPoolId to inspect pool-level\n configuration.

" } } }, @@ -8255,7 +8255,7 @@ "RiskConfiguration": { "target": "com.amazonaws.cognitoidentityprovider#RiskConfigurationType", "traits": { - "smithy.api#documentation": "

The risk configuration.

", + "smithy.api#documentation": "

The details of the requested risk configuration.

", "smithy.api#required": {} } } @@ -8290,7 +8290,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the user import job.

" + "smithy.api#documentation": "

Describes a user import job. For more information about user CSV import, see Importing users from a CSV file.

" } }, "com.amazonaws.cognitoidentityprovider#DescribeUserImportJobRequest": { @@ -8299,14 +8299,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are being imported into.

", + "smithy.api#documentation": "

The ID of the user pool that's associated with the import job.

", "smithy.api#required": {} } }, "JobId": { "target": "com.amazonaws.cognitoidentityprovider#UserImportJobIdType", "traits": { - "smithy.api#documentation": "

The job ID for the user import job.

", + "smithy.api#documentation": "

The Id of the user import job that you want to describe.

", "smithy.api#required": {} } } @@ -8322,7 +8322,7 @@ "UserImportJob": { "target": "com.amazonaws.cognitoidentityprovider#UserImportJobType", "traits": { - "smithy.api#documentation": "

The job object that represents the user import job.

" + "smithy.api#documentation": "

The details of the user import job.

" } } }, @@ -8360,7 +8360,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the configuration information and metadata of the specified user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Given a user pool ID, returns configuration information. This operation is useful when\n you want to inspect an existing user pool and programmatically replicate the\n configuration to another user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DescribeUserPoolClient": { @@ -8389,7 +8389,7 @@ } ], "traits": { - "smithy.api#documentation": "

Client method for returning the configuration information and metadata of the\n specified user pool app client.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Given an app client ID, returns configuration information. This operation is useful\n when you want to inspect an existing app client and programmatically replicate the\n configuration to another app client. For more information about app clients, see App clients.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DescribeUserPoolClientRequest": { @@ -8398,14 +8398,14 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool you want to describe.

", + "smithy.api#documentation": "

The ID of the user pool that contains the app client you want to describe.

", "smithy.api#required": {} } }, "ClientId": { "target": "com.amazonaws.cognitoidentityprovider#ClientIdType", "traits": { - "smithy.api#documentation": "

The app client ID of the app associated with the user pool.

", + "smithy.api#documentation": "

The ID of the app client that you want to describe.

", "smithy.api#required": {} } } @@ -8421,7 +8421,7 @@ "UserPoolClient": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolClientType", "traits": { - "smithy.api#documentation": "

The user pool client from a server response to describe the user pool client.

" + "smithy.api#documentation": "

The details of the request app client.

" } } }, @@ -8453,7 +8453,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a domain.

" + "smithy.api#documentation": "

Given a user pool domain name, returns information about the domain\n configuration.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#DescribeUserPoolDomainRequest": { @@ -8462,7 +8462,7 @@ "Domain": { "target": "com.amazonaws.cognitoidentityprovider#DomainType", "traits": { - "smithy.api#documentation": "

The domain string. For custom domains, this is the fully-qualified domain name, such\n as auth.example.com. For Amazon Cognito prefix domains, this is the prefix alone,\n such as auth.

", + "smithy.api#documentation": "

The domain that you want to describe. For custom domains, this is the fully-qualified\n domain name, such as auth.example.com. For Amazon Cognito prefix domains, this is\n the prefix alone, such as auth.

", "smithy.api#required": {} } } @@ -8477,7 +8477,7 @@ "DomainDescription": { "target": "com.amazonaws.cognitoidentityprovider#DomainDescriptionType", "traits": { - "smithy.api#documentation": "

A domain description object containing information about the domain.

" + "smithy.api#documentation": "

The details of the requested user pool domain.

" } } }, @@ -8491,7 +8491,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool you want to describe.

", + "smithy.api#documentation": "

The ID of the user pool you want to describe.

", "smithy.api#required": {} } } @@ -8507,7 +8507,7 @@ "UserPool": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolType", "traits": { - "smithy.api#documentation": "

The container of metadata returned by the server to describe the pool.

" + "smithy.api#documentation": "

The details of the requested user pool.

" } } }, @@ -8839,13 +8839,13 @@ "Message": { "target": "com.amazonaws.cognitoidentityprovider#EmailMfaMessageType", "traits": { - "smithy.api#documentation": "

The template for the email message that your user pool sends to users with an MFA\n code. The message must contain the {####} placeholder. In the message,\n Amazon Cognito replaces this placeholder with the code. If you don't provide this parameter,\n Amazon Cognito sends messages in the default format.

" + "smithy.api#documentation": "

The template for the email message that your user pool sends to users with a code for\n MFA and sign-in with an email OTP. The message must contain the {####}\n placeholder. In the message, Amazon Cognito replaces this placeholder with the code. If you\n don't provide this parameter, Amazon Cognito sends messages in the default format.

" } }, "Subject": { "target": "com.amazonaws.cognitoidentityprovider#EmailMfaSubjectType", "traits": { - "smithy.api#documentation": "

The subject of the email message that your user pool sends to users with an MFA\n code.

" + "smithy.api#documentation": "

The subject of the email message that your user pool sends to users with a code for\n MFA and email OTP sign-in.

" } } }, @@ -9476,13 +9476,13 @@ "SecretHash": { "target": "com.amazonaws.cognitoidentityprovider#SecretHashType", "traits": { - "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message.

" + "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message. For more information\n about SecretHash, see Computing secret hash values.

" } }, "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "Username": { @@ -9501,7 +9501,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the ForgotPassword API action, Amazon Cognito invokes any\n functions that are assigned to the following triggers: pre sign-up,\n custom message, and user migration. When\n Amazon Cognito invokes any of these functions, it passes a JSON payload, which the\n function receives as input. This payload contains a clientMetadata\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your ForgotPassword request. In your function code in Lambda, you can\n process the clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the ForgotPassword API action, Amazon Cognito invokes any\n functions that are assigned to the following triggers: pre sign-up,\n custom message, and user migration. When\n Amazon Cognito invokes any of these functions, it passes a JSON payload, which the\n function receives as input. This payload contains a clientMetadata\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your ForgotPassword request. In your function code in Lambda, you can\n process the clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -9566,7 +9566,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are to be imported into.

", + "smithy.api#documentation": "

The ID of the user pool that the users are to be imported into.

", "smithy.api#required": {} } } @@ -9582,7 +9582,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are to be imported into.

" + "smithy.api#documentation": "

The ID of the user pool that the users are to be imported into.

" } }, "CSVHeader": { @@ -9723,7 +9723,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } } @@ -9959,7 +9959,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -10119,7 +10119,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the GetUserAttributeVerificationCode API action, Amazon Cognito invokes\n the function that is assigned to the custom message trigger. When\n Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as\n input. This payload contains a clientMetadata attribute, which provides the\n data that you assigned to the ClientMetadata parameter in your\n GetUserAttributeVerificationCode request. In your function code in Lambda, you can process the clientMetadata value to enhance your workflow for\n your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the GetUserAttributeVerificationCode API action, Amazon Cognito invokes\n the function that is assigned to the custom message trigger. When\n Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as\n input. This payload contains a clientMetadata attribute, which provides the\n data that you assigned to the ClientMetadata parameter in your\n GetUserAttributeVerificationCode request. In your function code in Lambda, you can process the clientMetadata value to enhance your workflow for\n your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -10409,7 +10409,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call\n this operation when your user signs out of your app. This results in the following\n behavior.

\n
    \n
  • \n

    Amazon Cognito no longer accepts token-authorized user operations\n that you authorize with a signed-out user's access tokens. For more information,\n see Using the Amazon Cognito user pools API and user pool\n endpoints.

    \n

    Amazon Cognito returns an Access Token has been revoked error when your\n app attempts to authorize a user pools API request with a revoked access token\n that contains the scope aws.cognito.signin.user.admin.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with\n ServerSideTokenCheck enabled for its user pool IdP\n configuration in CognitoIdentityProvider.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh\n requests.

    \n
  • \n
\n

Other requests might be valid until your user's token expires.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", + "smithy.api#documentation": "

Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call\n this operation when your user signs out of your app. This results in the following\n behavior.

\n
    \n
  • \n

    Amazon Cognito no longer accepts token-authorized user operations\n that you authorize with a signed-out user's access tokens. For more information,\n see Using the Amazon Cognito user pools API and user pool\n endpoints.

    \n

    Amazon Cognito returns an Access Token has been revoked error when your\n app attempts to authorize a user pools API request with a revoked access token\n that contains the scope aws.cognito.signin.user.admin.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with\n ServerSideTokenCheck enabled for its user pool IdP\n configuration in CognitoIdentityProvider.

    \n
  • \n
  • \n

    Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh\n requests.

    \n
  • \n
\n

Other requests might be valid until your user's token expires. This operation\n doesn't clear the managed login session cookie. To clear the session for\n a user who signed in with managed login or the classic hosted UI, direct their browser\n session to the logout endpoint.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -10791,7 +10791,7 @@ "AuthFlow": { "target": "com.amazonaws.cognitoidentityprovider#AuthFlowType", "traits": { - "smithy.api#documentation": "

The authentication flow that you want to initiate. The AuthParameters\n that you must submit are linked to the flow that you submit. For example:

\n
    \n
  • \n

    \n USER_AUTH: Request a preferred authentication type or review\n available authentication types. From the offered authentication types, select\n one in a challenge response and then authenticate with that method in an\n additional challenge response.

    \n
  • \n
  • \n

    \n REFRESH_TOKEN_AUTH: Receive new ID and access tokens when you\n pass a REFRESH_TOKEN parameter with a valid refresh token as the\n value.

    \n
  • \n
  • \n

    \n USER_SRP_AUTH: Receive secure remote password (SRP) variables for\n the next challenge, PASSWORD_VERIFIER, when you pass\n USERNAME and SRP_A parameters.

    \n
  • \n
  • \n

    \n USER_PASSWORD_AUTH: Receive new tokens or the next challenge, for\n example SOFTWARE_TOKEN_MFA, when you pass USERNAME and\n PASSWORD parameters.

    \n
  • \n
\n

Valid values include the following:

\n
\n
USER_AUTH
\n
\n

The entry point for sign-in with passwords, one-time passwords, biometric\n devices, and security keys.

\n
\n
USER_SRP_AUTH
\n
\n

Username-password authentication with the Secure Remote Password (SRP)\n protocol. For more information, see Use SRP password verification in custom\n authentication flow.

\n
\n
REFRESH_TOKEN_AUTH and REFRESH_TOKEN
\n
\n

Provide a valid refresh token and receive new ID and access tokens. For\n more information, see Using the refresh token.

\n
\n
CUSTOM_AUTH
\n
\n

Custom authentication with Lambda triggers. For more information, see\n Custom authentication challenge Lambda\n triggers.

\n
\n
USER_PASSWORD_AUTH
\n
\n

Username-password authentication with the password sent directly in the\n request. For more information, see Admin authentication flow.

\n
\n
\n

\n ADMIN_USER_PASSWORD_AUTH is a flow type of AdminInitiateAuth and isn't valid for InitiateAuth.\n ADMIN_NO_SRP_AUTH is a legacy server-side username-password flow and\n isn't valid for InitiateAuth.

", + "smithy.api#documentation": "

The authentication flow that you want to initiate. Each AuthFlow has\n linked AuthParameters that you must submit. The following are some example\n flows and their parameters.

\n
    \n
  • \n

    \n USER_AUTH: Request a preferred authentication type or review\n available authentication types. From the offered authentication types, select\n one in a challenge response and then authenticate with that method in an\n additional challenge response.

    \n
  • \n
  • \n

    \n REFRESH_TOKEN_AUTH: Receive new ID and access tokens when you\n pass a REFRESH_TOKEN parameter with a valid refresh token as the\n value.

    \n
  • \n
  • \n

    \n USER_SRP_AUTH: Receive secure remote password (SRP) variables for\n the next challenge, PASSWORD_VERIFIER, when you pass\n USERNAME and SRP_A parameters.

    \n
  • \n
  • \n

    \n USER_PASSWORD_AUTH: Receive new tokens or the next challenge, for\n example SOFTWARE_TOKEN_MFA, when you pass USERNAME and\n PASSWORD parameters.

    \n
  • \n
\n

\n All flows\n

\n
\n
USER_AUTH
\n
\n

The entry point for sign-in with passwords, one-time passwords, and\n WebAuthN authenticators.

\n
\n
USER_SRP_AUTH
\n
\n

Username-password authentication with the Secure Remote Password (SRP)\n protocol. For more information, see Use SRP password verification in custom\n authentication flow.

\n
\n
REFRESH_TOKEN_AUTH and REFRESH_TOKEN
\n
\n

Provide a valid refresh token and receive new ID and access tokens. For\n more information, see Using the refresh token.

\n
\n
CUSTOM_AUTH
\n
\n

Custom authentication with Lambda triggers. For more information, see\n Custom authentication challenge Lambda\n triggers.

\n
\n
USER_PASSWORD_AUTH
\n
\n

Username-password authentication with the password sent directly in the\n request. For more information, see Admin authentication flow.

\n
\n
\n

\n ADMIN_USER_PASSWORD_AUTH is a flow type of AdminInitiateAuth and isn't valid for InitiateAuth.\n ADMIN_NO_SRP_AUTH is a legacy server-side username-password flow and\n isn't valid for InitiateAuth.

", "smithy.api#required": {} } }, @@ -10804,7 +10804,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for certain custom\n workflows that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the InitiateAuth API action, Amazon Cognito invokes the Lambda functions that are\n specified for various triggers. The ClientMetadata value is passed as input to the\n functions for only the following triggers:

\n
    \n
  • \n

    Pre signup

    \n
  • \n
  • \n

    Pre authentication

    \n
  • \n
  • \n

    User migration

    \n
  • \n
\n

When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which\n the function receives as input. This payload contains a validationData\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your InitiateAuth request. In your function code in Lambda, you can process the\n validationData value to enhance your workflow for your specific\n needs.

\n

When you use the InitiateAuth API action, Amazon Cognito also invokes the functions for the\n following triggers, but it doesn't provide the ClientMetadata value as input:

\n
    \n
  • \n

    Post authentication

    \n
  • \n
  • \n

    Custom message

    \n
  • \n
  • \n

    Pre token generation

    \n
  • \n
  • \n

    Create auth challenge

    \n
  • \n
  • \n

    Define auth challenge

    \n
  • \n
  • \n

    Custom email sender

    \n
  • \n
  • \n

    Custom SMS sender

    \n
  • \n
\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for certain custom\n workflows that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the InitiateAuth API action, Amazon Cognito invokes the Lambda functions that are\n specified for various triggers. The ClientMetadata value is passed as input to the\n functions for only the following triggers:

\n
    \n
  • \n

    Pre signup

    \n
  • \n
  • \n

    Pre authentication

    \n
  • \n
  • \n

    User migration

    \n
  • \n
\n

When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which\n the function receives as input. This payload contains a validationData\n attribute, which provides the data that you assigned to the ClientMetadata parameter in\n your InitiateAuth request. In your function code in Lambda, you can process the\n validationData value to enhance your workflow for your specific\n needs.

\n

When you use the InitiateAuth API action, Amazon Cognito also invokes the functions for the\n following triggers, but it doesn't provide the ClientMetadata value as input:

\n
    \n
  • \n

    Post authentication

    \n
  • \n
  • \n

    Custom message

    \n
  • \n
  • \n

    Pre token generation

    \n
  • \n
  • \n

    Create auth challenge

    \n
  • \n
  • \n

    Define auth challenge

    \n
  • \n
  • \n

    Custom email sender

    \n
  • \n
  • \n

    Custom SMS sender

    \n
  • \n
\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } }, "ClientId": { @@ -10823,7 +10823,7 @@ "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "Session": { @@ -11276,7 +11276,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -11465,7 +11465,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -11600,7 +11600,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are being imported into.

", + "smithy.api#documentation": "

The ID of the user pool that the users are being imported into.

", "smithy.api#required": {} } }, @@ -11685,7 +11685,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to list user pool clients.

", + "smithy.api#documentation": "

The ID of the user pool where you want to list user pool clients.

", "smithy.api#required": {} } }, @@ -11966,7 +11966,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -12020,7 +12020,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool on which the search should be performed.

", + "smithy.api#documentation": "

The ID of the user pool on which the search should be performed.

", "smithy.api#required": {} } }, @@ -12340,7 +12340,7 @@ "target": "com.amazonaws.cognitoidentityprovider#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

When true, applies the default branding style options. This option reverts to a\n \"blank\" style that you can modify later in the branding designer.

" + "smithy.api#documentation": "

When true, applies the default branding style options. This option reverts to default\n style options that are managed by Amazon Cognito. You can modify them later in the branding\n designer.

\n

When you specify true for this option, you must also omit values for\n Settings and Assets in the request.

" } }, "Settings": { @@ -13106,13 +13106,13 @@ "SecretHash": { "target": "com.amazonaws.cognitoidentityprovider#SecretHashType", "traits": { - "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message.

" + "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message. For more information\n about SecretHash, see Computing secret hash values.

" } }, "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "Username": { @@ -13131,7 +13131,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the ResendConfirmationCode API action, Amazon Cognito invokes the function that is\n assigned to the custom message trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ResendConfirmationCode request. In your\n function code in Lambda, you can process the clientMetadata value to enhance\n your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the ResendConfirmationCode API action, Amazon Cognito invokes the function that is\n assigned to the custom message trigger. When Amazon Cognito invokes this\n function, it passes a JSON payload, which the function receives as input. This payload\n contains a clientMetadata attribute, which provides the data that you\n assigned to the ClientMetadata parameter in your ResendConfirmationCode request. In your\n function code in Lambda, you can process the clientMetadata value to enhance\n your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -13415,13 +13415,13 @@ "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the RespondToAuthChallenge API action, Amazon Cognito invokes any\n functions that are assigned to the following triggers: post\n authentication, pre token generation,\n define auth challenge, create auth\n challenge, and verify auth challenge. When Amazon Cognito\n invokes any of these functions, it passes a JSON payload, which the function receives as\n input. This payload contains a clientMetadata attribute, which provides the\n data that you assigned to the ClientMetadata parameter in your RespondToAuthChallenge\n request. In your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool\n triggers. When you use the RespondToAuthChallenge API action, Amazon Cognito invokes any\n functions that are assigned to the following triggers: post\n authentication, pre token generation,\n define auth challenge, create auth\n challenge, and verify auth challenge. When Amazon Cognito\n invokes any of these functions, it passes a JSON payload, which the function receives as\n input. This payload contains a clientMetadata attribute, which provides the\n data that you assigned to the ClientMetadata parameter in your RespondToAuthChallenge\n request. In your function code in Lambda, you can process the\n clientMetadata value to enhance your workflow for your specific\n needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -14052,7 +14052,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -14130,7 +14130,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "

Set the user's multi-factor authentication (MFA) method preference, including which\n MFA factors are activated and if any are preferred. Only one factor can be set as\n preferred. The preferred MFA factor will be used to authenticate a user if multiple\n factors are activated. If multiple options are activated and no preference is set, a\n challenge to choose an MFA option will be returned during sign-in. If an MFA type is\n activated for a user, the user will be prompted for MFA during all sign-in attempts\n unless device tracking is turned on and the device has been trusted. If you want MFA to\n be applied selectively based on the assessed risk level of sign-in attempts, deactivate\n MFA for users and turn on Adaptive Authentication for the user pool.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", + "smithy.api#documentation": "

Set the user's multi-factor authentication (MFA) method preference, including which\n MFA factors are activated and if any are preferred. Only one factor can be set as\n preferred. The preferred MFA factor will be used to authenticate a user if multiple\n factors are activated. If multiple options are activated and no preference is set, a\n challenge to choose an MFA option will be returned during sign-in. If an MFA type is\n activated for a user, the user will be prompted for MFA during all sign-in attempts\n unless device tracking is turned on and the device has been trusted. If you want MFA to\n be applied selectively based on the assessed risk level of sign-in attempts, deactivate\n MFA for users and turn on Adaptive Authentication for the user pool.

\n

This operation doesn't reset an existing TOTP MFA for a user. To register a new\n TOTP factor for a user, make an AssociateSoftwareToken request. For more information,\n see TOTP software token MFA.

\n

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

\n \n

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you can't use IAM credentials to authorize requests, and you can't\n grant IAM permissions in policies. For more information about authorization models in\n Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

\n
", "smithy.api#optionalAuth": {} } }, @@ -14460,7 +14460,7 @@ "SecretHash": { "target": "com.amazonaws.cognitoidentityprovider#SecretHashType", "traits": { - "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message.

" + "smithy.api#documentation": "

A keyed-hash message authentication code (HMAC) calculated using the secret key of a\n user pool client and username plus the client ID in the message. For more information\n about SecretHash, see Computing secret hash values.

" } }, "Username": { @@ -14497,13 +14497,13 @@ "UserContextData": { "target": "com.amazonaws.cognitoidentityprovider#UserContextDataType", "traits": { - "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

" + "smithy.api#documentation": "

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced \nsecurity evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito\nwhen it makes API requests.

\n

For more information, see Collecting data for threat protection in\napplications.

" } }, "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the SignUp API action, Amazon Cognito invokes any functions that are assigned to the\n following triggers: pre sign-up, custom\n message, and post confirmation. When Amazon Cognito invokes\n any of these functions, it passes a JSON payload, which the function receives as input.\n This payload contains a clientMetadata attribute, which provides the data\n that you assigned to the ClientMetadata parameter in your SignUp request. In your\n function code in Lambda, you can process the clientMetadata value to enhance\n your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action triggers.

\n

You create custom workflows by assigning Lambda functions to user pool triggers.\n When you use the SignUp API action, Amazon Cognito invokes any functions that are assigned to the\n following triggers: pre sign-up, custom\n message, and post confirmation. When Amazon Cognito invokes\n any of these functions, it passes a JSON payload, which the function receives as input.\n This payload contains a clientMetadata attribute, which provides the data\n that you assigned to the ClientMetadata parameter in your SignUp request. In your\n function code in Lambda, you can process the clientMetadata value to enhance\n your workflow for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -14726,7 +14726,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are being imported into.

", + "smithy.api#documentation": "

The ID of the user pool that the users are being imported into.

", "smithy.api#required": {} } }, @@ -14883,7 +14883,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool that the users are being imported into.

", + "smithy.api#documentation": "

The ID of the user pool that the users are being imported into.

", "smithy.api#required": {} } }, @@ -15547,7 +15547,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -15707,7 +15707,7 @@ } ], "traits": { - "smithy.api#documentation": "

Configures the branding settings for a user pool style. This operation is the\n programmatic option for the configuration of a style in the branding designer.

\n

Provides values for UI customization in a Settings JSON object and image\n files in an Assets array.

\n

This operation has a 2-megabyte request-size limit and include the CSS settings and\n image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito\n doesn't require that you pass all parameters in one request and preserves existing\n style settings that you don't specify. If your request is larger than 2MB, separate it\n into multiple requests, each with a size smaller than the limit.

\n

For more information, see API and SDK operations for managed login branding.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Configures the branding settings for a user pool style. This operation is the\n programmatic option for the configuration of a style in the branding designer.

\n

Provides values for UI customization in a Settings JSON object and image\n files in an Assets array.

\n

This operation has a 2-megabyte request-size limit and include the CSS settings and\n image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito\n doesn't require that you pass all parameters in one request and preserves existing\n style settings that you don't specify. If your request is larger than 2MB, separate it\n into multiple requests, each with a size smaller than the limit.

\n

As a best practice, modify the output of DescribeManagedLoginBrandingByClient into the request parameters for this\n operation. To get all settings, set ReturnMergedResources to\n true. For more information, see API and SDK operations for managed login branding\n

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#UpdateManagedLoginBrandingRequest": { @@ -15798,7 +15798,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool.

", + "smithy.api#documentation": "

The ID of the user pool.

", "smithy.api#required": {} } }, @@ -15935,7 +15935,7 @@ "ClientMetadata": { "target": "com.amazonaws.cognitoidentityprovider#ClientMetadataType", "traits": { - "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action initiates.

\n

You create custom workflows by assigning Lambda functions to user pool triggers. When\n you use the UpdateUserAttributes API action, Amazon Cognito invokes the function that is assigned\n to the custom message trigger. When Amazon Cognito invokes this function, it\n passes a JSON payload, which the function receives as input. This payload contains a\n clientMetadata attribute, which provides the data that you assigned to\n the ClientMetadata parameter in your UpdateUserAttributes request. In your function code\n in Lambda, you can process the clientMetadata value to enhance your workflow\n for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only to Lambda\n triggers that are assigned to a user pool to support custom workflows. If\n your user pool configuration doesn't include triggers, the ClientMetadata\n parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive\n information.

    \n
  • \n
\n
" + "smithy.api#documentation": "

A map of custom key-value pairs that you can provide as input for any custom workflows\n that this action initiates.

\n

You create custom workflows by assigning Lambda functions to user pool triggers. When\n you use the UpdateUserAttributes API action, Amazon Cognito invokes the function that is assigned\n to the custom message trigger. When Amazon Cognito invokes this function, it\n passes a JSON payload, which the function receives as input. This payload contains a\n clientMetadata attribute, which provides the data that you assigned to\n the ClientMetadata parameter in your UpdateUserAttributes request. In your function code\n in Lambda, you can process the clientMetadata value to enhance your workflow\n for your specific needs.

\n

For more information, see \nCustomizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide.

\n \n

When you use the ClientMetadata parameter, note that Amazon Cognito won't do the\n following:

\n
    \n
  • \n

    Store the ClientMetadata value. This data is available only\n to Lambda triggers that are assigned to a user pool to support custom\n workflows. If your user pool configuration doesn't include triggers, the\n ClientMetadata parameter serves no purpose.

    \n
  • \n
  • \n

    Validate the ClientMetadata value.

    \n
  • \n
  • \n

    Encrypt the ClientMetadata value. Don't send sensitive\n information in this parameter.

    \n
  • \n
\n
" } } }, @@ -16056,7 +16056,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool where you want to update the user pool\n client.

", + "smithy.api#documentation": "

The ID of the user pool where you want to update the user pool client.

", "smithy.api#required": {} } }, @@ -16119,7 +16119,7 @@ "SupportedIdentityProviders": { "target": "com.amazonaws.cognitoidentityprovider#SupportedIdentityProvidersListType", "traits": { - "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with the hosted\n UI and OAuth 2.0 authorization server. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" + "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with managed \n login. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" } }, "CallbackURLs": { @@ -16239,7 +16239,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the Secure Sockets Layer (SSL) certificate for the custom domain for your user\n pool.

\n

You can use this operation to provide the Amazon Resource Name (ARN) of a new\n certificate to Amazon Cognito. You can't use it to change the domain for a user pool.

\n

A custom domain is used to host the Amazon Cognito hosted UI, which provides sign-up and\n sign-in pages for your application. When you set up a custom domain, you provide a\n certificate that you manage with Certificate Manager (ACM). When necessary, you can use this\n operation to change the certificate that you applied to your custom domain.

\n

Usually, this is unnecessary following routine certificate renewal with ACM. When\n you renew your existing certificate in ACM, the ARN for your certificate remains the\n same, and your custom domain uses the new certificate automatically.

\n

However, if you replace your existing certificate with a new one, ACM gives the new\n certificate a new ARN. To apply the new certificate to your custom domain, you must\n provide this ARN to Amazon Cognito.

\n

When you add your new certificate in ACM, you must choose US East (N. Virginia) as\n the Amazon Web Services Region.

\n

After you submit your request, Amazon Cognito requires up to 1 hour to distribute your new\n certificate to your custom domain.

\n

For more information about adding a custom domain to your user pool, see Using Your Own Domain for the Hosted UI.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

A user pool domain hosts managed login, an authorization server and web server for\n authentication in your application. This operation updates the branding version for user\n pool domains between 1 for hosted UI (classic) and 2 for\n managed login. It also updates the SSL certificate for user pool custom domains.

\n

Changes to the domain branding version take up to one minute to take effect for a\n prefix domain and up to five minutes for a custom domain.

\n

This operation doesn't change the name of your user pool domain. To change your\n domain, delete it with DeleteUserPoolDomain and create a new domain with\n CreateUserPoolDomain.

\n

You can pass the ARN of a new Certificate Manager certificate in this request. Typically, ACM\n certificates automatically renew and you user pool can continue to use the same ARN. But\n if you generate a new certificate for your custom domain name, replace the original\n configuration with the new ARN in this request.

\n

ACM certificates for custom domains must be in the US East (N. Virginia)\n Amazon Web Services Region. After you submit your request, Amazon Cognito requires up to 1 hour to distribute\n your new certificate to your custom domain.

\n

For more information about adding a custom domain to your user pool, see Configuring a user pool domain.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#UpdateUserPoolDomainRequest": { @@ -16304,7 +16304,7 @@ "UserPoolId": { "target": "com.amazonaws.cognitoidentityprovider#UserPoolIdType", "traits": { - "smithy.api#documentation": "

The user pool ID for the user pool you want to update.

", + "smithy.api#documentation": "

The ID of the user pool you want to update.

", "smithy.api#required": {} } }, @@ -16881,7 +16881,7 @@ "SupportedIdentityProviders": { "target": "com.amazonaws.cognitoidentityprovider#SupportedIdentityProvidersListType", "traits": { - "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with the hosted\n UI and OAuth 2.0 authorization server. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" + "smithy.api#documentation": "

A list of provider names for the identity providers (IdPs) that are supported on this\n client. The following are supported: COGNITO, Facebook,\n Google, SignInWithApple, and LoginWithAmazon.\n You can also specify the names that you configured for the SAML and OIDC IdPs in your\n user pool, for example MySAMLIdP or MyOIDCIdP.

\n

This setting applies to providers that you can access with managed \n login. The removal of COGNITO\n from this list doesn't prevent authentication operations for local users with the\n user pools API in an Amazon Web Services SDK. The only way to prevent API-based authentication is to\n block access with a WAF rule.

" } }, "CallbackURLs": { @@ -17879,7 +17879,7 @@ "UserVerification": { "target": "com.amazonaws.cognitoidentityprovider#UserVerificationType", "traits": { - "smithy.api#documentation": "

Sets or displays your user-pool treatment for MFA with a passkey. You can override\n other MFA options and require passkey MFA, or you can set it as preferred. When passkey\n MFA is preferred, the hosted UI encourages users to register a passkey at\n sign-in.

" + "smithy.api#documentation": "

When required, users can only register and sign in users with passkeys\n that are capable of user\n verification. When preferred, your user pool doesn't\n require the use of authenticators with user verification but encourages it.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/controlcatalog.json b/codegen/sdk-codegen/aws-models/controlcatalog.json index 931339825d2..d359fb24312 100644 --- a/codegen/sdk-codegen/aws-models/controlcatalog.json +++ b/codegen/sdk-codegen/aws-models/controlcatalog.json @@ -1237,7 +1237,7 @@ } }, "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
  • \n

    \n SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME\n

    \n
  • \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
  • \n

    \n SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION\n

    \n
  • \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.

" + "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
  • \n

    \n SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME\n

    \n
  • \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
  • \n

    \n SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION\n

    \n
  • \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.

" } }, "com.amazonaws.controlcatalog#ImplementationType": { diff --git a/codegen/sdk-codegen/aws-models/emr-serverless.json b/codegen/sdk-codegen/aws-models/emr-serverless.json index 5da81b262ff..14a6a9b4112 100644 --- a/codegen/sdk-codegen/aws-models/emr-serverless.json +++ b/codegen/sdk-codegen/aws-models/emr-serverless.json @@ -1766,6 +1766,13 @@ "smithy.api#documentation": "

An optimal parameter that indicates the amount of attempts for the job. If not specified,\n this value defaults to the attempt of the latest job.

", "smithy.api#httpQuery": "attempt" } + }, + "accessSystemProfileLogs": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allows access to system profile logs for Lake Formation-enabled jobs. Default is false.

", + "smithy.api#httpQuery": "accessSystemProfileLogs" + } } } }, @@ -1949,7 +1956,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "^([a-z0-9]+[a-z0-9-.]*)\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?:\\:([a-zA-Z0-9_][a-zA-Z0-9-._]{0,299})|@(sha256:[0-9a-f]{64}))$" + "smithy.api#pattern": "^([0-9]{12})\\.dkr\\.ecr\\.([a-z0-9-]+).([a-z0-9._-]+)\\/((?:[a-z0-9]+(?:[-._][a-z0-9]+)*/)*[a-z0-9]+(?:[-._][a-z0-9]+)*)(?::([a-zA-Z0-9_]+[a-zA-Z0-9-._]*)|@(sha256:[0-9a-f]{64}))$" } }, "com.amazonaws.emrserverless#InitScriptPath": { diff --git a/codegen/sdk-codegen/aws-models/migration-hub.json b/codegen/sdk-codegen/aws-models/migration-hub.json index 3d9f9a2bae4..a10fc66f2ff 100644 --- a/codegen/sdk-codegen/aws-models/migration-hub.json +++ b/codegen/sdk-codegen/aws-models/migration-hub.json @@ -39,6 +39,9 @@ { "target": "com.amazonaws.migrationhub#AssociateDiscoveredResource" }, + { + "target": "com.amazonaws.migrationhub#AssociateSourceResource" + }, { "target": "com.amazonaws.migrationhub#CreateProgressUpdateStream" }, @@ -57,6 +60,9 @@ { "target": "com.amazonaws.migrationhub#DisassociateDiscoveredResource" }, + { + "target": "com.amazonaws.migrationhub#DisassociateSourceResource" + }, { "target": "com.amazonaws.migrationhub#ImportMigrationTask" }, @@ -72,9 +78,15 @@ { "target": "com.amazonaws.migrationhub#ListMigrationTasks" }, + { + "target": "com.amazonaws.migrationhub#ListMigrationTaskUpdates" + }, { "target": "com.amazonaws.migrationhub#ListProgressUpdateStreams" }, + { + "target": "com.amazonaws.migrationhub#ListSourceResources" + }, { "target": "com.amazonaws.migrationhub#NotifyApplicationState" }, @@ -142,7 +154,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -185,7 +196,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -198,7 +210,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -212,7 +223,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -235,7 +245,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -270,7 +279,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -281,14 +289,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": [ @@ -302,14 +312,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -318,11 +326,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -333,14 +341,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -354,7 +364,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -374,7 +383,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -385,14 +393,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -403,9 +413,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -1074,6 +1086,87 @@ "smithy.api#output": {} } }, + "com.amazonaws.migrationhub#AssociateSourceResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhub#AssociateSourceResourceRequest" + }, + "output": { + "target": "com.amazonaws.migrationhub#AssociateSourceResourceResult" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhub#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhub#DryRunOperation" + }, + { + "target": "com.amazonaws.migrationhub#InternalServerError" + }, + { + "target": "com.amazonaws.migrationhub#InvalidInputException" + }, + { + "target": "com.amazonaws.migrationhub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhub#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.migrationhub#ThrottlingException" + }, + { + "target": "com.amazonaws.migrationhub#UnauthorizedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Associates a source resource with a migration task. For example, the source resource can\n be a source server, an application, or a migration wave.

" + } + }, + "com.amazonaws.migrationhub#AssociateSourceResourceRequest": { + "type": "structure", + "members": { + "ProgressUpdateStream": { + "target": "com.amazonaws.migrationhub#ProgressUpdateStream", + "traits": { + "smithy.api#documentation": "

The name of the progress-update stream, which is used for access control as well as a\n namespace for migration-task names that is implicitly linked to your AWS account. The\n progress-update stream must uniquely identify the migration tool as it is used for all\n updates made by the tool; however, it does not need to be unique for each AWS account\n because it is scoped to the AWS account.

", + "smithy.api#required": {} + } + }, + "MigrationTaskName": { + "target": "com.amazonaws.migrationhub#MigrationTaskName", + "traits": { + "smithy.api#documentation": "

A unique identifier that references the migration task. Do not include\n sensitive data in this field.\n

", + "smithy.api#required": {} + } + }, + "SourceResource": { + "target": "com.amazonaws.migrationhub#SourceResource", + "traits": { + "smithy.api#documentation": "

The source resource that you want to associate.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.migrationhub#DryRun", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is an optional parameter that you can use to test whether the call will succeed.\n Set this parameter to true to verify that you have the permissions that are\n required to make the call, and that you have specified the other parameters in the call\n correctly.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhub#AssociateSourceResourceResult": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhub#ConfigurationId": { "type": "string", "traits": { @@ -1580,6 +1673,87 @@ "smithy.api#output": {} } }, + "com.amazonaws.migrationhub#DisassociateSourceResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhub#DisassociateSourceResourceRequest" + }, + "output": { + "target": "com.amazonaws.migrationhub#DisassociateSourceResourceResult" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhub#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhub#DryRunOperation" + }, + { + "target": "com.amazonaws.migrationhub#InternalServerError" + }, + { + "target": "com.amazonaws.migrationhub#InvalidInputException" + }, + { + "target": "com.amazonaws.migrationhub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhub#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.migrationhub#ThrottlingException" + }, + { + "target": "com.amazonaws.migrationhub#UnauthorizedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the association between a source resource and a migration task.

" + } + }, + "com.amazonaws.migrationhub#DisassociateSourceResourceRequest": { + "type": "structure", + "members": { + "ProgressUpdateStream": { + "target": "com.amazonaws.migrationhub#ProgressUpdateStream", + "traits": { + "smithy.api#documentation": "

The name of the progress-update stream, which is used for access control as well as a\n namespace for migration-task names that is implicitly linked to your AWS account. The\n progress-update stream must uniquely identify the migration tool as it is used for all\n updates made by the tool; however, it does not need to be unique for each AWS account\n because it is scoped to the AWS account.

", + "smithy.api#required": {} + } + }, + "MigrationTaskName": { + "target": "com.amazonaws.migrationhub#MigrationTaskName", + "traits": { + "smithy.api#documentation": "

A unique identifier that references the migration task. Do not include\n sensitive data in this field.\n

", + "smithy.api#required": {} + } + }, + "SourceResourceName": { + "target": "com.amazonaws.migrationhub#SourceResourceName", + "traits": { + "smithy.api#documentation": "

The name that was specified for the source resource.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.migrationhub#DryRun", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is an optional parameter that you can use to test whether the call will succeed.\n Set this parameter to true to verify that you have the permissions that are\n required to make the call, and that you have specified the other parameters in the call\n correctly.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhub#DisassociateSourceResourceResult": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhub#DiscoveredResource": { "type": "structure", "members": { @@ -2037,6 +2211,98 @@ "smithy.api#output": {} } }, + "com.amazonaws.migrationhub#ListMigrationTaskUpdates": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhub#ListMigrationTaskUpdatesRequest" + }, + "output": { + "target": "com.amazonaws.migrationhub#ListMigrationTaskUpdatesResult" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhub#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhub#InternalServerError" + }, + { + "target": "com.amazonaws.migrationhub#InvalidInputException" + }, + { + "target": "com.amazonaws.migrationhub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhub#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.migrationhub#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

This is a paginated API that returns all the migration-task states for the specified\n MigrationTaskName and ProgressUpdateStream.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MigrationTaskUpdateList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.migrationhub#ListMigrationTaskUpdatesRequest": { + "type": "structure", + "members": { + "ProgressUpdateStream": { + "target": "com.amazonaws.migrationhub#ProgressUpdateStream", + "traits": { + "smithy.api#documentation": "

The name of the progress-update stream, which is used for access control as well as a\n namespace for migration-task names that is implicitly linked to your AWS account. The\n progress-update stream must uniquely identify the migration tool as it is used for all\n updates made by the tool; however, it does not need to be unique for each AWS account\n because it is scoped to the AWS account.

", + "smithy.api#required": {} + } + }, + "MigrationTaskName": { + "target": "com.amazonaws.migrationhub#MigrationTaskName", + "traits": { + "smithy.api#documentation": "

A unique identifier that references the migration task. Do not include\n sensitive data in this field.\n

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.migrationhub#Token", + "traits": { + "smithy.api#documentation": "

If NextToken was returned by a previous call, there are more results\n available. The value of NextToken is a unique pagination token for each page.\n To retrieve the next page of results, specify the NextToken value that the\n previous call returned. Keep all other arguments unchanged. Each pagination token expires\n after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken\n error.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.migrationhub#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to include in the response. If more results exist than the\n value that you specify here for MaxResults, the response will include a token\n that you can use to retrieve the next set of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhub#ListMigrationTaskUpdatesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.migrationhub#Token", + "traits": { + "smithy.api#documentation": "

If the response includes a NextToken value, that means that there are more\n results available. The value of NextToken is a unique pagination token for\n each page. To retrieve the next page of results, call this API again and specify this\n NextToken value in the request. Keep all other arguments unchanged. Each\n pagination token expires after 24 hours. Using an expired pagination token will return an\n HTTP 400 InvalidToken error.

" + } + }, + "MigrationTaskUpdateList": { + "target": "com.amazonaws.migrationhub#MigrationTaskUpdateList", + "traits": { + "smithy.api#documentation": "

The list of migration-task updates.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhub#ListMigrationTasks": { "type": "operation", "input": { @@ -2205,6 +2471,98 @@ "smithy.api#output": {} } }, + "com.amazonaws.migrationhub#ListSourceResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhub#ListSourceResourcesRequest" + }, + "output": { + "target": "com.amazonaws.migrationhub#ListSourceResourcesResult" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhub#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhub#InternalServerError" + }, + { + "target": "com.amazonaws.migrationhub#InvalidInputException" + }, + { + "target": "com.amazonaws.migrationhub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhub#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.migrationhub#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all the source resource that are associated with the specified\n MigrationTaskName and ProgressUpdateStream.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SourceResourceList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.migrationhub#ListSourceResourcesRequest": { + "type": "structure", + "members": { + "ProgressUpdateStream": { + "target": "com.amazonaws.migrationhub#ProgressUpdateStream", + "traits": { + "smithy.api#documentation": "

The name of the progress-update stream, which is used for access control as well as a\n namespace for migration-task names that is implicitly linked to your AWS account. The\n progress-update stream must uniquely identify the migration tool as it is used for all\n updates made by the tool; however, it does not need to be unique for each AWS account\n because it is scoped to the AWS account.

", + "smithy.api#required": {} + } + }, + "MigrationTaskName": { + "target": "com.amazonaws.migrationhub#MigrationTaskName", + "traits": { + "smithy.api#documentation": "

A unique identifier that references the migration task. Do not store\n confidential data in this field.\n

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.migrationhub#Token", + "traits": { + "smithy.api#documentation": "

If NextToken was returned by a previous call, there are more results\n available. The value of NextToken is a unique pagination token for each page.\n To retrieve the next page of results, specify the NextToken value that the\n previous call returned. Keep all other arguments unchanged. Each pagination token expires\n after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken\n error.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.migrationhub#MaxResultsSourceResources", + "traits": { + "smithy.api#documentation": "

The maximum number of results to include in the response. If more results exist than the\n value that you specify here for MaxResults, the response will include a token\n that you can use to retrieve the next set of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhub#ListSourceResourcesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.migrationhub#Token", + "traits": { + "smithy.api#documentation": "

If the response includes a NextToken value, that means that there are more\n results available. The value of NextToken is a unique pagination token for\n each page. To retrieve the next page of results, call this API again and specify this\n NextToken value in the request. Keep all other arguments unchanged. Each\n pagination token expires after 24 hours. Using an expired pagination token will return an\n HTTP 400 InvalidToken error.

" + } + }, + "SourceResourceList": { + "target": "com.amazonaws.migrationhub#SourceResourceList", + "traits": { + "smithy.api#documentation": "

The list of source resources.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhub#MaxResults": { "type": "integer", "traits": { @@ -2232,6 +2590,15 @@ } } }, + "com.amazonaws.migrationhub#MaxResultsSourceResources": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.migrationhub#MigrationTask": { "type": "structure", "members": { @@ -2330,6 +2697,35 @@ "target": "com.amazonaws.migrationhub#MigrationTaskSummary" } }, + "com.amazonaws.migrationhub#MigrationTaskUpdate": { + "type": "structure", + "members": { + "UpdateDateTime": { + "target": "com.amazonaws.migrationhub#UpdateDateTime", + "traits": { + "smithy.api#documentation": "

The timestamp for the update.

" + } + }, + "UpdateType": { + "target": "com.amazonaws.migrationhub#UpdateType", + "traits": { + "smithy.api#documentation": "

The type of the update.

" + } + }, + "MigrationTaskState": { + "target": "com.amazonaws.migrationhub#Task" + } + }, + "traits": { + "smithy.api#documentation": "

A migration-task progress update.

" + } + }, + "com.amazonaws.migrationhub#MigrationTaskUpdateList": { + "type": "list", + "member": { + "target": "com.amazonaws.migrationhub#MigrationTaskUpdate" + } + }, "com.amazonaws.migrationhub#NextUpdateSeconds": { "type": "integer", "traits": { @@ -2613,7 +3009,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides identifying details of the resource being migrated so that it can be associated\n in the Application Discovery Service repository. This association occurs asynchronously\n after PutResourceAttributes returns.

\n \n
    \n
  • \n

    Keep in mind that subsequent calls to PutResourceAttributes will override\n previously stored attributes. For example, if it is first called with a MAC\n address, but later, it is desired to add an IP address, it\n will then be required to call it with both the IP and MAC\n addresses to prevent overriding the MAC address.

    \n
  • \n
  • \n

    Note the instructions regarding the special use case of the \n ResourceAttributeList\n parameter when specifying any\n \"VM\" related value.

    \n
  • \n
\n
\n\n \n

Because this is an asynchronous call, it will always return 200, whether an\n association occurs or not. To confirm if an association was found based on the provided\n details, call ListDiscoveredResources.

\n
" + "smithy.api#documentation": "

Provides identifying details of the resource being migrated so that it can be associated\n in the Application Discovery Service repository. This association occurs asynchronously\n after PutResourceAttributes returns.

\n \n
    \n
  • \n

    Keep in mind that subsequent calls to PutResourceAttributes will override\n previously stored attributes. For example, if it is first called with a MAC\n address, but later, it is desired to add an IP address, it\n will then be required to call it with both the IP and MAC\n addresses to prevent overriding the MAC address.

    \n
  • \n
  • \n

    Note the instructions regarding the special use case of the \n ResourceAttributeList\n parameter when specifying any\n \"VM\" related value.

    \n
  • \n
\n
\n \n

Because this is an asynchronous call, it will always return 200, whether an\n association occurs or not. To confirm if an association was found based on the provided\n details, call ListDiscoveredResources.

\n
" } }, "com.amazonaws.migrationhub#PutResourceAttributesRequest": { @@ -2636,7 +3032,7 @@ "ResourceAttributeList": { "target": "com.amazonaws.migrationhub#ResourceAttributeList", "traits": { - "smithy.api#documentation": "

Information about the resource that is being migrated. This data will be used to map the\n task to a resource in the Application Discovery Service repository.

\n \n

Takes the object array of ResourceAttribute where the Type\n field is reserved for the following values: IPV4_ADDRESS | IPV6_ADDRESS |\n MAC_ADDRESS | FQDN | VM_MANAGER_ID | VM_MANAGED_OBJECT_REFERENCE | VM_NAME | VM_PATH\n | BIOS_ID | MOTHERBOARD_SERIAL_NUMBER where the identifying value can be a\n string up to 256 characters.

\n
\n \n
    \n
  • \n\n

    If any \"VM\" related value is set for a ResourceAttribute object,\n it is required that VM_MANAGER_ID, as a minimum, is always set. If\n VM_MANAGER_ID is not set, then all \"VM\" fields will be discarded\n and \"VM\" fields will not be used for matching the migration task to a server in\n Application Discovery Service repository. See the Example section below for a use case of specifying \"VM\" related\n values.

    \n
  • \n
  • \n

    If a server you are trying to match has multiple IP or MAC addresses, you\n should provide as many as you know in separate type/value pairs passed to the\n ResourceAttributeList parameter to maximize the chances of\n matching.

    \n
  • \n
\n
", + "smithy.api#documentation": "

Information about the resource that is being migrated. This data will be used to map the\n task to a resource in the Application Discovery Service repository.

\n \n

Takes the object array of ResourceAttribute where the Type\n field is reserved for the following values: IPV4_ADDRESS | IPV6_ADDRESS |\n MAC_ADDRESS | FQDN | VM_MANAGER_ID | VM_MANAGED_OBJECT_REFERENCE | VM_NAME | VM_PATH\n | BIOS_ID | MOTHERBOARD_SERIAL_NUMBER where the identifying value can be a\n string up to 256 characters.

\n
\n \n
    \n
  • \n

    If any \"VM\" related value is set for a ResourceAttribute object,\n it is required that VM_MANAGER_ID, as a minimum, is always set. If\n VM_MANAGER_ID is not set, then all \"VM\" fields will be discarded\n and \"VM\" fields will not be used for matching the migration task to a server in\n Application Discovery Service repository. See the Example section below for a use case of specifying \"VM\" related\n values.

    \n
  • \n
  • \n

    If a server you are trying to match has multiple IP or MAC addresses, you\n should provide as many as you know in separate type/value pairs passed to the\n ResourceAttributeList parameter to maximize the chances of\n matching.

    \n
  • \n
\n
", "smithy.api#required": {} } }, @@ -2678,7 +3074,7 @@ } }, "traits": { - "smithy.api#documentation": "

Attribute associated with a resource.

\n

Note the corresponding format required per type listed below:

\n\n\n
\n
IPV4
\n
\n

\n x.x.x.x\n

\n

\n where x is an integer in the range [0,255]\n

\n
\n
IPV6
\n
\n

\n y : y : y : y : y : y : y : y\n

\n

\n where y is a hexadecimal between 0 and FFFF. [0,\n FFFF]\n

\n
\n
MAC_ADDRESS
\n
\n

\n ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$\n

\n
\n
FQDN
\n
\n

\n ^[^<>{}\\\\\\\\/?,=\\\\p{Cntrl}]{1,256}$\n

\n
\n
" + "smithy.api#documentation": "

Attribute associated with a resource.

\n

Note the corresponding format required per type listed below:

\n
\n
IPV4
\n
\n

\n x.x.x.x\n

\n

\n where x is an integer in the range [0,255]\n

\n
\n
IPV6
\n
\n

\n y : y : y : y : y : y : y : y\n

\n

\n where y is a hexadecimal between 0 and FFFF. [0,\n FFFF]\n

\n
\n
MAC_ADDRESS
\n
\n

\n ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$\n

\n
\n
FQDN
\n
\n

\n ^[^<>{}\\\\\\\\/?,=\\\\p{Cntrl}]{1,256}$\n

\n
\n
" } }, "com.amazonaws.migrationhub#ResourceAttributeList": { @@ -2808,6 +3204,58 @@ "smithy.api#error": "server" } }, + "com.amazonaws.migrationhub#SourceResource": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.migrationhub#SourceResourceName", + "traits": { + "smithy.api#documentation": "

This is the name that you want to use to identify the resource. If the resource is an\n AWS resource, we recommend that you set this parameter to the ARN of the resource.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.migrationhub#SourceResourceDescription", + "traits": { + "smithy.api#documentation": "

A description that can be free-form text to record additional detail about the resource\n for clarity or later reference.

" + } + }, + "StatusDetail": { + "target": "com.amazonaws.migrationhub#StatusDetail", + "traits": { + "smithy.api#documentation": "

A free-form description of the status of the resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A source resource can be a source server, a migration wave, an application, or any other\n resource that you track.

" + } + }, + "com.amazonaws.migrationhub#SourceResourceDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^.{0,500}$" + } + }, + "com.amazonaws.migrationhub#SourceResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.migrationhub#SourceResource" + } + }, + "com.amazonaws.migrationhub#SourceResourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1600 + } + } + }, "com.amazonaws.migrationhub#Status": { "type": "enum", "members": { @@ -2842,9 +3290,9 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 500 + "max": 2500 }, - "smithy.api#pattern": "^.{0,500}$" + "smithy.api#pattern": "^.{0,2500}$" } }, "com.amazonaws.migrationhub#Task": { @@ -2923,6 +3371,17 @@ }, "com.amazonaws.migrationhub#UpdateDateTime": { "type": "timestamp" + }, + "com.amazonaws.migrationhub#UpdateType": { + "type": "enum", + "members": { + "MigrationTaskStateUpdated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MIGRATION_TASK_STATE_UPDATED" + } + } + } } } } diff --git a/codegen/sdk-codegen/aws-models/sesv2.json b/codegen/sdk-codegen/aws-models/sesv2.json index bbbda9dbc68..b0dd599785a 100644 --- a/codegen/sdk-codegen/aws-models/sesv2.json +++ b/codegen/sdk-codegen/aws-models/sesv2.json @@ -1893,6 +1893,87 @@ "smithy.api#output": {} } }, + "com.amazonaws.sesv2#CreateMultiRegionEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.sesv2#CreateMultiRegionEndpointRequest" + }, + "output": { + "target": "com.amazonaws.sesv2#CreateMultiRegionEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sesv2#AlreadyExistsException" + }, + { + "target": "com.amazonaws.sesv2#BadRequestException" + }, + { + "target": "com.amazonaws.sesv2#LimitExceededException" + }, + { + "target": "com.amazonaws.sesv2#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a multi-region endpoint (global-endpoint).

\n

The primary region is going to be the AWS-Region where the operation is executed.\n The secondary region has to be provided in request's parameters.\n From the data flow standpoint there is no difference between primary\n and secondary regions - sending traffic will be split equally between the two.\n The primary region is the region where the resource has been created and where it can be managed.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/v2/email/multi-region-endpoints", + "code": 200 + } + } + }, + "com.amazonaws.sesv2#CreateMultiRegionEndpointRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sesv2#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint).

", + "smithy.api#required": {} + } + }, + "Details": { + "target": "com.amazonaws.sesv2#Details", + "traits": { + "smithy.api#documentation": "

Contains details of a multi-region endpoint (global-endpoint) being created.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.sesv2#TagList", + "traits": { + "smithy.api#documentation": "

An array of objects that define the tags (keys and values) to associate with the multi-region endpoint (global-endpoint).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a request to create a multi-region endpoint (global-endpoint).

", + "smithy.api#input": {} + } + }, + "com.amazonaws.sesv2#CreateMultiRegionEndpointResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.sesv2#Status", + "traits": { + "smithy.api#documentation": "

A status of the multi-region endpoint (global-endpoint) right after the create request.

\n
    \n
  • \n

    \n CREATING – The resource is being provisioned.

    \n
  • \n
  • \n

    \n READY – The resource is ready to use.

    \n
  • \n
  • \n

    \n FAILED – The resource failed to be provisioned.

    \n
  • \n
  • \n

    \n DELETING – The resource is being deleted as requested.

    \n
  • \n
" + } + }, + "EndpointId": { + "target": "com.amazonaws.sesv2#EndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An HTTP 200 response if the request succeeds, or an error message if the request\n fails.

", + "smithy.api#output": {} + } + }, "com.amazonaws.sesv2#CustomRedirectDomain": { "type": "string", "traits": { @@ -2607,6 +2688,69 @@ "smithy.api#output": {} } }, + "com.amazonaws.sesv2#DeleteMultiRegionEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.sesv2#DeleteMultiRegionEndpointRequest" + }, + "output": { + "target": "com.amazonaws.sesv2#DeleteMultiRegionEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sesv2#BadRequestException" + }, + { + "target": "com.amazonaws.sesv2#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.sesv2#NotFoundException" + }, + { + "target": "com.amazonaws.sesv2#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a multi-region endpoint (global-endpoint).

\n

Only multi-region endpoints (global-endpoints) whose primary region is the AWS-Region\n where operation is executed can be deleted.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/v2/email/multi-region-endpoints/{EndpointName}", + "code": 200 + } + } + }, + "com.amazonaws.sesv2#DeleteMultiRegionEndpointRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sesv2#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint) to be deleted.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a request to delete a multi-region endpoint (global-endpoint).

", + "smithy.api#input": {} + } + }, + "com.amazonaws.sesv2#DeleteMultiRegionEndpointResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.sesv2#Status", + "traits": { + "smithy.api#documentation": "

A status of the multi-region endpoint (global-endpoint) right after the delete request.

\n
    \n
  • \n

    \n CREATING – The resource is being provisioned.

    \n
  • \n
  • \n

    \n READY – The resource is ready to use.

    \n
  • \n
  • \n

    \n FAILED – The resource failed to be provisioned.

    \n
  • \n
  • \n

    \n DELETING – The resource is being deleted as requested.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

An HTTP 200 response if the request succeeds, or an error message if the request\n fails.

", + "smithy.api#output": {} + } + }, "com.amazonaws.sesv2#DeleteSuppressedDestination": { "type": "operation", "input": { @@ -2861,6 +3005,21 @@ "smithy.api#documentation": "

An object that describes the recipients for an email.

\n \n

Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, the\n local part of a destination email address (the part of the\n email address that precedes the @ sign) may only contain 7-bit ASCII\n characters. If the domain part of an address (the\n part after the @ sign) contains non-ASCII characters, they must be encoded using\n Punycode, as described in RFC3492.

\n
" } }, + "com.amazonaws.sesv2#Details": { + "type": "structure", + "members": { + "RoutesDetails": { + "target": "com.amazonaws.sesv2#RoutesDetails", + "traits": { + "smithy.api#documentation": "

A list of route configuration details. Must contain exactly one route configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains configuration details of multi-region endpoint (global-endpoint).

" + } + }, "com.amazonaws.sesv2#DiagnosticCode": { "type": "string" }, @@ -3595,6 +3754,23 @@ "com.amazonaws.sesv2#EnabledWrapper": { "type": "boolean" }, + "com.amazonaws.sesv2#EndpointId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

" + } + }, + "com.amazonaws.sesv2#EndpointName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint).

", + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\w\\-_]+$" + } + }, "com.amazonaws.sesv2#EngagementEventType": { "type": "enum", "members": { @@ -5751,6 +5927,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.sesv2#GetMultiRegionEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.sesv2#GetMultiRegionEndpointRequest" + }, + "output": { + "target": "com.amazonaws.sesv2#GetMultiRegionEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sesv2#BadRequestException" + }, + { + "target": "com.amazonaws.sesv2#NotFoundException" + }, + { + "target": "com.amazonaws.sesv2#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

Displays the multi-region endpoint (global-endpoint) configuration.

\n

Only multi-region endpoints (global-endpoints) whose primary region is the AWS-Region\n where operation is executed can be displayed.

", + "smithy.api#http": { + "method": "GET", + "uri": "/v2/email/multi-region-endpoints/{EndpointName}", + "code": 200 + } + } + }, + "com.amazonaws.sesv2#GetMultiRegionEndpointRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sesv2#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint).

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a request to display the multi-region endpoint (global-endpoint).

", + "smithy.api#input": {} + } + }, + "com.amazonaws.sesv2#GetMultiRegionEndpointResponse": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sesv2#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint).

" + } + }, + "EndpointId": { + "target": "com.amazonaws.sesv2#EndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

" + } + }, + "Routes": { + "target": "com.amazonaws.sesv2#Routes", + "traits": { + "smithy.api#documentation": "

Contains routes information for the multi-region endpoint (global-endpoint).

" + } + }, + "Status": { + "target": "com.amazonaws.sesv2#Status", + "traits": { + "smithy.api#documentation": "

The status of the multi-region endpoint (global-endpoint).

\n
    \n
  • \n

    \n CREATING – The resource is being provisioned.

    \n
  • \n
  • \n

    \n READY – The resource is ready to use.

    \n
  • \n
  • \n

    \n FAILED – The resource failed to be provisioned.

    \n
  • \n
  • \n

    \n DELETING – The resource is being deleted as requested.

    \n
  • \n
" + } + }, + "CreatedTimestamp": { + "target": "com.amazonaws.sesv2#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of when the multi-region endpoint (global-endpoint) was created.

" + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.sesv2#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of when the multi-region endpoint (global-endpoint) was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An HTTP 200 response if the request succeeds, or an error message if the request\n fails.

", + "smithy.api#output": {} + } + }, "com.amazonaws.sesv2#GetSuppressedDestination": { "type": "operation", "input": { @@ -7223,73 +7489,148 @@ "smithy.api#documentation": "

An object used to specify a list or topic to which an email belongs, which will be\n used when a contact chooses to unsubscribe.

" } }, - "com.amazonaws.sesv2#ListOfContactLists": { - "type": "list", - "member": { - "target": "com.amazonaws.sesv2#ContactList" - } - }, - "com.amazonaws.sesv2#ListOfContacts": { - "type": "list", - "member": { - "target": "com.amazonaws.sesv2#Contact" - } - }, - "com.amazonaws.sesv2#ListOfDedicatedIpPools": { - "type": "list", - "member": { - "target": "com.amazonaws.sesv2#PoolName" - }, - "traits": { - "smithy.api#documentation": "

A list of dedicated IP pools that are associated with your Amazon Web Services account.

" - } - }, - "com.amazonaws.sesv2#ListRecommendationFilterValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 512 - } - } - }, - "com.amazonaws.sesv2#ListRecommendations": { + "com.amazonaws.sesv2#ListMultiRegionEndpoints": { "type": "operation", "input": { - "target": "com.amazonaws.sesv2#ListRecommendationsRequest" + "target": "com.amazonaws.sesv2#ListMultiRegionEndpointsRequest" }, "output": { - "target": "com.amazonaws.sesv2#ListRecommendationsResponse" + "target": "com.amazonaws.sesv2#ListMultiRegionEndpointsResponse" }, "errors": [ { "target": "com.amazonaws.sesv2#BadRequestException" }, - { - "target": "com.amazonaws.sesv2#NotFoundException" - }, { "target": "com.amazonaws.sesv2#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "

Lists the recommendations present in your Amazon SES account in the current Amazon Web Services Region.

\n

You can execute this operation no more than once per second.

", + "smithy.api#documentation": "

List the multi-region endpoints (global-endpoints).

\n

Only multi-region endpoints (global-endpoints) whose primary region is the AWS-Region\n where operation is executed will be listed.

", "smithy.api#http": { - "method": "POST", - "uri": "/v2/email/vdm/recommendations", + "method": "GET", + "uri": "/v2/email/multi-region-endpoints", "code": 200 }, "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "MultiRegionEndpoints", "pageSize": "PageSize" } } }, - "com.amazonaws.sesv2#ListRecommendationsFilter": { - "type": "map", - "key": { - "target": "com.amazonaws.sesv2#ListRecommendationsFilterKey" + "com.amazonaws.sesv2#ListMultiRegionEndpointsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sesv2#NextTokenV2", + "traits": { + "smithy.api#documentation": "

A token returned from a previous call to ListMultiRegionEndpoints to indicate\n the position in the list of multi-region endpoints (global-endpoints).

", + "smithy.api#httpQuery": "NextToken" + } + }, + "PageSize": { + "target": "com.amazonaws.sesv2#PageSizeV2", + "traits": { + "smithy.api#documentation": "

The number of results to show in a single call to ListMultiRegionEndpoints.\n If the number of results is larger than the number you specified in this parameter,\n the response includes a NextToken element\n that you can use to retrieve the next page of results.\n

", + "smithy.api#httpQuery": "PageSize" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a request to list all the multi-region endpoints (global-endpoints)\n whose primary region is the AWS-Region where operation is executed.\n

", + "smithy.api#input": {} + } + }, + "com.amazonaws.sesv2#ListMultiRegionEndpointsResponse": { + "type": "structure", + "members": { + "MultiRegionEndpoints": { + "target": "com.amazonaws.sesv2#MultiRegionEndpoints", + "traits": { + "smithy.api#documentation": "

An array that contains key multi-region endpoint (global-endpoint) properties.

" + } + }, + "NextToken": { + "target": "com.amazonaws.sesv2#NextTokenV2", + "traits": { + "smithy.api#documentation": "

A token indicating that there are additional multi-region endpoints (global-endpoints) available to be listed.\n Pass this token to a subsequent ListMultiRegionEndpoints call to retrieve the\n next page.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The following elements are returned by the service.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.sesv2#ListOfContactLists": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#ContactList" + } + }, + "com.amazonaws.sesv2#ListOfContacts": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#Contact" + } + }, + "com.amazonaws.sesv2#ListOfDedicatedIpPools": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#PoolName" + }, + "traits": { + "smithy.api#documentation": "

A list of dedicated IP pools that are associated with your Amazon Web Services account.

" + } + }, + "com.amazonaws.sesv2#ListRecommendationFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + } + } + }, + "com.amazonaws.sesv2#ListRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.sesv2#ListRecommendationsRequest" + }, + "output": { + "target": "com.amazonaws.sesv2#ListRecommendationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sesv2#BadRequestException" + }, + { + "target": "com.amazonaws.sesv2#NotFoundException" + }, + { + "target": "com.amazonaws.sesv2#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the recommendations present in your Amazon SES account in the current Amazon Web Services Region.

\n

You can execute this operation no more than once per second.

", + "smithy.api#http": { + "method": "POST", + "uri": "/v2/email/vdm/recommendations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "PageSize" + } + } + }, + "com.amazonaws.sesv2#ListRecommendationsFilter": { + "type": "map", + "key": { + "target": "com.amazonaws.sesv2#ListRecommendationsFilterKey" }, "value": { "target": "com.amazonaws.sesv2#ListRecommendationFilterValue" @@ -8147,9 +8488,69 @@ "smithy.api#documentation": "

An object that contains details about the data source for the metrics export.

" } }, + "com.amazonaws.sesv2#MultiRegionEndpoint": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sesv2#EndpointName", + "traits": { + "smithy.api#documentation": "

The name of the multi-region endpoint (global-endpoint).

" + } + }, + "Status": { + "target": "com.amazonaws.sesv2#Status", + "traits": { + "smithy.api#documentation": "

The status of the multi-region endpoint (global-endpoint).

\n
    \n
  • \n

    \n CREATING – The resource is being provisioned.

    \n
  • \n
  • \n

    \n READY – The resource is ready to use.

    \n
  • \n
  • \n

    \n FAILED – The resource failed to be provisioned.

    \n
  • \n
  • \n

    \n DELETING – The resource is being deleted as requested.

    \n
  • \n
" + } + }, + "EndpointId": { + "target": "com.amazonaws.sesv2#EndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

" + } + }, + "Regions": { + "target": "com.amazonaws.sesv2#Regions", + "traits": { + "smithy.api#documentation": "

Primary and secondary regions between which multi-region endpoint splits sending traffic.

" + } + }, + "CreatedTimestamp": { + "target": "com.amazonaws.sesv2#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of when the multi-region endpoint (global-endpoint) was created.

" + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.sesv2#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of when the multi-region endpoint (global-endpoint) was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains multi-region endpoint (global-endpoint) properties.

" + } + }, + "com.amazonaws.sesv2#MultiRegionEndpoints": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#MultiRegionEndpoint" + } + }, "com.amazonaws.sesv2#NextToken": { "type": "string" }, + "com.amazonaws.sesv2#NextTokenV2": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5000 + }, + "smithy.api#pattern": "^^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + } + }, "com.amazonaws.sesv2#NotFoundException": { "type": "structure", "members": { @@ -8192,6 +8593,15 @@ "smithy.api#documentation": "

An object that contains information about email that was sent from the selected\n domain.

" } }, + "com.amazonaws.sesv2#PageSizeV2": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.sesv2#Percentage": { "type": "double", "traits": { @@ -9772,6 +10182,18 @@ "target": "com.amazonaws.sesv2#Recommendation" } }, + "com.amazonaws.sesv2#Region": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of an AWS-Region.

" + } + }, + "com.amazonaws.sesv2#Regions": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#Region" + } + }, "com.amazonaws.sesv2#RenderedEmailTemplate": { "type": "string", "traits": { @@ -9888,6 +10310,54 @@ } } }, + "com.amazonaws.sesv2#Route": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.sesv2#Region", + "traits": { + "smithy.api#documentation": "

The name of an AWS-Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object which contains an AWS-Region and routing status.

" + } + }, + "com.amazonaws.sesv2#RouteDetails": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.sesv2#Region", + "traits": { + "smithy.api#documentation": "

The name of an AWS-Region to be a secondary region for the multi-region endpoint (global-endpoint).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains route configuration. Includes secondary region name.

" + } + }, + "com.amazonaws.sesv2#Routes": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#Route" + }, + "traits": { + "smithy.api#documentation": "

A list of routes between which the traffic will be split when sending through the multi-region endpoint (global-endpoint).

" + } + }, + "com.amazonaws.sesv2#RoutesDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#RouteDetails" + }, + "traits": { + "smithy.api#documentation": "

A list of route configuration details. Must contain exactly one route configuration.

" + } + }, "com.amazonaws.sesv2#S3Url": { "type": "string", "traits": { @@ -10050,6 +10520,15 @@ "traits": { "smithy.api#documentation": "

The name of the configuration set to use when sending the email.

" } + }, + "EndpointId": { + "target": "com.amazonaws.sesv2#EndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

", + "smithy.rules#contextParam": { + "name": "EndpointId" + } + } } }, "traits": { @@ -10258,6 +10737,15 @@ "smithy.api#documentation": "

The name of the configuration set to use when sending the email.

" } }, + "EndpointId": { + "target": "com.amazonaws.sesv2#EndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the multi-region endpoint (global-endpoint).

", + "smithy.rules#contextParam": { + "name": "EndpointId" + } + } + }, "ListManagementOptions": { "target": "com.amazonaws.sesv2#ListManagementOptions", "traits": { @@ -10406,6 +10894,9 @@ { "target": "com.amazonaws.sesv2#CreateImportJob" }, + { + "target": "com.amazonaws.sesv2#CreateMultiRegionEndpoint" + }, { "target": "com.amazonaws.sesv2#DeleteConfigurationSet" }, @@ -10433,6 +10924,9 @@ { "target": "com.amazonaws.sesv2#DeleteEmailTemplate" }, + { + "target": "com.amazonaws.sesv2#DeleteMultiRegionEndpoint" + }, { "target": "com.amazonaws.sesv2#DeleteSuppressedDestination" }, @@ -10496,6 +10990,9 @@ { "target": "com.amazonaws.sesv2#GetMessageInsights" }, + { + "target": "com.amazonaws.sesv2#GetMultiRegionEndpoint" + }, { "target": "com.amazonaws.sesv2#GetSuppressedDestination" }, @@ -10532,6 +11029,9 @@ { "target": "com.amazonaws.sesv2#ListImportJobs" }, + { + "target": "com.amazonaws.sesv2#ListMultiRegionEndpoints" + }, { "target": "com.amazonaws.sesv2#ListRecommendations" }, @@ -10683,9 +11183,199 @@ "required": false, "documentation": "Override the endpoint used to send this request", "type": "String" + }, + "EndpointId": { + "required": false, + "documentation": "Operation parameter for EndpointId", + "type": "String" } }, "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "EndpointId" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "EndpointId" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "ses", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoints.email.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "ses", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoints.email.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "ses", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with multi-region endpoints", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "EndpointId must be a valid host label", + "type": "error" + } + ], + "type": "tree" + }, { "conditions": [ { @@ -11565,6 +12255,163 @@ "expect": { "error": "Invalid Configuration: Missing Region" } + }, + { + "documentation": "Valid EndpointId with dualstack and FIPS disabled. i.e, IPv4 Only stack with no FIPS", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "ses", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://abc123.456def.endpoints.email.amazonaws.com" + } + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "Valid EndpointId with dualstack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "ses", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://abc123.456def.endpoints.email.api.aws" + } + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "Valid EndpointId with FIPS set, dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with multi-region endpoints" + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "Valid EndpointId with both dualstack and FIPS enabled", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with multi-region endpoints" + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "Regular regional request, without EndpointId", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "Invalid EndpointId (Invalid chars / format)", + "expect": { + "error": "EndpointId must be a valid host label" + }, + "params": { + "EndpointId": "badactor.com?foo=bar", + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "Invalid EndpointId (Empty)", + "expect": { + "error": "EndpointId must be a valid host label" + }, + "params": { + "EndpointId": "", + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "Valid EndpointId with custom sdk endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "ses", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Valid EndpointId with custom sdk endpoint with FIPS enabled", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with multi-region endpoints" + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Valid EndpointId with DualStack enabled and partition does not support DualStack", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "Region": "us-isob-east-1" + } } ], "version": "1.0" @@ -11586,6 +12433,38 @@ "smithy.api#documentation": "

An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to\n send notifications when certain email events occur.

" } }, + "com.amazonaws.sesv2#Status": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READY" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of the multi-region endpoint (global-endpoint).

\n
    \n
  • \n

    \n CREATING – The resource is being provisioned.

    \n
  • \n
  • \n

    \n READY – The resource is ready to use.

    \n
  • \n
  • \n

    \n FAILED – The resource failed to be provisioned.

    \n
  • \n
  • \n

    \n DELETING – The resource is being deleted as requested.

    \n
  • \n
" + } + }, "com.amazonaws.sesv2#Subject": { "type": "string" }, diff --git a/codegen/sdk-codegen/aws-models/timestream-influxdb.json b/codegen/sdk-codegen/aws-models/timestream-influxdb.json index b7ca551f5c9..5c6f1684eb2 100644 --- a/codegen/sdk-codegen/aws-models/timestream-influxdb.json +++ b/codegen/sdk-codegen/aws-models/timestream-influxdb.json @@ -80,7 +80,7 @@ "*,authorization,date,x-amz-date,x-amz-security-token,x-amz-target,content-type,x-amz-content-sha256,x-amz-user-agent,x-amzn-platform-id,x-amzn-trace-id,amz-sdk-invocation-id,amz-sdk-request" ] }, - "smithy.api#documentation": "

Amazon Timestream for InfluxDB is a managed time-series database engine that makes it easy for application developers and DevOps teams to run InfluxDB databases on AWS for near real-time time-series applications using open-source APIs. With Amazon Timestream for InfluxDB, it is easy to set up, operate, and scale time-series workloads that can answer queries with single-digit millisecond query response time.

", + "smithy.api#documentation": "

Amazon Timestream for InfluxDB is a managed time-series database engine that makes it easy for application developers and DevOps teams to run InfluxDB databases on Amazon Web Services for near real-time time-series applications using open-source APIs. With Amazon Timestream for InfluxDB, it is easy to set up, operate, and scale time-series workloads that can answer queries with single-digit millisecond query response time.

", "smithy.api#title": "Timestream InfluxDB", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -860,7 +860,7 @@ "password": { "target": "com.amazonaws.timestreaminfluxdb#Password", "traits": { - "smithy.api#documentation": "

The password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored in a Secret created in AWS SecretManager in your account.

", + "smithy.api#documentation": "

The password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored in a Secret created in Amazon Web Services SecretManager in your account.

", "smithy.api#required": {} } }, @@ -946,6 +946,12 @@ "smithy.api#default": 8086, "smithy.api#documentation": "

The port number on which InfluxDB accepts connections.

\n

Valid Values: 1024-65535

\n

Default: 8086

\n

Constraints: The value can't be 2375-2376, 7788-7799, 8090, or 51678-51680

" } + }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } } }, "traits": { @@ -999,6 +1005,12 @@ "smithy.api#documentation": "

The port number on which InfluxDB accepts connections. The default value is 8086.

" } }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } + }, "dbInstanceType": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceType", "traits": { @@ -1069,7 +1081,7 @@ "influxAuthParametersSecretArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" } } }, @@ -1272,7 +1284,7 @@ "name": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceName", "traits": { - "smithy.api#documentation": "

This customer-supplied name uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and AWS CLI commands.

", + "smithy.api#documentation": "

This customer-supplied name uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and Amazon Web Services CLI commands.

", "smithy.api#required": {} } }, @@ -1301,6 +1313,12 @@ "smithy.api#documentation": "

The port number on which InfluxDB accepts connections.

" } }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } + }, "dbInstanceType": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceType", "traits": { @@ -1602,6 +1620,12 @@ "smithy.api#documentation": "

The port number on which InfluxDB accepts connections.

" } }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } + }, "dbInstanceType": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceType", "traits": { @@ -1672,7 +1696,7 @@ "influxAuthParametersSecretArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" } } }, @@ -1842,6 +1866,12 @@ "smithy.api#documentation": "

The port number on which InfluxDB accepts connections.

" } }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } + }, "dbInstanceType": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceType", "traits": { @@ -1912,7 +1942,7 @@ "influxAuthParametersSecretArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" } } }, @@ -2578,6 +2608,23 @@ } } }, + "com.amazonaws.timestreaminfluxdb#NetworkType": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV4" + } + }, + "DUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DUAL" + } + } + } + }, "com.amazonaws.timestreaminfluxdb#NextToken": { "type": "string", "traits": { @@ -2822,6 +2869,9 @@ "errors": [ { "target": "com.amazonaws.timestreaminfluxdb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.timestreaminfluxdb#ServiceQuotaExceededException" } ], "traits": { @@ -3080,7 +3130,7 @@ "name": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceName", "traits": { - "smithy.api#documentation": "

This customer-supplied name uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and AWS CLI commands.

", + "smithy.api#documentation": "

This customer-supplied name uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and Amazon Web Services CLI commands.

", "smithy.api#required": {} } }, @@ -3109,6 +3159,12 @@ "smithy.api#documentation": "

The port number on which InfluxDB accepts connections.

" } }, + "networkType": { + "target": "com.amazonaws.timestreaminfluxdb#NetworkType", + "traits": { + "smithy.api#documentation": "

Specifies whether the networkType of the Timestream for InfluxDB instance is IPV4, which can communicate over IPv4 protocol only, or DUAL, which can communicate over both IPv4 and IPv6 protocols.

" + } + }, "dbInstanceType": { "target": "com.amazonaws.timestreaminfluxdb#DbInstanceType", "traits": { @@ -3179,7 +3235,7 @@ "influxAuthParametersSecretArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the initial InfluxDB authorization parameters. The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: organization, bucket, username, and password.

" } } }, From f3ffd64774ebb0d595cf35b9aeeee1bf52e4e6b4 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 11 Dec 2024 19:41:28 +0000 Subject: [PATCH 19/21] Update endpoints model --- .../smithy/aws/go/codegen/endpoints.json | 211 +++++------------- 1 file changed, 54 insertions(+), 157 deletions(-) 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 79bb797e8a0..93ffb541d3c 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 @@ -6281,12 +6281,18 @@ }, "ca-central-1" : { "variants" : [ { + "hostname" : "dlm-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.ca-central-1.api.aws", "tags" : [ "dualstack" ] } ] }, "ca-west-1" : { "variants" : [ { + "hostname" : "dlm-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.ca-west-1.api.aws", "tags" : [ "dualstack" ] } ] @@ -6365,24 +6371,36 @@ }, "us-east-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-east-1.api.aws", "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { + "hostname" : "dlm-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-east-2.api.aws", "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-west-1.api.aws", "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { + "hostname" : "dlm-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-west-2.api.aws", "tags" : [ "dualstack" ] } ] @@ -21157,34 +21175,8 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, - "ca-central-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.ca-central-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "ca-central-1-fips" : { - "credentialScope" : { - "region" : "ca-central-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.ca-central-1.amazonaws.com", - "protocols" : [ "https" ] - }, - "ca-west-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.ca-west-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "ca-west-1-fips" : { - "credentialScope" : { - "region" : "ca-west-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.ca-west-1.amazonaws.com", - "protocols" : [ "https" ] - }, + "ca-central-1" : { }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -21204,62 +21196,10 @@ "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, - "us-east-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-east-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-east-1-fips" : { - "credentialScope" : { - "region" : "us-east-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-east-1.amazonaws.com", - "protocols" : [ "https" ] - }, - "us-east-2" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-east-2.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-east-2-fips" : { - "credentialScope" : { - "region" : "us-east-2" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-east-2.amazonaws.com", - "protocols" : [ "https" ] - }, - "us-west-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-west-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-west-1-fips" : { - "credentialScope" : { - "region" : "us-west-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-west-1.amazonaws.com", - "protocols" : [ "https" ] - }, - "us-west-2" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-west-2.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-west-2-fips" : { - "credentialScope" : { - "region" : "us-west-2" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-west-2.amazonaws.com", - "protocols" : [ "https" ] - } + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } } }, "sts" : { @@ -22353,6 +22293,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, @@ -26638,6 +26579,9 @@ "endpoints" : { "us-gov-east-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] } ] @@ -26651,6 +26595,9 @@ }, "us-gov-west-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] } ] @@ -30040,34 +29987,8 @@ } ] }, "endpoints" : { - "us-gov-east-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-gov-east-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-gov-east-1-fips" : { - "credentialScope" : { - "region" : "us-gov-east-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-gov-east-1.amazonaws.com", - "protocols" : [ "https" ] - }, - "us-gov-west-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-gov-west-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-gov-west-1-fips" : { - "credentialScope" : { - "region" : "us-gov-west-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-gov-west-1.amazonaws.com", - "protocols" : [ "https" ] - } + "us-gov-east-1" : { }, + "us-gov-west-1" : { } } }, "sts" : { @@ -30780,8 +30701,18 @@ }, "dlm" : { "endpoints" : { - "us-iso-east-1" : { }, - "us-iso-west-1" : { } + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "dlm-fips.us-iso-east-1.api.aws.ic.gov", + "tags" : [ "dualstack", "fips" ] + } ] + }, + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "dlm-fips.us-iso-west-1.api.aws.ic.gov", + "tags" : [ "dualstack", "fips" ] + } ] + } } }, "dms" : { @@ -31443,34 +31374,8 @@ } }, "endpoints" : { - "us-iso-east-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-iso-east-1.c2s.ic.gov", - "tags" : [ "fips" ] - } ] - }, - "us-iso-east-1-fips" : { - "credentialScope" : { - "region" : "us-iso-east-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-iso-east-1.c2s.ic.gov", - "protocols" : [ "https" ] - }, - "us-iso-west-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-iso-west-1.c2s.ic.gov", - "tags" : [ "fips" ] - } ] - }, - "us-iso-west-1-fips" : { - "credentialScope" : { - "region" : "us-iso-west-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-iso-west-1.c2s.ic.gov", - "protocols" : [ "https" ] - } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "sts" : { @@ -31709,7 +31614,12 @@ }, "dlm" : { "endpoints" : { - "us-isob-east-1" : { } + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "dlm-fips.us-isob-east-1.api.aws.scloud", + "tags" : [ "dualstack", "fips" ] + } ] + } } }, "dms" : { @@ -32191,20 +32101,7 @@ "protocols" : [ "http", "https" ] }, "endpoints" : { - "us-isob-east-1" : { - "variants" : [ { - "hostname" : "streams.dynamodb-fips.us-isob-east-1.sc2s.sgov.gov", - "tags" : [ "fips" ] - } ] - }, - "us-isob-east-1-fips" : { - "credentialScope" : { - "region" : "us-isob-east-1" - }, - "deprecated" : true, - "hostname" : "streams.dynamodb-fips.us-isob-east-1.sc2s.sgov.gov", - "protocols" : [ "https" ] - } + "us-isob-east-1" : { } } }, "sts" : { From ce7388936c55151f34ecd142810381296e292a6f Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 11 Dec 2024 20:01:27 +0000 Subject: [PATCH 20/21] Regenerated Clients --- .../1fe8264a76b7446e880d70af2a6f957e.json | 8 + .../54950808e50e42cfbf97eb693e93a6f9.json | 8 + .../644ff57998044443ad10e2f01a844439.json | 8 + .../6d051616f1174ae685563efbef3ee440.json | 8 + .../c32c28090d7c478b9a567c5433100417.json | 8 + .../c70da81b9dc44102873a518854ffad43.json | 8 + .../dcccc299763044dd86213383b5c7f6d9.json | 8 + .../e1c400cf6a504d40bb88736a062be8a4.json | 8 + .../artifact/api_op_ListCustomerAgreements.go | 254 ++++ service/artifact/deserializers.go | 388 ++++++ service/artifact/generated.json | 1 + service/artifact/serializers.go | 70 + .../api_op_ListCustomerAgreements.go.snap | 40 + service/artifact/snapshot_test.go | 24 + service/artifact/types/enums.go | 52 +- service/artifact/types/types.go | 45 + service/cloudtrail/types/types.go | 184 +-- .../api_op_AddCustomAttributes.go | 37 +- .../api_op_AdminAddUserToGroup.go | 3 +- .../api_op_AdminConfirmSignUp.go | 19 +- .../api_op_AdminCreateUser.go | 30 +- .../api_op_AdminDeleteUser.go | 4 +- .../api_op_AdminDeleteUserAttributes.go | 7 +- .../api_op_AdminDisableProviderForUser.go | 4 +- .../api_op_AdminDisableUser.go | 6 +- .../api_op_AdminEnableUser.go | 4 +- .../api_op_AdminForgetDevice.go | 13 +- .../api_op_AdminGetDevice.go | 14 +- .../api_op_AdminGetUser.go | 35 +- .../api_op_AdminInitiateAuth.go | 59 +- .../api_op_AdminLinkProviderForUser.go | 2 +- .../api_op_AdminListDevices.go | 15 +- .../api_op_AdminListGroupsForUser.go | 29 +- .../api_op_AdminListUserAuthEvents.go | 19 +- .../api_op_AdminRemoveUserFromGroup.go | 12 +- .../api_op_AdminResetUserPassword.go | 50 +- .../api_op_AdminRespondToAuthChallenge.go | 72 +- .../api_op_AdminSetUserMFAPreference.go | 5 + .../api_op_AdminSetUserPassword.go | 36 +- .../api_op_AdminUpdateAuthEventFeedback.go | 12 +- .../api_op_AdminUpdateDeviceStatus.go | 16 +- .../api_op_AdminUpdateUserAttributes.go | 21 +- .../api_op_AdminUserGlobalSignOut.go | 9 +- .../api_op_AssociateSoftwareToken.go | 23 +- .../api_op_ChangePassword.go | 2 +- .../api_op_CompleteWebAuthnRegistration.go | 2 +- .../api_op_ConfirmDevice.go | 33 +- .../api_op_ConfirmForgotPassword.go | 24 +- .../api_op_ConfirmSignUp.go | 49 +- .../api_op_CreateGroup.go | 19 +- .../api_op_CreateIdentityProvider.go | 28 +- .../api_op_CreateManagedLoginBranding.go | 14 +- .../api_op_CreateResourceServer.go | 13 +- .../api_op_CreateUserImportJob.go | 17 +- .../api_op_CreateUserPool.go | 89 +- .../api_op_CreateUserPoolClient.go | 75 +- .../api_op_CreateUserPoolDomain.go | 35 +- .../api_op_DeleteGroup.go | 24 +- .../api_op_DeleteIdentityProvider.go | 23 +- .../api_op_DeleteManagedLoginBranding.go | 4 +- .../api_op_DeleteResourceServer.go | 26 +- .../api_op_DeleteUser.go | 3 +- .../api_op_DeleteUserAttributes.go | 8 +- .../api_op_DeleteUserPool.go | 5 +- .../api_op_DeleteUserPoolClient.go | 7 +- .../api_op_DeleteUserPoolDomain.go | 12 +- .../api_op_DeleteWebAuthnCredential.go | 16 +- .../api_op_DescribeIdentityProvider.go | 9 +- .../api_op_DescribeManagedLoginBranding.go | 4 +- ...op_DescribeManagedLoginBrandingByClient.go | 4 +- .../api_op_DescribeResourceServer.go | 8 +- .../api_op_DescribeRiskConfiguration.go | 21 +- .../api_op_DescribeUserImportJob.go | 10 +- .../api_op_DescribeUserPool.go | 8 +- .../api_op_DescribeUserPoolClient.go | 13 +- .../api_op_DescribeUserPoolDomain.go | 25 +- .../api_op_ForgotPassword.go | 17 +- .../api_op_GetCSVHeader.go | 4 +- .../api_op_GetGroup.go | 2 +- .../api_op_GetUICustomization.go | 2 +- ...api_op_GetUserAttributeVerificationCode.go | 8 +- .../api_op_GlobalSignOut.go | 7 +- .../api_op_InitiateAuth.go | 23 +- .../api_op_ListGroups.go | 2 +- .../api_op_ListResourceServers.go | 2 +- .../api_op_ListUserImportJobs.go | 2 +- .../api_op_ListUserPoolClients.go | 2 +- .../api_op_ListUsers.go | 2 +- .../api_op_ListUsersInGroup.go | 2 +- .../api_op_ResendConfirmationCode.go | 17 +- .../api_op_RespondToAuthChallenge.go | 12 +- .../api_op_SetUICustomization.go | 2 +- .../api_op_SetUserMFAPreference.go | 5 + .../cognitoidentityprovider/api_op_SignUp.go | 17 +- .../api_op_StartUserImportJob.go | 2 +- .../api_op_StopUserImportJob.go | 2 +- .../api_op_UpdateGroup.go | 2 +- .../api_op_UpdateManagedLoginBranding.go | 5 +- .../api_op_UpdateResourceServer.go | 2 +- .../api_op_UpdateUserAttributes.go | 8 +- .../api_op_UpdateUserPool.go | 2 +- .../api_op_UpdateUserPoolClient.go | 7 +- .../api_op_UpdateUserPoolDomain.go | 43 +- service/cognitoidentityprovider/doc.go | 3 + .../cognitoidentityprovider/types/types.go | 34 +- service/controlcatalog/types/types.go | 3 +- service/dlm/internal/endpoints/endpoints.go | 66 + .../internal/endpoints/endpoints.go | 176 --- .../api_op_GetDashboardForJobRun.go | 4 + service/emrserverless/serializers.go | 4 + .../api_op_AssociateSourceResource.go | 175 +++ .../api_op_DisassociateSourceResource.go | 173 +++ .../api_op_ListMigrationTaskUpdates.go | 286 ++++ .../api_op_ListSourceResources.go | 285 ++++ service/migrationhub/deserializers.go | 1181 ++++++++++++++--- service/migrationhub/endpoints.go | 2 +- service/migrationhub/generated.json | 4 + service/migrationhub/serializers.go | 376 ++++++ .../api_op_AssociateSourceResource.go.snap | 41 + .../api_op_DisassociateSourceResource.go.snap | 41 + .../api_op_ListMigrationTaskUpdates.go.snap | 41 + .../api_op_ListSourceResources.go.snap | 41 + service/migrationhub/snapshot_test.go | 96 ++ service/migrationhub/types/enums.go | 17 + service/migrationhub/types/types.go | 38 +- service/migrationhub/validators.go | 193 +++ service/sesv2/api_client.go | 28 + .../sesv2/api_op_CreateMultiRegionEndpoint.go | 188 +++ .../sesv2/api_op_DeleteMultiRegionEndpoint.go | 172 +++ .../sesv2/api_op_GetMultiRegionEndpoint.go | 188 +++ .../sesv2/api_op_ListMultiRegionEndpoints.go | 268 ++++ service/sesv2/api_op_SendBulkEmail.go | 9 + service/sesv2/api_op_SendEmail.go | 9 + service/sesv2/auth.go | 10 + service/sesv2/deserializers.go | 1101 ++++++++++++++- service/sesv2/endpoints.go | 132 ++ service/sesv2/endpoints_test.go | 325 +++++ service/sesv2/generated.json | 5 + service/sesv2/go.mod | 3 + service/sesv2/options.go | 48 + service/sesv2/serializers.go | 356 +++++ .../api_op_CreateMultiRegionEndpoint.go.snap | 41 + .../api_op_DeleteMultiRegionEndpoint.go.snap | 41 + .../api_op_GetMultiRegionEndpoint.go.snap | 41 + .../api_op_ListMultiRegionEndpoints.go.snap | 40 + service/sesv2/snapshot_test.go | 96 ++ service/sesv2/types/enums.go | 23 + service/sesv2/types/types.go | 70 + service/sesv2/validators.go | 180 +++ .../api_op_CreateDbInstance.go | 20 +- .../api_op_DeleteDbInstance.go | 13 +- .../api_op_GetDbInstance.go | 13 +- .../api_op_UpdateDbInstance.go | 16 +- service/timestreaminfluxdb/deserializers.go | 48 + service/timestreaminfluxdb/doc.go | 8 +- service/timestreaminfluxdb/serializers.go | 5 + service/timestreaminfluxdb/types/enums.go | 19 + service/timestreaminfluxdb/types/types.go | 8 +- .../internal/endpoints/endpoints.go | 3 + 159 files changed, 8204 insertions(+), 1112 deletions(-) create mode 100644 .changelog/1fe8264a76b7446e880d70af2a6f957e.json create mode 100644 .changelog/54950808e50e42cfbf97eb693e93a6f9.json create mode 100644 .changelog/644ff57998044443ad10e2f01a844439.json create mode 100644 .changelog/6d051616f1174ae685563efbef3ee440.json create mode 100644 .changelog/c32c28090d7c478b9a567c5433100417.json create mode 100644 .changelog/c70da81b9dc44102873a518854ffad43.json create mode 100644 .changelog/dcccc299763044dd86213383b5c7f6d9.json create mode 100644 .changelog/e1c400cf6a504d40bb88736a062be8a4.json create mode 100644 service/artifact/api_op_ListCustomerAgreements.go create mode 100644 service/artifact/snapshot/api_op_ListCustomerAgreements.go.snap create mode 100644 service/migrationhub/api_op_AssociateSourceResource.go create mode 100644 service/migrationhub/api_op_DisassociateSourceResource.go create mode 100644 service/migrationhub/api_op_ListMigrationTaskUpdates.go create mode 100644 service/migrationhub/api_op_ListSourceResources.go create mode 100644 service/migrationhub/snapshot/api_op_AssociateSourceResource.go.snap create mode 100644 service/migrationhub/snapshot/api_op_DisassociateSourceResource.go.snap create mode 100644 service/migrationhub/snapshot/api_op_ListMigrationTaskUpdates.go.snap create mode 100644 service/migrationhub/snapshot/api_op_ListSourceResources.go.snap create mode 100644 service/sesv2/api_op_CreateMultiRegionEndpoint.go create mode 100644 service/sesv2/api_op_DeleteMultiRegionEndpoint.go create mode 100644 service/sesv2/api_op_GetMultiRegionEndpoint.go create mode 100644 service/sesv2/api_op_ListMultiRegionEndpoints.go create mode 100644 service/sesv2/snapshot/api_op_CreateMultiRegionEndpoint.go.snap create mode 100644 service/sesv2/snapshot/api_op_DeleteMultiRegionEndpoint.go.snap create mode 100644 service/sesv2/snapshot/api_op_GetMultiRegionEndpoint.go.snap create mode 100644 service/sesv2/snapshot/api_op_ListMultiRegionEndpoints.go.snap diff --git a/.changelog/1fe8264a76b7446e880d70af2a6f957e.json b/.changelog/1fe8264a76b7446e880d70af2a6f957e.json new file mode 100644 index 00000000000..8fecd98d7d6 --- /dev/null +++ b/.changelog/1fe8264a76b7446e880d70af2a6f957e.json @@ -0,0 +1,8 @@ +{ + "id": "1fe8264a-76b7-446e-880d-70af2a6f957e", + "type": "feature", + "description": "API and documentation updates for AWS MigrationHub related to adding support for listing migration task updates and associating, disassociating and listing source resources", + "modules": [ + "service/migrationhub" + ] +} \ No newline at end of file diff --git a/.changelog/54950808e50e42cfbf97eb693e93a6f9.json b/.changelog/54950808e50e42cfbf97eb693e93a6f9.json new file mode 100644 index 00000000000..c898bc6b352 --- /dev/null +++ b/.changelog/54950808e50e42cfbf97eb693e93a6f9.json @@ -0,0 +1,8 @@ +{ + "id": "54950808-e50e-42cf-bf97-eb693e93a6f9", + "type": "documentation", + "description": "Doc-only updates for CloudTrail.", + "modules": [ + "service/cloudtrail" + ] +} \ No newline at end of file diff --git a/.changelog/644ff57998044443ad10e2f01a844439.json b/.changelog/644ff57998044443ad10e2f01a844439.json new file mode 100644 index 00000000000..854ab766184 --- /dev/null +++ b/.changelog/644ff57998044443ad10e2f01a844439.json @@ -0,0 +1,8 @@ +{ + "id": "644ff579-9804-4443-ad10-e2f01a844439", + "type": "feature", + "description": "This release adds support for accessing system profile logs in Lake Formation-enabled jobs.", + "modules": [ + "service/emrserverless" + ] +} \ No newline at end of file diff --git a/.changelog/6d051616f1174ae685563efbef3ee440.json b/.changelog/6d051616f1174ae685563efbef3ee440.json new file mode 100644 index 00000000000..2b15b928402 --- /dev/null +++ b/.changelog/6d051616f1174ae685563efbef3ee440.json @@ -0,0 +1,8 @@ +{ + "id": "6d051616-f117-4ae6-8556-3efbef3ee440", + "type": "feature", + "description": "Add support for listing active customer agreements for the calling AWS Account.", + "modules": [ + "service/artifact" + ] +} \ No newline at end of file diff --git a/.changelog/c32c28090d7c478b9a567c5433100417.json b/.changelog/c32c28090d7c478b9a567c5433100417.json new file mode 100644 index 00000000000..8beacffec89 --- /dev/null +++ b/.changelog/c32c28090d7c478b9a567c5433100417.json @@ -0,0 +1,8 @@ +{ + "id": "c32c2809-0d7c-478b-9a56-7c5433100417", + "type": "documentation", + "description": "Updated descriptions for some API operations and parameters, corrected some errors in Cognito user pools", + "modules": [ + "service/cognitoidentityprovider" + ] +} \ No newline at end of file diff --git a/.changelog/c70da81b9dc44102873a518854ffad43.json b/.changelog/c70da81b9dc44102873a518854ffad43.json new file mode 100644 index 00000000000..f8acbf91b04 --- /dev/null +++ b/.changelog/c70da81b9dc44102873a518854ffad43.json @@ -0,0 +1,8 @@ +{ + "id": "c70da81b-9dc4-4102-873a-518854ffad43", + "type": "feature", + "description": "Adds networkType parameter to CreateDbInstance API which allows IPv6 support to the InfluxDB endpoint", + "modules": [ + "service/timestreaminfluxdb" + ] +} \ No newline at end of file diff --git a/.changelog/dcccc299763044dd86213383b5c7f6d9.json b/.changelog/dcccc299763044dd86213383b5c7f6d9.json new file mode 100644 index 00000000000..e17f64f60c6 --- /dev/null +++ b/.changelog/dcccc299763044dd86213383b5c7f6d9.json @@ -0,0 +1,8 @@ +{ + "id": "dcccc299-7630-44dd-8621-3383b5c7f6d9", + "type": "documentation", + "description": "Minor documentation updates to the content of ImplementationDetails object part of the Control Catalog GetControl API", + "modules": [ + "service/controlcatalog" + ] +} \ No newline at end of file diff --git a/.changelog/e1c400cf6a504d40bb88736a062be8a4.json b/.changelog/e1c400cf6a504d40bb88736a062be8a4.json new file mode 100644 index 00000000000..91bf09c1f22 --- /dev/null +++ b/.changelog/e1c400cf6a504d40bb88736a062be8a4.json @@ -0,0 +1,8 @@ +{ + "id": "e1c400cf-6a50-4d40-bb88-736a062be8a4", + "type": "feature", + "description": "Introduces support for multi-region endpoint.", + "modules": [ + "service/sesv2" + ] +} \ No newline at end of file diff --git a/service/artifact/api_op_ListCustomerAgreements.go b/service/artifact/api_op_ListCustomerAgreements.go new file mode 100644 index 00000000000..ad8d3a4430e --- /dev/null +++ b/service/artifact/api_op_ListCustomerAgreements.go @@ -0,0 +1,254 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package artifact + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/artifact/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// List active customer-agreements applicable to calling identity. +func (c *Client) ListCustomerAgreements(ctx context.Context, params *ListCustomerAgreementsInput, optFns ...func(*Options)) (*ListCustomerAgreementsOutput, error) { + if params == nil { + params = &ListCustomerAgreementsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListCustomerAgreements", params, optFns, c.addOperationListCustomerAgreementsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListCustomerAgreementsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListCustomerAgreementsInput struct { + + // Maximum number of resources to return in the paginated response. + MaxResults *int32 + + // Pagination token to request the next page of resources. + NextToken *string + + noSmithyDocumentSerde +} + +type ListCustomerAgreementsOutput struct { + + // List of customer-agreement resources. + // + // This member is required. + CustomerAgreements []types.CustomerAgreementSummary + + // Pagination token to request the next page of resources. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListCustomerAgreementsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListCustomerAgreements{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListCustomerAgreements{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListCustomerAgreements"); 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_opListCustomerAgreements(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 +} + +// ListCustomerAgreementsPaginatorOptions is the paginator options for +// ListCustomerAgreements +type ListCustomerAgreementsPaginatorOptions struct { + // Maximum number of resources to return in the paginated response. + 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 +} + +// ListCustomerAgreementsPaginator is a paginator for ListCustomerAgreements +type ListCustomerAgreementsPaginator struct { + options ListCustomerAgreementsPaginatorOptions + client ListCustomerAgreementsAPIClient + params *ListCustomerAgreementsInput + nextToken *string + firstPage bool +} + +// NewListCustomerAgreementsPaginator returns a new ListCustomerAgreementsPaginator +func NewListCustomerAgreementsPaginator(client ListCustomerAgreementsAPIClient, params *ListCustomerAgreementsInput, optFns ...func(*ListCustomerAgreementsPaginatorOptions)) *ListCustomerAgreementsPaginator { + if params == nil { + params = &ListCustomerAgreementsInput{} + } + + options := ListCustomerAgreementsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListCustomerAgreementsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListCustomerAgreementsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListCustomerAgreements page. +func (p *ListCustomerAgreementsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListCustomerAgreementsOutput, 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.ListCustomerAgreements(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 +} + +// ListCustomerAgreementsAPIClient is a client that implements the +// ListCustomerAgreements operation. +type ListCustomerAgreementsAPIClient interface { + ListCustomerAgreements(context.Context, *ListCustomerAgreementsInput, ...func(*Options)) (*ListCustomerAgreementsOutput, error) +} + +var _ ListCustomerAgreementsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListCustomerAgreements(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListCustomerAgreements", + } +} diff --git a/service/artifact/deserializers.go b/service/artifact/deserializers.go index 7477cb88d49..528db9f1e99 100644 --- a/service/artifact/deserializers.go +++ b/service/artifact/deserializers.go @@ -724,6 +724,176 @@ func awsRestjson1_deserializeOpDocumentGetTermForReportOutput(v **GetTermForRepo return nil } +type awsRestjson1_deserializeOpListCustomerAgreements struct { +} + +func (*awsRestjson1_deserializeOpListCustomerAgreements) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListCustomerAgreements) HandleDeserialize(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_deserializeOpErrorListCustomerAgreements(response, &metadata) + } + output := &ListCustomerAgreementsOutput{} + 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_deserializeOpDocumentListCustomerAgreementsOutput(&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_deserializeOpErrorListCustomerAgreements(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentListCustomerAgreementsOutput(v **ListCustomerAgreementsOutput, 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 *ListCustomerAgreementsOutput + if *v == nil { + sv = &ListCustomerAgreementsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "customerAgreements": + if err := awsRestjson1_deserializeDocumentCustomerAgreementList(&sv.CustomerAgreements, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextTokenAttribute to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpListReports struct { } @@ -1442,6 +1612,42 @@ func awsRestjson1_deserializeDocumentAccountSettings(v **types.AccountSettings, return nil } +func awsRestjson1_deserializeDocumentAgreementTerms(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 LongStringAttribute to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -1500,6 +1706,188 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } +func awsRestjson1_deserializeDocumentCustomerAgreementList(v *[]types.CustomerAgreementSummary, 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.CustomerAgreementSummary + if *v == nil { + cv = []types.CustomerAgreementSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.CustomerAgreementSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentCustomerAgreementSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentCustomerAgreementSummary(v **types.CustomerAgreementSummary, 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.CustomerAgreementSummary + if *v == nil { + sv = &types.CustomerAgreementSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "acceptanceTerms": + if err := awsRestjson1_deserializeDocumentAgreementTerms(&sv.AcceptanceTerms, value); err != nil { + return err + } + + case "agreementArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value) + } + sv.AgreementArn = ptr.String(jtv) + } + + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LongStringAttribute 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 ShortStringAttribute to be of type string, got %T instead", value) + } + sv.AwsAccountId = ptr.String(jtv) + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "effectiveEnd": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.EffectiveEnd = ptr.Time(t) + } + + case "effectiveStart": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.EffectiveStart = ptr.Time(t) + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CustomerAgreementIdAttribute 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 LongStringAttribute to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "organizationArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value) + } + sv.OrganizationArn = ptr.String(jtv) + } + + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CustomerAgreementState to be of type string, got %T instead", value) + } + sv.State = types.CustomerAgreementState(jtv) + } + + case "terminateTerms": + if err := awsRestjson1_deserializeDocumentAgreementTerms(&sv.TerminateTerms, value); err != nil { + return err + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AgreementType to be of type string, got %T instead", value) + } + sv.Type = types.AgreementType(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/artifact/generated.json b/service/artifact/generated.json index ed3efd1fc03..2919baccc4a 100644 --- a/service/artifact/generated.json +++ b/service/artifact/generated.json @@ -12,6 +12,7 @@ "api_op_GetReport.go", "api_op_GetReportMetadata.go", "api_op_GetTermForReport.go", + "api_op_ListCustomerAgreements.go", "api_op_ListReports.go", "api_op_PutAccountSettings.go", "auth.go", diff --git a/service/artifact/serializers.go b/service/artifact/serializers.go index 1ebdecfd974..efaf6c9f3bc 100644 --- a/service/artifact/serializers.go +++ b/service/artifact/serializers.go @@ -286,6 +286,76 @@ func awsRestjson1_serializeOpHttpBindingsGetTermForReportInput(v *GetTermForRepo return nil } +type awsRestjson1_serializeOpListCustomerAgreements struct { +} + +func (*awsRestjson1_serializeOpListCustomerAgreements) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListCustomerAgreements) 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.(*ListCustomerAgreementsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v1/customer-agreement/list") + 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_serializeOpHttpBindingsListCustomerAgreementsInput(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_serializeOpHttpBindingsListCustomerAgreementsInput(v *ListCustomerAgreementsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListReports struct { } diff --git a/service/artifact/snapshot/api_op_ListCustomerAgreements.go.snap b/service/artifact/snapshot/api_op_ListCustomerAgreements.go.snap new file mode 100644 index 00000000000..4f184e5e4f4 --- /dev/null +++ b/service/artifact/snapshot/api_op_ListCustomerAgreements.go.snap @@ -0,0 +1,40 @@ +ListCustomerAgreements + 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/artifact/snapshot_test.go b/service/artifact/snapshot_test.go index 74f42fdf407..dd9afb28a60 100644 --- a/service/artifact/snapshot_test.go +++ b/service/artifact/snapshot_test.go @@ -110,6 +110,18 @@ func TestCheckSnapshot_GetTermForReport(t *testing.T) { } } +func TestCheckSnapshot_ListCustomerAgreements(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListCustomerAgreements(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListCustomerAgreements") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListReports(t *testing.T) { svc := New(Options{}) _, err := svc.ListReports(context.Background(), nil, func(o *Options) { @@ -181,6 +193,18 @@ func TestUpdateSnapshot_GetTermForReport(t *testing.T) { } } +func TestUpdateSnapshot_ListCustomerAgreements(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListCustomerAgreements(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListCustomerAgreements") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListReports(t *testing.T) { svc := New(Options{}) _, err := svc.ListReports(context.Background(), nil, func(o *Options) { diff --git a/service/artifact/types/enums.go b/service/artifact/types/enums.go index 8ef464597d5..194d41850ee 100644 --- a/service/artifact/types/enums.go +++ b/service/artifact/types/enums.go @@ -7,7 +7,7 @@ type AcceptanceType string // Enum values for AcceptanceType const ( // Do not require explicit click-through acceptance of the Term associated with - // this Report. + // this Report AcceptanceTypePassthrough AcceptanceType = "PASSTHROUGH" // Require explicit click-through acceptance of the Term associated with this // Report. @@ -25,13 +25,53 @@ func (AcceptanceType) Values() []AcceptanceType { } } +type AgreementType string + +// Enum values for AgreementType +const ( + AgreementTypeCustom AgreementType = "CUSTOM" + AgreementTypeDefault AgreementType = "DEFAULT" + AgreementTypeModified AgreementType = "MODIFIED" +) + +// Values returns all known values for AgreementType. 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 (AgreementType) Values() []AgreementType { + return []AgreementType{ + "CUSTOM", + "DEFAULT", + "MODIFIED", + } +} + +type CustomerAgreementState string + +// Enum values for CustomerAgreementState +const ( + CustomerAgreementStateActive CustomerAgreementState = "ACTIVE" + CustomerAgreementStateCustomerTerminated CustomerAgreementState = "CUSTOMER_TERMINATED" + CustomerAgreementStateAwsTerminated CustomerAgreementState = "AWS_TERMINATED" +) + +// Values returns all known values for CustomerAgreementState. 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 (CustomerAgreementState) Values() []CustomerAgreementState { + return []CustomerAgreementState{ + "ACTIVE", + "CUSTOMER_TERMINATED", + "AWS_TERMINATED", + } +} + type NotificationSubscriptionStatus string // Enum values for NotificationSubscriptionStatus const ( - // The account is subscribed for notification. - NotificationSubscriptionStatusSubscribed NotificationSubscriptionStatus = "SUBSCRIBED" - // The account is not subscribed for notification. + NotificationSubscriptionStatusSubscribed NotificationSubscriptionStatus = "SUBSCRIBED" NotificationSubscriptionStatusNotSubscribed NotificationSubscriptionStatus = "NOT_SUBSCRIBED" ) @@ -51,9 +91,7 @@ type PublishedState string // Enum values for PublishedState const ( - // The resource is published for consumption. - PublishedStatePublished PublishedState = "PUBLISHED" - // The resource is not published for consumption. + PublishedStatePublished PublishedState = "PUBLISHED" PublishedStateUnpublished PublishedState = "UNPUBLISHED" ) diff --git a/service/artifact/types/types.go b/service/artifact/types/types.go index 0005ef55b2c..a3834826da8 100644 --- a/service/artifact/types/types.go +++ b/service/artifact/types/types.go @@ -16,6 +16,51 @@ type AccountSettings struct { noSmithyDocumentSerde } +// Summary for customer-agreement resource. +type CustomerAgreementSummary struct { + + // Terms required to accept the agreement resource. + AcceptanceTerms []string + + // ARN of the agreement resource the customer-agreement resource represents. + AgreementArn *string + + // ARN of the customer-agreement resource. + Arn *string + + // AWS account Id that owns the resource. + AwsAccountId *string + + // Description of the resource. + Description *string + + // Timestamp indicating when the agreement was terminated. + EffectiveEnd *time.Time + + // Timestamp indicating when the agreement became effective. + EffectiveStart *time.Time + + // Identifier of the customer-agreement resource. + Id *string + + // Name of the customer-agreement resource. + Name *string + + // ARN of the organization that owns the resource. + OrganizationArn *string + + // State of the resource. + State CustomerAgreementState + + // Terms required to terminate the customer-agreement resource. + TerminateTerms []string + + // Type of the customer-agreement resource. + Type AgreementType + + noSmithyDocumentSerde +} + // Full detail for report resource metadata. type ReportDetail struct { diff --git a/service/cloudtrail/types/types.go b/service/cloudtrail/types/types.go index aa4493118b3..35e9c001e1b 100644 --- a/service/cloudtrail/types/types.go +++ b/service/cloudtrail/types/types.go @@ -15,66 +15,11 @@ import ( // // You cannot apply both event selectors and advanced event selectors to a trail. // -// Supported CloudTrail event record fields for management events -// -// - eventCategory (required) -// -// - eventSource -// -// - 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) -// -// - resources.type (required) -// -// - readOnly -// -// - eventName -// -// - 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 -// change. -// -// - eventCategory (required) -// -// - eventSource (required) -// -// - eventName -// -// - errorCode - The only valid value for errorCode is VpceAccessDenied . -// -// - vpcEndpointId -// -// 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 eventCategory . +// For information about configurable advanced event selector fields, see [AdvancedEventSelector] in the +// CloudTrailUser Guide. // // [Logging network activity events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-network-events-with-cloudtrail.html +// [AdvancedEventSelector]: https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html // [Logging management events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html // [Logging data events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html type AdvancedEventSelector struct { @@ -99,128 +44,9 @@ type AdvancedFieldSelector struct { // items, Audit Manager evidence, or events outside of Amazon Web Services, the // field is used only for selecting events as filtering is not supported. // - // For CloudTrail management events, supported fields include eventCategory - // (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 . 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 . - // - // 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 eventCategory . - // - // - readOnly - This is an optional field that is only used for management events - // and data events. This field can be set to Equals with a value of true or false - // . 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, data events - // (for event data stores only), and network activity events. - // - // 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 - // sources, you must create a separate field selector for each event source. - // - // The following are valid values for network activity events: - // - // - cloudtrail.amazonaws.com - // - // - ec2.amazonaws.com - // - // - kms.amazonaws.com - // - // - secretsmanager.amazonaws.com - // - // - 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 . - // - // - For CloudTrail management events, the value must be Management . - // - // - For CloudTrail data events, the value must be Data . - // - // - For CloudTrail network activity events, the value must be NetworkActivity . - // - // The following are used only for event data stores: - // - // - For CloudTrail Insights events, the value must be Insight . - // - // - For Config configuration items, the value must be ConfigurationItem . - // - // - For Audit Manager evidence, the value must be Evidence . - // - // - 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. - // - // 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. - // - // - resources.ARN - The resources.ARN is an optional field for data events. You - // can use any operator with resources.ARN , but if you use Equals or NotEquals , - // the value must exactly match the ARN of a valid resource 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, use the StartsWith operator, and - // include only the bucket ARN as the matching value. - // - // For information about filtering data events on the resources.ARN field, see [Filtering data events by resources.ARN]in - // the CloudTrail User Guide. - // - // 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 . + // For more information, see [AdvancedFieldSelector] in the CloudTrailUser Guide. // - // [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 + // [AdvancedFieldSelector]: https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html // // This member is required. Field *string diff --git a/service/cognitoidentityprovider/api_op_AddCustomAttributes.go b/service/cognitoidentityprovider/api_op_AddCustomAttributes.go index 15ff921f9bd..92d4a216795 100644 --- a/service/cognitoidentityprovider/api_op_AddCustomAttributes.go +++ b/service/cognitoidentityprovider/api_op_AddCustomAttributes.go @@ -11,7 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds additional user attributes to the user pool schema. +// Adds additional user attributes to the user pool schema. Custom attributes can +// be mutable or immutable and have a custom: or dev: prefix. For more +// information, see [Custom attributes]. +// +// You can also create custom attributes in the [Schema parameter] of CreateUserPool and +// UpdateUserPool . You can't delete custom attributes after you create them. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -24,6 +29,8 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [Custom attributes]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes +// [Schema parameter]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AddCustomAttributes(ctx context.Context, params *AddCustomAttributesInput, optFns ...func(*Options)) (*AddCustomAttributesOutput, error) { @@ -44,12 +51,36 @@ func (c *Client) AddCustomAttributes(ctx context.Context, params *AddCustomAttri // Represents the request to add custom attributes. type AddCustomAttributesInput struct { - // An array of custom attributes, such as Mutable and Name. + // An array of custom attribute names and other properties. Sets the following + // characteristics: + // + // AttributeDataType The expected data type. Can be a string, a number, a date and + // time, or a boolean. + // + // Mutable If true, you can grant app clients write access to the attribute value. + // If false, the attribute value can only be set up on sign-up or administrator + // creation of users. + // + // Name The attribute name. For an attribute like custom:myAttribute , enter + // myAttribute for this field. + // + // Required When true, users who sign up or are created must set a value for the + // attribute. + // + // NumberAttributeConstraints The minimum and maximum length of accepted values + // for a Number -type attribute. + // + // StringAttributeConstraints The minimum and maximum length of accepted values + // for a String -type attribute. + // + // DeveloperOnlyAttribute This legacy option creates an attribute with a dev: + // prefix. You can only set the value of a developer-only attribute with + // administrative IAM credentials. // // This member is required. CustomAttributes []types.SchemaAttributeType - // The user pool ID for the user pool where you want to add custom attributes. + // The ID of the user pool where you want to add custom attributes. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminAddUserToGroup.go b/service/cognitoidentityprovider/api_op_AdminAddUserToGroup.go index d31d664b556..d8056e11b0a 100644 --- a/service/cognitoidentityprovider/api_op_AdminAddUserToGroup.go +++ b/service/cognitoidentityprovider/api_op_AdminAddUserToGroup.go @@ -49,7 +49,8 @@ type AdminAddUserToGroupInput struct { // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool that contains the group that you want to add the user + // to. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminConfirmSignUp.go b/service/cognitoidentityprovider/api_op_AdminConfirmSignUp.go index 4326cd385fb..affb253a136 100644 --- a/service/cognitoidentityprovider/api_op_AdminConfirmSignUp.go +++ b/service/cognitoidentityprovider/api_op_AdminConfirmSignUp.go @@ -10,9 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This IAM-authenticated API operation confirms user sign-up as an administrator. -// Unlike [ConfirmSignUp], your IAM credentials authorize user account confirmation. No -// confirmation code is required. +// Confirms user sign-up as an administrator. Unlike [ConfirmSignUp], your IAM credentials +// authorize user account confirmation. No confirmation code is required. // // This request sets a user account active in a user pool that [requires confirmation of new user accounts] before they can // sign in. You can configure your user pool to not send confirmation codes to new @@ -29,6 +28,10 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// To configure your user pool to require administrative confirmation of users, +// set AllowAdminCreateUserOnly to true in a CreateUserPool or UpdateUserPool +// request. +// // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [ConfirmSignUp]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html // [requires confirmation of new user accounts]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#signing-up-users-in-your-app-and-confirming-them-as-admin @@ -51,7 +54,7 @@ func (c *Client) AdminConfirmSignUp(ctx context.Context, params *AdminConfirmSig // Confirm a user's registration as a user pool administrator. type AdminConfirmSignUpInput struct { - // The user pool ID for which you want to confirm user registration. + // The ID of the user pool where you want to confirm a user's sign-up request. // // This member is required. UserPoolId *string @@ -79,8 +82,8 @@ type AdminConfirmSignUpInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -89,8 +92,8 @@ type AdminConfirmSignUpInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string diff --git a/service/cognitoidentityprovider/api_op_AdminCreateUser.go b/service/cognitoidentityprovider/api_op_AdminCreateUser.go index a75a73e4bf0..d88b03cbc69 100644 --- a/service/cognitoidentityprovider/api_op_AdminCreateUser.go +++ b/service/cognitoidentityprovider/api_op_AdminCreateUser.go @@ -80,7 +80,7 @@ func (c *Client) AdminCreateUser(ctx context.Context, params *AdminCreateUserInp // Creates a new user in the specified user pool. type AdminCreateUserInput struct { - // The user pool ID for the user pool where the user will be created. + // The ID of the user pool where you want to create a user. // // This member is required. UserPoolId *string @@ -109,15 +109,15 @@ type AdminCreateUserInput struct { // triggers. When you use the AdminCreateUser API action, Amazon Cognito invokes // the function that is assigned to the pre sign-up trigger. When Amazon Cognito // invokes this function, it passes a JSON payload, which the function receives as - // input. This payload contains a clientMetadata attribute, which provides the + // input. This payload contains a ClientMetadata attribute, which provides the // data that you assigned to the ClientMetadata parameter in your AdminCreateUser // request. In your function code in Lambda, you can process the clientMetadata // value to enhance your workflow for your specific needs. // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -126,15 +126,15 @@ type AdminCreateUserInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string - // Specify "EMAIL" if email will be used to send the welcome message. Specify "SMS" - // if the phone number will be used. The default value is "SMS" . You can specify - // more than one value. + // Specify EMAIL if email will be used to send the welcome message. Specify SMS if + // the phone number will be used. The default value is SMS . You can specify more + // than one value. DesiredDeliveryMediums []types.DeliveryMediumType // This parameter is used only if the phone_number_verified or email_verified @@ -142,17 +142,17 @@ type AdminCreateUserInput struct { // // If this parameter is set to True and the phone number or email address // specified in the UserAttributes parameter already exists as an alias with a - // different user, the API call will migrate the alias from the previous user to - // the newly created user. The previous user will no longer be able to log in using + // different user, this request migrates the alias from the previous user to the + // newly-created user. The previous user will no longer be able to log in using // that alias. // // If this parameter is set to False , the API throws an AliasExistsException // error if the alias already exists. The default value is False . ForceAliasCreation bool - // Set to RESEND to resend the invitation message to a user that already exists - // and reset the expiration limit on the user's account. Set to SUPPRESS to - // suppress sending the message. You can specify only one value. + // Set to RESEND to resend the invitation message to a user that already exists, + // and to reset the temporary-password duration with a new temporary password. Set + // to SUPPRESS to suppress sending the message. You can specify only one value. MessageAction types.MessageActionType // The user's temporary password. This password must conform to the password @@ -237,7 +237,7 @@ type AdminCreateUserInput struct { // Represents the response from the server to the request to create the user. type AdminCreateUserOutput struct { - // The newly created user. + // The new user's profile details. User *types.UserType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_AdminDeleteUser.go b/service/cognitoidentityprovider/api_op_AdminDeleteUser.go index e67e19d813c..ce52a2ec39a 100644 --- a/service/cognitoidentityprovider/api_op_AdminDeleteUser.go +++ b/service/cognitoidentityprovider/api_op_AdminDeleteUser.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a user as an administrator. Works on any user. +// Deletes a user profile in your user pool. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -43,7 +43,7 @@ func (c *Client) AdminDeleteUser(ctx context.Context, params *AdminDeleteUserInp // Represents the request to delete a user as an administrator. type AdminDeleteUserInput struct { - // The user pool ID for the user pool where you want to delete the user. + // The ID of the user pool where you want to delete the user. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminDeleteUserAttributes.go b/service/cognitoidentityprovider/api_op_AdminDeleteUserAttributes.go index 961d54cec74..b1570e744e3 100644 --- a/service/cognitoidentityprovider/api_op_AdminDeleteUserAttributes.go +++ b/service/cognitoidentityprovider/api_op_AdminDeleteUserAttributes.go @@ -10,8 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the user attributes in a user pool as an administrator. Works on any -// user. +// Deletes attribute values from a user. This operation doesn't affect tokens for +// existing user sessions. The next ID token that the user receives will no longer +// have this attribute. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -52,7 +53,7 @@ type AdminDeleteUserAttributesInput struct { // This member is required. UserAttributeNames []string - // The user pool ID for the user pool where you want to delete user attributes. + // The ID of the user pool where you want to delete user attributes. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminDisableProviderForUser.go b/service/cognitoidentityprovider/api_op_AdminDisableProviderForUser.go index bbd263bc0d4..8dc6bb8d1b4 100644 --- a/service/cognitoidentityprovider/api_op_AdminDisableProviderForUser.go +++ b/service/cognitoidentityprovider/api_op_AdminDisableProviderForUser.go @@ -71,12 +71,12 @@ func (c *Client) AdminDisableProviderForUser(ctx context.Context, params *AdminD type AdminDisableProviderForUserInput struct { - // The user to be disabled. + // The user profile that you want to delete a linked identity from. // // This member is required. User *types.ProviderUserIdentifierType - // The user pool ID for the user pool. + // The ID of the user pool where you want to delete the user's linked identities. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminDisableUser.go b/service/cognitoidentityprovider/api_op_AdminDisableUser.go index b94e74e1986..929828f999c 100644 --- a/service/cognitoidentityprovider/api_op_AdminDisableUser.go +++ b/service/cognitoidentityprovider/api_op_AdminDisableUser.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deactivates a user and revokes all access tokens for the user. A deactivated -// user can't sign in, but still appears in the responses to GetUser and ListUsers +// Deactivates a user profile and revokes all access tokens for the user. A +// deactivated user can't sign in, but still appears in the responses to ListUsers // API requests. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in @@ -45,7 +45,7 @@ func (c *Client) AdminDisableUser(ctx context.Context, params *AdminDisableUserI // Represents the request to disable the user as an administrator. type AdminDisableUserInput struct { - // The user pool ID for the user pool where you want to disable the user. + // The ID of the user pool where you want to disable the user. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminEnableUser.go b/service/cognitoidentityprovider/api_op_AdminEnableUser.go index cb1e3c18a42..c6b2773a6b5 100644 --- a/service/cognitoidentityprovider/api_op_AdminEnableUser.go +++ b/service/cognitoidentityprovider/api_op_AdminEnableUser.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables the specified user as an administrator. Works on any user. +// Activate sign-in for a user profile that previously had sign-in access disabled. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -43,7 +43,7 @@ func (c *Client) AdminEnableUser(ctx context.Context, params *AdminEnableUserInp // Represents the request that enables the user as an administrator. type AdminEnableUserInput struct { - // The user pool ID for the user pool where you want to enable the user. + // The ID of the user pool where you want to activate sign-in for the user. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminForgetDevice.go b/service/cognitoidentityprovider/api_op_AdminForgetDevice.go index bf765aa5611..4e9591826fa 100644 --- a/service/cognitoidentityprovider/api_op_AdminForgetDevice.go +++ b/service/cognitoidentityprovider/api_op_AdminForgetDevice.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Forgets the device, as an administrator. +// Forgets, or deletes, a remembered device from a user's profile. After you +// forget the device, the user can no longer complete device authentication with +// that device and when applicable, must submit MFA codes again. For more +// information, see [Working with devices]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -23,6 +26,7 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [Working with devices]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminForgetDevice(ctx context.Context, params *AdminForgetDeviceInput, optFns ...func(*Options)) (*AdminForgetDeviceOutput, error) { @@ -43,12 +47,15 @@ func (c *Client) AdminForgetDevice(ctx context.Context, params *AdminForgetDevic // Sends the forgot device request, as an administrator. type AdminForgetDeviceInput struct { - // The device key. + // The key ID of the device that you want to delete. You can get device keys in + // the response to an [AdminListDevices]request. + // + // [AdminListDevices]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html // // This member is required. DeviceKey *string - // The user pool ID. + // The ID of the user pool where the device owner is a user. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminGetDevice.go b/service/cognitoidentityprovider/api_op_AdminGetDevice.go index cbd9aaab73d..4fbd48e5d6c 100644 --- a/service/cognitoidentityprovider/api_op_AdminGetDevice.go +++ b/service/cognitoidentityprovider/api_op_AdminGetDevice.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the device, as an administrator. +// Given the device key, returns details for a user' device. For more information, +// see [Working with devices]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -24,6 +25,7 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [Working with devices]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminGetDevice(ctx context.Context, params *AdminGetDeviceInput, optFns ...func(*Options)) (*AdminGetDeviceOutput, error) { @@ -44,12 +46,15 @@ func (c *Client) AdminGetDevice(ctx context.Context, params *AdminGetDeviceInput // Represents the request to get the device, as an administrator. type AdminGetDeviceInput struct { - // The device key. + // The key of the device that you want to delete. You can get device IDs in the + // response to an [AdminListDevices]request. + // + // [AdminListDevices]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html // // This member is required. DeviceKey *string - // The user pool ID. + // The ID of the user pool where the device owner is a user. // // This member is required. UserPoolId *string @@ -69,7 +74,8 @@ type AdminGetDeviceInput struct { // Gets the device response, as an administrator. type AdminGetDeviceOutput struct { - // The device. + // Details of the requested device. Includes device information, last-accessed and + // created dates, and the device key. // // This member is required. Device *types.DeviceType diff --git a/service/cognitoidentityprovider/api_op_AdminGetUser.go b/service/cognitoidentityprovider/api_op_AdminGetUser.go index ff3549dc1f8..c052d3fa5b8 100644 --- a/service/cognitoidentityprovider/api_op_AdminGetUser.go +++ b/service/cognitoidentityprovider/api_op_AdminGetUser.go @@ -12,9 +12,9 @@ import ( "time" ) -// Gets the specified user by user name in a user pool as an administrator. Works -// on any user. This operation contributes to your monthly active user (MAU) count -// for the purpose of billing. +// Given the username, returns details about a user profile in a user pool. This +// operation contributes to your monthly active user (MAU) count for the purpose of +// billing. You can specify alias attributes in the Username parameter. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -47,8 +47,7 @@ func (c *Client) AdminGetUser(ctx context.Context, params *AdminGetUserInput, op // Represents the request to get the specified user as an administrator. type AdminGetUserInput struct { - // The user pool ID for the user pool where you want to get information about the - // user. + // The ID of the user pool where you want to get information about the user. // // This member is required. UserPoolId *string @@ -74,7 +73,11 @@ type AdminGetUserOutput struct { // This member is required. Username *string - // Indicates that the status is enabled . + // Indicates whether the user is activated for sign-in. The [AdminDisableUser] and [AdminEnableUser] API operations + // deactivate and activate user sign-in, respectively. + // + // [AdminDisableUser]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html + // [AdminEnableUser]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html Enabled bool // This response parameter is no longer supported. It provides information only @@ -84,13 +87,17 @@ type AdminGetUserOutput struct { // instead. MFAOptions []types.MFAOptionType - // The user's preferred MFA setting. + // The user's preferred MFA. Users can prefer SMS message, email message, or TOTP + // MFA. PreferredMfaSetting *string - // An array of name-value pairs representing user attributes. + // An array of name-value pairs of user attributes and their values, for example + // "email": "testuser@example.com" . UserAttributes []types.AttributeType - // The date the user was created. + // The date and time when the item was created. Amazon Cognito returns this + // timestamp in UNIX epoch time format. Your SDK might render the output in a + // human-readable format like ISO 8601 or a Java Date object. UserCreateDate *time.Time // The date and time when the item was modified. Amazon Cognito returns this @@ -99,10 +106,14 @@ type AdminGetUserOutput struct { UserLastModifiedDate *time.Time // The MFA options that are activated for the user. The possible values in this - // list are SMS_MFA , EMAIL_OTP , and SOFTWARE_TOKEN_MFA . + // list are SMS_MFA , EMAIL_OTP , and SOFTWARE_TOKEN_MFA . You can change the MFA + // preference for users who have more than one available MFA factor with [AdminSetUserMFAPreference]or [SetUserMFAPreference]. + // + // [AdminSetUserMFAPreference]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html + // [SetUserMFAPreference]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html UserMFASettingList []string - // The user status. Can be one of the following: + // The user's status. Can be one of the following: // // - UNCONFIRMED - User has been created but not confirmed. // @@ -116,6 +127,8 @@ type AdminGetUserOutput struct { // - FORCE_CHANGE_PASSWORD - The user is confirmed and the user can sign in // using a temporary password, but on first sign-in, the user must change their // password to a new value before doing anything else. + // + // - EXTERNAL_PROVIDER - The user signed in with a third-party identity provider. UserStatus types.UserStatusType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_AdminInitiateAuth.go b/service/cognitoidentityprovider/api_op_AdminInitiateAuth.go index db9714f60ac..3aa2a181159 100644 --- a/service/cognitoidentityprovider/api_op_AdminInitiateAuth.go +++ b/service/cognitoidentityprovider/api_op_AdminInitiateAuth.go @@ -11,7 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Initiates the authentication flow, as an administrator. +// Starts sign-in for applications with a server-side component, for example a +// traditional web application. This operation specifies the authentication flow +// that you'd like to begin. The authentication flow that you specify must be +// supported in your app client configuration. For more information about +// authentication flows, see [Authentication flows]. // // This action might generate an SMS text message. Starting June 1, 2021, US // telecom carriers require you to register an origination phone number before you @@ -43,6 +47,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [sandbox mode]: https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html +// [Authentication flows]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html // [Amazon Pinpoint]: https://console.aws.amazon.com/pinpoint/home/ func (c *Client) AdminInitiateAuth(ctx context.Context, params *AdminInitiateAuthInput, optFns ...func(*Options)) (*AdminInitiateAuthOutput, error) { if params == nil { @@ -62,8 +67,9 @@ func (c *Client) AdminInitiateAuth(ctx context.Context, params *AdminInitiateAut // Initiates the authorization request, as an administrator. type AdminInitiateAuthInput struct { - // The authentication flow that you want to initiate. The AuthParameters that you - // must submit are linked to the flow that you submit. For example: + // The authentication flow that you want to initiate. Each AuthFlow has linked + // AuthParameters that you must submit. The following are some example flows and + // their parameters. // // - USER_AUTH : Request a preferred authentication type or review available // authentication types. From the offered authentication types, select one in a @@ -79,10 +85,10 @@ type AdminInitiateAuthInput struct { // - ADMIN_USER_PASSWORD_AUTH : Receive new tokens or the next challenge, for // example SOFTWARE_TOKEN_MFA , when you pass USERNAME and PASSWORD parameters. // - // Valid values include the following: + // All flows // - // USER_AUTH The entry point for sign-in with passwords, one-time passwords, - // biometric devices, and security keys. + // USER_AUTH The entry point for sign-in with passwords, one-time passwords, and + // WebAuthN authenticators. // // USER_SRP_AUTH Username-password authentication with the Secure Remote Password // (SRP) protocol. For more information, see [Use SRP password verification in custom authentication flow]. @@ -107,18 +113,17 @@ type AdminInitiateAuthInput struct { // This member is required. AuthFlow types.AuthFlowType - // The app client ID. + // The ID of the app client where the user wants to sign in. // // This member is required. ClientId *string - // The ID of the Amazon Cognito user pool. + // The ID of the user pool where the user wants to sign in. // // This member is required. UserPoolId *string - // The analytics metadata for collecting Amazon Pinpoint metrics for - // AdminInitiateAuth calls. + // The analytics metadata for collecting Amazon Pinpoint metrics. AnalyticsMetadata *types.AnalyticsMetadataType // The authentication parameters. These are inputs corresponding to the AuthFlow @@ -191,8 +196,8 @@ type AdminInitiateAuthInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -201,8 +206,8 @@ type AdminInitiateAuthInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -211,10 +216,16 @@ type AdminInitiateAuthInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html ContextData *types.ContextDataType // The optional session ID from a ConfirmSignUp API request. You can sign in a - // user directly from the sign-up process with the USER_AUTH authentication flow. + // user directly from the sign-up process with an AuthFlow of USER_AUTH and + // AuthParameters of EMAIL_OTP or SMS_OTP , depending on how your user pool sent + // the confirmation-code message. Session *string noSmithyDocumentSerde @@ -223,10 +234,10 @@ type AdminInitiateAuthInput struct { // Initiates the authentication response, as an administrator. type AdminInitiateAuthOutput struct { - // The result of the authentication response. This is only returned if the caller - // doesn't need to pass another challenge. If the caller does need to pass another - // challenge before it gets tokens, ChallengeName , ChallengeParameters , and - // Session are returned. + // The outcome of successful authentication. This is only returned if the user + // pool has no additional challenges to return. If Amazon Cognito returns another + // challenge, the response includes ChallengeName , ChallengeParameters , and + // Session so that your user can answer the challenge. AuthenticationResult *types.AuthenticationResultType // The name of the challenge that you're responding to with this call. This is @@ -327,11 +338,11 @@ type AdminInitiateAuthOutput struct { // can't be an alias. ChallengeParameters map[string]string - // The session that should be passed both ways in challenge-response calls to the - // service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call - // determines that the caller must pass another challenge, they return a session - // with other challenge parameters. This session should be passed as it is to the - // next AdminRespondToAuthChallenge API call. + // The session that must be passed to challenge-response requests. If an + // AdminInitiateAuth or AdminRespondToAuthChallenge API request determines that + // the caller must pass another challenge, Amazon Cognito returns a session ID and + // the parameters of the next challenge. Pass this session Id in the Session + // parameter of AdminRespondToAuthChallenge . Session *string // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_AdminLinkProviderForUser.go b/service/cognitoidentityprovider/api_op_AdminLinkProviderForUser.go index f54cc6bd95c..1dc3bddc3ed 100644 --- a/service/cognitoidentityprovider/api_op_AdminLinkProviderForUser.go +++ b/service/cognitoidentityprovider/api_op_AdminLinkProviderForUser.go @@ -109,7 +109,7 @@ type AdminLinkProviderForUserInput struct { // This member is required. SourceUser *types.ProviderUserIdentifierType - // The user pool ID for the user pool. + // The ID of the user pool where you want to link a federated identity. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminListDevices.go b/service/cognitoidentityprovider/api_op_AdminListDevices.go index 8f20e7670fe..a5924d9193a 100644 --- a/service/cognitoidentityprovider/api_op_AdminListDevices.go +++ b/service/cognitoidentityprovider/api_op_AdminListDevices.go @@ -11,7 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists a user's registered devices. +// Lists a user's registered devices. Remembered devices are used in +// authentication services where you offer a "Remember me" option for users who you +// want to permit to sign in without MFA from a trusted device. Users can bypass +// MFA while your application performs device SRP authentication on the back end. +// For more information, see [Working with devices]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -24,6 +28,7 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [Working with devices]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminListDevices(ctx context.Context, params *AdminListDevicesInput, optFns ...func(*Options)) (*AdminListDevicesOutput, error) { @@ -44,7 +49,7 @@ func (c *Client) AdminListDevices(ctx context.Context, params *AdminListDevicesI // Represents the request to list devices, as an administrator. type AdminListDevicesInput struct { - // The user pool ID. + // The ID of the user pool where the device owner is a user. // // This member is required. UserPoolId *string @@ -58,7 +63,8 @@ type AdminListDevicesInput struct { // This member is required. Username *string - // The limit of the devices request. + // The maximum number of devices that you want Amazon Cognito to return in the + // response. Limit *int32 // This API operation returns a limited number of results. The pagination token is @@ -75,7 +81,8 @@ type AdminListDevicesInput struct { // Lists the device's response, as an administrator. type AdminListDevicesOutput struct { - // The devices in the list of devices response. + // An array of devices and their information. Each entry that's returned includes + // device information, last-accessed and created dates, and the device key. Devices []types.DeviceType // The identifier that Amazon Cognito returned with the previous request to this diff --git a/service/cognitoidentityprovider/api_op_AdminListGroupsForUser.go b/service/cognitoidentityprovider/api_op_AdminListGroupsForUser.go index 625bf153cdf..11ea8cace8d 100644 --- a/service/cognitoidentityprovider/api_op_AdminListGroupsForUser.go +++ b/service/cognitoidentityprovider/api_op_AdminListGroupsForUser.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the groups that a user belongs to. +// Lists the groups that a user belongs to. User pool groups are identifiers that +// you can reference from the contents of ID and access tokens, and set preferred +// IAM roles for identity-pool authentication. For more information, see [Adding groups to a user pool]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -25,6 +27,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Adding groups to a user pool]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminListGroupsForUser(ctx context.Context, params *AdminListGroupsForUserInput, optFns ...func(*Options)) (*AdminListGroupsForUserOutput, error) { if params == nil { @@ -43,7 +46,7 @@ func (c *Client) AdminListGroupsForUser(ctx context.Context, params *AdminListGr type AdminListGroupsForUserInput struct { - // The user pool ID for the user pool. + // The ID of the user pool where you want to view a user's groups. // // This member is required. UserPoolId *string @@ -57,11 +60,16 @@ type AdminListGroupsForUserInput struct { // This member is required. Username *string - // The limit of the request to list groups. + // The maximum number of groups that you want Amazon Cognito to return in the + // response. Limit *int32 - // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // This API operation returns a limited number of results. The pagination token is + // an identifier that you can present in an additional API request with the same + // parameters. When you include the pagination token, Amazon Cognito returns the + // next set of items after the current list. Subsequent requests return a new + // pagination token. By use of this token, you can paginate through the full list + // of items. NextToken *string noSmithyDocumentSerde @@ -69,11 +77,13 @@ type AdminListGroupsForUserInput struct { type AdminListGroupsForUserOutput struct { - // The groups that the user belongs to. + // An array of groups and information about them. Groups []types.GroupType - // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // The identifier that Amazon Cognito returned with the previous request to this + // operation. When you include a pagination token in your request, Amazon Cognito + // returns the next set of items in the list. By use of this token, you can + // paginate through the full list of items. NextToken *string // Metadata pertaining to the operation's result. @@ -185,7 +195,8 @@ func (c *Client) addOperationAdminListGroupsForUserMiddlewares(stack *middleware // AdminListGroupsForUserPaginatorOptions is the paginator options for // AdminListGroupsForUser type AdminListGroupsForUserPaginatorOptions struct { - // The limit of the request to list groups. + // The maximum number of groups that you want Amazon Cognito to return in the + // response. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/cognitoidentityprovider/api_op_AdminListUserAuthEvents.go b/service/cognitoidentityprovider/api_op_AdminListUserAuthEvents.go index 77e9abece82..e0f6ccec295 100644 --- a/service/cognitoidentityprovider/api_op_AdminListUserAuthEvents.go +++ b/service/cognitoidentityprovider/api_op_AdminListUserAuthEvents.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// A history of user activity and any risks detected as part of Amazon Cognito -// advanced security. +// Requests a history of user activity and any risks detected as part of Amazon +// Cognito threat protection. For more information, see [Viewing user event history]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -26,6 +26,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Viewing user event history]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html#user-pool-settings-adaptive-authentication-event-user-history // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminListUserAuthEvents(ctx context.Context, params *AdminListUserAuthEventsInput, optFns ...func(*Options)) (*AdminListUserAuthEventsOutput, error) { if params == nil { @@ -44,7 +45,7 @@ func (c *Client) AdminListUserAuthEvents(ctx context.Context, params *AdminListU type AdminListUserAuthEventsInput struct { - // The user pool ID. + // The Id of the user pool that contains the user profile with the logged events. // // This member is required. UserPoolId *string @@ -62,7 +63,12 @@ type AdminListUserAuthEventsInput struct { // set MaxResults to 0, or if you don't include a MaxResults parameter. MaxResults *int32 - // A pagination token. + // This API operation returns a limited number of results. The pagination token is + // an identifier that you can present in an additional API request with the same + // parameters. When you include the pagination token, Amazon Cognito returns the + // next set of items after the current list. Subsequent requests return a new + // pagination token. By use of this token, you can paginate through the full list + // of items. NextToken *string noSmithyDocumentSerde @@ -74,7 +80,10 @@ type AdminListUserAuthEventsOutput struct { // EventRisk , and EventResponse . AuthEvents []types.AuthEventType - // A pagination token. + // The identifier that Amazon Cognito returned with the previous request to this + // operation. When you include a pagination token in your request, Amazon Cognito + // returns the next set of items in the list. By use of this token, you can + // paginate through the full list of items. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_AdminRemoveUserFromGroup.go b/service/cognitoidentityprovider/api_op_AdminRemoveUserFromGroup.go index 02b485d6fd1..37828a6b03f 100644 --- a/service/cognitoidentityprovider/api_op_AdminRemoveUserFromGroup.go +++ b/service/cognitoidentityprovider/api_op_AdminRemoveUserFromGroup.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the specified user from the specified group. +// Given a username and a group name. removes them from the group. User pool +// groups are identifiers that you can reference from the contents of ID and access +// tokens, and set preferred IAM roles for identity-pool authentication. For more +// information, see [Adding groups to a user pool]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -24,6 +27,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Adding groups to a user pool]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminRemoveUserFromGroup(ctx context.Context, params *AdminRemoveUserFromGroupInput, optFns ...func(*Options)) (*AdminRemoveUserFromGroupOutput, error) { if params == nil { @@ -42,12 +46,14 @@ func (c *Client) AdminRemoveUserFromGroup(ctx context.Context, params *AdminRemo type AdminRemoveUserFromGroupInput struct { - // The group name. + // The name of the group that you want to remove the user from, for example + // MyTestGroup . // // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool that contains the group and the user that you want to + // remove. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminResetUserPassword.go b/service/cognitoidentityprovider/api_op_AdminResetUserPassword.go index 837df6b5a4c..3f3caff7e6e 100644 --- a/service/cognitoidentityprovider/api_op_AdminResetUserPassword.go +++ b/service/cognitoidentityprovider/api_op_AdminResetUserPassword.go @@ -10,8 +10,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Resets the specified user's password in a user pool as an administrator. Works -// on any user. +// Resets the specified user's password in a user pool. This operation doesn't +// change the user's password, but sends a password-reset code. This operation is +// the administrative authentication API equivalent to [ForgotPassword]. +// +// This operation deactivates a user's password, requiring them to change it. If a +// user tries to sign in after the API request, Amazon Cognito responds with a +// PasswordResetRequiredException error. Your app must then complete the +// forgot-password flow by prompting the user for their code and a new password, +// then submitting those values in a [ConfirmForgotPassword]request. In addition, if the user pool has +// phone verification selected and a verified phone number exists for the user, or +// if email verification is selected and a verified email exists for the user, +// calling this API will also result in sending a message to the end user with the +// code to change their password. // // To use this API operation, your user pool must have self-service account // recovery configured. Use [AdminSetUserPassword]if you manage passwords as an administrator. @@ -31,15 +42,6 @@ import ( // out of the sandbox and into production. For more information, see [SMS message settings for Amazon Cognito user pools]in the Amazon // Cognito Developer Guide. // -// Deactivates a user's password, requiring them to change it. If a user tries to -// sign in after the API is called, Amazon Cognito responds with a -// PasswordResetRequiredException error. Your app must then perform the actions -// that reset your user's password: the forgot-password flow. In addition, if the -// user pool has phone verification selected and a verified phone number exists for -// the user, or if email verification is selected and a verified email exists for -// the user, calling this API will also result in sending a message to the end user -// with the code to change their password. -// // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM // credentials to authorize requests, and you must grant yourself the corresponding @@ -52,8 +54,10 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [SMS message settings for Amazon Cognito user pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html +// [ConfirmForgotPassword]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [AdminSetUserPassword]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html +// [ForgotPassword]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html // [sandbox mode]: https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html // [Amazon Pinpoint]: https://console.aws.amazon.com/pinpoint/home/ @@ -75,7 +79,7 @@ func (c *Client) AdminResetUserPassword(ctx context.Context, params *AdminResetU // Represents the request to reset a user's password as an administrator. type AdminResetUserPasswordInput struct { - // The user pool ID for the user pool where you want to reset the user's password. + // The ID of the user pool where you want to reset the user's password. // // This member is required. UserPoolId *string @@ -93,18 +97,18 @@ type AdminResetUserPasswordInput struct { // workflows that this action triggers. // // You create custom workflows by assigning Lambda functions to user pool - // triggers. When you use the AdminResetUserPassword API action, Amazon Cognito - // invokes the function that is assigned to the custom message trigger. When Amazon - // Cognito invokes this function, it passes a JSON payload, which the function - // receives as input. This payload contains a clientMetadata attribute, which - // provides the data that you assigned to the ClientMetadata parameter in your - // AdminResetUserPassword request. In your function code in Lambda, you can process - // the clientMetadata value to enhance your workflow for your specific needs. + // triggers. The AdminResetUserPassword API operation invokes the function that is + // assigned to the custom message trigger. When Amazon Cognito invokes this + // function, it passes a JSON payload, which the function receives as input. This + // payload contains a clientMetadata attribute, which provides the data that you + // assigned to the ClientMetadata parameter in your AdminResetUserPassword request. + // In your function code in Lambda, you can process the clientMetadata value to + // enhance your workflow for your specific needs. // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -113,8 +117,8 @@ type AdminResetUserPasswordInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string diff --git a/service/cognitoidentityprovider/api_op_AdminRespondToAuthChallenge.go b/service/cognitoidentityprovider/api_op_AdminRespondToAuthChallenge.go index 6e9ca746a16..bd2a6a0db82 100644 --- a/service/cognitoidentityprovider/api_op_AdminRespondToAuthChallenge.go +++ b/service/cognitoidentityprovider/api_op_AdminRespondToAuthChallenge.go @@ -70,19 +70,21 @@ func (c *Client) AdminRespondToAuthChallenge(ctx context.Context, params *AdminR // The request to respond to the authentication challenge, as an administrator. type AdminRespondToAuthChallengeInput struct { - // The challenge name. For more information, see [AdminInitiateAuth]. + // The name of the challenge that you are responding to. You can find more + // information about values for ChallengeName in the response parameters of [AdminInitiateAuth]. // - // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html + // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-response-ChallengeName // // This member is required. ChallengeName types.ChallengeNameType - // The app client ID. + // The ID of the app client where you initiated sign-in. // // This member is required. ClientId *string - // The ID of the Amazon Cognito user pool. + // The ID of the user pool where you want to respond to an authentication + // challenge. // // This member is required. UserPoolId *string @@ -200,21 +202,21 @@ type AdminRespondToAuthChallengeInput struct { // triggers. When you use the AdminRespondToAuthChallenge API action, Amazon // Cognito invokes any functions that you have assigned to the following triggers: // - // - pre sign-up + // - Pre sign-up // // - custom message // - // - post authentication + // - Post authentication // - // - user migration + // - User migration // - // - pre token generation + // - Pre token generation // - // - define auth challenge + // - Define auth challenge // - // - create auth challenge + // - Create auth challenge // - // - verify auth challenge response + // - Verify auth challenge response // // When Amazon Cognito invokes any of these functions, it passes a JSON payload, // which the function receives as input. This payload contains a clientMetadata @@ -225,8 +227,8 @@ type AdminRespondToAuthChallengeInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -235,8 +237,8 @@ type AdminRespondToAuthChallengeInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -245,13 +247,18 @@ type AdminRespondToAuthChallengeInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html ContextData *types.ContextDataType - // The session that should be passed both ways in challenge-response calls to the - // service. If an InitiateAuth or RespondToAuthChallenge API call determines that - // the caller must pass another challenge, it returns a session with other - // challenge parameters. This session should be passed as it is to the next - // RespondToAuthChallenge API call. + // The session identifier that maintains the state of authentication requests and + // challenge responses. If an AdminInitiateAuth or AdminRespondToAuthChallenge API + // request results in a determination that your application must pass another + // challenge, Amazon Cognito returns a session with other challenge parameters. + // Send this session identifier, unmodified, to the next + // AdminRespondToAuthChallenge request. Session *string noSmithyDocumentSerde @@ -260,23 +267,30 @@ type AdminRespondToAuthChallengeInput struct { // Responds to the authentication challenge, as an administrator. type AdminRespondToAuthChallengeOutput struct { - // The result returned by the server in response to the authentication request. + // The outcome of a successful authentication process. After your application has + // passed all challenges, Amazon Cognito returns an AuthenticationResult with the + // JSON web tokens (JWTs) that indicate successful sign-in. AuthenticationResult *types.AuthenticationResultType - // The name of the challenge. For more information, see [AdminInitiateAuth]. + // The name of the challenge that you must next respond to. You can find more + // information about values for ChallengeName in the response parameters of [AdminInitiateAuth]. // - // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html + // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-response-ChallengeName ChallengeName types.ChallengeNameType - // The challenge parameters. For more information, see [AdminInitiateAuth]. + // The parameters that define your response to the next challenge. Take the values + // in ChallengeParameters and provide values for them in the [ChallengeResponses] of the next + // AdminRespondToAuthChallenge request. // - // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html + // [ChallengeResponses]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html#CognitoUserPools-AdminRespondToAuthChallenge-request-ChallengeResponses ChallengeParameters map[string]string - // The session that should be passed both ways in challenge-response calls to the - // service. If the caller must pass another challenge, they return a session with - // other challenge parameters. This session should be passed as it is to the next - // RespondToAuthChallenge API call. + // The session identifier that maintains the state of authentication requests and + // challenge responses. If an AdminInitiateAuth or AdminRespondToAuthChallenge API + // request results in a determination that your application must pass another + // challenge, Amazon Cognito returns a session with other challenge parameters. + // Send this session identifier, unmodified, to the next + // AdminRespondToAuthChallenge request. Session *string // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_AdminSetUserMFAPreference.go b/service/cognitoidentityprovider/api_op_AdminSetUserMFAPreference.go index 973af32aa65..cb6ffc7b98b 100644 --- a/service/cognitoidentityprovider/api_op_AdminSetUserMFAPreference.go +++ b/service/cognitoidentityprovider/api_op_AdminSetUserMFAPreference.go @@ -18,6 +18,9 @@ import ( // preference is set, a challenge to choose an MFA option will be returned during // sign-in. // +// This operation doesn't reset an existing TOTP MFA for a user. To register a new +// TOTP factor for a user, make an [AssociateSoftwareToken]request. For more information, see [TOTP software token MFA]. +// // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM // credentials to authorize requests, and you must grant yourself the corresponding @@ -29,8 +32,10 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [AssociateSoftwareToken]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html +// [TOTP software token MFA]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa-totp.html func (c *Client) AdminSetUserMFAPreference(ctx context.Context, params *AdminSetUserMFAPreferenceInput, optFns ...func(*Options)) (*AdminSetUserMFAPreferenceOutput, error) { if params == nil { params = &AdminSetUserMFAPreferenceInput{} diff --git a/service/cognitoidentityprovider/api_op_AdminSetUserPassword.go b/service/cognitoidentityprovider/api_op_AdminSetUserPassword.go index a68c7bebdc4..2bea94c4c3b 100644 --- a/service/cognitoidentityprovider/api_op_AdminSetUserPassword.go +++ b/service/cognitoidentityprovider/api_op_AdminSetUserPassword.go @@ -10,18 +10,23 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Sets the specified user's password in a user pool as an administrator. Works on -// any user. +// Sets the specified user's password in a user pool. This operation +// administratively sets a temporary or permanent password for a user. With this +// operation, you can bypass self-service password changes and permit immediate +// sign-in with the password that you set. To do this, set Permanent to true . // -// The password can be temporary or permanent. If it is temporary, the user status -// enters the FORCE_CHANGE_PASSWORD state. When the user next tries to sign in, -// the InitiateAuth/AdminInitiateAuth response will contain the -// NEW_PASSWORD_REQUIRED challenge. If the user doesn't sign in before it expires, -// the user won't be able to sign in, and an administrator must reset their -// password. +// You can also set a new temporary password in this request, send it to a user, +// and require them to choose a new password on their next sign-in. To do this, set +// Permanent to false . // -// Once the user has set a new password, or the password is permanent, the user -// status is set to Confirmed . +// If the password is temporary, the user's Status becomes FORCE_CHANGE_PASSWORD . +// When the user next tries to sign in, the InitiateAuth or AdminInitiateAuth +// response includes the NEW_PASSWORD_REQUIRED challenge. If the user doesn't sign +// in before the temporary password expires, they can no longer sign in and you +// must repeat this operation to set a temporary or permanent password for them. +// +// After the user sets a new password, or if you set a permanent password, their +// status becomes Confirmed . // // AdminSetUserPassword can set a password for the user profile that Amazon // Cognito creates for third-party federated users. When you set a password, the @@ -64,12 +69,15 @@ func (c *Client) AdminSetUserPassword(ctx context.Context, params *AdminSetUserP type AdminSetUserPasswordInput struct { - // The password for the user. + // The new temporary or permanent password that you want to set for the user. You + // can't remove the password for a user who already has a password so that they can + // only sign in with passwordless methods. In this scenario, you must create a new + // user without a password. // // This member is required. Password *string - // The user pool ID for the user pool where you want to set the user's password. + // The ID of the user pool where you want to set the user's password. // // This member is required. UserPoolId *string @@ -83,7 +91,9 @@ type AdminSetUserPasswordInput struct { // This member is required. Username *string - // True if the password is permanent, False if it is temporary. + // Set to true to set a password that the user can immediately sign in with. Set + // to false to set a temporary password that the user must change on their next + // sign-in. Permanent bool noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_AdminUpdateAuthEventFeedback.go b/service/cognitoidentityprovider/api_op_AdminUpdateAuthEventFeedback.go index b6d5b357bab..86c1ae37b43 100644 --- a/service/cognitoidentityprovider/api_op_AdminUpdateAuthEventFeedback.go +++ b/service/cognitoidentityprovider/api_op_AdminUpdateAuthEventFeedback.go @@ -13,7 +13,11 @@ import ( // Provides feedback for an authentication event indicating if it was from a valid // user. This feedback is used for improving the risk evaluation decision for the -// user pool as part of Amazon Cognito advanced security. +// user pool as part of Amazon Cognito threat protection. To train the +// threat-protection model to recognize trusted and untrusted sign-in +// characteristics, configure threat protection in audit-only mode and provide a +// mechanism for users or administrators to submit feedback. Your feedback can tell +// Amazon Cognito that a risk rating was assigned at a level you don't agree with. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -45,7 +49,9 @@ func (c *Client) AdminUpdateAuthEventFeedback(ctx context.Context, params *Admin type AdminUpdateAuthEventFeedbackInput struct { - // The authentication event ID. + // The authentication event ID. To query authentication events for a user, see [AdminListUserAuthEvents]. + // + // [AdminListUserAuthEvents]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html // // This member is required. EventId *string @@ -59,7 +65,7 @@ type AdminUpdateAuthEventFeedbackInput struct { // This member is required. FeedbackValue types.FeedbackValueType - // The user pool ID. + // The ID of the user pool where you want to submit authentication-event feedback. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AdminUpdateDeviceStatus.go b/service/cognitoidentityprovider/api_op_AdminUpdateDeviceStatus.go index 7a69e4152c2..a7055c9d36d 100644 --- a/service/cognitoidentityprovider/api_op_AdminUpdateDeviceStatus.go +++ b/service/cognitoidentityprovider/api_op_AdminUpdateDeviceStatus.go @@ -11,7 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the device status as an administrator. +// Updates the status of a user's device so that it is marked as remembered or not +// remembered for the purpose of device authentication. Device authentication is a +// "remember me" mechanism that silently completes sign-in from trusted devices +// with a device key instead of a user-provided MFA code. This operation changes +// the status of a device without deleting it, so you can enable it again later. +// For more information about device authentication, see [Working with devices]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -24,6 +29,7 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [Working with devices]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) AdminUpdateDeviceStatus(ctx context.Context, params *AdminUpdateDeviceStatusInput, optFns ...func(*Options)) (*AdminUpdateDeviceStatusOutput, error) { @@ -44,12 +50,13 @@ func (c *Client) AdminUpdateDeviceStatus(ctx context.Context, params *AdminUpdat // The request to update the device status, as an administrator. type AdminUpdateDeviceStatusInput struct { - // The device key. + // The unique identifier, or device key, of the device that you want to update the + // status for. // // This member is required. DeviceKey *string - // The user pool ID. + // The ID of the user pool where you want to change a user's device status. // // This member is required. UserPoolId *string @@ -63,7 +70,8 @@ type AdminUpdateDeviceStatusInput struct { // This member is required. Username *string - // The status indicating whether a device has been remembered or not. + // To enable device authentication with the specified device, set to remembered .To + // disable, set to not_remembered . DeviceRememberedStatus types.DeviceRememberedStatusType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_AdminUpdateUserAttributes.go b/service/cognitoidentityprovider/api_op_AdminUpdateUserAttributes.go index 70bdf71ec04..0b25a7e9aea 100644 --- a/service/cognitoidentityprovider/api_op_AdminUpdateUserAttributes.go +++ b/service/cognitoidentityprovider/api_op_AdminUpdateUserAttributes.go @@ -26,15 +26,16 @@ import ( // out of the sandbox and into production. For more information, see [SMS message settings for Amazon Cognito user pools]in the Amazon // Cognito Developer Guide. // -// Updates the specified user's attributes, including developer attributes, as an -// administrator. Works on any user. To delete an attribute from your user, submit -// the attribute in your API request with a blank value. +// Updates the specified user's attributes. To delete an attribute from your user, +// submit the attribute in your API request with a blank value. // // For custom attributes, you must prepend the custom: prefix to the attribute // name. // -// In addition to updating user attributes, this API can also be used to mark -// phone and email as verified. +// This operation can set a user's email address or phone number as verified and +// permit immediate sign-in in user pools that require verification of these +// attributes. To do this, set the email_verified or phone_number_verified +// attribute to true . // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -92,7 +93,7 @@ type AdminUpdateUserAttributesInput struct { // This member is required. UserAttributes []types.AttributeType - // The user pool ID for the user pool where you want to update user attributes. + // The ID of the user pool where you want to update user attributes. // // This member is required. UserPoolId *string @@ -121,8 +122,8 @@ type AdminUpdateUserAttributesInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -131,8 +132,8 @@ type AdminUpdateUserAttributesInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string diff --git a/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go b/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go index 87ba17bac1a..2a3e1ad7422 100644 --- a/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go +++ b/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go @@ -29,7 +29,10 @@ import ( // - Amazon Cognito no longer accepts a signed-out user's refresh tokens in // refresh requests. // -// Other requests might be valid until your user's token expires. +// Other requests might be valid until your user's token expires. This operation +// doesn't clear the [managed login]session cookie. To clear the session for a user who signed in +// with managed login or the classic hosted UI, direct their browser session to the +// [logout endpoint]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -42,7 +45,9 @@ import ( // // [Using the Amazon Cognito user pools API and user pool endpoints] // +// [logout endpoint]: https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [managed login]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html // // [CognitoIdentityProvider]: https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_CognitoIdentityProvider.html @@ -65,7 +70,7 @@ func (c *Client) AdminUserGlobalSignOut(ctx context.Context, params *AdminUserGl // The request to sign out of all devices, as an administrator. type AdminUserGlobalSignOutInput struct { - // The user pool ID. + // The ID of the user pool where you want to sign out a user. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_AssociateSoftwareToken.go b/service/cognitoidentityprovider/api_op_AssociateSoftwareToken.go index 8202ec32097..5331f8174df 100644 --- a/service/cognitoidentityprovider/api_op_AssociateSoftwareToken.go +++ b/service/cognitoidentityprovider/api_op_AssociateSoftwareToken.go @@ -33,6 +33,9 @@ import ( // policies. For more information about authorization models in Amazon Cognito, see // [Using the Amazon Cognito user pools API and user pool endpoints]. // +// Authorize this action with a signed-in user's access token. It must include the +// scope aws.cognito.signin.user.admin . +// // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html // [VerifySoftwareToken]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html func (c *Client) AssociateSoftwareToken(ctx context.Context, params *AssociateSoftwareTokenInput, optFns ...func(*Options)) (*AssociateSoftwareTokenOutput, error) { @@ -53,12 +56,14 @@ func (c *Client) AssociateSoftwareToken(ctx context.Context, params *AssociateSo type AssociateSoftwareTokenInput struct { // A valid access token that Amazon Cognito issued to the user whose software - // token you want to generate. + // token you want to generate. You can provide either an access token or a session + // ID in the request. AccessToken *string - // The session that should be passed both ways in challenge-response calls to the - // service. This allows authentication of the user as part of the MFA setup - // process. + // The session identifier that maintains the state of authentication requests and + // challenge responses. In AssociateSoftwareToken , this is the session ID from a + // successful sign-in. You can provide either an access token or a session ID in + // the request. Session *string noSmithyDocumentSerde @@ -66,13 +71,15 @@ type AssociateSoftwareTokenInput struct { type AssociateSoftwareTokenOutput struct { - // A unique generated shared secret code that is used in the TOTP algorithm to + // A unique generated shared secret code that is used by the TOTP algorithm to // generate a one-time code. SecretCode *string - // The session that should be passed both ways in challenge-response calls to the - // service. This allows authentication of the user as part of the MFA setup - // process. + // The session identifier that maintains the state of authentication requests and + // challenge responses. This session ID is valid for the next request in this flow, + // [VerifySoftwareToken]. + // + // [VerifySoftwareToken]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html Session *string // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_ChangePassword.go b/service/cognitoidentityprovider/api_op_ChangePassword.go index 2e800dd5b6f..f1b4ff582dd 100644 --- a/service/cognitoidentityprovider/api_op_ChangePassword.go +++ b/service/cognitoidentityprovider/api_op_ChangePassword.go @@ -46,7 +46,7 @@ type ChangePasswordInput struct { // This member is required. AccessToken *string - // The new password. + // A new password that you prompted the user to enter in your application. // // This member is required. ProposedPassword *string diff --git a/service/cognitoidentityprovider/api_op_CompleteWebAuthnRegistration.go b/service/cognitoidentityprovider/api_op_CompleteWebAuthnRegistration.go index fd44e88bc8c..41bd564ea86 100644 --- a/service/cognitoidentityprovider/api_op_CompleteWebAuthnRegistration.go +++ b/service/cognitoidentityprovider/api_op_CompleteWebAuthnRegistration.go @@ -37,7 +37,7 @@ func (c *Client) CompleteWebAuthnRegistration(ctx context.Context, params *Compl type CompleteWebAuthnRegistrationInput struct { // A valid access token that Amazon Cognito issued to the user whose passkey - // registration you want to verify. + // registration you want to complete. // // This member is required. AccessToken *string diff --git a/service/cognitoidentityprovider/api_op_ConfirmDevice.go b/service/cognitoidentityprovider/api_op_ConfirmDevice.go index a32c080996c..6f4654cff15 100644 --- a/service/cognitoidentityprovider/api_op_ConfirmDevice.go +++ b/service/cognitoidentityprovider/api_op_ConfirmDevice.go @@ -11,8 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Confirms tracking of the device. This API call is the call that begins device -// tracking. For more information about device authentication, see [Working with user devices in your user pool]. +// Confirms a device that a user wants to remember. A remembered device is a +// "Remember me on this device" option for user pools that perform authentication +// with the device key of a trusted device in the back end, instead of a +// user-provided MFA code. For more information about device authentication, see [Working with user devices in your user pool]. // // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . @@ -40,7 +42,7 @@ func (c *Client) ConfirmDevice(ctx context.Context, params *ConfirmDeviceInput, return out, nil } -// Confirms the device request. +// The confirm-device request. type ConfirmDeviceInput struct { // A valid access token that Amazon Cognito issued to the user whose device you @@ -49,12 +51,13 @@ type ConfirmDeviceInput struct { // This member is required. AccessToken *string - // The device key. + // The unique identifier, or device key, of the device that you want to update the + // status for. // // This member is required. DeviceKey *string - // The device name. + // A friendly name for the device, for example MyMobilePhone . DeviceName *string // The configuration of the device secret verifier. @@ -63,10 +66,26 @@ type ConfirmDeviceInput struct { noSmithyDocumentSerde } -// Confirms the device response. +// The confirm-device response. type ConfirmDeviceOutput struct { - // Indicates whether the user confirmation must confirm the device response. + // When true , your user must confirm that they want to remember the device. Prompt + // the user for an answer. You must then make an [UpdateUserDevice]request that sets the device to + // remembered or not_remembered . + // + // When false , immediately sets the device as remembered and eligible for device + // authentication. + // + // You can configure your user pool to always remember devices, in which case this + // response is false , or to allow users to opt in, in which case this response is + // true . Configure this option under Device tracking in the Sign-in menu of your + // user pool. You can also configure this option with the [DeviceConfiguration]parameter of a [CreateUserPool] or [UpdateUserPool] + // request. + // + // [UpdateUserPool]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html + // [CreateUserPool]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html + // [UpdateUserDevice]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html + // [DeviceConfiguration]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-DeviceConfiguration UserConfirmationNecessary bool // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_ConfirmForgotPassword.go b/service/cognitoidentityprovider/api_op_ConfirmForgotPassword.go index d80f7f9c2fe..7e09d8a6fb6 100644 --- a/service/cognitoidentityprovider/api_op_ConfirmForgotPassword.go +++ b/service/cognitoidentityprovider/api_op_ConfirmForgotPassword.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Allows a user to enter a confirmation code to reset a forgotten password. +// This public API operation accepts a confirmation code that Amazon Cognito sent +// to a user and accepts a new password for that user. // // Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies // in requests for this API operation. For this operation, you can't use IAM @@ -38,14 +39,17 @@ func (c *Client) ConfirmForgotPassword(ctx context.Context, params *ConfirmForgo // The request representing the confirmation for a password reset. type ConfirmForgotPasswordInput struct { - // The app client ID of the app associated with the user pool. + // The ID of the app client where the user wants to reset their password. This + // parameter is an identifier of the client application that users are resetting + // their password from, but this operation resets users' passwords for all app + // clients in the user pool. // // This member is required. ClientId *string - // The confirmation code from your user's request to reset their password. For - // more information, see [ForgotPassword]. + // The confirmation code that your user pool sent in response to an [AdminResetUserPassword] or a [ForgotPassword] request. // + // [AdminResetUserPassword]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html // [ForgotPassword]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html // // This member is required. @@ -84,8 +88,8 @@ type ConfirmForgotPasswordInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -94,8 +98,8 @@ type ConfirmForgotPasswordInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -111,6 +115,10 @@ type ConfirmForgotPasswordInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_ConfirmSignUp.go b/service/cognitoidentityprovider/api_op_ConfirmSignUp.go index a56231719b6..f6830dbbb35 100644 --- a/service/cognitoidentityprovider/api_op_ConfirmSignUp.go +++ b/service/cognitoidentityprovider/api_op_ConfirmSignUp.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This public API operation provides a code that Amazon Cognito sent to your user +// This public API operation submits a code that Amazon Cognito sent to your user // when they signed up in your user pool via the [SignUp]API operation. After your user // enters their code, they confirm ownership of the email address or phone number // that they provided, and their user account becomes active. Depending on your @@ -57,7 +57,8 @@ type ConfirmSignUpInput struct { // This member is required. ClientId *string - // The confirmation code sent by a user's request to confirm registration. + // The confirmation code that your user pool sent in response to the SignUp + // request. // // This member is required. ConfirmationCode *string @@ -89,8 +90,8 @@ type ConfirmSignUpInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -99,22 +100,36 @@ type ConfirmSignUpInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string - // Boolean to be specified to force user confirmation irrespective of existing - // alias. By default set to False . If this parameter is set to True and the phone - // number/email used for sign up confirmation already exists as an alias with a - // different user, the API call will migrate the alias from the previous user to - // the newly created user being confirmed. If set to False , the API will throw an + // When true , forces user confirmation despite any existing aliases. Defaults to + // false . A value of true migrates the alias from an existing user to the new + // user if an existing user already has the phone number or email address as an + // alias. + // + // Say, for example, that an existing user has an email attribute of + // bob@example.com and email is an alias in your user pool. If the new user also + // has an email of bob@example.com and your ConfirmSignUp response sets + // ForceAliasCreation to true , the new user can sign in with a username of + // bob@example.com and the existing user can no longer do so. + // + // If false and an attribute belongs to an existing alias, this request returns an // AliasExistsException error. + // + // For more information about sign-in aliases, see [Customizing sign-in attributes]. + // + // [Customizing sign-in attributes]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases ForceAliasCreation bool // A keyed-hash message authentication code (HMAC) calculated using the secret key - // of a user pool client and username plus the client ID in the message. + // of a user pool client and username plus the client ID in the message. For more + // information about SecretHash , see [Computing secret hash values]. + // + // [Computing secret hash values]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash SecretHash *string // The optional session ID from a SignUp API request. You can sign in a user @@ -125,6 +140,10 @@ type ConfirmSignUpInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde @@ -133,10 +152,10 @@ type ConfirmSignUpInput struct { // Represents the response from the server for the registration confirmation. type ConfirmSignUpOutput struct { - // You can automatically sign users in with the one-time password that they + // A session identifier that you can use to immediately sign in the confirmed + // user. You can automatically sign users in with the one-time password that they // provided in a successful ConfirmSignUp request. To do this, pass the Session - // parameter from the ConfirmSignUp response in the Session parameter of an [InitiateAuth] or [AdminInitiateAuth] - // request. + // parameter from this response in the Session parameter of an [InitiateAuth] or [AdminInitiateAuth] request. // // [AdminInitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html // [InitiateAuth]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html diff --git a/service/cognitoidentityprovider/api_op_CreateGroup.go b/service/cognitoidentityprovider/api_op_CreateGroup.go index 27da98b0442..2b1e7b40fcd 100644 --- a/service/cognitoidentityprovider/api_op_CreateGroup.go +++ b/service/cognitoidentityprovider/api_op_CreateGroup.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new group in the specified user pool. +// Creates a new group in the specified user pool. For more information about user +// pool groups see [Adding groups to a user pool]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -25,6 +26,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Adding groups to a user pool]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateGroup(ctx context.Context, params *CreateGroupInput, optFns ...func(*Options)) (*CreateGroupOutput, error) { if params == nil { @@ -43,17 +45,17 @@ func (c *Client) CreateGroup(ctx context.Context, params *CreateGroupInput, optF type CreateGroupInput struct { - // The name of the group. Must be unique. + // A name for the group. This name must be unique in your user pool. // // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool where you want to create a user group. // // This member is required. UserPoolId *string - // A string containing the description of the group. + // A description of the group that you're creating. Description *string // A non-negative integer value that specifies the precedence of this group @@ -73,7 +75,12 @@ type CreateGroupInput struct { // The default Precedence value is null. The maximum Precedence value is 2^31-1 . Precedence *int32 - // The role Amazon Resource Name (ARN) for the group. + // The Amazon Resource Name (ARN) for the IAM role that you want to associate with + // the group. A group role primarily declares a preferred role for the credentials + // that you get from an identity pool. Amazon Cognito ID tokens have a + // cognito:preferred_role claim that presents the highest-precedence group that a + // user belongs to. Both ID and access tokens also contain a cognito:groups claim + // that list all the groups that a user is a member of. RoleArn *string noSmithyDocumentSerde @@ -81,7 +88,7 @@ type CreateGroupInput struct { type CreateGroupOutput struct { - // The group object for the group. + // The response object for a created group. Group *types.GroupType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_CreateIdentityProvider.go b/service/cognitoidentityprovider/api_op_CreateIdentityProvider.go index ee72646f7d3..db3c946a8fb 100644 --- a/service/cognitoidentityprovider/api_op_CreateIdentityProvider.go +++ b/service/cognitoidentityprovider/api_op_CreateIdentityProvider.go @@ -12,7 +12,9 @@ import ( ) // Adds a configuration and trust relationship between a third-party identity -// provider (IdP) and a user pool. +// provider (IdP) and a user pool. Amazon Cognito accepts sign-in with third-party +// identity providers through managed login and OIDC relying-party libraries. For +// more information, see [Third-party IdP sign-in]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -26,6 +28,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Third-party IdP sign-in]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateIdentityProvider(ctx context.Context, params *CreateIdentityProviderInput, optFns ...func(*Options)) (*CreateIdentityProviderOutput, error) { if params == nil { @@ -141,25 +144,38 @@ type CreateIdentityProviderInput struct { // This member is required. ProviderDetails map[string]string - // The IdP name. + // The name that you want to assign to the IdP. You can pass the identity provider + // name in the identity_provider query parameter of requests to the [Authorize endpoint] to silently + // redirect to sign-in with the associated IdP. + // + // [Authorize endpoint]: https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html // // This member is required. ProviderName *string - // The IdP type. + // The type of IdP that you want to add. Amazon Cognito supports OIDC, SAML 2.0, + // Login With Amazon, Sign In With Apple, Google, and Facebook IdPs. // // This member is required. ProviderType types.IdentityProviderTypeType - // The user pool ID. + // The Id of the user pool where you want to create an IdP. // // This member is required. UserPoolId *string // A mapping of IdP attributes to standard and custom user pool attributes. + // Specify a user pool attribute as the key of the key-value pair, and the IdP + // attribute claim name as the value. AttributeMapping map[string]string - // A list of IdP identifiers. + // An array of IdP identifiers, for example "IdPIdentifiers": [ "MyIdP", "MyIdP2" ] + // . Identifiers are friendly names that you can pass in the idp_identifier query + // parameter of requests to the [Authorize endpoint]to silently redirect to sign-in with the + // associated IdP. Identifiers in a domain format also enable the use of [email-address matching with SAML providers]. + // + // [Authorize endpoint]: https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html + // [email-address matching with SAML providers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managing-saml-idp-naming.html IdpIdentifiers []string noSmithyDocumentSerde @@ -167,7 +183,7 @@ type CreateIdentityProviderInput struct { type CreateIdentityProviderOutput struct { - // The newly created IdP object. + // The details of the new user pool IdP. // // This member is required. IdentityProvider *types.IdentityProviderType diff --git a/service/cognitoidentityprovider/api_op_CreateManagedLoginBranding.go b/service/cognitoidentityprovider/api_op_CreateManagedLoginBranding.go index 1e254e9b5c3..e64e180170a 100644 --- a/service/cognitoidentityprovider/api_op_CreateManagedLoginBranding.go +++ b/service/cognitoidentityprovider/api_op_CreateManagedLoginBranding.go @@ -19,7 +19,8 @@ import ( // Provides values for UI customization in a Settings JSON object and image files // in an Assets array. To send the JSON object Document type parameter in Settings // , you might need to update to the most recent version of your Amazon Web -// Services SDK. +// Services SDK. To create a new style with default settings, set +// UseCognitoProvidedValues to true and don't provide values for any other options. // // This operation has a 2-megabyte request-size limit and include the CSS settings // and image assets for your app client. Your branding settings might exceed 2MB in @@ -28,7 +29,9 @@ import ( // larger than 2MB, separate it into multiple requests, each with a size smaller // than the limit. // -// For more information, see [API and SDK operations for managed login branding] +// As a best practice, modify the output of [DescribeManagedLoginBrandingByClient] into the request parameters for this +// operation. To get all settings, set ReturnMergedResources to true . For more +// information, see [API and SDK operations for managed login branding]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -42,6 +45,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [DescribeManagedLoginBrandingByClient]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeManagedLoginBrandingByClient.html // [API and SDK operations for managed login branding]: https://docs.aws.amazon.com/cognito/latest/developerguide/managed-login-brandingdesigner.html#branding-designer-api // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateManagedLoginBranding(ctx context.Context, params *CreateManagedLoginBrandingInput, optFns ...func(*Options)) (*CreateManagedLoginBrandingOutput, error) { @@ -84,9 +88,9 @@ type CreateManagedLoginBrandingInput struct { // apply to your style. Settings document.Interface - // When true, applies the default branding style options. This option reverts to - // default style options that are managed by Amazon Cognito. You can modify them - // later in the branding designer. + // When true, applies the default branding style options. These default options + // are managed by Amazon Cognito. You can modify them later in the branding + // designer. // // When you specify true for this option, you must also omit values for Settings // and Assets in the request. diff --git a/service/cognitoidentityprovider/api_op_CreateResourceServer.go b/service/cognitoidentityprovider/api_op_CreateResourceServer.go index a9cb58e8f25..054523498ec 100644 --- a/service/cognitoidentityprovider/api_op_CreateResourceServer.go +++ b/service/cognitoidentityprovider/api_op_CreateResourceServer.go @@ -12,6 +12,8 @@ import ( ) // Creates a new OAuth2.0 resource server and defines custom scopes within it. +// Resource servers are associated with custom scopes and machine-to-machine (M2M) +// authorization. For more information, see [Access control with resource servers]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -25,6 +27,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Access control with resource servers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateResourceServer(ctx context.Context, params *CreateResourceServerInput, optFns ...func(*Options)) (*CreateResourceServerOutput, error) { if params == nil { @@ -59,13 +62,15 @@ type CreateResourceServerInput struct { // This member is required. Name *string - // The user pool ID for the user pool. + // The ID of the user pool where you want to create a resource server. // // This member is required. UserPoolId *string - // A list of scopes. Each scope is a key-value map with the keys name and - // description . + // A list of custom scopes. Each scope is a key-value map with the keys ScopeName + // and ScopeDescription . The name of a custom scope is a combination of ScopeName + // and the resource server Name in this request, for example + // MyResourceServerName/MyScopeName . Scopes []types.ResourceServerScopeType noSmithyDocumentSerde @@ -73,7 +78,7 @@ type CreateResourceServerInput struct { type CreateResourceServerOutput struct { - // The newly created resource server. + // The details of the new resource server. // // This member is required. ResourceServer *types.ResourceServerType diff --git a/service/cognitoidentityprovider/api_op_CreateUserImportJob.go b/service/cognitoidentityprovider/api_op_CreateUserImportJob.go index 2be6417d0ef..367fe2ec797 100644 --- a/service/cognitoidentityprovider/api_op_CreateUserImportJob.go +++ b/service/cognitoidentityprovider/api_op_CreateUserImportJob.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a user import job. +// Creates a user import job. You can import users into user pools from a +// comma-separated values (CSV) file without adding Amazon Cognito MAU costs to +// your Amazon Web Services bill. To generate a template for your import, see [GetCSVHeader]. To +// learn more about CSV import, see [Importing users from a CSV file]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -25,7 +28,9 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Importing users from a CSV file]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html +// [GetCSVHeader]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetCSVHeader.html func (c *Client) CreateUserImportJob(ctx context.Context, params *CreateUserImportJobInput, optFns ...func(*Options)) (*CreateUserImportJobOutput, error) { if params == nil { params = &CreateUserImportJobInput{} @@ -44,18 +49,18 @@ func (c *Client) CreateUserImportJob(ctx context.Context, params *CreateUserImpo // Represents the request to create the user import job. type CreateUserImportJobInput struct { - // The role ARN for the Amazon CloudWatch Logs Logging role for the user import - // job. + // You must specify an IAM role that has permission to log import-job results to + // Amazon CloudWatch Logs. This parameter is the ARN of that role. // // This member is required. CloudWatchLogsRoleArn *string - // The job name for the user import job. + // A friendly name for the user import job. // // This member is required. JobName *string - // The user pool ID for the user pool that the users are being imported into. + // The ID of the user pool that you want to import users into. // // This member is required. UserPoolId *string @@ -67,7 +72,7 @@ type CreateUserImportJobInput struct { // import job. type CreateUserImportJobOutput struct { - // The job object that represents the user import job. + // The details of the user import job. UserImportJob *types.UserImportJobType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_CreateUserPool.go b/service/cognitoidentityprovider/api_op_CreateUserPool.go index f50e0bd4375..93cdd87a715 100644 --- a/service/cognitoidentityprovider/api_op_CreateUserPool.go +++ b/service/cognitoidentityprovider/api_op_CreateUserPool.go @@ -26,8 +26,10 @@ import ( // out of the sandbox and into production. For more information, see [SMS message settings for Amazon Cognito user pools]in the Amazon // Cognito Developer Guide. // -// Creates a new Amazon Cognito user pool and sets the password policy for the -// pool. +// Creates a new Amazon Cognito user pool. This operation sets basic and advanced +// configuration options. You can create a user pool in the Amazon Cognito console +// to your preferences and use the output of [DescribeUserPool]to generate requests from that +// baseline. // // If you don't provide a value for an attribute, Amazon Cognito sets it to its // default value. @@ -45,6 +47,7 @@ import ( // // [SMS message settings for Amazon Cognito user pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [DescribeUserPool]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html // [sandbox mode]: https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html // [Amazon Pinpoint]: https://console.aws.amazon.com/pinpoint/home/ @@ -66,7 +69,7 @@ func (c *Client) CreateUserPool(ctx context.Context, params *CreateUserPoolInput // Represents the request to create a user pool. type CreateUserPoolInput struct { - // A string used to name the user pool. + // A friendlhy name for your user pool. // // This member is required. PoolName *string @@ -80,14 +83,24 @@ type CreateUserPoolInput struct { // SMS is preferred through email. AccountRecoverySetting *types.AccountRecoverySettingType - // The configuration for AdminCreateUser requests. + // The configuration for [AdminCreateUser] requests. Includes the template for the invitation + // message for new users, the duration of temporary passwords, and permitting + // self-service sign-up. + // + // [AdminCreateUser]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html AdminCreateUserConfig *types.AdminCreateUserConfigType // Attributes supported as an alias for this user pool. Possible values: - // phone_number, email, or preferred_username. + // phone_number, email, or preferred_username. For more information about alias + // attributes, see [Customizing sign-in attributes]. + // + // [Customizing sign-in attributes]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases AliasAttributes []types.AliasAttributeType - // The attributes to be auto-verified. Possible values: email, phone_number. + // The attributes that you want your user pool to automatically verify. Possible + // values: email, phone_number. For more information see [Verifying contact information at sign-up]. + // + // [Verifying contact information at sign-up]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#allowing-users-to-sign-up-and-confirm-themselves AutoVerifiedAttributes []types.VerifiedAttributeType // When active, DeletionProtection prevents accidental deletion of your user pool. @@ -100,11 +113,17 @@ type CreateUserPoolInput struct { // deletion protection in an UpdateUserPool API request. DeletionProtection types.DeletionProtectionType - // The device-remembering configuration for a user pool. A null value indicates - // that you have deactivated device remembering in your user pool. + // The device-remembering configuration for a user pool. Device remembering or + // device tracking is a "Remember me on this device" option for user pools that + // perform authentication with the device key of a trusted device in the back end, + // instead of a user-provided MFA code. For more information about device + // authentication, see [Working with user devices in your user pool]. A null value indicates that you have deactivated device + // remembering in your user pool. // // When you provide a value for any DeviceConfiguration field, you activate the - // Amazon Cognito device-remembering feature. + // Amazon Cognito device-remembering feature. For more infor + // + // [Working with user devices in your user pool]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html DeviceConfiguration *types.DeviceConfigurationType // The email configuration of your user pool. The email configuration type sets @@ -127,14 +146,26 @@ type CreateUserPoolInput struct { // outcome of the operations that invoked them. LambdaConfig *types.LambdaConfigType - // Specifies MFA configuration details. + // Sets multi-factor authentication (MFA) to be on, off, or optional. When ON , all + // users must set up MFA before they can sign in. When OPTIONAL , your application + // must make a client-side determination of whether a user wants to register an MFA + // device. For user pools with adaptive authentication with threat protection, + // choose OPTIONAL . MfaConfiguration types.UserPoolMfaType - // The policies associated with the new user pool. + // The password policy and sign-in policy in the user pool. The password policy + // sets options like password complexity requirements and password history. The + // sign-in policy sets the options available to applications in [choice-based authentication]. + // + // [choice-based authentication]: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice Policies *types.UserPoolPolicyType - // An array of schema attributes for the new user pool. These attributes can be - // standard or custom attributes. + // An array of attributes for the new user pool. You can add custom attributes and + // modify the properties of default attributes. The specifications in this + // parameter set the required attributes in your user pool. For more information, + // see [Working with user attributes]. + // + // [Working with user attributes]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html Schema []types.SchemaAttributeType // A string representing the SMS authentication message. @@ -144,7 +175,10 @@ type CreateUserPoolInput struct { // use to send an SMS message from your Amazon Web Services account through Amazon // Simple Notification Service. To send SMS messages with Amazon SNS in the Amazon // Web Services Region that you want, the Amazon Cognito user pool uses an Identity - // and Access Management (IAM) role in your Amazon Web Services account. + // and Access Management (IAM) role in your Amazon Web Services account. For more + // information see [SMS message settings]. + // + // [SMS message settings]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html SmsConfiguration *types.SmsConfigurationType // This parameter is no longer used. See [VerificationMessageTemplateType]. @@ -183,21 +217,24 @@ type CreateUserPoolInput struct { UserPoolTier types.UserPoolTierType // Specifies whether a user can use an email address or phone number as a username - // when they sign up. + // when they sign up. For more information, see [Customizing sign-in attributes]. + // + // [Customizing sign-in attributes]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases UsernameAttributes []types.UsernameAttributeType - // Case sensitivity on the username input for the selected sign-in option. When - // case sensitivity is set to False (case insensitive), users can sign in with any - // combination of capital and lowercase letters. For example, username , USERNAME , - // or UserName , or for email, email@example.com or EMaiL@eXamplE.Com . For most - // use cases, set case sensitivity to False (case insensitive) as a best practice. - // When usernames and email addresses are case insensitive, Amazon Cognito treats - // any variation in case as the same user, and prevents a case variation from being - // assigned to the same attribute for a different user. + // Sets the case sensitivity option for sign-in usernames. When CaseSensitive is + // false (case insensitive), users can sign in with any combination of capital and + // lowercase letters. For example, username , USERNAME , or UserName , or for + // email, email@example.com or EMaiL@eXamplE.Com . For most use cases, set case + // sensitivity to false as a best practice. When usernames and email addresses are + // case insensitive, Amazon Cognito treats any variation in case as the same user, + // and prevents a case variation from being assigned to the same attribute for a + // different user. // - // This configuration is immutable after you set it. For more information, see [UsernameConfigurationType]. + // When CaseSensitive is true (case sensitive), Amazon Cognito interprets USERNAME + // and UserName as distinct users. // - // [UsernameConfigurationType]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html + // This configuration is immutable after you set it. UsernameConfiguration *types.UsernameConfigurationType // The template for the verification message that your user pool delivers to users @@ -216,7 +253,7 @@ type CreateUserPoolInput struct { // Represents the response from the server for the request to create a user pool. type CreateUserPoolOutput struct { - // A container for the user pool details. + // The details of the created user pool. UserPool *types.UserPoolType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_CreateUserPoolClient.go b/service/cognitoidentityprovider/api_op_CreateUserPoolClient.go index aa515207713..4bb41a6fe5b 100644 --- a/service/cognitoidentityprovider/api_op_CreateUserPoolClient.go +++ b/service/cognitoidentityprovider/api_op_CreateUserPoolClient.go @@ -11,10 +11,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates the user pool client. +// Creates an app client in a user pool. This operation sets basic and advanced +// configuration options. You can create an app client in the Amazon Cognito +// console to your preferences and use the output of [DescribeUserPoolClient]to generate requests from +// that baseline. // -// When you create a new user pool client, token revocation is automatically -// activated. For more information about revoking tokens, see [RevokeToken]. +// New app clients activate token revocation by default. For more information +// about revoking tokens, see [RevokeToken]. // // If you don't provide a value for an attribute, Amazon Cognito sets it to its // default value. @@ -32,6 +35,7 @@ import ( // // [RevokeToken]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [DescribeUserPoolClient]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateUserPoolClient(ctx context.Context, params *CreateUserPoolClientInput, optFns ...func(*Options)) (*CreateUserPoolClientOutput, error) { if params == nil { @@ -51,12 +55,12 @@ func (c *Client) CreateUserPoolClient(ctx context.Context, params *CreateUserPoo // Represents the request to create a user pool client. type CreateUserPoolClientInput struct { - // The client name for the user pool client you would like to create. + // A friendly name for the app client that you want to create. // // This member is required. ClientName *string - // The user pool ID for the user pool where you want to create a user pool client. + // The ID of the user pool where you want to create an app client. // // This member is required. UserPoolId *string @@ -113,20 +117,22 @@ type CreateUserPoolClientInput struct { // defaults to false . AllowedOAuthFlowsUserPoolClient bool - // The allowed OAuth scopes. Possible values provided by OAuth are phone , email , - // openid , and profile . Possible values provided by Amazon Web Services are - // aws.cognito.signin.user.admin . Custom scopes created in Resource Servers are - // also supported. + // The OAuth 2.0 scopes that you want to permit your app client to authorize. + // Scopes govern access control to user pool self-service API operations, user data + // from the userInfo endpoint, and third-party APIs. Possible values provided by + // OAuth are phone , email , openid , and profile . Possible values provided by + // Amazon Web Services are aws.cognito.signin.user.admin . Custom scopes created in + // Resource Servers are also supported. AllowedOAuthScopes []string // The user pool analytics configuration for collecting metrics and sending them // to your Amazon Pinpoint campaign. // // In Amazon Web Services Regions where Amazon Pinpoint isn't available, user - // pools only support sending events to Amazon Pinpoint projects in Amazon Web - // Services Region us-east-1. In Regions where Amazon Pinpoint is available, user - // pools support sending events to Amazon Pinpoint projects within that same - // Region. + // pools might not have access to analytics or might be configurable with campaigns + // in the US East (N. Virginia) Region. For more information, see [Using Amazon Pinpoint analytics]. + // + // [Using Amazon Pinpoint analytics]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html AnalyticsConfiguration *types.AnalyticsConfigurationType // Amazon Cognito creates a session token for each API request in an @@ -141,7 +147,9 @@ type CreateUserPoolClientInput struct { // // - Be an absolute URI. // - // - Be registered with the authorization server. + // - Be registered with the authorization server. Amazon Cognito doesn't accept + // authorization requests with redirect_uri values that aren't in the list of + // CallbackURLs that you provide in this parameter. // // - Not include a fragment component. // @@ -157,23 +165,6 @@ type CreateUserPoolClientInput struct { // The default redirect URI. In app clients with one assigned IdP, replaces // redirect_uri in authentication requests. Must be in the CallbackURLs list. - // - // A redirect URI must: - // - // - Be an absolute URI. - // - // - Be registered with the authorization server. - // - // - Not include a fragment component. - // - // For more information, see [Default redirect URI]. - // - // Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing - // purposes only. - // - // App callback URLs such as myapp://example are also supported. - // - // [Default redirect URI]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html#cognito-user-pools-app-idp-settings-about DefaultRedirectURI *string // Activates the propagation of additional user context data. For more information @@ -236,8 +227,11 @@ type CreateUserPoolClientInput struct { // begin with ALLOW_ , like ALLOW_USER_SRP_AUTH . ExplicitAuthFlows []types.ExplicitAuthFlowsType - // Boolean to specify whether you want to generate a secret for the user pool - // client being created. + // When true , generates a client secret for the app client. Client secrets are + // used with server-side and machine-to-machine applications. For more information, + // see [App client types]. + // + // [App client types]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html#user-pool-settings-client-app-client-types GenerateSecret bool // The ID token time limit. After this limit expires, your user can't use their ID @@ -254,7 +248,10 @@ type CreateUserPoolClientInput struct { // tokens are valid for one hour. IdTokenValidity *int32 - // A list of allowed logout URLs for the IdPs. + // A list of allowed logout URLs for managed login authentication. For more + // information, see [Logout endpoint]. + // + // [Logout endpoint]: https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html LogoutURLs []string // Errors and responses that you want Amazon Cognito APIs to return during @@ -317,17 +314,17 @@ type CreateUserPoolClientInput struct { // configured for the SAML and OIDC IdPs in your user pool, for example MySAMLIdP // or MyOIDCIdP . // - // This setting applies to providers that you can access with the [hosted UI and OAuth 2.0 authorization server]. The removal of + // This setting applies to providers that you can access with [managed login]. The removal of // COGNITO from this list doesn't prevent authentication operations for local users // with the user pools API in an Amazon Web Services SDK. The only way to prevent // API-based authentication is to block access with a [WAF rule]. // // [WAF rule]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html - // [hosted UI and OAuth 2.0 authorization server]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-integration.html + // [managed login]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html SupportedIdentityProviders []string - // The units in which the validity times are represented. The default unit for - // RefreshToken is days, and default for ID and access tokens are hours. + // The units that validity times are represented in. The default unit for refresh + // tokens is days, and the default for ID and access tokens are hours. TokenValidityUnits *types.TokenValidityUnitsType // The list of user attributes that you want your app client to have write access @@ -360,7 +357,7 @@ type CreateUserPoolClientInput struct { // Represents the response from the server to create a user pool client. type CreateUserPoolClientOutput struct { - // The user pool client that was just created. + // The details of the new app client. UserPoolClient *types.UserPoolClientType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_CreateUserPoolDomain.go b/service/cognitoidentityprovider/api_op_CreateUserPoolDomain.go index ff5100d43d0..5f0b24ccaa4 100644 --- a/service/cognitoidentityprovider/api_op_CreateUserPoolDomain.go +++ b/service/cognitoidentityprovider/api_op_CreateUserPoolDomain.go @@ -11,9 +11,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new domain for a user pool. The domain hosts user pool domain -// services like managed login, the hosted UI (classic), and the user pool -// authorization server. +// A user pool domain hosts managed login, an authorization server and web server +// for authentication in your application. This operation creates a new user pool +// prefix or custom domain and sets the managed login branding version. Set the +// branding version to 1 for hosted UI (classic) or 2 for managed login. When you +// choose a custom domain, you must provide an SSL certificate in the US East (N. +// Virginia) Amazon Web Services Region in your request. +// +// Your prefix domain might take up to one minute to take effect. Your custom +// domain is online within five minutes, but it can take up to one hour to +// distribute your SSL certificate. +// +// For more information about adding a custom domain to your user pool, see [Configuring a user pool domain]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -27,6 +36,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Configuring a user pool domain]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) CreateUserPoolDomain(ctx context.Context, params *CreateUserPoolDomainInput, optFns ...func(*Options)) (*CreateUserPoolDomainOutput, error) { if params == nil { @@ -46,8 +56,9 @@ func (c *Client) CreateUserPoolDomain(ctx context.Context, params *CreateUserPoo type CreateUserPoolDomainInput struct { // The domain string. For custom domains, this is the fully-qualified domain name, - // such as auth.example.com . For Amazon Cognito prefix domains, this is the prefix - // alone, such as auth . + // such as auth.example.com . For prefix domains, this is the prefix alone, such as + // myprefix . A prefix value of myprefix for a user pool in the us-east-1 Region + // results in a domain of myprefix.auth.us-east-1.amazoncognito.com . // // This member is required. Domain *string @@ -57,12 +68,11 @@ type CreateUserPoolDomainInput struct { // This member is required. UserPoolId *string - // The configuration for a custom domain that hosts the sign-up and sign-in - // webpages for your application. + // The configuration for a custom domain. Configures your domain with an + // Certificate Manager certificate in the us-east-1 Region. // // Provide this parameter only if you want to use a custom domain for your user - // pool. Otherwise, you can exclude this parameter and use the Amazon Cognito - // hosted domain instead. + // pool. Otherwise, you can exclude this parameter and use a prefix domain instead. // // For more information about the hosted domain and custom domains, see [Configuring a User Pool Domain]. // @@ -70,8 +80,8 @@ type CreateUserPoolDomainInput struct { CustomDomainConfig *types.CustomDomainConfigType // The version of managed login branding that you want to apply to your domain. A - // value of 1 indicates hosted UI (classic) branding and a version of 2 indicates - // managed login branding. + // value of 1 indicates hosted UI (classic) and a version of 2 indicates managed + // login. // // Managed login requires that your user pool be configured for any [feature plan] other than // Lite . @@ -91,8 +101,7 @@ type CreateUserPoolDomainOutput struct { CloudFrontDomain *string // The version of managed login branding applied your domain. A value of 1 - // indicates hosted UI (classic) branding and a version of 2 indicates managed - // login branding. + // indicates hosted UI (classic) and a version of 2 indicates managed login. ManagedLoginVersion *int32 // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_DeleteGroup.go b/service/cognitoidentityprovider/api_op_DeleteGroup.go index 0c83433fd0e..9e5a0414c24 100644 --- a/service/cognitoidentityprovider/api_op_DeleteGroup.go +++ b/service/cognitoidentityprovider/api_op_DeleteGroup.go @@ -10,9 +10,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a group. +// Deletes a group from the specified user pool. When you delete a group, that +// group no longer contributes to users' cognito:preferred_group or cognito:groups +// claims, and no longer influence access-control decision that are based on group +// membership. For more information about user pool groups, see [Adding groups to a user pool]. // -// Calling this action requires developer credentials. +// Amazon Cognito evaluates Identity and Access Management (IAM) policies in +// requests for this API operation. For this operation, you must use IAM +// credentials to authorize requests, and you must grant yourself the corresponding +// IAM permission in a policy. +// +// # Learn more +// +// [Signing Amazon Web Services API Requests] +// +// [Using the Amazon Cognito user pools API and user pool endpoints] +// +// [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Adding groups to a user pool]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html +// [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) DeleteGroup(ctx context.Context, params *DeleteGroupInput, optFns ...func(*Options)) (*DeleteGroupOutput, error) { if params == nil { params = &DeleteGroupInput{} @@ -30,12 +46,12 @@ func (c *Client) DeleteGroup(ctx context.Context, params *DeleteGroupInput, optF type DeleteGroupInput struct { - // The name of the group. + // The name of the group that you want to delete. // // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool where you want to delete the group. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteIdentityProvider.go b/service/cognitoidentityprovider/api_op_DeleteIdentityProvider.go index 229d05cbe86..7e7286d1773 100644 --- a/service/cognitoidentityprovider/api_op_DeleteIdentityProvider.go +++ b/service/cognitoidentityprovider/api_op_DeleteIdentityProvider.go @@ -10,7 +10,24 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an IdP for a user pool. +// Deletes a user pool identity provider (IdP). After you delete an IdP, users can +// no longer sign in to your user pool through that IdP. For more information about +// user pool IdPs, see [Third-party IdP sign-in]. +// +// Amazon Cognito evaluates Identity and Access Management (IAM) policies in +// requests for this API operation. For this operation, you must use IAM +// credentials to authorize requests, and you must grant yourself the corresponding +// IAM permission in a policy. +// +// # Learn more +// +// [Signing Amazon Web Services API Requests] +// +// [Using the Amazon Cognito user pools API and user pool endpoints] +// +// [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Third-party IdP sign-in]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html +// [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) DeleteIdentityProvider(ctx context.Context, params *DeleteIdentityProviderInput, optFns ...func(*Options)) (*DeleteIdentityProviderOutput, error) { if params == nil { params = &DeleteIdentityProviderInput{} @@ -28,12 +45,12 @@ func (c *Client) DeleteIdentityProvider(ctx context.Context, params *DeleteIdent type DeleteIdentityProviderInput struct { - // The IdP name. + // The name of the IdP that you want to delete. // // This member is required. ProviderName *string - // The user pool ID. + // The ID of the user pool where you want to delete the identity provider. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteManagedLoginBranding.go b/service/cognitoidentityprovider/api_op_DeleteManagedLoginBranding.go index e941c267156..92be2e48f8b 100644 --- a/service/cognitoidentityprovider/api_op_DeleteManagedLoginBranding.go +++ b/service/cognitoidentityprovider/api_op_DeleteManagedLoginBranding.go @@ -11,7 +11,9 @@ import ( ) // Deletes a managed login branding style. When you delete a style, you delete the -// branding association for an app client and restore it to default settings. +// branding association for an app client. When an app client doesn't have a style +// assigned, your managed login pages for that app client are nonfunctional until +// you create a new style or switch the domain branding version. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM diff --git a/service/cognitoidentityprovider/api_op_DeleteResourceServer.go b/service/cognitoidentityprovider/api_op_DeleteResourceServer.go index 3613010aa17..5239765c68e 100644 --- a/service/cognitoidentityprovider/api_op_DeleteResourceServer.go +++ b/service/cognitoidentityprovider/api_op_DeleteResourceServer.go @@ -10,7 +10,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a resource server. +// Deletes a resource server. After you delete a resource server, users can no +// longer generate access tokens with scopes that are associate with that resource +// server. +// +// Resource servers are associated with custom scopes and machine-to-machine (M2M) +// authorization. For more information, see [Access control with resource servers]. +// +// Amazon Cognito evaluates Identity and Access Management (IAM) policies in +// requests for this API operation. For this operation, you must use IAM +// credentials to authorize requests, and you must grant yourself the corresponding +// IAM permission in a policy. +// +// # Learn more +// +// [Signing Amazon Web Services API Requests] +// +// [Using the Amazon Cognito user pools API and user pool endpoints] +// +// [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Access control with resource servers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html +// [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) DeleteResourceServer(ctx context.Context, params *DeleteResourceServerInput, optFns ...func(*Options)) (*DeleteResourceServerOutput, error) { if params == nil { params = &DeleteResourceServerInput{} @@ -28,12 +48,12 @@ func (c *Client) DeleteResourceServer(ctx context.Context, params *DeleteResourc type DeleteResourceServerInput struct { - // The identifier for the resource server. + // The identifier of the resource server that you want to delete. // // This member is required. Identifier *string - // The user pool ID for the user pool that hosts the resource server. + // The ID of the user pool where you want to delete the resource server. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteUser.go b/service/cognitoidentityprovider/api_op_DeleteUser.go index ea6e8f29948..94e596b60a7 100644 --- a/service/cognitoidentityprovider/api_op_DeleteUser.go +++ b/service/cognitoidentityprovider/api_op_DeleteUser.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Allows a user to delete their own user profile. +// Self-deletes a user profile. A deleted user profile can no longer be used to +// sign in and can't be restored. // // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . diff --git a/service/cognitoidentityprovider/api_op_DeleteUserAttributes.go b/service/cognitoidentityprovider/api_op_DeleteUserAttributes.go index 4d7a3ca2238..c623e94e010 100644 --- a/service/cognitoidentityprovider/api_op_DeleteUserAttributes.go +++ b/service/cognitoidentityprovider/api_op_DeleteUserAttributes.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the attributes for a user. +// Self-deletes attributes for a user. For example, your application can submit a +// request to this operation when a user wants to remove their birthdate attribute +// value. // // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . @@ -48,8 +50,8 @@ type DeleteUserAttributesInput struct { // An array of strings representing the user attribute names you want to delete. // - // For custom attributes, you must prependattach the custom: prefix to the front - // of the attribute name. + // For custom attributes, you must prepend the custom: prefix to the attribute + // name, for example custom:department . // // This member is required. UserAttributeNames []string diff --git a/service/cognitoidentityprovider/api_op_DeleteUserPool.go b/service/cognitoidentityprovider/api_op_DeleteUserPool.go index 575b6d1bd46..76453413dd1 100644 --- a/service/cognitoidentityprovider/api_op_DeleteUserPool.go +++ b/service/cognitoidentityprovider/api_op_DeleteUserPool.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the specified Amazon Cognito user pool. +// Deletes a user pool. After you delete a user pool, users can no longer sign in +// to any associated applications. func (c *Client) DeleteUserPool(ctx context.Context, params *DeleteUserPoolInput, optFns ...func(*Options)) (*DeleteUserPoolOutput, error) { if params == nil { params = &DeleteUserPoolInput{} @@ -29,7 +30,7 @@ func (c *Client) DeleteUserPool(ctx context.Context, params *DeleteUserPoolInput // Represents the request to delete a user pool. type DeleteUserPoolInput struct { - // The user pool ID for the user pool you want to delete. + // The ID of the user pool that you want to delete. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteUserPoolClient.go b/service/cognitoidentityprovider/api_op_DeleteUserPoolClient.go index bd2c8cd06ea..e28479703eb 100644 --- a/service/cognitoidentityprovider/api_op_DeleteUserPoolClient.go +++ b/service/cognitoidentityprovider/api_op_DeleteUserPoolClient.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Allows the developer to delete the user pool client. +// Deletes a user pool app client. After you delete an app client, users can no +// longer sign in to the associated application. func (c *Client) DeleteUserPoolClient(ctx context.Context, params *DeleteUserPoolClientInput, optFns ...func(*Options)) (*DeleteUserPoolClientOutput, error) { if params == nil { params = &DeleteUserPoolClientInput{} @@ -29,12 +30,12 @@ func (c *Client) DeleteUserPoolClient(ctx context.Context, params *DeleteUserPoo // Represents the request to delete a user pool client. type DeleteUserPoolClientInput struct { - // The app client ID of the app associated with the user pool. + // The ID of the user pool app client that you want to delete. // // This member is required. ClientId *string - // The user pool ID for the user pool where you want to delete the client. + // The ID of the user pool where you want to delete the client. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteUserPoolDomain.go b/service/cognitoidentityprovider/api_op_DeleteUserPoolDomain.go index 5e220bb40fc..15e3428bd7f 100644 --- a/service/cognitoidentityprovider/api_op_DeleteUserPoolDomain.go +++ b/service/cognitoidentityprovider/api_op_DeleteUserPoolDomain.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a domain for a user pool. +// Given a user pool ID and domain identifier, deletes a user pool domain. After +// you delete a user pool domain, your managed login pages and authorization server +// are no longer available. func (c *Client) DeleteUserPoolDomain(ctx context.Context, params *DeleteUserPoolDomainInput, optFns ...func(*Options)) (*DeleteUserPoolDomainOutput, error) { if params == nil { params = &DeleteUserPoolDomainInput{} @@ -28,14 +30,14 @@ func (c *Client) DeleteUserPoolDomain(ctx context.Context, params *DeleteUserPoo type DeleteUserPoolDomainInput struct { - // The domain string. For custom domains, this is the fully-qualified domain name, - // such as auth.example.com . For Amazon Cognito prefix domains, this is the prefix - // alone, such as auth . + // The domain that you want to delete. For custom domains, this is the + // fully-qualified domain name, such as auth.example.com . For Amazon Cognito + // prefix domains, this is the prefix alone, such as auth . // // This member is required. Domain *string - // The user pool ID. + // The ID of the user pool where you want to delete the domain. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_DeleteWebAuthnCredential.go b/service/cognitoidentityprovider/api_op_DeleteWebAuthnCredential.go index e0590636736..91fe01abba7 100644 --- a/service/cognitoidentityprovider/api_op_DeleteWebAuthnCredential.go +++ b/service/cognitoidentityprovider/api_op_DeleteWebAuthnCredential.go @@ -10,11 +10,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a registered passkey, or webauthN, device for the currently signed-in -// user. +// Deletes a registered passkey, or webauthN, authenticator for the currently +// signed-in user. // // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . +// +// Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies +// in requests for this API operation. For this operation, you can't use IAM +// credentials to authorize requests, and you can't grant IAM permissions in +// policies. For more information about authorization models in Amazon Cognito, see +// [Using the Amazon Cognito user pools API and user pool endpoints]. +// +// [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html func (c *Client) DeleteWebAuthnCredential(ctx context.Context, params *DeleteWebAuthnCredentialInput, optFns ...func(*Options)) (*DeleteWebAuthnCredentialOutput, error) { if params == nil { params = &DeleteWebAuthnCredentialInput{} @@ -32,8 +40,8 @@ func (c *Client) DeleteWebAuthnCredential(ctx context.Context, params *DeleteWeb type DeleteWebAuthnCredentialInput struct { - // A valid access token that Amazon Cognito issued to the user whose passkey you - // want to delete. + // A valid access token that Amazon Cognito issued to the user whose passkey + // credential you want to delete. // // This member is required. AccessToken *string diff --git a/service/cognitoidentityprovider/api_op_DescribeIdentityProvider.go b/service/cognitoidentityprovider/api_op_DescribeIdentityProvider.go index 121dc0e67f2..d0cf21ffca2 100644 --- a/service/cognitoidentityprovider/api_op_DescribeIdentityProvider.go +++ b/service/cognitoidentityprovider/api_op_DescribeIdentityProvider.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a specific IdP. +// Given a user pool ID and identity provider (IdP) name, returns details about +// the IdP. func (c *Client) DescribeIdentityProvider(ctx context.Context, params *DescribeIdentityProviderInput, optFns ...func(*Options)) (*DescribeIdentityProviderOutput, error) { if params == nil { params = &DescribeIdentityProviderInput{} @@ -29,12 +30,12 @@ func (c *Client) DescribeIdentityProvider(ctx context.Context, params *DescribeI type DescribeIdentityProviderInput struct { - // The IdP name. + // The name of the IdP that you want to describe. // // This member is required. ProviderName *string - // The user pool ID. + // The ID of the user pool that has the IdP that you want to describe.. // // This member is required. UserPoolId *string @@ -44,7 +45,7 @@ type DescribeIdentityProviderInput struct { type DescribeIdentityProviderOutput struct { - // The identity provider details. + // The details of the requested IdP. // // This member is required. IdentityProvider *types.IdentityProviderType diff --git a/service/cognitoidentityprovider/api_op_DescribeManagedLoginBranding.go b/service/cognitoidentityprovider/api_op_DescribeManagedLoginBranding.go index 20ddafa5c09..320cafda758 100644 --- a/service/cognitoidentityprovider/api_op_DescribeManagedLoginBranding.go +++ b/service/cognitoidentityprovider/api_op_DescribeManagedLoginBranding.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// When given the ID of a managed login branding style, returns detailed -// information about the style. +// Given the ID of a managed login branding style, returns detailed information +// about the style. func (c *Client) DescribeManagedLoginBranding(ctx context.Context, params *DescribeManagedLoginBrandingInput, optFns ...func(*Options)) (*DescribeManagedLoginBrandingOutput, error) { if params == nil { params = &DescribeManagedLoginBrandingInput{} diff --git a/service/cognitoidentityprovider/api_op_DescribeManagedLoginBrandingByClient.go b/service/cognitoidentityprovider/api_op_DescribeManagedLoginBrandingByClient.go index c0be90afef4..1a9e6a0df8d 100644 --- a/service/cognitoidentityprovider/api_op_DescribeManagedLoginBrandingByClient.go +++ b/service/cognitoidentityprovider/api_op_DescribeManagedLoginBrandingByClient.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// When given the ID of a user pool app client, returns detailed information about -// the style assigned to the app client. +// Given the ID of a user pool app client, returns detailed information about the +// style assigned to the app client. func (c *Client) DescribeManagedLoginBrandingByClient(ctx context.Context, params *DescribeManagedLoginBrandingByClientInput, optFns ...func(*Options)) (*DescribeManagedLoginBrandingByClientOutput, error) { if params == nil { params = &DescribeManagedLoginBrandingByClientInput{} diff --git a/service/cognitoidentityprovider/api_op_DescribeResourceServer.go b/service/cognitoidentityprovider/api_op_DescribeResourceServer.go index 2a209297fed..f24a1d7dfe8 100644 --- a/service/cognitoidentityprovider/api_op_DescribeResourceServer.go +++ b/service/cognitoidentityprovider/api_op_DescribeResourceServer.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a resource server. +// Describes a resource server. For more information about resource servers, see [Access control with resource servers]. +// +// [Access control with resource servers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html func (c *Client) DescribeResourceServer(ctx context.Context, params *DescribeResourceServerInput, optFns ...func(*Options)) (*DescribeResourceServerOutput, error) { if params == nil { params = &DescribeResourceServerInput{} @@ -40,7 +42,7 @@ type DescribeResourceServerInput struct { // This member is required. Identifier *string - // The user pool ID for the user pool that hosts the resource server. + // The ID of the user pool that hosts the resource server. // // This member is required. UserPoolId *string @@ -50,7 +52,7 @@ type DescribeResourceServerInput struct { type DescribeResourceServerOutput struct { - // The resource server. + // The details of the requested resource server. // // This member is required. ResourceServer *types.ResourceServerType diff --git a/service/cognitoidentityprovider/api_op_DescribeRiskConfiguration.go b/service/cognitoidentityprovider/api_op_DescribeRiskConfiguration.go index cd497cd11f0..bd76c468938 100644 --- a/service/cognitoidentityprovider/api_op_DescribeRiskConfiguration.go +++ b/service/cognitoidentityprovider/api_op_DescribeRiskConfiguration.go @@ -11,7 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the risk configuration. +// Given an app client or user pool ID where threat protection is configured, +// describes the risk configuration. This operation returns details about adaptive +// authentication, compromised credentials, and IP-address allow- and denylists. +// For more information about threat protection, see [Threat protection]. +// +// [Threat protection]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-threat-protection.html func (c *Client) DescribeRiskConfiguration(ctx context.Context, params *DescribeRiskConfigurationInput, optFns ...func(*Options)) (*DescribeRiskConfigurationOutput, error) { if params == nil { params = &DescribeRiskConfigurationInput{} @@ -29,12 +34,20 @@ func (c *Client) DescribeRiskConfiguration(ctx context.Context, params *Describe type DescribeRiskConfigurationInput struct { - // The user pool ID. + // The ID of the user pool with the risk configuration that you want to inspect. + // You can apply default risk configuration at the user pool level and further + // customize it from user pool defaults at the app-client level. Specify ClientId + // to inspect client-level configuration, or UserPoolId to inspect pool-level + // configuration. // // This member is required. UserPoolId *string - // The app client ID. + // The ID of the app client with the risk configuration that you want to inspect. + // You can apply default risk configuration at the user pool level and further + // customize it from user pool defaults at the app-client level. Specify ClientId + // to inspect client-level configuration, or UserPoolId to inspect pool-level + // configuration. ClientId *string noSmithyDocumentSerde @@ -42,7 +55,7 @@ type DescribeRiskConfigurationInput struct { type DescribeRiskConfigurationOutput struct { - // The risk configuration. + // The details of the requested risk configuration. // // This member is required. RiskConfiguration *types.RiskConfigurationType diff --git a/service/cognitoidentityprovider/api_op_DescribeUserImportJob.go b/service/cognitoidentityprovider/api_op_DescribeUserImportJob.go index 4697ee25da3..c5abe9b9fd5 100644 --- a/service/cognitoidentityprovider/api_op_DescribeUserImportJob.go +++ b/service/cognitoidentityprovider/api_op_DescribeUserImportJob.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the user import job. +// Describes a user import job. For more information about user CSV import, see [Importing users from a CSV file]. +// +// [Importing users from a CSV file]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html func (c *Client) DescribeUserImportJob(ctx context.Context, params *DescribeUserImportJobInput, optFns ...func(*Options)) (*DescribeUserImportJobOutput, error) { if params == nil { params = &DescribeUserImportJobInput{} @@ -30,12 +32,12 @@ func (c *Client) DescribeUserImportJob(ctx context.Context, params *DescribeUser // Represents the request to describe the user import job. type DescribeUserImportJobInput struct { - // The job ID for the user import job. + // The Id of the user import job that you want to describe. // // This member is required. JobId *string - // The user pool ID for the user pool that the users are being imported into. + // The ID of the user pool that's associated with the import job. // // This member is required. UserPoolId *string @@ -47,7 +49,7 @@ type DescribeUserImportJobInput struct { // import job. type DescribeUserImportJobOutput struct { - // The job object that represents the user import job. + // The details of the user import job. UserImportJob *types.UserImportJobType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_DescribeUserPool.go b/service/cognitoidentityprovider/api_op_DescribeUserPool.go index 21153c32115..029e044e4a1 100644 --- a/service/cognitoidentityprovider/api_op_DescribeUserPool.go +++ b/service/cognitoidentityprovider/api_op_DescribeUserPool.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the configuration information and metadata of the specified user pool. +// Given a user pool ID, returns configuration information. This operation is +// useful when you want to inspect an existing user pool and programmatically +// replicate the configuration to another user pool. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -44,7 +46,7 @@ func (c *Client) DescribeUserPool(ctx context.Context, params *DescribeUserPoolI // Represents the request to describe the user pool. type DescribeUserPoolInput struct { - // The user pool ID for the user pool you want to describe. + // The ID of the user pool you want to describe. // // This member is required. UserPoolId *string @@ -55,7 +57,7 @@ type DescribeUserPoolInput struct { // Represents the response to describe the user pool. type DescribeUserPoolOutput struct { - // The container of metadata returned by the server to describe the pool. + // The details of the requested user pool. UserPool *types.UserPoolType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_DescribeUserPoolClient.go b/service/cognitoidentityprovider/api_op_DescribeUserPoolClient.go index 4837893a9ca..afd4b900e73 100644 --- a/service/cognitoidentityprovider/api_op_DescribeUserPoolClient.go +++ b/service/cognitoidentityprovider/api_op_DescribeUserPoolClient.go @@ -11,8 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Client method for returning the configuration information and metadata of the -// specified user pool app client. +// Given an app client ID, returns configuration information. This operation is +// useful when you want to inspect an existing app client and programmatically +// replicate the configuration to another app client. For more information about +// app clients, see [App clients]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -26,6 +28,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [App clients]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) DescribeUserPoolClient(ctx context.Context, params *DescribeUserPoolClientInput, optFns ...func(*Options)) (*DescribeUserPoolClientOutput, error) { if params == nil { @@ -45,12 +48,12 @@ func (c *Client) DescribeUserPoolClient(ctx context.Context, params *DescribeUse // Represents the request to describe a user pool client. type DescribeUserPoolClientInput struct { - // The app client ID of the app associated with the user pool. + // The ID of the app client that you want to describe. // // This member is required. ClientId *string - // The user pool ID for the user pool you want to describe. + // The ID of the user pool that contains the app client you want to describe. // // This member is required. UserPoolId *string @@ -62,7 +65,7 @@ type DescribeUserPoolClientInput struct { // pool client. type DescribeUserPoolClientOutput struct { - // The user pool client from a server response to describe the user pool client. + // The details of the request app client. UserPoolClient *types.UserPoolClientType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_DescribeUserPoolDomain.go b/service/cognitoidentityprovider/api_op_DescribeUserPoolDomain.go index ecf28c1af2b..d02a41bd7bf 100644 --- a/service/cognitoidentityprovider/api_op_DescribeUserPoolDomain.go +++ b/service/cognitoidentityprovider/api_op_DescribeUserPoolDomain.go @@ -11,7 +11,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a domain. +// Given a user pool domain name, returns information about the domain +// configuration. +// +// Amazon Cognito evaluates Identity and Access Management (IAM) policies in +// requests for this API operation. For this operation, you must use IAM +// credentials to authorize requests, and you must grant yourself the corresponding +// IAM permission in a policy. +// +// # Learn more +// +// [Signing Amazon Web Services API Requests] +// +// [Using the Amazon Cognito user pools API and user pool endpoints] +// +// [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) DescribeUserPoolDomain(ctx context.Context, params *DescribeUserPoolDomainInput, optFns ...func(*Options)) (*DescribeUserPoolDomainOutput, error) { if params == nil { params = &DescribeUserPoolDomainInput{} @@ -29,9 +44,9 @@ func (c *Client) DescribeUserPoolDomain(ctx context.Context, params *DescribeUse type DescribeUserPoolDomainInput struct { - // The domain string. For custom domains, this is the fully-qualified domain name, - // such as auth.example.com . For Amazon Cognito prefix domains, this is the prefix - // alone, such as auth . + // The domain that you want to describe. For custom domains, this is the + // fully-qualified domain name, such as auth.example.com . For Amazon Cognito + // prefix domains, this is the prefix alone, such as auth . // // This member is required. Domain *string @@ -41,7 +56,7 @@ type DescribeUserPoolDomainInput struct { type DescribeUserPoolDomainOutput struct { - // A domain description object containing information about the domain. + // The details of the requested user pool domain. DomainDescription *types.DomainDescriptionType // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_ForgotPassword.go b/service/cognitoidentityprovider/api_op_ForgotPassword.go index 86158ef5daa..0dd1b8d9ae3 100644 --- a/service/cognitoidentityprovider/api_op_ForgotPassword.go +++ b/service/cognitoidentityprovider/api_op_ForgotPassword.go @@ -106,8 +106,8 @@ type ForgotPasswordInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -116,20 +116,27 @@ type ForgotPasswordInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string // A keyed-hash message authentication code (HMAC) calculated using the secret key - // of a user pool client and username plus the client ID in the message. + // of a user pool client and username plus the client ID in the message. For more + // information about SecretHash , see [Computing secret hash values]. + // + // [Computing secret hash values]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash SecretHash *string // Contextual data about your user session, such as the device fingerprint, IP // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_GetCSVHeader.go b/service/cognitoidentityprovider/api_op_GetCSVHeader.go index c97183acc70..42831134aee 100644 --- a/service/cognitoidentityprovider/api_op_GetCSVHeader.go +++ b/service/cognitoidentityprovider/api_op_GetCSVHeader.go @@ -31,7 +31,7 @@ func (c *Client) GetCSVHeader(ctx context.Context, params *GetCSVHeaderInput, op // user import job. type GetCSVHeaderInput struct { - // The user pool ID for the user pool that the users are to be imported into. + // The ID of the user pool that the users are to be imported into. // // This member is required. UserPoolId *string @@ -46,7 +46,7 @@ type GetCSVHeaderOutput struct { // The header information of the CSV file for the user import job. CSVHeader []string - // The user pool ID for the user pool that the users are to be imported into. + // The ID of the user pool that the users are to be imported into. UserPoolId *string // Metadata pertaining to the operation's result. diff --git a/service/cognitoidentityprovider/api_op_GetGroup.go b/service/cognitoidentityprovider/api_op_GetGroup.go index e187264958e..2baa3d9ce01 100644 --- a/service/cognitoidentityprovider/api_op_GetGroup.go +++ b/service/cognitoidentityprovider/api_op_GetGroup.go @@ -36,7 +36,7 @@ type GetGroupInput struct { // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_GetUICustomization.go b/service/cognitoidentityprovider/api_op_GetUICustomization.go index 83b7994b908..9023c3bc903 100644 --- a/service/cognitoidentityprovider/api_op_GetUICustomization.go +++ b/service/cognitoidentityprovider/api_op_GetUICustomization.go @@ -33,7 +33,7 @@ func (c *Client) GetUICustomization(ctx context.Context, params *GetUICustomizat type GetUICustomizationInput struct { - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_GetUserAttributeVerificationCode.go b/service/cognitoidentityprovider/api_op_GetUserAttributeVerificationCode.go index f8cc55d9caf..23077e316b3 100644 --- a/service/cognitoidentityprovider/api_op_GetUserAttributeVerificationCode.go +++ b/service/cognitoidentityprovider/api_op_GetUserAttributeVerificationCode.go @@ -88,8 +88,8 @@ type GetUserAttributeVerificationCodeInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -98,8 +98,8 @@ type GetUserAttributeVerificationCodeInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string diff --git a/service/cognitoidentityprovider/api_op_GlobalSignOut.go b/service/cognitoidentityprovider/api_op_GlobalSignOut.go index b47e0991918..a733e657a2b 100644 --- a/service/cognitoidentityprovider/api_op_GlobalSignOut.go +++ b/service/cognitoidentityprovider/api_op_GlobalSignOut.go @@ -29,7 +29,10 @@ import ( // - Amazon Cognito no longer accepts a signed-out user's refresh tokens in // refresh requests. // -// Other requests might be valid until your user's token expires. +// Other requests might be valid until your user's token expires. This operation +// doesn't clear the [managed login]session cookie. To clear the session for a user who signed in +// with managed login or the classic hosted UI, direct their browser session to the +// [logout endpoint]. // // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . @@ -40,7 +43,9 @@ import ( // policies. For more information about authorization models in Amazon Cognito, see // [Using the Amazon Cognito user pools API and user pool endpoints]. // +// [logout endpoint]: https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [managed login]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html // // [CognitoIdentityProvider]: https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_CognitoIdentityProvider.html // [GetId]: https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetId.html diff --git a/service/cognitoidentityprovider/api_op_InitiateAuth.go b/service/cognitoidentityprovider/api_op_InitiateAuth.go index 8691f991af6..1bcdd575f0c 100644 --- a/service/cognitoidentityprovider/api_op_InitiateAuth.go +++ b/service/cognitoidentityprovider/api_op_InitiateAuth.go @@ -59,8 +59,9 @@ func (c *Client) InitiateAuth(ctx context.Context, params *InitiateAuthInput, op // Initiates the authentication request. type InitiateAuthInput struct { - // The authentication flow that you want to initiate. The AuthParameters that you - // must submit are linked to the flow that you submit. For example: + // The authentication flow that you want to initiate. Each AuthFlow has linked + // AuthParameters that you must submit. The following are some example flows and + // their parameters. // // - USER_AUTH : Request a preferred authentication type or review available // authentication types. From the offered authentication types, select one in a @@ -76,10 +77,10 @@ type InitiateAuthInput struct { // - USER_PASSWORD_AUTH : Receive new tokens or the next challenge, for example // SOFTWARE_TOKEN_MFA , when you pass USERNAME and PASSWORD parameters. // - // Valid values include the following: + // All flows // - // USER_AUTH The entry point for sign-in with passwords, one-time passwords, - // biometric devices, and security keys. + // USER_AUTH The entry point for sign-in with passwords, one-time passwords, and + // WebAuthN authenticators. // // USER_SRP_AUTH Username-password authentication with the Secure Remote Password // (SRP) protocol. For more information, see [Use SRP password verification in custom authentication flow]. @@ -185,8 +186,8 @@ type InitiateAuthInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -195,8 +196,8 @@ type InitiateAuthInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -209,6 +210,10 @@ type InitiateAuthInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_ListGroups.go b/service/cognitoidentityprovider/api_op_ListGroups.go index 17cb8b6884e..25f10058e60 100644 --- a/service/cognitoidentityprovider/api_op_ListGroups.go +++ b/service/cognitoidentityprovider/api_op_ListGroups.go @@ -43,7 +43,7 @@ func (c *Client) ListGroups(ctx context.Context, params *ListGroupsInput, optFns type ListGroupsInput struct { - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ListResourceServers.go b/service/cognitoidentityprovider/api_op_ListResourceServers.go index 06bb19ac77d..2a11f93a2ef 100644 --- a/service/cognitoidentityprovider/api_op_ListResourceServers.go +++ b/service/cognitoidentityprovider/api_op_ListResourceServers.go @@ -43,7 +43,7 @@ func (c *Client) ListResourceServers(ctx context.Context, params *ListResourceSe type ListResourceServersInput struct { - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ListUserImportJobs.go b/service/cognitoidentityprovider/api_op_ListUserImportJobs.go index 98fcc18f52c..0423241b93d 100644 --- a/service/cognitoidentityprovider/api_op_ListUserImportJobs.go +++ b/service/cognitoidentityprovider/api_op_ListUserImportJobs.go @@ -49,7 +49,7 @@ type ListUserImportJobsInput struct { // This member is required. MaxResults *int32 - // The user pool ID for the user pool that the users are being imported into. + // The ID of the user pool that the users are being imported into. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ListUserPoolClients.go b/service/cognitoidentityprovider/api_op_ListUserPoolClients.go index 525d324f507..51bb15e2375 100644 --- a/service/cognitoidentityprovider/api_op_ListUserPoolClients.go +++ b/service/cognitoidentityprovider/api_op_ListUserPoolClients.go @@ -44,7 +44,7 @@ func (c *Client) ListUserPoolClients(ctx context.Context, params *ListUserPoolCl // Represents the request to list the user pool clients. type ListUserPoolClientsInput struct { - // The user pool ID for the user pool where you want to list user pool clients. + // The ID of the user pool where you want to list user pool clients. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ListUsers.go b/service/cognitoidentityprovider/api_op_ListUsers.go index c6d9cad59f6..3b4553a301a 100644 --- a/service/cognitoidentityprovider/api_op_ListUsers.go +++ b/service/cognitoidentityprovider/api_op_ListUsers.go @@ -44,7 +44,7 @@ func (c *Client) ListUsers(ctx context.Context, params *ListUsersInput, optFns . // Represents the request to list users. type ListUsersInput struct { - // The user pool ID for the user pool on which the search should be performed. + // The ID of the user pool on which the search should be performed. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ListUsersInGroup.go b/service/cognitoidentityprovider/api_op_ListUsersInGroup.go index 5108e8dcbbd..75bf9fe3450 100644 --- a/service/cognitoidentityprovider/api_op_ListUsersInGroup.go +++ b/service/cognitoidentityprovider/api_op_ListUsersInGroup.go @@ -48,7 +48,7 @@ type ListUsersInGroupInput struct { // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_ResendConfirmationCode.go b/service/cognitoidentityprovider/api_op_ResendConfirmationCode.go index 55eb61c994f..5ac6cf7ad08 100644 --- a/service/cognitoidentityprovider/api_op_ResendConfirmationCode.go +++ b/service/cognitoidentityprovider/api_op_ResendConfirmationCode.go @@ -89,8 +89,8 @@ type ResendConfirmationCodeInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -99,20 +99,27 @@ type ResendConfirmationCodeInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string // A keyed-hash message authentication code (HMAC) calculated using the secret key - // of a user pool client and username plus the client ID in the message. + // of a user pool client and username plus the client ID in the message. For more + // information about SecretHash , see [Computing secret hash values]. + // + // [Computing secret hash values]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash SecretHash *string // Contextual data about your user session, such as the device fingerprint, IP // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_RespondToAuthChallenge.go b/service/cognitoidentityprovider/api_op_RespondToAuthChallenge.go index e04a132b755..5b2a3565e5c 100644 --- a/service/cognitoidentityprovider/api_op_RespondToAuthChallenge.go +++ b/service/cognitoidentityprovider/api_op_RespondToAuthChallenge.go @@ -200,8 +200,8 @@ type RespondToAuthChallengeInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -210,8 +210,8 @@ type RespondToAuthChallengeInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -227,6 +227,10 @@ type RespondToAuthChallengeInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType noSmithyDocumentSerde diff --git a/service/cognitoidentityprovider/api_op_SetUICustomization.go b/service/cognitoidentityprovider/api_op_SetUICustomization.go index 77c15a75922..e29ddc79b32 100644 --- a/service/cognitoidentityprovider/api_op_SetUICustomization.go +++ b/service/cognitoidentityprovider/api_op_SetUICustomization.go @@ -40,7 +40,7 @@ func (c *Client) SetUICustomization(ctx context.Context, params *SetUICustomizat type SetUICustomizationInput struct { - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_SetUserMFAPreference.go b/service/cognitoidentityprovider/api_op_SetUserMFAPreference.go index 7282257fb37..218c1822cfa 100644 --- a/service/cognitoidentityprovider/api_op_SetUserMFAPreference.go +++ b/service/cognitoidentityprovider/api_op_SetUserMFAPreference.go @@ -22,6 +22,9 @@ import ( // assessed risk level of sign-in attempts, deactivate MFA for users and turn on // Adaptive Authentication for the user pool. // +// This operation doesn't reset an existing TOTP MFA for a user. To register a new +// TOTP factor for a user, make an [AssociateSoftwareToken]request. For more information, see [TOTP software token MFA]. +// // Authorize this action with a signed-in user's access token. It must include the // scope aws.cognito.signin.user.admin . // @@ -31,7 +34,9 @@ import ( // policies. For more information about authorization models in Amazon Cognito, see // [Using the Amazon Cognito user pools API and user pool endpoints]. // +// [AssociateSoftwareToken]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [TOTP software token MFA]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa-totp.html func (c *Client) SetUserMFAPreference(ctx context.Context, params *SetUserMFAPreferenceInput, optFns ...func(*Options)) (*SetUserMFAPreferenceOutput, error) { if params == nil { params = &SetUserMFAPreferenceInput{} diff --git a/service/cognitoidentityprovider/api_op_SignUp.go b/service/cognitoidentityprovider/api_op_SignUp.go index fe429095e20..6e421a56317 100644 --- a/service/cognitoidentityprovider/api_op_SignUp.go +++ b/service/cognitoidentityprovider/api_op_SignUp.go @@ -96,8 +96,8 @@ type SignUpInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -106,8 +106,8 @@ type SignUpInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string @@ -125,7 +125,10 @@ type SignUpInput struct { Password *string // A keyed-hash message authentication code (HMAC) calculated using the secret key - // of a user pool client and username plus the client ID in the message. + // of a user pool client and username plus the client ID in the message. For more + // information about SecretHash , see [Computing secret hash values]. + // + // [Computing secret hash values]: https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash SecretHash *string // An array of name-value pairs representing user attributes. @@ -138,6 +141,10 @@ type SignUpInput struct { // address, or location. Amazon Cognito advanced security evaluates the risk of an // authentication event based on the context that your app generates and passes to // Amazon Cognito when it makes API requests. + // + // For more information, see [Collecting data for threat protection in applications]. + // + // [Collecting data for threat protection in applications]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-viewing-threat-protection-app.html UserContextData *types.UserContextDataType // Temporary user attributes that contribute to the outcomes of your pre sign-up diff --git a/service/cognitoidentityprovider/api_op_StartUserImportJob.go b/service/cognitoidentityprovider/api_op_StartUserImportJob.go index 608ff455738..2c590d1df1d 100644 --- a/service/cognitoidentityprovider/api_op_StartUserImportJob.go +++ b/service/cognitoidentityprovider/api_op_StartUserImportJob.go @@ -35,7 +35,7 @@ type StartUserImportJobInput struct { // This member is required. JobId *string - // The user pool ID for the user pool that the users are being imported into. + // The ID of the user pool that the users are being imported into. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_StopUserImportJob.go b/service/cognitoidentityprovider/api_op_StopUserImportJob.go index cf76f88b416..f310bf8eeef 100644 --- a/service/cognitoidentityprovider/api_op_StopUserImportJob.go +++ b/service/cognitoidentityprovider/api_op_StopUserImportJob.go @@ -35,7 +35,7 @@ type StopUserImportJobInput struct { // This member is required. JobId *string - // The user pool ID for the user pool that the users are being imported into. + // The ID of the user pool that the users are being imported into. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_UpdateGroup.go b/service/cognitoidentityprovider/api_op_UpdateGroup.go index 220b8dc5556..92dbf90bd59 100644 --- a/service/cognitoidentityprovider/api_op_UpdateGroup.go +++ b/service/cognitoidentityprovider/api_op_UpdateGroup.go @@ -48,7 +48,7 @@ type UpdateGroupInput struct { // This member is required. GroupName *string - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_UpdateManagedLoginBranding.go b/service/cognitoidentityprovider/api_op_UpdateManagedLoginBranding.go index e1bddb6f8f3..5b28d76221b 100644 --- a/service/cognitoidentityprovider/api_op_UpdateManagedLoginBranding.go +++ b/service/cognitoidentityprovider/api_op_UpdateManagedLoginBranding.go @@ -25,7 +25,9 @@ import ( // larger than 2MB, separate it into multiple requests, each with a size smaller // than the limit. // -// For more information, see [API and SDK operations for managed login branding]. +// As a best practice, modify the output of [DescribeManagedLoginBrandingByClient] into the request parameters for this +// operation. To get all settings, set ReturnMergedResources to true . For more +// information, see [API and SDK operations for managed login branding] // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -39,6 +41,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html +// [DescribeManagedLoginBrandingByClient]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeManagedLoginBrandingByClient.html // [API and SDK operations for managed login branding]: https://docs.aws.amazon.com/cognito/latest/developerguide/managed-login-brandingdesigner.html#branding-designer-api // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) UpdateManagedLoginBranding(ctx context.Context, params *UpdateManagedLoginBrandingInput, optFns ...func(*Options)) (*UpdateManagedLoginBrandingOutput, error) { diff --git a/service/cognitoidentityprovider/api_op_UpdateResourceServer.go b/service/cognitoidentityprovider/api_op_UpdateResourceServer.go index 0291a768a4e..ebc258c3691 100644 --- a/service/cognitoidentityprovider/api_op_UpdateResourceServer.go +++ b/service/cognitoidentityprovider/api_op_UpdateResourceServer.go @@ -61,7 +61,7 @@ type UpdateResourceServerInput struct { // This member is required. Name *string - // The user pool ID for the user pool. + // The ID of the user pool. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_UpdateUserAttributes.go b/service/cognitoidentityprovider/api_op_UpdateUserAttributes.go index bafb6425b49..90c20167d09 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserAttributes.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserAttributes.go @@ -98,8 +98,8 @@ type UpdateUserAttributesInput struct { // // For more information, see [Customizing user pool Workflows with Lambda Triggers] in the Amazon Cognito Developer Guide. // - // When you use the ClientMetadata parameter, remember that Amazon Cognito won't - // do the following: + // When you use the ClientMetadata parameter, note that Amazon Cognito won't do + // the following: // // - Store the ClientMetadata value. This data is available only to Lambda // triggers that are assigned to a user pool to support custom workflows. If your @@ -108,8 +108,8 @@ type UpdateUserAttributesInput struct { // // - Validate the ClientMetadata value. // - // - Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide - // sensitive information. + // - Encrypt the ClientMetadata value. Don't send sensitive information in this + // parameter. // // [Customizing user pool Workflows with Lambda Triggers]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html ClientMetadata map[string]string diff --git a/service/cognitoidentityprovider/api_op_UpdateUserPool.go b/service/cognitoidentityprovider/api_op_UpdateUserPool.go index d6a901e01b6..90d63a698a1 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserPool.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserPool.go @@ -67,7 +67,7 @@ func (c *Client) UpdateUserPool(ctx context.Context, params *UpdateUserPoolInput // Represents the request to update the user pool. type UpdateUserPoolInput struct { - // The user pool ID for the user pool you want to update. + // The ID of the user pool you want to update. // // This member is required. UserPoolId *string diff --git a/service/cognitoidentityprovider/api_op_UpdateUserPoolClient.go b/service/cognitoidentityprovider/api_op_UpdateUserPoolClient.go index ff9624e42e3..c243d5053b0 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserPoolClient.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserPoolClient.go @@ -58,8 +58,7 @@ type UpdateUserPoolClientInput struct { // This member is required. ClientId *string - // The user pool ID for the user pool where you want to update the user pool - // client. + // The ID of the user pool where you want to update the user pool client. // // This member is required. UserPoolId *string @@ -312,13 +311,13 @@ type UpdateUserPoolClientInput struct { // configured for the SAML and OIDC IdPs in your user pool, for example MySAMLIdP // or MyOIDCIdP . // - // This setting applies to providers that you can access with the [hosted UI and OAuth 2.0 authorization server]. The removal of + // This setting applies to providers that you can access with [managed login]. The removal of // COGNITO from this list doesn't prevent authentication operations for local users // with the user pools API in an Amazon Web Services SDK. The only way to prevent // API-based authentication is to block access with a [WAF rule]. // // [WAF rule]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html - // [hosted UI and OAuth 2.0 authorization server]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-integration.html + // [managed login]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html SupportedIdentityProviders []string // The time units you use when you set the duration of ID, access, and refresh diff --git a/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go b/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go index 4b2e90c9a95..d890cf2ac32 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserPoolDomain.go @@ -11,34 +11,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the Secure Sockets Layer (SSL) certificate for the custom domain for -// your user pool. +// A user pool domain hosts managed login, an authorization server and web server +// for authentication in your application. This operation updates the branding +// version for user pool domains between 1 for hosted UI (classic) and 2 for +// managed login. It also updates the SSL certificate for user pool custom domains. // -// You can use this operation to provide the Amazon Resource Name (ARN) of a new -// certificate to Amazon Cognito. You can't use it to change the domain for a user -// pool. +// Changes to the domain branding version take up to one minute to take effect for +// a prefix domain and up to five minutes for a custom domain. // -// A custom domain is used to host the Amazon Cognito hosted UI, which provides -// sign-up and sign-in pages for your application. When you set up a custom domain, -// you provide a certificate that you manage with Certificate Manager (ACM). When -// necessary, you can use this operation to change the certificate that you applied -// to your custom domain. +// This operation doesn't change the name of your user pool domain. To change your +// domain, delete it with DeleteUserPoolDomain and create a new domain with +// CreateUserPoolDomain . // -// Usually, this is unnecessary following routine certificate renewal with ACM. -// When you renew your existing certificate in ACM, the ARN for your certificate -// remains the same, and your custom domain uses the new certificate automatically. +// You can pass the ARN of a new Certificate Manager certificate in this request. +// Typically, ACM certificates automatically renew and you user pool can continue +// to use the same ARN. But if you generate a new certificate for your custom +// domain name, replace the original configuration with the new ARN in this +// request. // -// However, if you replace your existing certificate with a new one, ACM gives the -// new certificate a new ARN. To apply the new certificate to your custom domain, -// you must provide this ARN to Amazon Cognito. +// ACM certificates for custom domains must be in the US East (N. Virginia) Amazon +// Web Services Region. After you submit your request, Amazon Cognito requires up +// to 1 hour to distribute your new certificate to your custom domain. // -// When you add your new certificate in ACM, you must choose US East (N. Virginia) -// as the Amazon Web Services Region. -// -// After you submit your request, Amazon Cognito requires up to 1 hour to -// distribute your new certificate to your custom domain. -// -// For more information about adding a custom domain to your user pool, see [Using Your Own Domain for the Hosted UI]. +// For more information about adding a custom domain to your user pool, see [Configuring a user pool domain]. // // Amazon Cognito evaluates Identity and Access Management (IAM) policies in // requests for this API operation. For this operation, you must use IAM @@ -52,7 +47,7 @@ import ( // [Using the Amazon Cognito user pools API and user pool endpoints] // // [Using the Amazon Cognito user pools API and user pool endpoints]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html -// [Using Your Own Domain for the Hosted UI]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html +// [Configuring a user pool domain]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html // [Signing Amazon Web Services API Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html func (c *Client) UpdateUserPoolDomain(ctx context.Context, params *UpdateUserPoolDomainInput, optFns ...func(*Options)) (*UpdateUserPoolDomainOutput, error) { if params == nil { diff --git a/service/cognitoidentityprovider/doc.go b/service/cognitoidentityprovider/doc.go index 9b17b07b657..2bce431ee5a 100644 --- a/service/cognitoidentityprovider/doc.go +++ b/service/cognitoidentityprovider/doc.go @@ -50,6 +50,8 @@ // // [Amazon Web Services SDK for Ruby V3] // +// [Amazon Web Services SDK for Kotlin] +// // To get started with an Amazon Web Services SDK, see [Tools to Build on Amazon Web Services]. For example actions and // scenarios, see [Code examples for Amazon Cognito Identity Provider using Amazon Web Services SDKs]. // @@ -69,4 +71,5 @@ // [Amazon Web Services Command Line Interface]: https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/index.html#cli-aws-cognito-idp // [Amazon Web Services SDK for Go]: https://docs.aws.amazon.com/sdk-for-go/api/service/cognitoidentityprovider/#CognitoIdentityProvider // [Amazon Web Services SDK for JavaScript]: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html +// [Amazon Web Services SDK for Kotlin]: https://sdk.amazonaws.com/kotlin/api/latest/cognitoidentityprovider/aws.sdk.kotlin.services.cognitoidentityprovider/-cognito-identity-provider-client/index.html package cognitoidentityprovider diff --git a/service/cognitoidentityprovider/types/types.go b/service/cognitoidentityprovider/types/types.go index eaa75968c7c..e7d3142731a 100644 --- a/service/cognitoidentityprovider/types/types.go +++ b/service/cognitoidentityprovider/types/types.go @@ -964,14 +964,15 @@ type EmailConfigurationType struct { // [GetUserPoolMfaConfig]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserPoolMfaConfig.html type EmailMfaConfigType struct { - // The template for the email message that your user pool sends to users with an - // MFA code. The message must contain the {####} placeholder. In the message, - // Amazon Cognito replaces this placeholder with the code. If you don't provide - // this parameter, Amazon Cognito sends messages in the default format. + // The template for the email message that your user pool sends to users with a + // code for MFA and sign-in with an email OTP. The message must contain the {####} + // placeholder. In the message, Amazon Cognito replaces this placeholder with the + // code. If you don't provide this parameter, Amazon Cognito sends messages in the + // default format. Message *string - // The subject of the email message that your user pool sends to users with an MFA - // code. + // The subject of the email message that your user pool sends to users with a code + // for MFA and email OTP sign-in. Subject *string noSmithyDocumentSerde @@ -1508,8 +1509,12 @@ type ManagedLoginBrandingType struct { // apply to your style. Settings document.Interface - // When true, applies the default branding style options. This option reverts to a - // "blank" style that you can modify later in the branding designer. + // When true, applies the default branding style options. This option reverts to + // default style options that are managed by Amazon Cognito. You can modify them + // later in the branding designer. + // + // When you specify true for this option, you must also omit values for Settings + // and Assets in the request. UseCognitoProvidedValues bool // The user pool where the branding style is assigned. @@ -2792,13 +2797,13 @@ type UserPoolClientType struct { // configured for the SAML and OIDC IdPs in your user pool, for example MySAMLIdP // or MyOIDCIdP . // - // This setting applies to providers that you can access with the [hosted UI and OAuth 2.0 authorization server]. The removal of + // This setting applies to providers that you can access with [managed login]. The removal of // COGNITO from this list doesn't prevent authentication operations for local users // with the user pools API in an Amazon Web Services SDK. The only way to prevent // API-based authentication is to block access with a [WAF rule]. // // [WAF rule]: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-waf.html - // [hosted UI and OAuth 2.0 authorization server]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-integration.html + // [managed login]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html SupportedIdentityProviders []string // The time units that, with IdTokenValidity , AccessTokenValidity , and @@ -3257,10 +3262,11 @@ type WebAuthnConfigurationType struct { // hosted UI. RelyingPartyId *string - // Sets or displays your user-pool treatment for MFA with a passkey. You can - // override other MFA options and require passkey MFA, or you can set it as - // preferred. When passkey MFA is preferred, the hosted UI encourages users to - // register a passkey at sign-in. + // When required , users can only register and sign in users with passkeys that are + // capable of [user verification]. When preferred , your user pool doesn't require the use of + // authenticators with user verification but encourages it. + // + // [user verification]: https://www.w3.org/TR/webauthn-2/#enum-userVerificationRequirement UserVerification UserVerificationType noSmithyDocumentSerde diff --git a/service/controlcatalog/types/types.go b/service/controlcatalog/types/types.go index 953ce4cb0ce..9022110814c 100644 --- a/service/controlcatalog/types/types.go +++ b/service/controlcatalog/types/types.go @@ -203,8 +203,7 @@ type DomainSummary struct { // 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. +// Amazon Web Services CloudFormation values. type ImplementationDetails struct { // A string that describes a control's implementation type. diff --git a/service/dlm/internal/endpoints/endpoints.go b/service/dlm/internal/endpoints/endpoints.go index 911295d266b..8573bdce5bd 100644 --- a/service/dlm/internal/endpoints/endpoints.go +++ b/service/dlm/internal/endpoints/endpoints.go @@ -250,6 +250,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.ca-central-1.api.aws", + }, endpoints.EndpointKey{ Region: "ca-central-1", Variant: endpoints.DualStackVariant, @@ -259,6 +265,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ca-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.ca-west-1.api.aws", + }, endpoints.EndpointKey{ Region: "ca-west-1", Variant: endpoints.DualStackVariant, @@ -376,6 +388,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-east-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-east-1", Variant: endpoints.DualStackVariant, @@ -385,6 +403,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-east-2.api.aws", + }, endpoints.EndpointKey{ Region: "us-east-2", Variant: endpoints.DualStackVariant, @@ -394,6 +418,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-west-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-west-1", Variant: endpoints.DualStackVariant, @@ -403,6 +433,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-west-2.api.aws", + }, endpoints.EndpointKey{ Region: "us-west-2", Variant: endpoints.DualStackVariant, @@ -478,9 +514,21 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-iso-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-iso-east-1.api.aws.ic.gov", + }, endpoints.EndpointKey{ Region: "us-iso-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-iso-west-1.api.aws.ic.gov", + }, }, }, { @@ -507,6 +555,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-isob-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-isob-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-isob-east-1.api.aws.scloud", + }, }, }, { @@ -589,6 +643,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-gov-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-gov-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-gov-east-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-gov-east-1", Variant: endpoints.FIPSVariant, @@ -607,6 +667,12 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-gov-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-gov-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "dlm-fips.us-gov-west-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-gov-west-1", Variant: endpoints.FIPSVariant, diff --git a/service/dynamodbstreams/internal/endpoints/endpoints.go b/service/dynamodbstreams/internal/endpoints/endpoints.go index a257ad98ea9..e53418846e1 100644 --- a/service/dynamodbstreams/internal/endpoints/endpoints.go +++ b/service/dynamodbstreams/internal/endpoints/endpoints.go @@ -190,41 +190,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "ca-central-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.ca-central-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "ca-central-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.ca-central-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "ca-central-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "ca-west-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "ca-west-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.ca-west-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "ca-west-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.ca-west-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "ca-west-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, @@ -273,79 +241,15 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-east-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-east-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-east-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-east-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-east-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-east-2", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-east-2.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-east-2-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-east-2.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-east-2", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "us-west-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-west-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-west-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-west-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-west-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-west-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-west-2", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-west-2.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-west-2-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-west-2.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-west-2", - }, - Deprecated: aws.TrueTernary, - }, }, }, { @@ -433,41 +337,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-iso-east-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-iso-east-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-iso-east-1.c2s.ic.gov", - }, - endpoints.EndpointKey{ - Region: "us-iso-east-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-iso-east-1.c2s.ic.gov", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-iso-east-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "us-iso-west-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-iso-west-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-iso-west-1.c2s.ic.gov", - }, - endpoints.EndpointKey{ - Region: "us-iso-west-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-iso-west-1.c2s.ic.gov", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-iso-west-1", - }, - Deprecated: aws.TrueTernary, - }, }, }, { @@ -500,22 +372,6 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-isob-east-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-isob-east-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-isob-east-1.sc2s.sgov.gov", - }, - endpoints.EndpointKey{ - Region: "us-isob-east-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-isob-east-1.sc2s.sgov.gov", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-isob-east-1", - }, - Deprecated: aws.TrueTernary, - }, }, }, { @@ -610,41 +466,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-gov-east-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-gov-east-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-gov-east-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-gov-east-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-gov-east-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-gov-east-1", - }, - Deprecated: aws.TrueTernary, - }, endpoints.EndpointKey{ Region: "us-gov-west-1", }: endpoints.Endpoint{}, - endpoints.EndpointKey{ - Region: "us-gov-west-1", - Variant: endpoints.FIPSVariant, - }: { - Hostname: "streams.dynamodb-fips.us-gov-west-1.amazonaws.com", - }, - endpoints.EndpointKey{ - Region: "us-gov-west-1-fips", - }: endpoints.Endpoint{ - Hostname: "streams.dynamodb-fips.us-gov-west-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: endpoints.CredentialScope{ - Region: "us-gov-west-1", - }, - Deprecated: aws.TrueTernary, - }, }, }, } diff --git a/service/emrserverless/api_op_GetDashboardForJobRun.go b/service/emrserverless/api_op_GetDashboardForJobRun.go index e220b3f411c..029873a222f 100644 --- a/service/emrserverless/api_op_GetDashboardForJobRun.go +++ b/service/emrserverless/api_op_GetDashboardForJobRun.go @@ -47,6 +47,10 @@ type GetDashboardForJobRunInput struct { // This member is required. JobRunId *string + // Allows access to system profile logs for Lake Formation-enabled jobs. Default + // is false. + AccessSystemProfileLogs *bool + // An optimal parameter that indicates the amount of attempts for the job. If not // specified, this value defaults to the attempt of the latest job. Attempt *int32 diff --git a/service/emrserverless/serializers.go b/service/emrserverless/serializers.go index 2b73a023933..9d08712492d 100644 --- a/service/emrserverless/serializers.go +++ b/service/emrserverless/serializers.go @@ -482,6 +482,10 @@ func awsRestjson1_serializeOpHttpBindingsGetDashboardForJobRunInput(v *GetDashbo return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AccessSystemProfileLogs != nil { + encoder.SetQuery("accessSystemProfileLogs").Boolean(*v.AccessSystemProfileLogs) + } + if v.ApplicationId == nil || len(*v.ApplicationId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member applicationId must not be empty")} } diff --git a/service/migrationhub/api_op_AssociateSourceResource.go b/service/migrationhub/api_op_AssociateSourceResource.go new file mode 100644 index 00000000000..b5b986d145f --- /dev/null +++ b/service/migrationhub/api_op_AssociateSourceResource.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package migrationhub + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/migrationhub/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Associates a source resource with a migration task. For example, the source +// resource can be a source server, an application, or a migration wave. +func (c *Client) AssociateSourceResource(ctx context.Context, params *AssociateSourceResourceInput, optFns ...func(*Options)) (*AssociateSourceResourceOutput, error) { + if params == nil { + params = &AssociateSourceResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateSourceResource", params, optFns, c.addOperationAssociateSourceResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateSourceResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateSourceResourceInput struct { + + // A unique identifier that references the migration task. Do not include + // sensitive data in this field. + // + // This member is required. + MigrationTaskName *string + + // The name of the progress-update stream, which is used for access control as + // well as a namespace for migration-task names that is implicitly linked to your + // AWS account. The progress-update stream must uniquely identify the migration + // tool as it is used for all updates made by the tool; however, it does not need + // to be unique for each AWS account because it is scoped to the AWS account. + // + // This member is required. + ProgressUpdateStream *string + + // The source resource that you want to associate. + // + // This member is required. + SourceResource *types.SourceResource + + // This is an optional parameter that you can use to test whether the call will + // succeed. Set this parameter to true to verify that you have the permissions + // that are required to make the call, and that you have specified the other + // parameters in the call correctly. + DryRun bool + + noSmithyDocumentSerde +} + +type AssociateSourceResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateSourceResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpAssociateSourceResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpAssociateSourceResource{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AssociateSourceResource"); 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 = addOpAssociateSourceResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateSourceResource(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_opAssociateSourceResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AssociateSourceResource", + } +} diff --git a/service/migrationhub/api_op_DisassociateSourceResource.go b/service/migrationhub/api_op_DisassociateSourceResource.go new file mode 100644 index 00000000000..16acb520033 --- /dev/null +++ b/service/migrationhub/api_op_DisassociateSourceResource.go @@ -0,0 +1,173 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package migrationhub + +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 the association between a source resource and a migration task. +func (c *Client) DisassociateSourceResource(ctx context.Context, params *DisassociateSourceResourceInput, optFns ...func(*Options)) (*DisassociateSourceResourceOutput, error) { + if params == nil { + params = &DisassociateSourceResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisassociateSourceResource", params, optFns, c.addOperationDisassociateSourceResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisassociateSourceResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisassociateSourceResourceInput struct { + + // A unique identifier that references the migration task. Do not include + // sensitive data in this field. + // + // This member is required. + MigrationTaskName *string + + // The name of the progress-update stream, which is used for access control as + // well as a namespace for migration-task names that is implicitly linked to your + // AWS account. The progress-update stream must uniquely identify the migration + // tool as it is used for all updates made by the tool; however, it does not need + // to be unique for each AWS account because it is scoped to the AWS account. + // + // This member is required. + ProgressUpdateStream *string + + // The name that was specified for the source resource. + // + // This member is required. + SourceResourceName *string + + // This is an optional parameter that you can use to test whether the call will + // succeed. Set this parameter to true to verify that you have the permissions + // that are required to make the call, and that you have specified the other + // parameters in the call correctly. + DryRun bool + + noSmithyDocumentSerde +} + +type DisassociateSourceResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisassociateSourceResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDisassociateSourceResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDisassociateSourceResource{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DisassociateSourceResource"); 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 = addOpDisassociateSourceResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisassociateSourceResource(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_opDisassociateSourceResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DisassociateSourceResource", + } +} diff --git a/service/migrationhub/api_op_ListMigrationTaskUpdates.go b/service/migrationhub/api_op_ListMigrationTaskUpdates.go new file mode 100644 index 00000000000..f25ca06703f --- /dev/null +++ b/service/migrationhub/api_op_ListMigrationTaskUpdates.go @@ -0,0 +1,286 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package migrationhub + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/migrationhub/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// This is a paginated API that returns all the migration-task states for the +// specified MigrationTaskName and ProgressUpdateStream . +func (c *Client) ListMigrationTaskUpdates(ctx context.Context, params *ListMigrationTaskUpdatesInput, optFns ...func(*Options)) (*ListMigrationTaskUpdatesOutput, error) { + if params == nil { + params = &ListMigrationTaskUpdatesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListMigrationTaskUpdates", params, optFns, c.addOperationListMigrationTaskUpdatesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListMigrationTaskUpdatesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListMigrationTaskUpdatesInput struct { + + // A unique identifier that references the migration task. Do not include + // sensitive data in this field. + // + // This member is required. + MigrationTaskName *string + + // The name of the progress-update stream, which is used for access control as + // well as a namespace for migration-task names that is implicitly linked to your + // AWS account. The progress-update stream must uniquely identify the migration + // tool as it is used for all updates made by the tool; however, it does not need + // to be unique for each AWS account because it is scoped to the AWS account. + // + // This member is required. + ProgressUpdateStream *string + + // The maximum number of results to include in the response. If more results exist + // than the value that you specify here for MaxResults , the response will include + // a token that you can use to retrieve the next set of results. + MaxResults *int32 + + // If NextToken was returned by a previous call, there are more results available. + // The value of NextToken is a unique pagination token for each page. To retrieve + // the next page of results, specify the NextToken value that the previous call + // returned. Keep all other arguments unchanged. Each pagination token expires + // after 24 hours. Using an expired pagination token will return an HTTP 400 + // InvalidToken error. + NextToken *string + + noSmithyDocumentSerde +} + +type ListMigrationTaskUpdatesOutput struct { + + // The list of migration-task updates. + MigrationTaskUpdateList []types.MigrationTaskUpdate + + // If the response includes a NextToken value, that means that there are more + // results available. The value of NextToken is a unique pagination token for each + // page. To retrieve the next page of results, call this API again and specify this + // NextToken value in the request. Keep all other arguments unchanged. Each + // pagination token expires after 24 hours. Using an expired pagination token will + // return an HTTP 400 InvalidToken error. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListMigrationTaskUpdatesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListMigrationTaskUpdates{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListMigrationTaskUpdates{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListMigrationTaskUpdates"); 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 = addOpListMigrationTaskUpdatesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListMigrationTaskUpdates(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 +} + +// ListMigrationTaskUpdatesPaginatorOptions is the paginator options for +// ListMigrationTaskUpdates +type ListMigrationTaskUpdatesPaginatorOptions struct { + // The maximum number of results to include in the response. If more results exist + // than the value that you specify here for MaxResults , the response will include + // a token that you can use to retrieve the next set of results. + 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 +} + +// ListMigrationTaskUpdatesPaginator is a paginator for ListMigrationTaskUpdates +type ListMigrationTaskUpdatesPaginator struct { + options ListMigrationTaskUpdatesPaginatorOptions + client ListMigrationTaskUpdatesAPIClient + params *ListMigrationTaskUpdatesInput + nextToken *string + firstPage bool +} + +// NewListMigrationTaskUpdatesPaginator returns a new +// ListMigrationTaskUpdatesPaginator +func NewListMigrationTaskUpdatesPaginator(client ListMigrationTaskUpdatesAPIClient, params *ListMigrationTaskUpdatesInput, optFns ...func(*ListMigrationTaskUpdatesPaginatorOptions)) *ListMigrationTaskUpdatesPaginator { + if params == nil { + params = &ListMigrationTaskUpdatesInput{} + } + + options := ListMigrationTaskUpdatesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListMigrationTaskUpdatesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListMigrationTaskUpdatesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListMigrationTaskUpdates page. +func (p *ListMigrationTaskUpdatesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListMigrationTaskUpdatesOutput, 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.ListMigrationTaskUpdates(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 +} + +// ListMigrationTaskUpdatesAPIClient is a client that implements the +// ListMigrationTaskUpdates operation. +type ListMigrationTaskUpdatesAPIClient interface { + ListMigrationTaskUpdates(context.Context, *ListMigrationTaskUpdatesInput, ...func(*Options)) (*ListMigrationTaskUpdatesOutput, error) +} + +var _ ListMigrationTaskUpdatesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListMigrationTaskUpdates(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListMigrationTaskUpdates", + } +} diff --git a/service/migrationhub/api_op_ListSourceResources.go b/service/migrationhub/api_op_ListSourceResources.go new file mode 100644 index 00000000000..d3808b5ced9 --- /dev/null +++ b/service/migrationhub/api_op_ListSourceResources.go @@ -0,0 +1,285 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package migrationhub + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/migrationhub/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all the source resource that are associated with the specified +// MigrationTaskName and ProgressUpdateStream . +func (c *Client) ListSourceResources(ctx context.Context, params *ListSourceResourcesInput, optFns ...func(*Options)) (*ListSourceResourcesOutput, error) { + if params == nil { + params = &ListSourceResourcesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListSourceResources", params, optFns, c.addOperationListSourceResourcesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListSourceResourcesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListSourceResourcesInput struct { + + // A unique identifier that references the migration task. Do not store + // confidential data in this field. + // + // This member is required. + MigrationTaskName *string + + // The name of the progress-update stream, which is used for access control as + // well as a namespace for migration-task names that is implicitly linked to your + // AWS account. The progress-update stream must uniquely identify the migration + // tool as it is used for all updates made by the tool; however, it does not need + // to be unique for each AWS account because it is scoped to the AWS account. + // + // This member is required. + ProgressUpdateStream *string + + // The maximum number of results to include in the response. If more results exist + // than the value that you specify here for MaxResults , the response will include + // a token that you can use to retrieve the next set of results. + MaxResults *int32 + + // If NextToken was returned by a previous call, there are more results available. + // The value of NextToken is a unique pagination token for each page. To retrieve + // the next page of results, specify the NextToken value that the previous call + // returned. Keep all other arguments unchanged. Each pagination token expires + // after 24 hours. Using an expired pagination token will return an HTTP 400 + // InvalidToken error. + NextToken *string + + noSmithyDocumentSerde +} + +type ListSourceResourcesOutput struct { + + // If the response includes a NextToken value, that means that there are more + // results available. The value of NextToken is a unique pagination token for each + // page. To retrieve the next page of results, call this API again and specify this + // NextToken value in the request. Keep all other arguments unchanged. Each + // pagination token expires after 24 hours. Using an expired pagination token will + // return an HTTP 400 InvalidToken error. + NextToken *string + + // The list of source resources. + SourceResourceList []types.SourceResource + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListSourceResourcesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListSourceResources{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListSourceResources{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListSourceResources"); 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 = addOpListSourceResourcesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListSourceResources(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 +} + +// ListSourceResourcesPaginatorOptions is the paginator options for +// ListSourceResources +type ListSourceResourcesPaginatorOptions struct { + // The maximum number of results to include in the response. If more results exist + // than the value that you specify here for MaxResults , the response will include + // a token that you can use to retrieve the next set of results. + 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 +} + +// ListSourceResourcesPaginator is a paginator for ListSourceResources +type ListSourceResourcesPaginator struct { + options ListSourceResourcesPaginatorOptions + client ListSourceResourcesAPIClient + params *ListSourceResourcesInput + nextToken *string + firstPage bool +} + +// NewListSourceResourcesPaginator returns a new ListSourceResourcesPaginator +func NewListSourceResourcesPaginator(client ListSourceResourcesAPIClient, params *ListSourceResourcesInput, optFns ...func(*ListSourceResourcesPaginatorOptions)) *ListSourceResourcesPaginator { + if params == nil { + params = &ListSourceResourcesInput{} + } + + options := ListSourceResourcesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListSourceResourcesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListSourceResourcesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListSourceResources page. +func (p *ListSourceResourcesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListSourceResourcesOutput, 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.ListSourceResources(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 +} + +// ListSourceResourcesAPIClient is a client that implements the +// ListSourceResources operation. +type ListSourceResourcesAPIClient interface { + ListSourceResources(context.Context, *ListSourceResourcesInput, ...func(*Options)) (*ListSourceResourcesOutput, error) +} + +var _ ListSourceResourcesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListSourceResources(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListSourceResources", + } +} diff --git a/service/migrationhub/deserializers.go b/service/migrationhub/deserializers.go index 8156e756286..ed933cf8af7 100644 --- a/service/migrationhub/deserializers.go +++ b/service/migrationhub/deserializers.go @@ -302,14 +302,14 @@ func awsAwsjson11_deserializeOpErrorAssociateDiscoveredResource(response *smithy } } -type awsAwsjson11_deserializeOpCreateProgressUpdateStream struct { +type awsAwsjson11_deserializeOpAssociateSourceResource struct { } -func (*awsAwsjson11_deserializeOpCreateProgressUpdateStream) ID() string { +func (*awsAwsjson11_deserializeOpAssociateSourceResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateProgressUpdateStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpAssociateSourceResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -327,9 +327,9 @@ func (m *awsAwsjson11_deserializeOpCreateProgressUpdateStream) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorAssociateSourceResource(response, &metadata) } - output := &CreateProgressUpdateStreamOutput{} + output := &AssociateSourceResourceOutput{} out.Result = output var buff [1024]byte @@ -349,7 +349,7 @@ func (m *awsAwsjson11_deserializeOpCreateProgressUpdateStream) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateProgressUpdateStreamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentAssociateSourceResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -363,7 +363,7 @@ func (m *awsAwsjson11_deserializeOpCreateProgressUpdateStream) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorAssociateSourceResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -406,15 +406,15 @@ func awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response *smithyh case strings.EqualFold("DryRunOperation", errorCode): return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) - case strings.EqualFold("HomeRegionNotSetException", errorCode): - return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) - case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -434,14 +434,14 @@ func awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response *smithyh } } -type awsAwsjson11_deserializeOpDeleteProgressUpdateStream struct { +type awsAwsjson11_deserializeOpCreateProgressUpdateStream struct { } -func (*awsAwsjson11_deserializeOpDeleteProgressUpdateStream) ID() string { +func (*awsAwsjson11_deserializeOpCreateProgressUpdateStream) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteProgressUpdateStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateProgressUpdateStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -459,9 +459,9 @@ func (m *awsAwsjson11_deserializeOpDeleteProgressUpdateStream) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response, &metadata) } - output := &DeleteProgressUpdateStreamOutput{} + output := &CreateProgressUpdateStreamOutput{} out.Result = output var buff [1024]byte @@ -481,7 +481,7 @@ func (m *awsAwsjson11_deserializeOpDeleteProgressUpdateStream) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteProgressUpdateStreamOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateProgressUpdateStreamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -495,7 +495,7 @@ func (m *awsAwsjson11_deserializeOpDeleteProgressUpdateStream) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateProgressUpdateStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -547,9 +547,6 @@ func awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response *smithyh case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -569,14 +566,14 @@ func awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response *smithyh } } -type awsAwsjson11_deserializeOpDescribeApplicationState struct { +type awsAwsjson11_deserializeOpDeleteProgressUpdateStream struct { } -func (*awsAwsjson11_deserializeOpDescribeApplicationState) ID() string { +func (*awsAwsjson11_deserializeOpDeleteProgressUpdateStream) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeApplicationState) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteProgressUpdateStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -594,9 +591,9 @@ func (m *awsAwsjson11_deserializeOpDescribeApplicationState) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeApplicationState(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response, &metadata) } - output := &DescribeApplicationStateOutput{} + output := &DeleteProgressUpdateStreamOutput{} out.Result = output var buff [1024]byte @@ -616,7 +613,7 @@ func (m *awsAwsjson11_deserializeOpDescribeApplicationState) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeApplicationStateOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteProgressUpdateStreamOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -630,7 +627,7 @@ func (m *awsAwsjson11_deserializeOpDescribeApplicationState) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteProgressUpdateStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -670,6 +667,9 @@ func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhtt case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("DryRunOperation", errorCode): + return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) + case strings.EqualFold("HomeRegionNotSetException", errorCode): return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) @@ -679,9 +679,6 @@ func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhtt case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) - case strings.EqualFold("PolicyErrorException", errorCode): - return awsAwsjson11_deserializeErrorPolicyErrorException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -691,6 +688,9 @@ func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhtt case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -701,14 +701,14 @@ func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhtt } } -type awsAwsjson11_deserializeOpDescribeMigrationTask struct { +type awsAwsjson11_deserializeOpDescribeApplicationState struct { } -func (*awsAwsjson11_deserializeOpDescribeMigrationTask) ID() string { +func (*awsAwsjson11_deserializeOpDescribeApplicationState) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeMigrationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeApplicationState) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -726,9 +726,9 @@ func (m *awsAwsjson11_deserializeOpDescribeMigrationTask) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeApplicationState(response, &metadata) } - output := &DescribeMigrationTaskOutput{} + output := &DescribeApplicationStateOutput{} out.Result = output var buff [1024]byte @@ -748,7 +748,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMigrationTask) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeMigrationTaskOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeApplicationStateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -762,7 +762,7 @@ func (m *awsAwsjson11_deserializeOpDescribeMigrationTask) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeApplicationState(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -811,6 +811,9 @@ func awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response *smithyhttp.R case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + case strings.EqualFold("PolicyErrorException", errorCode): + return awsAwsjson11_deserializeErrorPolicyErrorException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -830,14 +833,14 @@ func awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpDisassociateCreatedArtifact struct { +type awsAwsjson11_deserializeOpDescribeMigrationTask struct { } -func (*awsAwsjson11_deserializeOpDisassociateCreatedArtifact) ID() string { +func (*awsAwsjson11_deserializeOpDescribeMigrationTask) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDisassociateCreatedArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeMigrationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -855,9 +858,9 @@ func (m *awsAwsjson11_deserializeOpDisassociateCreatedArtifact) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response, &metadata) } - output := &DisassociateCreatedArtifactOutput{} + output := &DescribeMigrationTaskOutput{} out.Result = output var buff [1024]byte @@ -877,7 +880,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateCreatedArtifact) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDisassociateCreatedArtifactOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeMigrationTaskOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -891,7 +894,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateCreatedArtifact) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeMigrationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -931,9 +934,6 @@ func awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response *smithy case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("DryRunOperation", errorCode): - return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) - case strings.EqualFold("HomeRegionNotSetException", errorCode): return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) @@ -952,9 +952,6 @@ func awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response *smithy case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedOperation", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -965,14 +962,14 @@ func awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response *smithy } } -type awsAwsjson11_deserializeOpDisassociateDiscoveredResource struct { +type awsAwsjson11_deserializeOpDisassociateCreatedArtifact struct { } -func (*awsAwsjson11_deserializeOpDisassociateDiscoveredResource) ID() string { +func (*awsAwsjson11_deserializeOpDisassociateCreatedArtifact) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDisassociateDiscoveredResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDisassociateCreatedArtifact) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -990,9 +987,9 @@ func (m *awsAwsjson11_deserializeOpDisassociateDiscoveredResource) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateDiscoveredResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response, &metadata) } - output := &DisassociateDiscoveredResourceOutput{} + output := &DisassociateCreatedArtifactOutput{} out.Result = output var buff [1024]byte @@ -1012,7 +1009,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateDiscoveredResource) HandleDeseria return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDisassociateDiscoveredResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDisassociateCreatedArtifactOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1026,7 +1023,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateDiscoveredResource) HandleDeseria return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDisassociateDiscoveredResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDisassociateCreatedArtifact(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1100,14 +1097,14 @@ func awsAwsjson11_deserializeOpErrorDisassociateDiscoveredResource(response *smi } } -type awsAwsjson11_deserializeOpImportMigrationTask struct { +type awsAwsjson11_deserializeOpDisassociateDiscoveredResource struct { } -func (*awsAwsjson11_deserializeOpImportMigrationTask) ID() string { +func (*awsAwsjson11_deserializeOpDisassociateDiscoveredResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpImportMigrationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDisassociateDiscoveredResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1125,9 +1122,9 @@ func (m *awsAwsjson11_deserializeOpImportMigrationTask) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorImportMigrationTask(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateDiscoveredResource(response, &metadata) } - output := &ImportMigrationTaskOutput{} + output := &DisassociateDiscoveredResourceOutput{} out.Result = output var buff [1024]byte @@ -1147,7 +1144,7 @@ func (m *awsAwsjson11_deserializeOpImportMigrationTask) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentImportMigrationTaskOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDisassociateDiscoveredResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1161,7 +1158,7 @@ func (m *awsAwsjson11_deserializeOpImportMigrationTask) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorImportMigrationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDisassociateDiscoveredResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1235,14 +1232,14 @@ func awsAwsjson11_deserializeOpErrorImportMigrationTask(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListApplicationStates struct { +type awsAwsjson11_deserializeOpDisassociateSourceResource struct { } -func (*awsAwsjson11_deserializeOpListApplicationStates) ID() string { +func (*awsAwsjson11_deserializeOpDisassociateSourceResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListApplicationStates) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDisassociateSourceResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1260,9 +1257,9 @@ func (m *awsAwsjson11_deserializeOpListApplicationStates) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListApplicationStates(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateSourceResource(response, &metadata) } - output := &ListApplicationStatesOutput{} + output := &DisassociateSourceResourceOutput{} out.Result = output var buff [1024]byte @@ -1282,7 +1279,7 @@ func (m *awsAwsjson11_deserializeOpListApplicationStates) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListApplicationStatesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDisassociateSourceResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1296,7 +1293,7 @@ func (m *awsAwsjson11_deserializeOpListApplicationStates) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListApplicationStates(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDisassociateSourceResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1336,8 +1333,8 @@ func awsAwsjson11_deserializeOpErrorListApplicationStates(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("HomeRegionNotSetException", errorCode): - return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) + case strings.EqualFold("DryRunOperation", errorCode): + return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) @@ -1345,12 +1342,18 @@ func awsAwsjson11_deserializeOpErrorListApplicationStates(response *smithyhttp.R case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1361,14 +1364,14 @@ func awsAwsjson11_deserializeOpErrorListApplicationStates(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpListCreatedArtifacts struct { +type awsAwsjson11_deserializeOpImportMigrationTask struct { } -func (*awsAwsjson11_deserializeOpListCreatedArtifacts) ID() string { +func (*awsAwsjson11_deserializeOpImportMigrationTask) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListCreatedArtifacts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpImportMigrationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1386,9 +1389,9 @@ func (m *awsAwsjson11_deserializeOpListCreatedArtifacts) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorImportMigrationTask(response, &metadata) } - output := &ListCreatedArtifactsOutput{} + output := &ImportMigrationTaskOutput{} out.Result = output var buff [1024]byte @@ -1408,7 +1411,7 @@ func (m *awsAwsjson11_deserializeOpListCreatedArtifacts) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListCreatedArtifactsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentImportMigrationTaskOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1422,7 +1425,7 @@ func (m *awsAwsjson11_deserializeOpListCreatedArtifacts) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorImportMigrationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1462,6 +1465,9 @@ func awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response *smithyhttp.Re case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("DryRunOperation", errorCode): + return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) + case strings.EqualFold("HomeRegionNotSetException", errorCode): return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) @@ -1480,6 +1486,9 @@ func awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response *smithyhttp.Re case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1490,14 +1499,14 @@ func awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListDiscoveredResources struct { +type awsAwsjson11_deserializeOpListApplicationStates struct { } -func (*awsAwsjson11_deserializeOpListDiscoveredResources) ID() string { +func (*awsAwsjson11_deserializeOpListApplicationStates) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListDiscoveredResources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListApplicationStates) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1515,9 +1524,9 @@ func (m *awsAwsjson11_deserializeOpListDiscoveredResources) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListDiscoveredResources(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListApplicationStates(response, &metadata) } - output := &ListDiscoveredResourcesOutput{} + output := &ListApplicationStatesOutput{} out.Result = output var buff [1024]byte @@ -1537,7 +1546,7 @@ func (m *awsAwsjson11_deserializeOpListDiscoveredResources) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListDiscoveredResourcesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListApplicationStatesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1551,7 +1560,7 @@ func (m *awsAwsjson11_deserializeOpListDiscoveredResources) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListDiscoveredResources(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListApplicationStates(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1600,9 +1609,6 @@ func awsAwsjson11_deserializeOpErrorListDiscoveredResources(response *smithyhttp case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -1619,14 +1625,14 @@ func awsAwsjson11_deserializeOpErrorListDiscoveredResources(response *smithyhttp } } -type awsAwsjson11_deserializeOpListMigrationTasks struct { +type awsAwsjson11_deserializeOpListCreatedArtifacts struct { } -func (*awsAwsjson11_deserializeOpListMigrationTasks) ID() string { +func (*awsAwsjson11_deserializeOpListCreatedArtifacts) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListMigrationTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListCreatedArtifacts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1644,9 +1650,9 @@ func (m *awsAwsjson11_deserializeOpListMigrationTasks) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListMigrationTasks(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response, &metadata) } - output := &ListMigrationTasksOutput{} + output := &ListCreatedArtifactsOutput{} out.Result = output var buff [1024]byte @@ -1666,7 +1672,7 @@ func (m *awsAwsjson11_deserializeOpListMigrationTasks) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListMigrationTasksOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListCreatedArtifactsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1680,7 +1686,7 @@ func (m *awsAwsjson11_deserializeOpListMigrationTasks) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListMigrationTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListCreatedArtifacts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1729,9 +1735,6 @@ func awsAwsjson11_deserializeOpErrorListMigrationTasks(response *smithyhttp.Resp case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) - case strings.EqualFold("PolicyErrorException", errorCode): - return awsAwsjson11_deserializeErrorPolicyErrorException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -1751,14 +1754,14 @@ func awsAwsjson11_deserializeOpErrorListMigrationTasks(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpListProgressUpdateStreams struct { +type awsAwsjson11_deserializeOpListDiscoveredResources struct { } -func (*awsAwsjson11_deserializeOpListProgressUpdateStreams) ID() string { +func (*awsAwsjson11_deserializeOpListDiscoveredResources) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListProgressUpdateStreams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListDiscoveredResources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1776,9 +1779,9 @@ func (m *awsAwsjson11_deserializeOpListProgressUpdateStreams) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListDiscoveredResources(response, &metadata) } - output := &ListProgressUpdateStreamsOutput{} + output := &ListDiscoveredResourcesOutput{} out.Result = output var buff [1024]byte @@ -1798,7 +1801,7 @@ func (m *awsAwsjson11_deserializeOpListProgressUpdateStreams) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListProgressUpdateStreamsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListDiscoveredResourcesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1812,7 +1815,7 @@ func (m *awsAwsjson11_deserializeOpListProgressUpdateStreams) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListDiscoveredResources(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.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,6 +1864,9 @@ func awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response *smithyht case strings.EqualFold("InvalidInputException", errorCode): return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -1877,14 +1883,14 @@ func awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response *smithyht } } -type awsAwsjson11_deserializeOpNotifyApplicationState struct { +type awsAwsjson11_deserializeOpListMigrationTasks struct { } -func (*awsAwsjson11_deserializeOpNotifyApplicationState) ID() string { +func (*awsAwsjson11_deserializeOpListMigrationTasks) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpNotifyApplicationState) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMigrationTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1902,9 +1908,9 @@ func (m *awsAwsjson11_deserializeOpNotifyApplicationState) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorNotifyApplicationState(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMigrationTasks(response, &metadata) } - output := &NotifyApplicationStateOutput{} + output := &ListMigrationTasksOutput{} out.Result = output var buff [1024]byte @@ -1924,7 +1930,7 @@ func (m *awsAwsjson11_deserializeOpNotifyApplicationState) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentNotifyApplicationStateOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMigrationTasksOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1938,7 +1944,7 @@ func (m *awsAwsjson11_deserializeOpNotifyApplicationState) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorNotifyApplicationState(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMigrationTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1978,9 +1984,6 @@ func awsAwsjson11_deserializeOpErrorNotifyApplicationState(response *smithyhttp. case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("DryRunOperation", errorCode): - return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) - case strings.EqualFold("HomeRegionNotSetException", errorCode): return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) @@ -2002,9 +2005,6 @@ func awsAwsjson11_deserializeOpErrorNotifyApplicationState(response *smithyhttp. case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedOperation", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2015,14 +2015,14 @@ func awsAwsjson11_deserializeOpErrorNotifyApplicationState(response *smithyhttp. } } -type awsAwsjson11_deserializeOpNotifyMigrationTaskState struct { +type awsAwsjson11_deserializeOpListMigrationTaskUpdates struct { } -func (*awsAwsjson11_deserializeOpNotifyMigrationTaskState) ID() string { +func (*awsAwsjson11_deserializeOpListMigrationTaskUpdates) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpNotifyMigrationTaskState) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListMigrationTaskUpdates) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2040,9 +2040,9 @@ func (m *awsAwsjson11_deserializeOpNotifyMigrationTaskState) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorNotifyMigrationTaskState(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListMigrationTaskUpdates(response, &metadata) } - output := &NotifyMigrationTaskStateOutput{} + output := &ListMigrationTaskUpdatesOutput{} out.Result = output var buff [1024]byte @@ -2062,7 +2062,7 @@ func (m *awsAwsjson11_deserializeOpNotifyMigrationTaskState) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentNotifyMigrationTaskStateOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListMigrationTaskUpdatesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2076,7 +2076,7 @@ func (m *awsAwsjson11_deserializeOpNotifyMigrationTaskState) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorNotifyMigrationTaskState(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListMigrationTaskUpdates(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2116,12 +2116,6 @@ func awsAwsjson11_deserializeOpErrorNotifyMigrationTaskState(response *smithyhtt case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("DryRunOperation", errorCode): - return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) - - case strings.EqualFold("HomeRegionNotSetException", errorCode): - return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) - case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) @@ -2137,9 +2131,6 @@ func awsAwsjson11_deserializeOpErrorNotifyMigrationTaskState(response *smithyhtt case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedOperation", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2150,14 +2141,14 @@ func awsAwsjson11_deserializeOpErrorNotifyMigrationTaskState(response *smithyhtt } } -type awsAwsjson11_deserializeOpPutResourceAttributes struct { +type awsAwsjson11_deserializeOpListProgressUpdateStreams struct { } -func (*awsAwsjson11_deserializeOpPutResourceAttributes) ID() string { +func (*awsAwsjson11_deserializeOpListProgressUpdateStreams) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutResourceAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListProgressUpdateStreams) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2175,9 +2166,9 @@ func (m *awsAwsjson11_deserializeOpPutResourceAttributes) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutResourceAttributes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response, &metadata) } - output := &PutResourceAttributesOutput{} + output := &ListProgressUpdateStreamsOutput{} out.Result = output var buff [1024]byte @@ -2197,7 +2188,7 @@ func (m *awsAwsjson11_deserializeOpPutResourceAttributes) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutResourceAttributesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListProgressUpdateStreamsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2211,7 +2202,532 @@ func (m *awsAwsjson11_deserializeOpPutResourceAttributes) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutResourceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListProgressUpdateStreams(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("HomeRegionNotSetException", errorCode): + return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("InvalidInputException", errorCode): + return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpListSourceResources struct { +} + +func (*awsAwsjson11_deserializeOpListSourceResources) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListSourceResources) HandleDeserialize(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_deserializeOpErrorListSourceResources(response, &metadata) + } + output := &ListSourceResourcesOutput{} + 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_deserializeOpDocumentListSourceResourcesOutput(&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_deserializeOpErrorListSourceResources(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("InvalidInputException", errorCode): + return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpNotifyApplicationState struct { +} + +func (*awsAwsjson11_deserializeOpNotifyApplicationState) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpNotifyApplicationState) HandleDeserialize(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_deserializeOpErrorNotifyApplicationState(response, &metadata) + } + output := &NotifyApplicationStateOutput{} + 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_deserializeOpDocumentNotifyApplicationStateOutput(&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_deserializeOpErrorNotifyApplicationState(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("DryRunOperation", errorCode): + return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) + + case strings.EqualFold("HomeRegionNotSetException", errorCode): + return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("InvalidInputException", errorCode): + return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + + case strings.EqualFold("PolicyErrorException", errorCode): + return awsAwsjson11_deserializeErrorPolicyErrorException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnauthorizedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpNotifyMigrationTaskState struct { +} + +func (*awsAwsjson11_deserializeOpNotifyMigrationTaskState) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpNotifyMigrationTaskState) HandleDeserialize(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_deserializeOpErrorNotifyMigrationTaskState(response, &metadata) + } + output := &NotifyMigrationTaskStateOutput{} + 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_deserializeOpDocumentNotifyMigrationTaskStateOutput(&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_deserializeOpErrorNotifyMigrationTaskState(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("DryRunOperation", errorCode): + return awsAwsjson11_deserializeErrorDryRunOperation(response, errorBody) + + case strings.EqualFold("HomeRegionNotSetException", errorCode): + return awsAwsjson11_deserializeErrorHomeRegionNotSetException(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("InvalidInputException", errorCode): + return awsAwsjson11_deserializeErrorInvalidInputException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnauthorizedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedOperation(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpPutResourceAttributes struct { +} + +func (*awsAwsjson11_deserializeOpPutResourceAttributes) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpPutResourceAttributes) HandleDeserialize(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_deserializeOpErrorPutResourceAttributes(response, &metadata) + } + output := &PutResourceAttributesOutput{} + 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_deserializeOpDocumentPutResourceAttributesOutput(&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_deserializeOpErrorPutResourceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3262,22 +3778,108 @@ func awsAwsjson11_deserializeDocumentMigrationTaskSummary(v **types.MigrationTas sv.ProgressUpdateStream = ptr.String(jtv) } - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Status to be of type string, got %T instead", value) - } - sv.Status = types.Status(jtv) - } + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(jtv) + } + + case "StatusDetail": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusDetail to be of type string, got %T instead", value) + } + sv.StatusDetail = ptr.String(jtv) + } + + case "UpdateDateTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.UpdateDateTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected UpdateDateTime to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentMigrationTaskSummaryList(v *[]types.MigrationTaskSummary, 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.MigrationTaskSummary + if *v == nil { + cv = []types.MigrationTaskSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.MigrationTaskSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentMigrationTaskSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentMigrationTaskUpdate(v **types.MigrationTaskUpdate, 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) + } - case "StatusDetail": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected StatusDetail to be of type string, got %T instead", value) - } - sv.StatusDetail = ptr.String(jtv) + var sv *types.MigrationTaskUpdate + if *v == nil { + sv = &types.MigrationTaskUpdate{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MigrationTaskState": + if err := awsAwsjson11_deserializeDocumentTask(&sv.MigrationTaskState, value); err != nil { + return err } case "UpdateDateTime": @@ -3296,6 +3898,15 @@ func awsAwsjson11_deserializeDocumentMigrationTaskSummary(v **types.MigrationTas } } + case "UpdateType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UpdateType to be of type string, got %T instead", value) + } + sv.UpdateType = types.UpdateType(jtv) + } + default: _, _ = key, value @@ -3305,7 +3916,7 @@ func awsAwsjson11_deserializeDocumentMigrationTaskSummary(v **types.MigrationTas return nil } -func awsAwsjson11_deserializeDocumentMigrationTaskSummaryList(v *[]types.MigrationTaskSummary, value interface{}) error { +func awsAwsjson11_deserializeDocumentMigrationTaskUpdateList(v *[]types.MigrationTaskUpdate, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3318,17 +3929,17 @@ func awsAwsjson11_deserializeDocumentMigrationTaskSummaryList(v *[]types.Migrati return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.MigrationTaskSummary + var cv []types.MigrationTaskUpdate if *v == nil { - cv = []types.MigrationTaskSummary{} + cv = []types.MigrationTaskUpdate{} } else { cv = *v } for _, value := range shape { - var col types.MigrationTaskSummary + var col types.MigrationTaskUpdate destAddr := &col - if err := awsAwsjson11_deserializeDocumentMigrationTaskSummary(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentMigrationTaskUpdate(&destAddr, value); err != nil { return err } col = *destAddr @@ -3582,6 +4193,98 @@ func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.Servi return nil } +func awsAwsjson11_deserializeDocumentSourceResource(v **types.SourceResource, 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.SourceResource + if *v == nil { + sv = &types.SourceResource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SourceResourceDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SourceResourceName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "StatusDetail": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusDetail to be of type string, got %T instead", value) + } + sv.StatusDetail = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentSourceResourceList(v *[]types.SourceResource, 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.SourceResource + if *v == nil { + cv = []types.SourceResource{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SourceResource + destAddr := &col + if err := awsAwsjson11_deserializeDocumentSourceResource(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentTask(v **types.Task, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3799,6 +4502,37 @@ func awsAwsjson11_deserializeOpDocumentAssociateDiscoveredResourceOutput(v **Ass return nil } +func awsAwsjson11_deserializeOpDocumentAssociateSourceResourceOutput(v **AssociateSourceResourceOutput, 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 *AssociateSourceResourceOutput + if *v == nil { + sv = &AssociateSourceResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateProgressUpdateStreamOutput(v **CreateProgressUpdateStreamOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4015,6 +4749,37 @@ func awsAwsjson11_deserializeOpDocumentDisassociateDiscoveredResourceOutput(v ** return nil } +func awsAwsjson11_deserializeOpDocumentDisassociateSourceResourceOutput(v **DisassociateSourceResourceOutput, 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 *DisassociateSourceResourceOutput + if *v == nil { + sv = &DisassociateSourceResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentImportMigrationTaskOutput(v **ImportMigrationTaskOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4226,6 +4991,51 @@ func awsAwsjson11_deserializeOpDocumentListMigrationTasksOutput(v **ListMigratio return nil } +func awsAwsjson11_deserializeOpDocumentListMigrationTaskUpdatesOutput(v **ListMigrationTaskUpdatesOutput, 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 *ListMigrationTaskUpdatesOutput + if *v == nil { + sv = &ListMigrationTaskUpdatesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MigrationTaskUpdateList": + if err := awsAwsjson11_deserializeDocumentMigrationTaskUpdateList(&sv.MigrationTaskUpdateList, value); err != nil { + return err + } + + 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) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListProgressUpdateStreamsOutput(v **ListProgressUpdateStreamsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4271,6 +5081,51 @@ func awsAwsjson11_deserializeOpDocumentListProgressUpdateStreamsOutput(v **ListP return nil } +func awsAwsjson11_deserializeOpDocumentListSourceResourcesOutput(v **ListSourceResourcesOutput, 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 *ListSourceResourcesOutput + if *v == nil { + sv = &ListSourceResourcesOutput{} + } 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 Token to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "SourceResourceList": + if err := awsAwsjson11_deserializeDocumentSourceResourceList(&sv.SourceResourceList, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentNotifyApplicationStateOutput(v **NotifyApplicationStateOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/migrationhub/endpoints.go b/service/migrationhub/endpoints.go index 49c1f535404..f55f01c73ec 100644 --- a/service/migrationhub/endpoints.go +++ b/service/migrationhub/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://mgh-fips.") diff --git a/service/migrationhub/generated.json b/service/migrationhub/generated.json index cd11390ea2a..daa93cc48e9 100644 --- a/service/migrationhub/generated.json +++ b/service/migrationhub/generated.json @@ -10,18 +10,22 @@ "api_client_test.go", "api_op_AssociateCreatedArtifact.go", "api_op_AssociateDiscoveredResource.go", + "api_op_AssociateSourceResource.go", "api_op_CreateProgressUpdateStream.go", "api_op_DeleteProgressUpdateStream.go", "api_op_DescribeApplicationState.go", "api_op_DescribeMigrationTask.go", "api_op_DisassociateCreatedArtifact.go", "api_op_DisassociateDiscoveredResource.go", + "api_op_DisassociateSourceResource.go", "api_op_ImportMigrationTask.go", "api_op_ListApplicationStates.go", "api_op_ListCreatedArtifacts.go", "api_op_ListDiscoveredResources.go", + "api_op_ListMigrationTaskUpdates.go", "api_op_ListMigrationTasks.go", "api_op_ListProgressUpdateStreams.go", + "api_op_ListSourceResources.go", "api_op_NotifyApplicationState.go", "api_op_NotifyMigrationTaskState.go", "api_op_PutResourceAttributes.go", diff --git a/service/migrationhub/serializers.go b/service/migrationhub/serializers.go index e3df24c628f..bb27c7214ae 100644 --- a/service/migrationhub/serializers.go +++ b/service/migrationhub/serializers.go @@ -139,6 +139,67 @@ func (m *awsAwsjson11_serializeOpAssociateDiscoveredResource) HandleSerialize(ct return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpAssociateSourceResource struct { +} + +func (*awsAwsjson11_serializeOpAssociateSourceResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpAssociateSourceResource) 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.(*AssociateSourceResourceInput) + _ = 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("AWSMigrationHub.AssociateSourceResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentAssociateSourceResourceInput(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_serializeOpCreateProgressUpdateStream struct { } @@ -505,6 +566,67 @@ func (m *awsAwsjson11_serializeOpDisassociateDiscoveredResource) HandleSerialize return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDisassociateSourceResource struct { +} + +func (*awsAwsjson11_serializeOpDisassociateSourceResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDisassociateSourceResource) 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.(*DisassociateSourceResourceInput) + _ = 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("AWSMigrationHub.DisassociateSourceResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDisassociateSourceResourceInput(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_serializeOpImportMigrationTask struct { } @@ -810,6 +932,67 @@ func (m *awsAwsjson11_serializeOpListMigrationTasks) HandleSerialize(ctx context return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListMigrationTaskUpdates struct { +} + +func (*awsAwsjson11_serializeOpListMigrationTaskUpdates) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListMigrationTaskUpdates) 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.(*ListMigrationTaskUpdatesInput) + _ = 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("AWSMigrationHub.ListMigrationTaskUpdates") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListMigrationTaskUpdatesInput(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_serializeOpListProgressUpdateStreams struct { } @@ -871,6 +1054,67 @@ func (m *awsAwsjson11_serializeOpListProgressUpdateStreams) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListSourceResources struct { +} + +func (*awsAwsjson11_serializeOpListSourceResources) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListSourceResources) 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.(*ListSourceResourcesInput) + _ = 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("AWSMigrationHub.ListSourceResources") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListSourceResourcesInput(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_serializeOpNotifyApplicationState struct { } @@ -1128,6 +1372,28 @@ func awsAwsjson11_serializeDocumentResourceAttributeList(v []types.ResourceAttri return nil } +func awsAwsjson11_serializeDocumentSourceResource(v *types.SourceResource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.StatusDetail != nil { + ok := object.Key("StatusDetail") + ok.String(*v.StatusDetail) + } + + return nil +} + func awsAwsjson11_serializeDocumentTask(v *types.Task, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1208,6 +1474,35 @@ func awsAwsjson11_serializeOpDocumentAssociateDiscoveredResourceInput(v *Associa return nil } +func awsAwsjson11_serializeOpDocumentAssociateSourceResourceInput(v *AssociateSourceResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DryRun { + ok := object.Key("DryRun") + ok.Boolean(v.DryRun) + } + + if v.MigrationTaskName != nil { + ok := object.Key("MigrationTaskName") + ok.String(*v.MigrationTaskName) + } + + if v.ProgressUpdateStream != nil { + ok := object.Key("ProgressUpdateStream") + ok.String(*v.ProgressUpdateStream) + } + + if v.SourceResource != nil { + ok := object.Key("SourceResource") + if err := awsAwsjson11_serializeDocumentSourceResource(v.SourceResource, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateProgressUpdateStreamInput(v *CreateProgressUpdateStreamInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1325,6 +1620,33 @@ func awsAwsjson11_serializeOpDocumentDisassociateDiscoveredResourceInput(v *Disa return nil } +func awsAwsjson11_serializeOpDocumentDisassociateSourceResourceInput(v *DisassociateSourceResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DryRun { + ok := object.Key("DryRun") + ok.Boolean(v.DryRun) + } + + if v.MigrationTaskName != nil { + ok := object.Key("MigrationTaskName") + ok.String(*v.MigrationTaskName) + } + + if v.ProgressUpdateStream != nil { + ok := object.Key("ProgressUpdateStream") + ok.String(*v.ProgressUpdateStream) + } + + if v.SourceResourceName != nil { + ok := object.Key("SourceResourceName") + ok.String(*v.SourceResourceName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentImportMigrationTaskInput(v *ImportMigrationTaskInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1447,6 +1769,33 @@ func awsAwsjson11_serializeOpDocumentListMigrationTasksInput(v *ListMigrationTas return nil } +func awsAwsjson11_serializeOpDocumentListMigrationTaskUpdatesInput(v *ListMigrationTaskUpdatesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.MigrationTaskName != nil { + ok := object.Key("MigrationTaskName") + ok.String(*v.MigrationTaskName) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.ProgressUpdateStream != nil { + ok := object.Key("ProgressUpdateStream") + ok.String(*v.ProgressUpdateStream) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListProgressUpdateStreamsInput(v *ListProgressUpdateStreamsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1464,6 +1813,33 @@ func awsAwsjson11_serializeOpDocumentListProgressUpdateStreamsInput(v *ListProgr return nil } +func awsAwsjson11_serializeOpDocumentListSourceResourcesInput(v *ListSourceResourcesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.MigrationTaskName != nil { + ok := object.Key("MigrationTaskName") + ok.String(*v.MigrationTaskName) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.ProgressUpdateStream != nil { + ok := object.Key("ProgressUpdateStream") + ok.String(*v.ProgressUpdateStream) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentNotifyApplicationStateInput(v *NotifyApplicationStateInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/migrationhub/snapshot/api_op_AssociateSourceResource.go.snap b/service/migrationhub/snapshot/api_op_AssociateSourceResource.go.snap new file mode 100644 index 00000000000..e39e16a65fb --- /dev/null +++ b/service/migrationhub/snapshot/api_op_AssociateSourceResource.go.snap @@ -0,0 +1,41 @@ +AssociateSourceResource + 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/migrationhub/snapshot/api_op_DisassociateSourceResource.go.snap b/service/migrationhub/snapshot/api_op_DisassociateSourceResource.go.snap new file mode 100644 index 00000000000..53cbc73ccbe --- /dev/null +++ b/service/migrationhub/snapshot/api_op_DisassociateSourceResource.go.snap @@ -0,0 +1,41 @@ +DisassociateSourceResource + 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/migrationhub/snapshot/api_op_ListMigrationTaskUpdates.go.snap b/service/migrationhub/snapshot/api_op_ListMigrationTaskUpdates.go.snap new file mode 100644 index 00000000000..7e9979c934f --- /dev/null +++ b/service/migrationhub/snapshot/api_op_ListMigrationTaskUpdates.go.snap @@ -0,0 +1,41 @@ +ListMigrationTaskUpdates + 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/migrationhub/snapshot/api_op_ListSourceResources.go.snap b/service/migrationhub/snapshot/api_op_ListSourceResources.go.snap new file mode 100644 index 00000000000..6b44e0d2699 --- /dev/null +++ b/service/migrationhub/snapshot/api_op_ListSourceResources.go.snap @@ -0,0 +1,41 @@ +ListSourceResources + 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/migrationhub/snapshot_test.go b/service/migrationhub/snapshot_test.go index c4c809b9161..9d44c4e682f 100644 --- a/service/migrationhub/snapshot_test.go +++ b/service/migrationhub/snapshot_test.go @@ -86,6 +86,18 @@ func TestCheckSnapshot_AssociateDiscoveredResource(t *testing.T) { } } +func TestCheckSnapshot_AssociateSourceResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociateSourceResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AssociateSourceResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateProgressUpdateStream(t *testing.T) { svc := New(Options{}) _, err := svc.CreateProgressUpdateStream(context.Background(), nil, func(o *Options) { @@ -158,6 +170,18 @@ func TestCheckSnapshot_DisassociateDiscoveredResource(t *testing.T) { } } +func TestCheckSnapshot_DisassociateSourceResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisassociateSourceResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DisassociateSourceResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ImportMigrationTask(t *testing.T) { svc := New(Options{}) _, err := svc.ImportMigrationTask(context.Background(), nil, func(o *Options) { @@ -218,6 +242,18 @@ func TestCheckSnapshot_ListMigrationTasks(t *testing.T) { } } +func TestCheckSnapshot_ListMigrationTaskUpdates(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMigrationTaskUpdates(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListMigrationTaskUpdates") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListProgressUpdateStreams(t *testing.T) { svc := New(Options{}) _, err := svc.ListProgressUpdateStreams(context.Background(), nil, func(o *Options) { @@ -230,6 +266,18 @@ func TestCheckSnapshot_ListProgressUpdateStreams(t *testing.T) { } } +func TestCheckSnapshot_ListSourceResources(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListSourceResources(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListSourceResources") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_NotifyApplicationState(t *testing.T) { svc := New(Options{}) _, err := svc.NotifyApplicationState(context.Background(), nil, func(o *Options) { @@ -289,6 +337,18 @@ func TestUpdateSnapshot_AssociateDiscoveredResource(t *testing.T) { } } +func TestUpdateSnapshot_AssociateSourceResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociateSourceResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AssociateSourceResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateProgressUpdateStream(t *testing.T) { svc := New(Options{}) _, err := svc.CreateProgressUpdateStream(context.Background(), nil, func(o *Options) { @@ -361,6 +421,18 @@ func TestUpdateSnapshot_DisassociateDiscoveredResource(t *testing.T) { } } +func TestUpdateSnapshot_DisassociateSourceResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisassociateSourceResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DisassociateSourceResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ImportMigrationTask(t *testing.T) { svc := New(Options{}) _, err := svc.ImportMigrationTask(context.Background(), nil, func(o *Options) { @@ -421,6 +493,18 @@ func TestUpdateSnapshot_ListMigrationTasks(t *testing.T) { } } +func TestUpdateSnapshot_ListMigrationTaskUpdates(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMigrationTaskUpdates(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListMigrationTaskUpdates") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListProgressUpdateStreams(t *testing.T) { svc := New(Options{}) _, err := svc.ListProgressUpdateStreams(context.Background(), nil, func(o *Options) { @@ -433,6 +517,18 @@ func TestUpdateSnapshot_ListProgressUpdateStreams(t *testing.T) { } } +func TestUpdateSnapshot_ListSourceResources(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListSourceResources(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListSourceResources") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_NotifyApplicationState(t *testing.T) { svc := New(Options{}) _, err := svc.NotifyApplicationState(context.Background(), nil, func(o *Options) { diff --git a/service/migrationhub/types/enums.go b/service/migrationhub/types/enums.go index c51b2998fef..35f365b5dbf 100644 --- a/service/migrationhub/types/enums.go +++ b/service/migrationhub/types/enums.go @@ -80,3 +80,20 @@ func (Status) Values() []Status { "COMPLETED", } } + +type UpdateType string + +// Enum values for UpdateType +const ( + UpdateTypeMigrationTaskStateUpdated UpdateType = "MIGRATION_TASK_STATE_UPDATED" +) + +// Values returns all known values for UpdateType. 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 (UpdateType) Values() []UpdateType { + return []UpdateType{ + "MIGRATION_TASK_STATE_UPDATED", + } +} diff --git a/service/migrationhub/types/types.go b/service/migrationhub/types/types.go index 8db861ccd1a..882b10713a8 100644 --- a/service/migrationhub/types/types.go +++ b/service/migrationhub/types/types.go @@ -106,6 +106,21 @@ type MigrationTaskSummary struct { noSmithyDocumentSerde } +// A migration-task progress update. +type MigrationTaskUpdate struct { + + // Task object encapsulating task information. + MigrationTaskState *Task + + // The timestamp for the update. + UpdateDateTime *time.Time + + // The type of the update. + UpdateType UpdateType + + noSmithyDocumentSerde +} + // Summary of the AWS resource used for access control that is implicitly linked // to your AWS account. type ProgressUpdateStreamSummary struct { @@ -130,7 +145,7 @@ type ProgressUpdateStreamSummary struct { // // MAC_ADDRESS ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ // -// FQDN ^[^<>{}\\/?,=\p{Cntrl}]{1,256}$ +// FQDN ^[^<>{}\\\\/?,=\\p{Cntrl}]{1,256}$ type ResourceAttribute struct { // Type of resource. @@ -146,6 +161,27 @@ type ResourceAttribute struct { noSmithyDocumentSerde } +// A source resource can be a source server, a migration wave, an application, or +// any other resource that you track. +type SourceResource struct { + + // This is the name that you want to use to identify the resource. If the resource + // is an AWS resource, we recommend that you set this parameter to the ARN of the + // resource. + // + // This member is required. + Name *string + + // A description that can be free-form text to record additional detail about the + // resource for clarity or later reference. + Description *string + + // A free-form description of the status of the resource. + StatusDetail *string + + noSmithyDocumentSerde +} + // Task object encapsulating task information. type Task struct { diff --git a/service/migrationhub/validators.go b/service/migrationhub/validators.go index 3a724ea9425..b3f329e4660 100644 --- a/service/migrationhub/validators.go +++ b/service/migrationhub/validators.go @@ -50,6 +50,26 @@ func (m *validateOpAssociateDiscoveredResource) HandleInitialize(ctx context.Con return next.HandleInitialize(ctx, in) } +type validateOpAssociateSourceResource struct { +} + +func (*validateOpAssociateSourceResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateSourceResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateSourceResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateSourceResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateProgressUpdateStream struct { } @@ -170,6 +190,26 @@ func (m *validateOpDisassociateDiscoveredResource) HandleInitialize(ctx context. return next.HandleInitialize(ctx, in) } +type validateOpDisassociateSourceResource struct { +} + +func (*validateOpDisassociateSourceResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisassociateSourceResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisassociateSourceResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisassociateSourceResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpImportMigrationTask struct { } @@ -230,6 +270,46 @@ func (m *validateOpListDiscoveredResources) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpListMigrationTaskUpdates struct { +} + +func (*validateOpListMigrationTaskUpdates) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListMigrationTaskUpdates) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListMigrationTaskUpdatesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListMigrationTaskUpdatesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListSourceResources struct { +} + +func (*validateOpListSourceResources) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListSourceResources) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListSourceResourcesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListSourceResourcesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpNotifyApplicationState struct { } @@ -298,6 +378,10 @@ func addOpAssociateDiscoveredResourceValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpAssociateDiscoveredResource{}, middleware.After) } +func addOpAssociateSourceResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateSourceResource{}, middleware.After) +} + func addOpCreateProgressUpdateStreamValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateProgressUpdateStream{}, middleware.After) } @@ -322,6 +406,10 @@ func addOpDisassociateDiscoveredResourceValidationMiddleware(stack *middleware.S return stack.Initialize.Add(&validateOpDisassociateDiscoveredResource{}, middleware.After) } +func addOpDisassociateSourceResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisassociateSourceResource{}, middleware.After) +} + func addOpImportMigrationTaskValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpImportMigrationTask{}, middleware.After) } @@ -334,6 +422,14 @@ func addOpListDiscoveredResourcesValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpListDiscoveredResources{}, middleware.After) } +func addOpListMigrationTaskUpdatesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListMigrationTaskUpdates{}, middleware.After) +} + +func addOpListSourceResourcesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListSourceResources{}, middleware.After) +} + func addOpNotifyApplicationStateValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpNotifyApplicationState{}, middleware.After) } @@ -411,6 +507,21 @@ func validateResourceAttributeList(v []types.ResourceAttribute) error { } } +func validateSourceResource(v *types.SourceResource) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SourceResource"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTask(v *types.Task) error { if v == nil { return nil @@ -476,6 +587,31 @@ func validateOpAssociateDiscoveredResourceInput(v *AssociateDiscoveredResourceIn } } +func validateOpAssociateSourceResourceInput(v *AssociateSourceResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateSourceResourceInput"} + if v.ProgressUpdateStream == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProgressUpdateStream")) + } + if v.MigrationTaskName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MigrationTaskName")) + } + if v.SourceResource == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceResource")) + } else if v.SourceResource != nil { + if err := validateSourceResource(v.SourceResource); err != nil { + invalidParams.AddNested("SourceResource", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateProgressUpdateStreamInput(v *CreateProgressUpdateStreamInput) error { if v == nil { return nil @@ -581,6 +717,27 @@ func validateOpDisassociateDiscoveredResourceInput(v *DisassociateDiscoveredReso } } +func validateOpDisassociateSourceResourceInput(v *DisassociateSourceResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisassociateSourceResourceInput"} + if v.ProgressUpdateStream == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProgressUpdateStream")) + } + if v.MigrationTaskName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MigrationTaskName")) + } + if v.SourceResourceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceResourceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpImportMigrationTaskInput(v *ImportMigrationTaskInput) error { if v == nil { return nil @@ -635,6 +792,42 @@ func validateOpListDiscoveredResourcesInput(v *ListDiscoveredResourcesInput) err } } +func validateOpListMigrationTaskUpdatesInput(v *ListMigrationTaskUpdatesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListMigrationTaskUpdatesInput"} + if v.ProgressUpdateStream == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProgressUpdateStream")) + } + if v.MigrationTaskName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MigrationTaskName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListSourceResourcesInput(v *ListSourceResourcesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListSourceResourcesInput"} + if v.ProgressUpdateStream == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProgressUpdateStream")) + } + if v.MigrationTaskName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MigrationTaskName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpNotifyApplicationStateInput(v *NotifyApplicationStateInput) error { if v == nil { return nil diff --git a/service/sesv2/api_client.go b/service/sesv2/api_client.go index 9574a7f8801..f77db134072 100644 --- a/service/sesv2/api_client.go +++ b/service/sesv2/api_client.go @@ -16,6 +16,7 @@ import ( 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" + "github.com/aws/aws-sdk-go-v2/internal/v4a" smithy "github.com/aws/smithy-go" smithyauth "github.com/aws/smithy-go/auth" smithydocument "github.com/aws/smithy-go/document" @@ -187,6 +188,8 @@ func New(options Options, optFns ...func(*Options)) *Client { resolveEndpointResolverV2(&options) + resolveHTTPSignerV4a(&options) + resolveTracerProvider(&options) resolveMeterProvider(&options) @@ -363,6 +366,11 @@ func resolveAuthSchemes(options *Options) { Logger: options.Logger, LogSigning: options.ClientLogMode.IsSigning(), }), + internalauth.NewHTTPAuthScheme("aws.auth#sigv4a", &v4a.SignerAdapter{ + Signer: options.httpSignerV4a, + Logger: options.Logger, + LogSigning: options.ClientLogMode.IsSigning(), + }), } } } @@ -738,6 +746,26 @@ func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMo return nil } +type httpSignerV4a interface { + SignHTTP(ctx context.Context, credentials v4a.Credentials, r *http.Request, payloadHash, + service string, regionSet []string, signingTime time.Time, + optFns ...func(*v4a.SignerOptions)) error +} + +func resolveHTTPSignerV4a(o *Options) { + if o.httpSignerV4a != nil { + return + } + o.httpSignerV4a = newDefaultV4aSigner(*o) +} + +func newDefaultV4aSigner(o Options) *v4a.Signer { + return v4a.NewSigner(func(so *v4a.SignerOptions) { + so.Logger = o.Logger + so.LogSigning = o.ClientLogMode.IsSigning() + }) +} + func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error { mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset} if err := stack.Build.Add(&mw, middleware.After); err != nil { diff --git a/service/sesv2/api_op_CreateMultiRegionEndpoint.go b/service/sesv2/api_op_CreateMultiRegionEndpoint.go new file mode 100644 index 00000000000..448ee324db2 --- /dev/null +++ b/service/sesv2/api_op_CreateMultiRegionEndpoint.go @@ -0,0 +1,188 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sesv2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sesv2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a multi-region endpoint (global-endpoint). +// +// The primary region is going to be the AWS-Region where the operation is +// executed. The secondary region has to be provided in request's parameters. From +// the data flow standpoint there is no difference between primary and secondary +// regions - sending traffic will be split equally between the two. The primary +// region is the region where the resource has been created and where it can be +// managed. +func (c *Client) CreateMultiRegionEndpoint(ctx context.Context, params *CreateMultiRegionEndpointInput, optFns ...func(*Options)) (*CreateMultiRegionEndpointOutput, error) { + if params == nil { + params = &CreateMultiRegionEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateMultiRegionEndpoint", params, optFns, c.addOperationCreateMultiRegionEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateMultiRegionEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Represents a request to create a multi-region endpoint (global-endpoint). +type CreateMultiRegionEndpointInput struct { + + // Contains details of a multi-region endpoint (global-endpoint) being created. + // + // This member is required. + Details *types.Details + + // The name of the multi-region endpoint (global-endpoint). + // + // This member is required. + EndpointName *string + + // An array of objects that define the tags (keys and values) to associate with + // the multi-region endpoint (global-endpoint). + Tags []types.Tag + + noSmithyDocumentSerde +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type CreateMultiRegionEndpointOutput struct { + + // The ID of the multi-region endpoint (global-endpoint). + EndpointId *string + + // A status of the multi-region endpoint (global-endpoint) right after the create + // request. + // + // - CREATING – The resource is being provisioned. + // + // - READY – The resource is ready to use. + // + // - FAILED – The resource failed to be provisioned. + // + // - DELETING – The resource is being deleted as requested. + Status types.Status + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateMultiRegionEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateMultiRegionEndpoint"); 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 = addOpCreateMultiRegionEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateMultiRegionEndpoint(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_opCreateMultiRegionEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateMultiRegionEndpoint", + } +} diff --git a/service/sesv2/api_op_DeleteMultiRegionEndpoint.go b/service/sesv2/api_op_DeleteMultiRegionEndpoint.go new file mode 100644 index 00000000000..d02bd803edd --- /dev/null +++ b/service/sesv2/api_op_DeleteMultiRegionEndpoint.go @@ -0,0 +1,172 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sesv2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sesv2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a multi-region endpoint (global-endpoint). +// +// Only multi-region endpoints (global-endpoints) whose primary region is the +// AWS-Region where operation is executed can be deleted. +func (c *Client) DeleteMultiRegionEndpoint(ctx context.Context, params *DeleteMultiRegionEndpointInput, optFns ...func(*Options)) (*DeleteMultiRegionEndpointOutput, error) { + if params == nil { + params = &DeleteMultiRegionEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteMultiRegionEndpoint", params, optFns, c.addOperationDeleteMultiRegionEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteMultiRegionEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Represents a request to delete a multi-region endpoint (global-endpoint). +type DeleteMultiRegionEndpointInput struct { + + // The name of the multi-region endpoint (global-endpoint) to be deleted. + // + // This member is required. + EndpointName *string + + noSmithyDocumentSerde +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type DeleteMultiRegionEndpointOutput struct { + + // A status of the multi-region endpoint (global-endpoint) right after the delete + // request. + // + // - CREATING – The resource is being provisioned. + // + // - READY – The resource is ready to use. + // + // - FAILED – The resource failed to be provisioned. + // + // - DELETING – The resource is being deleted as requested. + Status types.Status + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteMultiRegionEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteMultiRegionEndpoint"); 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 = addOpDeleteMultiRegionEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteMultiRegionEndpoint(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_opDeleteMultiRegionEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteMultiRegionEndpoint", + } +} diff --git a/service/sesv2/api_op_GetMultiRegionEndpoint.go b/service/sesv2/api_op_GetMultiRegionEndpoint.go new file mode 100644 index 00000000000..bfd4ec76168 --- /dev/null +++ b/service/sesv2/api_op_GetMultiRegionEndpoint.go @@ -0,0 +1,188 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sesv2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sesv2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Displays the multi-region endpoint (global-endpoint) configuration. +// +// Only multi-region endpoints (global-endpoints) whose primary region is the +// AWS-Region where operation is executed can be displayed. +func (c *Client) GetMultiRegionEndpoint(ctx context.Context, params *GetMultiRegionEndpointInput, optFns ...func(*Options)) (*GetMultiRegionEndpointOutput, error) { + if params == nil { + params = &GetMultiRegionEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetMultiRegionEndpoint", params, optFns, c.addOperationGetMultiRegionEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetMultiRegionEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Represents a request to display the multi-region endpoint (global-endpoint). +type GetMultiRegionEndpointInput struct { + + // The name of the multi-region endpoint (global-endpoint). + // + // This member is required. + EndpointName *string + + noSmithyDocumentSerde +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type GetMultiRegionEndpointOutput struct { + + // The time stamp of when the multi-region endpoint (global-endpoint) was created. + CreatedTimestamp *time.Time + + // The ID of the multi-region endpoint (global-endpoint). + EndpointId *string + + // The name of the multi-region endpoint (global-endpoint). + EndpointName *string + + // The time stamp of when the multi-region endpoint (global-endpoint) was last + // updated. + LastUpdatedTimestamp *time.Time + + // Contains routes information for the multi-region endpoint (global-endpoint). + Routes []types.Route + + // The status of the multi-region endpoint (global-endpoint). + // + // - CREATING – The resource is being provisioned. + // + // - READY – The resource is ready to use. + // + // - FAILED – The resource failed to be provisioned. + // + // - DELETING – The resource is being deleted as requested. + Status types.Status + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetMultiRegionEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetMultiRegionEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetMultiRegionEndpoint"); 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 = addOpGetMultiRegionEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMultiRegionEndpoint(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_opGetMultiRegionEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetMultiRegionEndpoint", + } +} diff --git a/service/sesv2/api_op_ListMultiRegionEndpoints.go b/service/sesv2/api_op_ListMultiRegionEndpoints.go new file mode 100644 index 00000000000..ef097bee949 --- /dev/null +++ b/service/sesv2/api_op_ListMultiRegionEndpoints.go @@ -0,0 +1,268 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sesv2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sesv2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// List the multi-region endpoints (global-endpoints). +// +// Only multi-region endpoints (global-endpoints) whose primary region is the +// AWS-Region where operation is executed will be listed. +func (c *Client) ListMultiRegionEndpoints(ctx context.Context, params *ListMultiRegionEndpointsInput, optFns ...func(*Options)) (*ListMultiRegionEndpointsOutput, error) { + if params == nil { + params = &ListMultiRegionEndpointsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListMultiRegionEndpoints", params, optFns, c.addOperationListMultiRegionEndpointsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListMultiRegionEndpointsOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Represents a request to list all the multi-region endpoints (global-endpoints) +// whose primary region is the AWS-Region where operation is executed. +type ListMultiRegionEndpointsInput struct { + + // A token returned from a previous call to ListMultiRegionEndpoints to indicate + // the position in the list of multi-region endpoints (global-endpoints). + NextToken *string + + // The number of results to show in a single call to ListMultiRegionEndpoints . If + // the number of results is larger than the number you specified in this parameter, + // the response includes a NextToken element that you can use to retrieve the next + // page of results. + PageSize *int32 + + noSmithyDocumentSerde +} + +// The following elements are returned by the service. +type ListMultiRegionEndpointsOutput struct { + + // An array that contains key multi-region endpoint (global-endpoint) properties. + MultiRegionEndpoints []types.MultiRegionEndpoint + + // A token indicating that there are additional multi-region endpoints + // (global-endpoints) available to be listed. Pass this token to a subsequent + // ListMultiRegionEndpoints call to retrieve the next page. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListMultiRegionEndpointsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListMultiRegionEndpoints{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListMultiRegionEndpoints{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListMultiRegionEndpoints"); 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_opListMultiRegionEndpoints(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 +} + +// ListMultiRegionEndpointsPaginatorOptions is the paginator options for +// ListMultiRegionEndpoints +type ListMultiRegionEndpointsPaginatorOptions struct { + // The number of results to show in a single call to ListMultiRegionEndpoints . If + // the number of results is larger than the number you specified in this parameter, + // the response includes a NextToken element that you can use to retrieve the next + // page of results. + 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 +} + +// ListMultiRegionEndpointsPaginator is a paginator for ListMultiRegionEndpoints +type ListMultiRegionEndpointsPaginator struct { + options ListMultiRegionEndpointsPaginatorOptions + client ListMultiRegionEndpointsAPIClient + params *ListMultiRegionEndpointsInput + nextToken *string + firstPage bool +} + +// NewListMultiRegionEndpointsPaginator returns a new +// ListMultiRegionEndpointsPaginator +func NewListMultiRegionEndpointsPaginator(client ListMultiRegionEndpointsAPIClient, params *ListMultiRegionEndpointsInput, optFns ...func(*ListMultiRegionEndpointsPaginatorOptions)) *ListMultiRegionEndpointsPaginator { + if params == nil { + params = &ListMultiRegionEndpointsInput{} + } + + options := ListMultiRegionEndpointsPaginatorOptions{} + if params.PageSize != nil { + options.Limit = *params.PageSize + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListMultiRegionEndpointsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListMultiRegionEndpointsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListMultiRegionEndpoints page. +func (p *ListMultiRegionEndpointsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListMultiRegionEndpointsOutput, 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.PageSize = limit + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListMultiRegionEndpoints(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 +} + +// ListMultiRegionEndpointsAPIClient is a client that implements the +// ListMultiRegionEndpoints operation. +type ListMultiRegionEndpointsAPIClient interface { + ListMultiRegionEndpoints(context.Context, *ListMultiRegionEndpointsInput, ...func(*Options)) (*ListMultiRegionEndpointsOutput, error) +} + +var _ ListMultiRegionEndpointsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListMultiRegionEndpoints(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListMultiRegionEndpoints", + } +} diff --git a/service/sesv2/api_op_SendBulkEmail.go b/service/sesv2/api_op_SendBulkEmail.go index 1d81c99d606..0fdd6cedfd8 100644 --- a/service/sesv2/api_op_SendBulkEmail.go +++ b/service/sesv2/api_op_SendBulkEmail.go @@ -52,6 +52,9 @@ type SendBulkEmailInput struct { // email that you define, so that you can publish email sending events. DefaultEmailTags []types.MessageTag + // The ID of the multi-region endpoint (global-endpoint). + EndpointId *string + // The address that you want bounce and complaint notifications to be sent to. FeedbackForwardingEmailAddress *string @@ -99,6 +102,12 @@ type SendBulkEmailInput struct { noSmithyDocumentSerde } +func (in *SendBulkEmailInput) bindEndpointParams(p *EndpointParameters) { + + p.EndpointId = in.EndpointId + +} + // The following data is returned in JSON format by the service. type SendBulkEmailOutput struct { diff --git a/service/sesv2/api_op_SendEmail.go b/service/sesv2/api_op_SendEmail.go index 071f3055e83..6718865e107 100644 --- a/service/sesv2/api_op_SendEmail.go +++ b/service/sesv2/api_op_SendEmail.go @@ -64,6 +64,9 @@ type SendEmailInput struct { // email that you define, so that you can publish email sending events. EmailTags []types.MessageTag + // The ID of the multi-region endpoint (global-endpoint). + EndpointId *string + // The address that you want bounce and complaint notifications to be sent to. FeedbackForwardingEmailAddress *string @@ -119,6 +122,12 @@ type SendEmailInput struct { noSmithyDocumentSerde } +func (in *SendEmailInput) bindEndpointParams(p *EndpointParameters) { + + p.EndpointId = in.EndpointId + +} + // A unique message ID that you receive when an email is accepted for sending. type SendEmailOutput struct { diff --git a/service/sesv2/auth.go b/service/sesv2/auth.go index da942e06bea..b68fb9fbbd4 100644 --- a/service/sesv2/auth.go +++ b/service/sesv2/auth.go @@ -141,6 +141,16 @@ func serviceAuthOptions(params *AuthResolverParameters) []*smithyauth.Option { return props }(), }, + + { + SchemeID: smithyauth.SchemeIDSigV4A, + SignerProperties: func() smithy.Properties { + var props smithy.Properties + smithyhttp.SetSigV4ASigningName(&props, "ses") + smithyhttp.SetSigV4ASigningRegions(&props, []string{params.Region}) + return props + }(), + }, } } diff --git a/service/sesv2/deserializers.go b/service/sesv2/deserializers.go index 709f4a130dd..33d5fb460ce 100644 --- a/service/sesv2/deserializers.go +++ b/service/sesv2/deserializers.go @@ -1785,6 +1785,180 @@ func awsRestjson1_deserializeOpDocumentCreateImportJobOutput(v **CreateImportJob return nil } +type awsRestjson1_deserializeOpCreateMultiRegionEndpoint struct { +} + +func (*awsRestjson1_deserializeOpCreateMultiRegionEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateMultiRegionEndpoint) HandleDeserialize(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_deserializeOpErrorCreateMultiRegionEndpoint(response, &metadata) + } + output := &CreateMultiRegionEndpointOutput{} + 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_deserializeOpDocumentCreateMultiRegionEndpointOutput(&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_deserializeOpErrorCreateMultiRegionEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("AlreadyExistsException", errorCode): + return awsRestjson1_deserializeErrorAlreadyExistsException(response, errorBody) + + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreateMultiRegionEndpointOutput(v **CreateMultiRegionEndpointOutput, 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 *CreateMultiRegionEndpointOutput + if *v == nil { + sv = &CreateMultiRegionEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EndpointId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EndpointId to be of type string, got %T instead", value) + } + sv.EndpointId = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDeleteConfigurationSet struct { } @@ -2643,6 +2817,171 @@ func awsRestjson1_deserializeOpErrorDeleteEmailTemplate(response *smithyhttp.Res } } +type awsRestjson1_deserializeOpDeleteMultiRegionEndpoint struct { +} + +func (*awsRestjson1_deserializeOpDeleteMultiRegionEndpoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteMultiRegionEndpoint) HandleDeserialize(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_deserializeOpErrorDeleteMultiRegionEndpoint(response, &metadata) + } + output := &DeleteMultiRegionEndpointOutput{} + 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_deserializeOpDocumentDeleteMultiRegionEndpointOutput(&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_deserializeOpErrorDeleteMultiRegionEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDeleteMultiRegionEndpointOutput(v **DeleteMultiRegionEndpointOutput, 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 *DeleteMultiRegionEndpointOutput + if *v == nil { + sv = &DeleteMultiRegionEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDeleteSuppressedDestination struct { } @@ -6274,35 +6613,225 @@ func awsRestjson1_deserializeOpDocumentGetImportJobOutput(v **GetImportJobOutput return err } - case "JobId": + case "JobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + } + sv.JobId = ptr.String(jtv) + } + + case "JobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobStatus to be of type string, got %T instead", value) + } + sv.JobStatus = types.JobStatus(jtv) + } + + case "ProcessedRecordsCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ProcessedRecordsCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ProcessedRecordsCount = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetMessageInsights struct { +} + +func (*awsRestjson1_deserializeOpGetMessageInsights) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetMessageInsights) HandleDeserialize(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_deserializeOpErrorGetMessageInsights(response, &metadata) + } + output := &GetMessageInsightsOutput{} + 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_deserializeOpDocumentGetMessageInsightsOutput(&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_deserializeOpErrorGetMessageInsights(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetMessageInsightsOutput(v **GetMessageInsightsOutput, 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 *GetMessageInsightsOutput + if *v == nil { + sv = &GetMessageInsightsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EmailTags": + if err := awsRestjson1_deserializeDocumentMessageTagList(&sv.EmailTags, value); err != nil { + return err + } + + case "FromEmailAddress": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + return fmt.Errorf("expected InsightsEmailAddress to be of type string, got %T instead", value) } - sv.JobId = ptr.String(jtv) + sv.FromEmailAddress = ptr.String(jtv) } - case "JobStatus": + case "Insights": + if err := awsRestjson1_deserializeDocumentEmailInsightsList(&sv.Insights, value); err != nil { + return err + } + + case "MessageId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected JobStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected OutboundMessageId to be of type string, got %T instead", value) } - sv.JobStatus = types.JobStatus(jtv) + sv.MessageId = ptr.String(jtv) } - case "ProcessedRecordsCount": + case "Subject": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ProcessedRecordsCount to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected EmailSubject to be of type string, got %T instead", value) } - sv.ProcessedRecordsCount = ptr.Int32(int32(i64)) + sv.Subject = ptr.String(jtv) } default: @@ -6314,14 +6843,14 @@ func awsRestjson1_deserializeOpDocumentGetImportJobOutput(v **GetImportJobOutput return nil } -type awsRestjson1_deserializeOpGetMessageInsights struct { +type awsRestjson1_deserializeOpGetMultiRegionEndpoint struct { } -func (*awsRestjson1_deserializeOpGetMessageInsights) ID() string { +func (*awsRestjson1_deserializeOpGetMultiRegionEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetMessageInsights) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetMultiRegionEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6339,9 +6868,9 @@ func (m *awsRestjson1_deserializeOpGetMessageInsights) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetMessageInsights(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetMultiRegionEndpoint(response, &metadata) } - output := &GetMessageInsightsOutput{} + output := &GetMultiRegionEndpointOutput{} out.Result = output var buff [1024]byte @@ -6362,7 +6891,7 @@ func (m *awsRestjson1_deserializeOpGetMessageInsights) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetMessageInsightsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetMultiRegionEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6376,7 +6905,7 @@ func (m *awsRestjson1_deserializeOpGetMessageInsights) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetMessageInsights(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetMultiRegionEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6436,7 +6965,7 @@ func awsRestjson1_deserializeOpErrorGetMessageInsights(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpDocumentGetMessageInsightsOutput(v **GetMessageInsightsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetMultiRegionEndpointOutput(v **GetMultiRegionEndpointOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6449,50 +6978,77 @@ func awsRestjson1_deserializeOpDocumentGetMessageInsightsOutput(v **GetMessageIn return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetMessageInsightsOutput + var sv *GetMultiRegionEndpointOutput if *v == nil { - sv = &GetMessageInsightsOutput{} + sv = &GetMultiRegionEndpointOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "EmailTags": - if err := awsRestjson1_deserializeDocumentMessageTagList(&sv.EmailTags, value); err != nil { - return err + case "CreatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } } - case "FromEmailAddress": + case "EndpointId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected InsightsEmailAddress to be of type string, got %T instead", value) + return fmt.Errorf("expected EndpointId to be of type string, got %T instead", value) } - sv.FromEmailAddress = ptr.String(jtv) - } - - case "Insights": - if err := awsRestjson1_deserializeDocumentEmailInsightsList(&sv.Insights, value); err != nil { - return err + sv.EndpointId = ptr.String(jtv) } - case "MessageId": + case "EndpointName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OutboundMessageId to be of type string, got %T instead", value) + return fmt.Errorf("expected EndpointName to be of type string, got %T instead", value) } - sv.MessageId = ptr.String(jtv) + sv.EndpointName = ptr.String(jtv) } - case "Subject": + case "LastUpdatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Routes": + if err := awsRestjson1_deserializeDocumentRoutes(&sv.Routes, value); err != nil { + return err + } + + case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EmailSubject to be of type string, got %T instead", value) + return fmt.Errorf("expected Status to be of type string, got %T instead", value) } - sv.Subject = ptr.String(jtv) + sv.Status = types.Status(jtv) } default: @@ -8133,11 +8689,175 @@ func awsRestjson1_deserializeOpDocumentListEmailTemplatesOutput(v **ListEmailTem sv.NextToken = ptr.String(jtv) } - case "TemplatesMetadata": - if err := awsRestjson1_deserializeDocumentEmailTemplateMetadataList(&sv.TemplatesMetadata, value); err != nil { - return err - } - + case "TemplatesMetadata": + if err := awsRestjson1_deserializeDocumentEmailTemplateMetadataList(&sv.TemplatesMetadata, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListExportJobs struct { +} + +func (*awsRestjson1_deserializeOpListExportJobs) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListExportJobs) HandleDeserialize(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_deserializeOpErrorListExportJobs(response, &metadata) + } + output := &ListExportJobsOutput{} + 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_deserializeOpDocumentListExportJobsOutput(&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_deserializeOpErrorListExportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListExportJobsOutput(v **ListExportJobsOutput, 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 *ListExportJobsOutput + if *v == nil { + sv = &ListExportJobsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ExportJobs": + if err := awsRestjson1_deserializeDocumentExportJobSummaryList(&sv.ExportJobs, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + default: _, _ = key, value @@ -8147,14 +8867,14 @@ func awsRestjson1_deserializeOpDocumentListEmailTemplatesOutput(v **ListEmailTem return nil } -type awsRestjson1_deserializeOpListExportJobs struct { +type awsRestjson1_deserializeOpListImportJobs struct { } -func (*awsRestjson1_deserializeOpListExportJobs) ID() string { +func (*awsRestjson1_deserializeOpListImportJobs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListExportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListImportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8172,9 +8892,9 @@ func (m *awsRestjson1_deserializeOpListExportJobs) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListExportJobs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListImportJobs(response, &metadata) } - output := &ListExportJobsOutput{} + output := &ListImportJobsOutput{} out.Result = output var buff [1024]byte @@ -8195,7 +8915,7 @@ func (m *awsRestjson1_deserializeOpListExportJobs) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListExportJobsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListImportJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8209,7 +8929,7 @@ func (m *awsRestjson1_deserializeOpListExportJobs) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListExportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListImportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8266,7 +8986,7 @@ func awsRestjson1_deserializeOpErrorListExportJobs(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentListExportJobsOutput(v **ListExportJobsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListImportJobsOutput(v **ListImportJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8279,17 +8999,17 @@ func awsRestjson1_deserializeOpDocumentListExportJobsOutput(v **ListExportJobsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListExportJobsOutput + var sv *ListImportJobsOutput if *v == nil { - sv = &ListExportJobsOutput{} + sv = &ListImportJobsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ExportJobs": - if err := awsRestjson1_deserializeDocumentExportJobSummaryList(&sv.ExportJobs, value); err != nil { + case "ImportJobs": + if err := awsRestjson1_deserializeDocumentImportJobSummaryList(&sv.ImportJobs, value); err != nil { return err } @@ -8311,14 +9031,14 @@ func awsRestjson1_deserializeOpDocumentListExportJobsOutput(v **ListExportJobsOu return nil } -type awsRestjson1_deserializeOpListImportJobs struct { +type awsRestjson1_deserializeOpListMultiRegionEndpoints struct { } -func (*awsRestjson1_deserializeOpListImportJobs) ID() string { +func (*awsRestjson1_deserializeOpListMultiRegionEndpoints) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListImportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListMultiRegionEndpoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8336,9 +9056,9 @@ func (m *awsRestjson1_deserializeOpListImportJobs) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListImportJobs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListMultiRegionEndpoints(response, &metadata) } - output := &ListImportJobsOutput{} + output := &ListMultiRegionEndpointsOutput{} out.Result = output var buff [1024]byte @@ -8359,7 +9079,7 @@ func (m *awsRestjson1_deserializeOpListImportJobs) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListImportJobsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListMultiRegionEndpointsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8373,7 +9093,7 @@ func (m *awsRestjson1_deserializeOpListImportJobs) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListImportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListMultiRegionEndpoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.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 +9150,7 @@ func awsRestjson1_deserializeOpErrorListImportJobs(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentListImportJobsOutput(v **ListImportJobsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListMultiRegionEndpointsOutput(v **ListMultiRegionEndpointsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8443,17 +9163,17 @@ func awsRestjson1_deserializeOpDocumentListImportJobsOutput(v **ListImportJobsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListImportJobsOutput + var sv *ListMultiRegionEndpointsOutput if *v == nil { - sv = &ListImportJobsOutput{} + sv = &ListMultiRegionEndpointsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ImportJobs": - if err := awsRestjson1_deserializeDocumentImportJobSummaryList(&sv.ImportJobs, value); err != nil { + case "MultiRegionEndpoints": + if err := awsRestjson1_deserializeDocumentMultiRegionEndpoints(&sv.MultiRegionEndpoints, value); err != nil { return err } @@ -8461,7 +9181,7 @@ func awsRestjson1_deserializeOpDocumentListImportJobsOutput(v **ListImportJobsOu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + return fmt.Errorf("expected NextTokenV2 to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -18004,6 +18724,135 @@ func awsRestjson1_deserializeDocumentMetricValueList(v *[]int64, value interface return nil } +func awsRestjson1_deserializeDocumentMultiRegionEndpoint(v **types.MultiRegionEndpoint, 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.MultiRegionEndpoint + if *v == nil { + sv = &types.MultiRegionEndpoint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "EndpointId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EndpointId to be of type string, got %T instead", value) + } + sv.EndpointId = ptr.String(jtv) + } + + case "EndpointName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EndpointName to be of type string, got %T instead", value) + } + sv.EndpointName = ptr.String(jtv) + } + + case "LastUpdatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Regions": + if err := awsRestjson1_deserializeDocumentRegions(&sv.Regions, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentMultiRegionEndpoints(v *[]types.MultiRegionEndpoint, 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.MultiRegionEndpoint + if *v == nil { + cv = []types.MultiRegionEndpoint{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.MultiRegionEndpoint + destAddr := &col + if err := awsRestjson1_deserializeDocumentMultiRegionEndpoint(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18538,6 +19387,42 @@ func awsRestjson1_deserializeDocumentRecommendationsList(v *[]types.Recommendati return nil } +func awsRestjson1_deserializeDocumentRegions(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 Region to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentReputationOptions(v **types.ReputationOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18643,6 +19528,80 @@ func awsRestjson1_deserializeDocumentReviewDetails(v **types.ReviewDetails, valu return nil } +func awsRestjson1_deserializeDocumentRoute(v **types.Route, 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.Route + if *v == nil { + sv = &types.Route{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Region": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Region to be of type string, got %T instead", value) + } + sv.Region = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRoutes(v *[]types.Route, 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.Route + if *v == nil { + cv = []types.Route{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Route + destAddr := &col + if err := awsRestjson1_deserializeDocumentRoute(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentSendingOptions(v **types.SendingOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/sesv2/endpoints.go b/service/sesv2/endpoints.go index 6db92fb25a7..f80d6520f9a 100644 --- a/service/sesv2/endpoints.go +++ b/service/sesv2/endpoints.go @@ -12,8 +12,10 @@ import ( "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/sesv2/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/endpoints/private/rulesfn" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/ptr" "github.com/aws/smithy-go/tracing" @@ -261,6 +263,11 @@ type EndpointParameters struct { // // SDK::Endpoint Endpoint *string + + // Operation parameter for EndpointId + // + // Parameter is required. + EndpointId *string } // ValidateRequired validates required parameters are set. @@ -330,6 +337,131 @@ func (r *resolver) ResolveEndpoint( _UseDualStack := *params.UseDualStack _UseFIPS := *params.UseFIPS + if exprVal := params.EndpointId; exprVal != nil { + _EndpointId := *exprVal + _ = _EndpointId + if exprVal := params.Region; exprVal != nil { + _Region := *exprVal + _ = _Region + if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { + _PartitionResult := *exprVal + _ = _PartitionResult + if rulesfn.IsValidHostLabel(_EndpointId, true) { + if _UseFIPS == false { + if exprVal := params.Endpoint; exprVal != nil { + _Endpoint := *exprVal + _ = _Endpoint + 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{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + return sp + }(), + }, + }) + return out + }(), + }, nil + } + if _UseDualStack == true { + if true == _PartitionResult.SupportsDualStack { + uriString := func() string { + var out strings.Builder + out.WriteString("https://") + out.WriteString(_EndpointId) + out.WriteString(".endpoints.email.") + 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#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + return sp + }(), + }, + }) + return out + }(), + }, 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://") + out.WriteString(_EndpointId) + out.WriteString(".endpoints.email.") + 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{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + return sp + }(), + }, + }) + return out + }(), + }, nil + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS is not supported with multi-region endpoints") + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "EndpointId must be a valid host label") + } + } + } if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint diff --git a/service/sesv2/endpoints_test.go b/service/sesv2/endpoints_test.go index 8d5dd6134a4..d344ba65d80 100644 --- a/service/sesv2/endpoints_test.go +++ b/service/sesv2/endpoints_test.go @@ -5,8 +5,10 @@ package sesv2 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" @@ -1632,3 +1634,326 @@ func TestEndpointCase46(t *testing.T) { t.Errorf("expect %v error in %v", e, a) } } + +// Valid EndpointId with dualstack and FIPS disabled. i.e, IPv4 Only stack with no +// FIPS +func TestEndpointCase47(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(false), + UseFIPS: ptr.Bool(false), + Region: ptr.String("us-east-1"), + } + + 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://abc123.456def.endpoints.email.amazonaws.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + 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) + } +} + +// Valid EndpointId with dualstack enabled +func TestEndpointCase48(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(true), + UseFIPS: ptr.Bool(false), + Region: ptr.String("us-west-2"), + } + + 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://abc123.456def.endpoints.email.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#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + 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) + } +} + +// Valid EndpointId with FIPS set, dualstack disabled +func TestEndpointCase49(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(false), + UseFIPS: ptr.Bool(true), + Region: ptr.String("ap-northeast-1"), + } + + 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 is not supported with multi-region endpoints", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Valid EndpointId with both dualstack and FIPS enabled +func TestEndpointCase50(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(true), + UseFIPS: ptr.Bool(true), + Region: ptr.String("ap-northeast-2"), + } + + 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 is not supported with multi-region endpoints", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Regular regional request, without EndpointId +func TestEndpointCase51(t *testing.T) { + var params = EndpointParameters{ + UseDualStack: ptr.Bool(false), + Region: ptr.String("eu-west-1"), + } + + 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://email.eu-west-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) + } +} + +// Invalid EndpointId (Invalid chars / format) +func TestEndpointCase52(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("badactor.com?foo=bar"), + UseDualStack: ptr.Bool(false), + Region: ptr.String("eu-west-2"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "EndpointId must be a valid host label", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Invalid EndpointId (Empty) +func TestEndpointCase53(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String(""), + UseDualStack: ptr.Bool(false), + Region: ptr.String("ap-south-1"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "EndpointId must be a valid host label", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Valid EndpointId with custom sdk endpoint +func TestEndpointCase54(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(false), + Region: ptr.String("us-east-1"), + 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: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4a", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningName(&sp, "ses") + smithyhttp.SetSigV4ASigningName(&sp, "ses") + + smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) + 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) + } +} + +// Valid EndpointId with custom sdk endpoint with FIPS enabled +func TestEndpointCase55(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(false), + UseFIPS: ptr.Bool(true), + Region: ptr.String("us-east-1"), + 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 is not supported with multi-region endpoints", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Valid EndpointId with DualStack enabled and partition does not support DualStack +func TestEndpointCase56(t *testing.T) { + var params = EndpointParameters{ + EndpointId: ptr.String("abc123.456def"), + UseDualStack: ptr.Bool(true), + Region: ptr.String("us-isob-east-1"), + } + + 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) + } +} diff --git a/service/sesv2/generated.json b/service/sesv2/generated.json index ebfaec9a292..6359d3543db 100644 --- a/service/sesv2/generated.json +++ b/service/sesv2/generated.json @@ -3,6 +3,7 @@ "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/aws-sdk-go-v2/internal/v4a": "v0.0.0-00010101000000-000000000000", "github.com/aws/smithy-go": "v1.4.0" }, "files": [ @@ -22,6 +23,7 @@ "api_op_CreateEmailTemplate.go", "api_op_CreateExportJob.go", "api_op_CreateImportJob.go", + "api_op_CreateMultiRegionEndpoint.go", "api_op_DeleteConfigurationSet.go", "api_op_DeleteConfigurationSetEventDestination.go", "api_op_DeleteContact.go", @@ -31,6 +33,7 @@ "api_op_DeleteEmailIdentity.go", "api_op_DeleteEmailIdentityPolicy.go", "api_op_DeleteEmailTemplate.go", + "api_op_DeleteMultiRegionEndpoint.go", "api_op_DeleteSuppressedDestination.go", "api_op_GetAccount.go", "api_op_GetBlacklistReports.go", @@ -52,6 +55,7 @@ "api_op_GetExportJob.go", "api_op_GetImportJob.go", "api_op_GetMessageInsights.go", + "api_op_GetMultiRegionEndpoint.go", "api_op_GetSuppressedDestination.go", "api_op_ListConfigurationSets.go", "api_op_ListContactLists.go", @@ -64,6 +68,7 @@ "api_op_ListEmailTemplates.go", "api_op_ListExportJobs.go", "api_op_ListImportJobs.go", + "api_op_ListMultiRegionEndpoints.go", "api_op_ListRecommendations.go", "api_op_ListSuppressedDestinations.go", "api_op_ListTagsForResource.go", diff --git a/service/sesv2/go.mod b/service/sesv2/go.mod index c516a7f0010..3c849605d2e 100644 --- a/service/sesv2/go.mod +++ b/service/sesv2/go.mod @@ -6,6 +6,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.6 github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 github.com/aws/smithy-go v1.22.1 ) @@ -14,3 +15,5 @@ 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/ + +replace github.com/aws/aws-sdk-go-v2/internal/v4a => ../../internal/v4a/ diff --git a/service/sesv2/options.go b/service/sesv2/options.go index 7f4915c24ec..df2d0ed684b 100644 --- a/service/sesv2/options.go +++ b/service/sesv2/options.go @@ -4,9 +4,11 @@ package sesv2 import ( "context" + "fmt" "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" + "github.com/aws/aws-sdk-go-v2/internal/v4a" smithyauth "github.com/aws/smithy-go/auth" "github.com/aws/smithy-go/logging" "github.com/aws/smithy-go/metrics" @@ -108,6 +110,9 @@ type Options struct { // The client tracer provider. TracerProvider tracing.TracerProvider + // Signature Version 4a (SigV4a) Signer + httpSignerV4a httpSignerV4a + // 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. @@ -140,6 +145,9 @@ func (o Options) GetIdentityResolver(schemeID string) smithyauth.IdentityResolve if schemeID == "aws.auth#sigv4" { return getSigV4IdentityResolver(o) } + if schemeID == "aws.auth#sigv4a" { + return getSigV4AIdentityResolver(o) + } if schemeID == "smithy.api#noAuth" { return &smithyauth.AnonymousIdentityResolver{} } @@ -225,6 +233,46 @@ func WithSigV4SigningRegion(region string) func(*Options) { } } +func getSigV4AIdentityResolver(o Options) smithyauth.IdentityResolver { + if o.Credentials != nil { + return &v4a.CredentialsProviderAdapter{ + Provider: &v4a.SymmetricCredentialAdaptor{ + SymmetricProvider: o.Credentials, + }, + } + } + return nil +} + +// WithSigV4ASigningRegions applies an override to the authentication workflow to +// use the given signing region set for SigV4A-authenticated operations. +// +// This is an advanced setting. The value here is FINAL, taking precedence over +// the resolved signing region set from both auth scheme resolution and endpoint +// resolution. +func WithSigV4ASigningRegions(regions []string) func(*Options) { + fn := func(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, + ) { + rscheme := getResolvedAuthScheme(ctx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + smithyhttp.SetSigV4ASigningRegions(&rscheme.SignerProperties, regions) + return next.HandleFinalize(ctx, in) + } + return func(o *Options) { + o.APIOptions = append(o.APIOptions, func(s *middleware.Stack) error { + return s.Finalize.Insert( + middleware.FinalizeMiddlewareFunc("withSigV4ASigningRegions", fn), + "Signing", + middleware.Before, + ) + }) + } +} + func ignoreAnonymousAuth(options *Options) { if aws.IsCredentialsProvider(options.Credentials, (*aws.AnonymousCredentials)(nil)) { options.Credentials = nil diff --git a/service/sesv2/serializers.go b/service/sesv2/serializers.go index 3e4951a2702..fdbf376a7cc 100644 --- a/service/sesv2/serializers.go +++ b/service/sesv2/serializers.go @@ -1382,6 +1382,101 @@ func awsRestjson1_serializeOpDocumentCreateImportJobInput(v *CreateImportJobInpu return nil } +type awsRestjson1_serializeOpCreateMultiRegionEndpoint struct { +} + +func (*awsRestjson1_serializeOpCreateMultiRegionEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateMultiRegionEndpoint) 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.(*CreateMultiRegionEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v2/email/multi-region-endpoints") + 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_serializeOpDocumentCreateMultiRegionEndpointInput(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_serializeOpHttpBindingsCreateMultiRegionEndpointInput(v *CreateMultiRegionEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateMultiRegionEndpointInput(v *CreateMultiRegionEndpointInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Details != nil { + ok := object.Key("Details") + if err := awsRestjson1_serializeDocumentDetails(v.Details, ok); err != nil { + return err + } + } + + if v.EndpointName != nil { + ok := object.Key("EndpointName") + ok.String(*v.EndpointName) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteConfigurationSet struct { } @@ -2048,6 +2143,77 @@ func awsRestjson1_serializeOpHttpBindingsDeleteEmailTemplateInput(v *DeleteEmail return nil } +type awsRestjson1_serializeOpDeleteMultiRegionEndpoint struct { +} + +func (*awsRestjson1_serializeOpDeleteMultiRegionEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteMultiRegionEndpoint) 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.(*DeleteMultiRegionEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v2/email/multi-region-endpoints/{EndpointName}") + 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_serializeOpHttpBindingsDeleteMultiRegionEndpointInput(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_serializeOpHttpBindingsDeleteMultiRegionEndpointInput(v *DeleteMultiRegionEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointName == nil || len(*v.EndpointName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member EndpointName must not be empty")} + } + if v.EndpointName != nil { + if err := encoder.SetURI("EndpointName").String(*v.EndpointName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteSuppressedDestination struct { } @@ -3530,6 +3696,77 @@ func awsRestjson1_serializeOpHttpBindingsGetMessageInsightsInput(v *GetMessageIn return nil } +type awsRestjson1_serializeOpGetMultiRegionEndpoint struct { +} + +func (*awsRestjson1_serializeOpGetMultiRegionEndpoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetMultiRegionEndpoint) 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.(*GetMultiRegionEndpointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v2/email/multi-region-endpoints/{EndpointName}") + 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_serializeOpHttpBindingsGetMultiRegionEndpointInput(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_serializeOpHttpBindingsGetMultiRegionEndpointInput(v *GetMultiRegionEndpointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.EndpointName == nil || len(*v.EndpointName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member EndpointName must not be empty")} + } + if v.EndpointName != nil { + if err := encoder.SetURI("EndpointName").String(*v.EndpointName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetSuppressedDestination struct { } @@ -4471,6 +4708,76 @@ func awsRestjson1_serializeOpDocumentListImportJobsInput(v *ListImportJobsInput, return nil } +type awsRestjson1_serializeOpListMultiRegionEndpoints struct { +} + +func (*awsRestjson1_serializeOpListMultiRegionEndpoints) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListMultiRegionEndpoints) 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.(*ListMultiRegionEndpointsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v2/email/multi-region-endpoints") + 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_serializeOpHttpBindingsListMultiRegionEndpointsInput(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_serializeOpHttpBindingsListMultiRegionEndpointsInput(v *ListMultiRegionEndpointsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.NextToken != nil { + encoder.SetQuery("NextToken").String(*v.NextToken) + } + + if v.PageSize != nil { + encoder.SetQuery("PageSize").Integer(*v.PageSize) + } + + return nil +} + type awsRestjson1_serializeOpListRecommendations struct { } @@ -6770,6 +7077,11 @@ func awsRestjson1_serializeOpDocumentSendBulkEmailInput(v *SendBulkEmailInput, v } } + if v.EndpointId != nil { + ok := object.Key("EndpointId") + ok.String(*v.EndpointId) + } + if v.FeedbackForwardingEmailAddress != nil { ok := object.Key("FeedbackForwardingEmailAddress") ok.String(*v.FeedbackForwardingEmailAddress) @@ -6990,6 +7302,11 @@ func awsRestjson1_serializeOpDocumentSendEmailInput(v *SendEmailInput, value smi } } + if v.EndpointId != nil { + ok := object.Key("EndpointId") + ok.String(*v.EndpointId) + } + if v.FeedbackForwardingEmailAddress != nil { ok := object.Key("FeedbackForwardingEmailAddress") ok.String(*v.FeedbackForwardingEmailAddress) @@ -8218,6 +8535,20 @@ func awsRestjson1_serializeDocumentDestination(v *types.Destination, value smith return nil } +func awsRestjson1_serializeDocumentDetails(v *types.Details, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.RoutesDetails != nil { + ok := object.Key("RoutesDetails") + if err := awsRestjson1_serializeDocumentRoutesDetails(v.RoutesDetails, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentDimensions(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9013,6 +9344,31 @@ func awsRestjson1_serializeDocumentReputationOptions(v *types.ReputationOptions, return nil } +func awsRestjson1_serializeDocumentRouteDetails(v *types.RouteDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Region != nil { + ok := object.Key("Region") + ok.String(*v.Region) + } + + return nil +} + +func awsRestjson1_serializeDocumentRoutesDetails(v []types.RouteDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRouteDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentSendingOptions(v *types.SendingOptions, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/sesv2/snapshot/api_op_CreateMultiRegionEndpoint.go.snap b/service/sesv2/snapshot/api_op_CreateMultiRegionEndpoint.go.snap new file mode 100644 index 00000000000..62217a2cfbf --- /dev/null +++ b/service/sesv2/snapshot/api_op_CreateMultiRegionEndpoint.go.snap @@ -0,0 +1,41 @@ +CreateMultiRegionEndpoint + 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/sesv2/snapshot/api_op_DeleteMultiRegionEndpoint.go.snap b/service/sesv2/snapshot/api_op_DeleteMultiRegionEndpoint.go.snap new file mode 100644 index 00000000000..9abe11a3013 --- /dev/null +++ b/service/sesv2/snapshot/api_op_DeleteMultiRegionEndpoint.go.snap @@ -0,0 +1,41 @@ +DeleteMultiRegionEndpoint + 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/sesv2/snapshot/api_op_GetMultiRegionEndpoint.go.snap b/service/sesv2/snapshot/api_op_GetMultiRegionEndpoint.go.snap new file mode 100644 index 00000000000..a08b4246536 --- /dev/null +++ b/service/sesv2/snapshot/api_op_GetMultiRegionEndpoint.go.snap @@ -0,0 +1,41 @@ +GetMultiRegionEndpoint + 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/sesv2/snapshot/api_op_ListMultiRegionEndpoints.go.snap b/service/sesv2/snapshot/api_op_ListMultiRegionEndpoints.go.snap new file mode 100644 index 00000000000..2ff19ea732b --- /dev/null +++ b/service/sesv2/snapshot/api_op_ListMultiRegionEndpoints.go.snap @@ -0,0 +1,40 @@ +ListMultiRegionEndpoints + 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/sesv2/snapshot_test.go b/service/sesv2/snapshot_test.go index a17e423fefc..42f4b310def 100644 --- a/service/sesv2/snapshot_test.go +++ b/service/sesv2/snapshot_test.go @@ -230,6 +230,18 @@ func TestCheckSnapshot_CreateImportJob(t *testing.T) { } } +func TestCheckSnapshot_CreateMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteConfigurationSet(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteConfigurationSet(context.Background(), nil, func(o *Options) { @@ -338,6 +350,18 @@ func TestCheckSnapshot_DeleteEmailTemplate(t *testing.T) { } } +func TestCheckSnapshot_DeleteMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteSuppressedDestination(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteSuppressedDestination(context.Background(), nil, func(o *Options) { @@ -590,6 +614,18 @@ func TestCheckSnapshot_GetMessageInsights(t *testing.T) { } } +func TestCheckSnapshot_GetMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetSuppressedDestination(t *testing.T) { svc := New(Options{}) _, err := svc.GetSuppressedDestination(context.Background(), nil, func(o *Options) { @@ -734,6 +770,18 @@ func TestCheckSnapshot_ListImportJobs(t *testing.T) { } } +func TestCheckSnapshot_ListMultiRegionEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMultiRegionEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListMultiRegionEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListRecommendations(t *testing.T) { svc := New(Options{}) _, err := svc.ListRecommendations(context.Background(), nil, func(o *Options) { @@ -1333,6 +1381,18 @@ func TestUpdateSnapshot_CreateImportJob(t *testing.T) { } } +func TestUpdateSnapshot_CreateMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteConfigurationSet(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteConfigurationSet(context.Background(), nil, func(o *Options) { @@ -1441,6 +1501,18 @@ func TestUpdateSnapshot_DeleteEmailTemplate(t *testing.T) { } } +func TestUpdateSnapshot_DeleteMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteSuppressedDestination(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteSuppressedDestination(context.Background(), nil, func(o *Options) { @@ -1693,6 +1765,18 @@ func TestUpdateSnapshot_GetMessageInsights(t *testing.T) { } } +func TestUpdateSnapshot_GetMultiRegionEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetMultiRegionEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetMultiRegionEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetSuppressedDestination(t *testing.T) { svc := New(Options{}) _, err := svc.GetSuppressedDestination(context.Background(), nil, func(o *Options) { @@ -1837,6 +1921,18 @@ func TestUpdateSnapshot_ListImportJobs(t *testing.T) { } } +func TestUpdateSnapshot_ListMultiRegionEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListMultiRegionEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListMultiRegionEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListRecommendations(t *testing.T) { svc := New(Options{}) _, err := svc.ListRecommendations(context.Background(), nil, func(o *Options) { diff --git a/service/sesv2/types/enums.go b/service/sesv2/types/enums.go index f620ab19455..ead1aeaf443 100644 --- a/service/sesv2/types/enums.go +++ b/service/sesv2/types/enums.go @@ -796,6 +796,29 @@ func (ScalingMode) Values() []ScalingMode { } } +type Status string + +// Enum values for Status +const ( + StatusCreating Status = "CREATING" + StatusReady Status = "READY" + StatusFailed Status = "FAILED" + StatusDeleting Status = "DELETING" +) + +// Values returns all known values for Status. 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 (Status) Values() []Status { + return []Status{ + "CREATING", + "READY", + "FAILED", + "DELETING", + } +} + type SubscriptionStatus string // Enum values for SubscriptionStatus diff --git a/service/sesv2/types/types.go b/service/sesv2/types/types.go index 1b968d6d8e0..78bee9c33d0 100644 --- a/service/sesv2/types/types.go +++ b/service/sesv2/types/types.go @@ -643,6 +643,19 @@ type Destination struct { noSmithyDocumentSerde } +// An object that contains configuration details of multi-region endpoint +// (global-endpoint). +type Details struct { + + // A list of route configuration details. Must contain exactly one route + // configuration. + // + // This member is required. + RoutesDetails []RouteDetails + + noSmithyDocumentSerde +} + // An object that contains information about the DKIM authentication status for an // email identity. // @@ -1944,6 +1957,40 @@ type MetricsDataSource struct { noSmithyDocumentSerde } +// An object that contains multi-region endpoint (global-endpoint) properties. +type MultiRegionEndpoint struct { + + // The time stamp of when the multi-region endpoint (global-endpoint) was created. + CreatedTimestamp *time.Time + + // The ID of the multi-region endpoint (global-endpoint). + EndpointId *string + + // The name of the multi-region endpoint (global-endpoint). + EndpointName *string + + // The time stamp of when the multi-region endpoint (global-endpoint) was last + // updated. + LastUpdatedTimestamp *time.Time + + // Primary and secondary regions between which multi-region endpoint splits + // sending traffic. + Regions []string + + // The status of the multi-region endpoint (global-endpoint). + // + // - CREATING – The resource is being provisioned. + // + // - READY – The resource is ready to use. + // + // - FAILED – The resource failed to be provisioned. + // + // - DELETING – The resource is being deleted as requested. + Status Status + + noSmithyDocumentSerde +} + // An object that contains information about email that was sent from the selected // domain. type OverallVolume struct { @@ -2129,6 +2176,29 @@ type ReviewDetails struct { noSmithyDocumentSerde } +// An object which contains an AWS-Region and routing status. +type Route struct { + + // The name of an AWS-Region. + // + // This member is required. + Region *string + + noSmithyDocumentSerde +} + +// An object that contains route configuration. Includes secondary region name. +type RouteDetails struct { + + // The name of an AWS-Region to be a secondary region for the multi-region + // endpoint (global-endpoint). + // + // This member is required. + Region *string + + noSmithyDocumentSerde +} + // Used to enable or disable email sending for messages that use this // configuration set in the current Amazon Web Services Region. type SendingOptions struct { diff --git a/service/sesv2/validators.go b/service/sesv2/validators.go index 31e70a6597f..c49dd677d3b 100644 --- a/service/sesv2/validators.go +++ b/service/sesv2/validators.go @@ -290,6 +290,26 @@ func (m *validateOpCreateImportJob) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpCreateMultiRegionEndpoint struct { +} + +func (*validateOpCreateMultiRegionEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateMultiRegionEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateMultiRegionEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateMultiRegionEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteConfigurationSetEventDestination struct { } @@ -470,6 +490,26 @@ func (m *validateOpDeleteEmailTemplate) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpDeleteMultiRegionEndpoint struct { +} + +func (*validateOpDeleteMultiRegionEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteMultiRegionEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteMultiRegionEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteMultiRegionEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteSuppressedDestination struct { } @@ -830,6 +870,26 @@ func (m *validateOpGetMessageInsights) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpGetMultiRegionEndpoint struct { +} + +func (*validateOpGetMultiRegionEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetMultiRegionEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetMultiRegionEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetMultiRegionEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetSuppressedDestination struct { } @@ -1566,6 +1626,10 @@ func addOpCreateImportJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateImportJob{}, middleware.After) } +func addOpCreateMultiRegionEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateMultiRegionEndpoint{}, middleware.After) +} + func addOpDeleteConfigurationSetEventDestinationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteConfigurationSetEventDestination{}, middleware.After) } @@ -1602,6 +1666,10 @@ func addOpDeleteEmailTemplateValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpDeleteEmailTemplate{}, middleware.After) } +func addOpDeleteMultiRegionEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteMultiRegionEndpoint{}, middleware.After) +} + func addOpDeleteSuppressedDestinationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteSuppressedDestination{}, middleware.After) } @@ -1674,6 +1742,10 @@ func addOpGetMessageInsightsValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetMessageInsights{}, middleware.After) } +func addOpGetMultiRegionEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetMultiRegionEndpoint{}, middleware.After) +} + func addOpGetSuppressedDestinationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetSuppressedDestination{}, middleware.After) } @@ -2025,6 +2097,25 @@ func validateContent(v *types.Content) error { } } +func validateDetails(v *types.Details) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Details"} + if v.RoutesDetails == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoutesDetails")) + } else if v.RoutesDetails != nil { + if err := validateRoutesDetails(v.RoutesDetails); err != nil { + invalidParams.AddNested("RoutesDetails", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateEmailContent(v *types.EmailContent) error { if v == nil { return nil @@ -2370,6 +2461,38 @@ func validateRawMessage(v *types.RawMessage) error { } } +func validateRouteDetails(v *types.RouteDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RouteDetails"} + if v.Region == nil { + invalidParams.Add(smithy.NewErrParamRequired("Region")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRoutesDetails(v []types.RouteDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RoutesDetails"} + for i := range v { + if err := validateRouteDetails(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSnsDestination(v *types.SnsDestination) error { if v == nil { return nil @@ -2875,6 +2998,33 @@ func validateOpCreateImportJobInput(v *CreateImportJobInput) error { } } +func validateOpCreateMultiRegionEndpointInput(v *CreateMultiRegionEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateMultiRegionEndpointInput"} + if v.EndpointName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointName")) + } + if v.Details == nil { + invalidParams.Add(smithy.NewErrParamRequired("Details")) + } else if v.Details != nil { + if err := validateDetails(v.Details); err != nil { + invalidParams.AddNested("Details", 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 validateOpDeleteConfigurationSetEventDestinationInput(v *DeleteConfigurationSetEventDestinationInput) error { if v == nil { return nil @@ -3019,6 +3169,21 @@ func validateOpDeleteEmailTemplateInput(v *DeleteEmailTemplateInput) error { } } +func validateOpDeleteMultiRegionEndpointInput(v *DeleteMultiRegionEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteMultiRegionEndpointInput"} + if v.EndpointName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteSuppressedDestinationInput(v *DeleteSuppressedDestinationInput) error { if v == nil { return nil @@ -3298,6 +3463,21 @@ func validateOpGetMessageInsightsInput(v *GetMessageInsightsInput) error { } } +func validateOpGetMultiRegionEndpointInput(v *GetMultiRegionEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetMultiRegionEndpointInput"} + if v.EndpointName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndpointName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetSuppressedDestinationInput(v *GetSuppressedDestinationInput) error { if v == nil { return nil diff --git a/service/timestreaminfluxdb/api_op_CreateDbInstance.go b/service/timestreaminfluxdb/api_op_CreateDbInstance.go index 536891fa578..2608fb95fbb 100644 --- a/service/timestreaminfluxdb/api_op_CreateDbInstance.go +++ b/service/timestreaminfluxdb/api_op_CreateDbInstance.go @@ -50,7 +50,7 @@ type CreateDbInstanceInput struct { // The password of the initial admin user created in InfluxDB. This password will // allow you to access the InfluxDB UI to perform various administrative tasks and // also use the InfluxDB CLI to create an operator token. These attributes will be - // stored in a Secret created in AWS SecretManager in your account. + // stored in a Secret created in Amazon Web Services SecretManager in your account. // // This member is required. Password *string @@ -97,6 +97,11 @@ type CreateDbInstanceInput struct { // Configuration for sending InfluxDB engine logs to a specified S3 bucket. LogDeliveryConfiguration *types.LogDeliveryConfiguration + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType types.NetworkType + // The name of the initial organization for the initial admin user in InfluxDB. An // InfluxDB organization is a workspace for a group of users. Organization *string @@ -172,15 +177,20 @@ type CreateDbInstanceOutput struct { // The endpoint used to connect to InfluxDB. The default InfluxDB port is 8086. Endpoint *string - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the - // initial InfluxDB authorization parameters. The secret value is a JSON formatted - // key-value pair holding InfluxDB authorization values: organization, bucket, - // username, and password. + // The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager + // secret containing the initial InfluxDB authorization parameters. The secret + // value is a JSON formatted key-value pair holding InfluxDB authorization values: + // organization, bucket, username, and password. InfluxAuthParametersSecretArn *string // Configuration for sending InfluxDB engine logs to send to specified S3 bucket. LogDeliveryConfiguration *types.LogDeliveryConfiguration + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType types.NetworkType + // The port number on which InfluxDB accepts connections. The default value is // 8086. Port *int32 diff --git a/service/timestreaminfluxdb/api_op_DeleteDbInstance.go b/service/timestreaminfluxdb/api_op_DeleteDbInstance.go index 548298072c1..d0b7ef1bfec 100644 --- a/service/timestreaminfluxdb/api_op_DeleteDbInstance.go +++ b/service/timestreaminfluxdb/api_op_DeleteDbInstance.go @@ -82,15 +82,20 @@ type DeleteDbInstanceOutput struct { // The endpoint used to connect to InfluxDB. The default InfluxDB port is 8086. Endpoint *string - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the - // initial InfluxDB authorization parameters. The secret value is a JSON formatted - // key-value pair holding InfluxDB authorization values: organization, bucket, - // username, and password. + // The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager + // secret containing the initial InfluxDB authorization parameters. The secret + // value is a JSON formatted key-value pair holding InfluxDB authorization values: + // organization, bucket, username, and password. InfluxAuthParametersSecretArn *string // Configuration for sending InfluxDB engine logs to send to specified S3 bucket. LogDeliveryConfiguration *types.LogDeliveryConfiguration + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType types.NetworkType + // The port number on which InfluxDB accepts connections. Port *int32 diff --git a/service/timestreaminfluxdb/api_op_GetDbInstance.go b/service/timestreaminfluxdb/api_op_GetDbInstance.go index 98655163cc8..45b59e3ecbf 100644 --- a/service/timestreaminfluxdb/api_op_GetDbInstance.go +++ b/service/timestreaminfluxdb/api_op_GetDbInstance.go @@ -82,15 +82,20 @@ type GetDbInstanceOutput struct { // The endpoint used to connect to InfluxDB. The default InfluxDB port is 8086. Endpoint *string - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the - // initial InfluxDB authorization parameters. The secret value is a JSON formatted - // key-value pair holding InfluxDB authorization values: organization, bucket, - // username, and password. + // The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager + // secret containing the initial InfluxDB authorization parameters. The secret + // value is a JSON formatted key-value pair holding InfluxDB authorization values: + // organization, bucket, username, and password. InfluxAuthParametersSecretArn *string // Configuration for sending InfluxDB engine logs to send to specified S3 bucket. LogDeliveryConfiguration *types.LogDeliveryConfiguration + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType types.NetworkType + // The port number on which InfluxDB accepts connections. Port *int32 diff --git a/service/timestreaminfluxdb/api_op_UpdateDbInstance.go b/service/timestreaminfluxdb/api_op_UpdateDbInstance.go index 76c733d23b5..c9d9ac5c7ed 100644 --- a/service/timestreaminfluxdb/api_op_UpdateDbInstance.go +++ b/service/timestreaminfluxdb/api_op_UpdateDbInstance.go @@ -76,7 +76,8 @@ type UpdateDbInstanceOutput struct { Id *string // This customer-supplied name uniquely identifies the DB instance when - // interacting with the Amazon Timestream for InfluxDB API and AWS CLI commands. + // interacting with the Amazon Timestream for InfluxDB API and Amazon Web Services + // CLI commands. // // This member is required. Name *string @@ -108,15 +109,20 @@ type UpdateDbInstanceOutput struct { // The endpoint used to connect to InfluxDB. The default InfluxDB port is 8086. Endpoint *string - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret containing the - // initial InfluxDB authorization parameters. The secret value is a JSON formatted - // key-value pair holding InfluxDB authorization values: organization, bucket, - // username, and password. + // The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager + // secret containing the initial InfluxDB authorization parameters. The secret + // value is a JSON formatted key-value pair holding InfluxDB authorization values: + // organization, bucket, username, and password. InfluxAuthParametersSecretArn *string // Configuration for sending InfluxDB engine logs to send to specified S3 bucket. LogDeliveryConfiguration *types.LogDeliveryConfiguration + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType types.NetworkType + // The port number on which InfluxDB accepts connections. Port *int32 diff --git a/service/timestreaminfluxdb/deserializers.go b/service/timestreaminfluxdb/deserializers.go index 91db618bf91..cd83c74e05e 100644 --- a/service/timestreaminfluxdb/deserializers.go +++ b/service/timestreaminfluxdb/deserializers.go @@ -1096,6 +1096,9 @@ func awsAwsjson10_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1762,6 +1765,15 @@ func awsAwsjson10_deserializeDocumentDbInstanceSummary(v **types.DbInstanceSumma sv.Name = ptr.String(jtv) } + case "networkType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkType to be of type string, got %T instead", value) + } + sv.NetworkType = types.NetworkType(jtv) + } + case "port": if value != nil { jtv, ok := value.(json.Number) @@ -2957,6 +2969,15 @@ func awsAwsjson10_deserializeOpDocumentCreateDbInstanceOutput(v **CreateDbInstan sv.Name = ptr.String(jtv) } + case "networkType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkType to be of type string, got %T instead", value) + } + sv.NetworkType = types.NetworkType(jtv) + } + case "port": if value != nil { jtv, ok := value.(json.Number) @@ -3218,6 +3239,15 @@ func awsAwsjson10_deserializeOpDocumentDeleteDbInstanceOutput(v **DeleteDbInstan sv.Name = ptr.String(jtv) } + case "networkType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkType to be of type string, got %T instead", value) + } + sv.NetworkType = types.NetworkType(jtv) + } + case "port": if value != nil { jtv, ok := value.(json.Number) @@ -3407,6 +3437,15 @@ func awsAwsjson10_deserializeOpDocumentGetDbInstanceOutput(v **GetDbInstanceOutp sv.Name = ptr.String(jtv) } + case "networkType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkType to be of type string, got %T instead", value) + } + sv.NetworkType = types.NetworkType(jtv) + } + case "port": if value != nil { jtv, ok := value.(json.Number) @@ -3794,6 +3833,15 @@ func awsAwsjson10_deserializeOpDocumentUpdateDbInstanceOutput(v **UpdateDbInstan sv.Name = ptr.String(jtv) } + case "networkType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkType to be of type string, got %T instead", value) + } + sv.NetworkType = types.NetworkType(jtv) + } + case "port": if value != nil { jtv, ok := value.(json.Number) diff --git a/service/timestreaminfluxdb/doc.go b/service/timestreaminfluxdb/doc.go index d93cd903c4b..50d5eae778e 100644 --- a/service/timestreaminfluxdb/doc.go +++ b/service/timestreaminfluxdb/doc.go @@ -5,8 +5,8 @@ // // Amazon Timestream for InfluxDB is a managed time-series database engine that // makes it easy for application developers and DevOps teams to run InfluxDB -// databases on AWS for near real-time time-series applications using open-source -// APIs. With Amazon Timestream for InfluxDB, it is easy to set up, operate, and -// scale time-series workloads that can answer queries with single-digit -// millisecond query response time. +// databases on Amazon Web Services for near real-time time-series applications +// using open-source APIs. With Amazon Timestream for InfluxDB, it is easy to set +// up, operate, and scale time-series workloads that can answer queries with +// single-digit millisecond query response time. package timestreaminfluxdb diff --git a/service/timestreaminfluxdb/serializers.go b/service/timestreaminfluxdb/serializers.go index 31328e74005..14dde73b2c6 100644 --- a/service/timestreaminfluxdb/serializers.go +++ b/service/timestreaminfluxdb/serializers.go @@ -1035,6 +1035,11 @@ func awsAwsjson10_serializeOpDocumentCreateDbInstanceInput(v *CreateDbInstanceIn ok.String(*v.Name) } + if len(v.NetworkType) > 0 { + ok := object.Key("networkType") + ok.String(string(v.NetworkType)) + } + if v.Organization != nil { ok := object.Key("organization") ok.String(*v.Organization) diff --git a/service/timestreaminfluxdb/types/enums.go b/service/timestreaminfluxdb/types/enums.go index 2644db3c806..687f5e1ff07 100644 --- a/service/timestreaminfluxdb/types/enums.go +++ b/service/timestreaminfluxdb/types/enums.go @@ -117,6 +117,25 @@ func (LogLevel) Values() []LogLevel { } } +type NetworkType string + +// Enum values for NetworkType +const ( + NetworkTypeIpv4 NetworkType = "IPV4" + NetworkTypeDual NetworkType = "DUAL" +) + +// Values returns all known values for NetworkType. 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 (NetworkType) Values() []NetworkType { + return []NetworkType{ + "IPV4", + "DUAL", + } +} + type Status string // Enum values for Status diff --git a/service/timestreaminfluxdb/types/types.go b/service/timestreaminfluxdb/types/types.go index df81f72d3f8..e3609d9e579 100644 --- a/service/timestreaminfluxdb/types/types.go +++ b/service/timestreaminfluxdb/types/types.go @@ -20,7 +20,8 @@ type DbInstanceSummary struct { Id *string // This customer-supplied name uniquely identifies the DB instance when - // interacting with the Amazon Timestream for InfluxDB API and AWS CLI commands. + // interacting with the Amazon Timestream for InfluxDB API and Amazon Web Services + // CLI commands. // // This member is required. Name *string @@ -40,6 +41,11 @@ type DbInstanceSummary struct { // The endpoint used to connect to InfluxDB. The default InfluxDB port is 8086. Endpoint *string + // Specifies whether the networkType of the Timestream for InfluxDB instance is + // IPV4, which can communicate over IPv4 protocol only, or DUAL, which can + // communicate over both IPv4 and IPv6 protocols. + NetworkType NetworkType + // The port number on which InfluxDB accepts connections. Port *int32 diff --git a/service/vpclattice/internal/endpoints/endpoints.go b/service/vpclattice/internal/endpoints/endpoints.go index 4da160349ae..1e979c6455d 100644 --- a/service/vpclattice/internal/endpoints/endpoints.go +++ b/service/vpclattice/internal/endpoints/endpoints.go @@ -169,6 +169,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-4", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, From a164d844a90d8b9f86f8cb827b3fef512eabaabf Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 11 Dec 2024 20:01:41 +0000 Subject: [PATCH 21/21] Release 2024-12-11 --- .../1fe8264a76b7446e880d70af2a6f957e.json | 8 ------- .../54950808e50e42cfbf97eb693e93a6f9.json | 8 ------- .../644ff57998044443ad10e2f01a844439.json | 8 ------- .../6d051616f1174ae685563efbef3ee440.json | 8 ------- .../c32c28090d7c478b9a567c5433100417.json | 8 ------- .../c70da81b9dc44102873a518854ffad43.json | 8 ------- .../dcccc299763044dd86213383b5c7f6d9.json | 8 ------- .../e1c400cf6a504d40bb88736a062be8a4.json | 8 ------- CHANGELOG.md | 23 +++++++++++++++++++ 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/artifact/CHANGELOG.md | 4 ++++ service/artifact/go_module_metadata.go | 2 +- service/cloudtrail/CHANGELOG.md | 4 ++++ service/cloudtrail/go_module_metadata.go | 2 +- service/cognitoidentityprovider/CHANGELOG.md | 4 ++++ .../go_module_metadata.go | 2 +- service/controlcatalog/CHANGELOG.md | 4 ++++ service/controlcatalog/go_module_metadata.go | 2 +- service/dlm/CHANGELOG.md | 4 ++++ service/dlm/go_module_metadata.go | 2 +- service/dynamodbstreams/CHANGELOG.md | 4 ++++ service/dynamodbstreams/go_module_metadata.go | 2 +- service/emrserverless/CHANGELOG.md | 4 ++++ service/emrserverless/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 4 ++-- service/migrationhub/CHANGELOG.md | 4 ++++ service/migrationhub/go_module_metadata.go | 2 +- service/sesv2/CHANGELOG.md | 4 ++++ service/sesv2/go_module_metadata.go | 2 +- service/timestreaminfluxdb/CHANGELOG.md | 4 ++++ .../timestreaminfluxdb/go_module_metadata.go | 2 +- service/vpclattice/CHANGELOG.md | 4 ++++ service/vpclattice/go_module_metadata.go | 2 +- 42 files changed, 101 insertions(+), 86 deletions(-) delete mode 100644 .changelog/1fe8264a76b7446e880d70af2a6f957e.json delete mode 100644 .changelog/54950808e50e42cfbf97eb693e93a6f9.json delete mode 100644 .changelog/644ff57998044443ad10e2f01a844439.json delete mode 100644 .changelog/6d051616f1174ae685563efbef3ee440.json delete mode 100644 .changelog/c32c28090d7c478b9a567c5433100417.json delete mode 100644 .changelog/c70da81b9dc44102873a518854ffad43.json delete mode 100644 .changelog/dcccc299763044dd86213383b5c7f6d9.json delete mode 100644 .changelog/e1c400cf6a504d40bb88736a062be8a4.json diff --git a/.changelog/1fe8264a76b7446e880d70af2a6f957e.json b/.changelog/1fe8264a76b7446e880d70af2a6f957e.json deleted file mode 100644 index 8fecd98d7d6..00000000000 --- a/.changelog/1fe8264a76b7446e880d70af2a6f957e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "1fe8264a-76b7-446e-880d-70af2a6f957e", - "type": "feature", - "description": "API and documentation updates for AWS MigrationHub related to adding support for listing migration task updates and associating, disassociating and listing source resources", - "modules": [ - "service/migrationhub" - ] -} \ No newline at end of file diff --git a/.changelog/54950808e50e42cfbf97eb693e93a6f9.json b/.changelog/54950808e50e42cfbf97eb693e93a6f9.json deleted file mode 100644 index c898bc6b352..00000000000 --- a/.changelog/54950808e50e42cfbf97eb693e93a6f9.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "54950808-e50e-42cf-bf97-eb693e93a6f9", - "type": "documentation", - "description": "Doc-only updates for CloudTrail.", - "modules": [ - "service/cloudtrail" - ] -} \ No newline at end of file diff --git a/.changelog/644ff57998044443ad10e2f01a844439.json b/.changelog/644ff57998044443ad10e2f01a844439.json deleted file mode 100644 index 854ab766184..00000000000 --- a/.changelog/644ff57998044443ad10e2f01a844439.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "644ff579-9804-4443-ad10-e2f01a844439", - "type": "feature", - "description": "This release adds support for accessing system profile logs in Lake Formation-enabled jobs.", - "modules": [ - "service/emrserverless" - ] -} \ No newline at end of file diff --git a/.changelog/6d051616f1174ae685563efbef3ee440.json b/.changelog/6d051616f1174ae685563efbef3ee440.json deleted file mode 100644 index 2b15b928402..00000000000 --- a/.changelog/6d051616f1174ae685563efbef3ee440.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "6d051616-f117-4ae6-8556-3efbef3ee440", - "type": "feature", - "description": "Add support for listing active customer agreements for the calling AWS Account.", - "modules": [ - "service/artifact" - ] -} \ No newline at end of file diff --git a/.changelog/c32c28090d7c478b9a567c5433100417.json b/.changelog/c32c28090d7c478b9a567c5433100417.json deleted file mode 100644 index 8beacffec89..00000000000 --- a/.changelog/c32c28090d7c478b9a567c5433100417.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c32c2809-0d7c-478b-9a56-7c5433100417", - "type": "documentation", - "description": "Updated descriptions for some API operations and parameters, corrected some errors in Cognito user pools", - "modules": [ - "service/cognitoidentityprovider" - ] -} \ No newline at end of file diff --git a/.changelog/c70da81b9dc44102873a518854ffad43.json b/.changelog/c70da81b9dc44102873a518854ffad43.json deleted file mode 100644 index f8acbf91b04..00000000000 --- a/.changelog/c70da81b9dc44102873a518854ffad43.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c70da81b-9dc4-4102-873a-518854ffad43", - "type": "feature", - "description": "Adds networkType parameter to CreateDbInstance API which allows IPv6 support to the InfluxDB endpoint", - "modules": [ - "service/timestreaminfluxdb" - ] -} \ No newline at end of file diff --git a/.changelog/dcccc299763044dd86213383b5c7f6d9.json b/.changelog/dcccc299763044dd86213383b5c7f6d9.json deleted file mode 100644 index e17f64f60c6..00000000000 --- a/.changelog/dcccc299763044dd86213383b5c7f6d9.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "dcccc299-7630-44dd-8621-3383b5c7f6d9", - "type": "documentation", - "description": "Minor documentation updates to the content of ImplementationDetails object part of the Control Catalog GetControl API", - "modules": [ - "service/controlcatalog" - ] -} \ No newline at end of file diff --git a/.changelog/e1c400cf6a504d40bb88736a062be8a4.json b/.changelog/e1c400cf6a504d40bb88736a062be8a4.json deleted file mode 100644 index 91bf09c1f22..00000000000 --- a/.changelog/e1c400cf6a504d40bb88736a062be8a4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "e1c400cf-6a50-4d40-bb88-736a062be8a4", - "type": "feature", - "description": "Introduces support for multi-region endpoint.", - "modules": [ - "service/sesv2" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e1c553740a7..800f23dd6c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ +# Release (2024-12-11) + +## General Highlights +* **Dependency Update**: Updated to the latest SDK module versions + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/artifact`: [v1.7.0](service/artifact/CHANGELOG.md#v170-2024-12-11) + * **Feature**: Add support for listing active customer agreements for the calling AWS Account. +* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.46.3](service/cloudtrail/CHANGELOG.md#v1463-2024-12-11) + * **Documentation**: Doc-only updates for CloudTrail. +* `github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider`: [v1.48.1](service/cognitoidentityprovider/CHANGELOG.md#v1481-2024-12-11) + * **Documentation**: Updated descriptions for some API operations and parameters, corrected some errors in Cognito user pools +* `github.com/aws/aws-sdk-go-v2/service/controlcatalog`: [v1.6.3](service/controlcatalog/CHANGELOG.md#v163-2024-12-11) + * **Documentation**: Minor documentation updates to the content of ImplementationDetails object part of the Control Catalog GetControl API +* `github.com/aws/aws-sdk-go-v2/service/emrserverless`: [v1.27.0](service/emrserverless/CHANGELOG.md#v1270-2024-12-11) + * **Feature**: This release adds support for accessing system profile logs in Lake Formation-enabled jobs. +* `github.com/aws/aws-sdk-go-v2/service/migrationhub`: [v1.25.0](service/migrationhub/CHANGELOG.md#v1250-2024-12-11) + * **Feature**: API and documentation updates for AWS MigrationHub related to adding support for listing migration task updates and associating, disassociating and listing source resources +* `github.com/aws/aws-sdk-go-v2/service/sesv2`: [v1.40.0](service/sesv2/CHANGELOG.md#v1400-2024-12-11) + * **Feature**: Introduces support for multi-region endpoint. +* `github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb`: [v1.7.0](service/timestreaminfluxdb/CHANGELOG.md#v170-2024-12-11) + * **Feature**: Adds networkType parameter to CreateDbInstance API which allows IPv6 support to the InfluxDB endpoint + # Release (2024-12-10) ## Module Highlights diff --git a/example/service/dynamodb/scanItems/go.mod b/example/service/dynamodb/scanItems/go.mod index 3c83e287462..5919d372ff4 100644 --- a/example/service/dynamodb/scanItems/go.mod +++ b/example/service/dynamodb/scanItems/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.6 github.com/aws/aws-sdk-go-v2/config v1.28.6 - github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.20 + github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.21 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 ) @@ -15,7 +15,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.8 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect diff --git a/feature/dynamodb/attributevalue/CHANGELOG.md b/feature/dynamodb/attributevalue/CHANGELOG.md index e9121621f63..b02c5481d15 100644 --- a/feature/dynamodb/attributevalue/CHANGELOG.md +++ b/feature/dynamodb/attributevalue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.15.21 (2024-12-11) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.15.20 (2024-12-03.2) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodb/attributevalue/go.mod b/feature/dynamodb/attributevalue/go.mod index 99ea23d0e2d..41c66c65443 100644 --- a/feature/dynamodb/attributevalue/go.mod +++ b/feature/dynamodb/attributevalue/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.6 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 - github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.8 + github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.9 ) require github.com/aws/smithy-go v1.22.1 // indirect diff --git a/feature/dynamodb/attributevalue/go_module_metadata.go b/feature/dynamodb/attributevalue/go_module_metadata.go index 539dbd022ef..cb1bb321bee 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.20" +const goModuleVersion = "1.15.21" diff --git a/feature/dynamodb/expression/CHANGELOG.md b/feature/dynamodb/expression/CHANGELOG.md index 85118321ea0..1ba0f02f713 100644 --- a/feature/dynamodb/expression/CHANGELOG.md +++ b/feature/dynamodb/expression/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.56 (2024-12-11) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.7.55 (2024-12-03.2) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodb/expression/go.mod b/feature/dynamodb/expression/go.mod index 20049d58488..71614a49f17 100644 --- a/feature/dynamodb/expression/go.mod +++ b/feature/dynamodb/expression/go.mod @@ -4,14 +4,14 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.6 - github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.20 + github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.21 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 ) require ( github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.8 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.6 // indirect github.com/aws/smithy-go v1.22.1 // indirect diff --git a/feature/dynamodb/expression/go_module_metadata.go b/feature/dynamodb/expression/go_module_metadata.go index 32b59cb5d99..b2bc71acba4 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.55" +const goModuleVersion = "1.7.56" diff --git a/feature/dynamodbstreams/attributevalue/CHANGELOG.md b/feature/dynamodbstreams/attributevalue/CHANGELOG.md index 756e18c4e60..b7daf37cc79 100644 --- a/feature/dynamodbstreams/attributevalue/CHANGELOG.md +++ b/feature/dynamodbstreams/attributevalue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.14.56 (2024-12-11) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.14.55 (2024-12-03.2) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodbstreams/attributevalue/go.mod b/feature/dynamodbstreams/attributevalue/go.mod index 444fa1c2798..f440bd3f961 100644 --- a/feature/dynamodbstreams/attributevalue/go.mod +++ b/feature/dynamodbstreams/attributevalue/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.6 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 - github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.8 + github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.9 ) require github.com/aws/smithy-go v1.22.1 // indirect diff --git a/feature/dynamodbstreams/attributevalue/go_module_metadata.go b/feature/dynamodbstreams/attributevalue/go_module_metadata.go index 1b064fa9a0a..10baafc2bdf 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.55" +const goModuleVersion = "1.14.56" diff --git a/service/artifact/CHANGELOG.md b/service/artifact/CHANGELOG.md index 31f34093af4..96b554d1833 100644 --- a/service/artifact/CHANGELOG.md +++ b/service/artifact/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.0 (2024-12-11) + +* **Feature**: Add support for listing active customer agreements for the calling AWS Account. + # v1.6.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/artifact/go_module_metadata.go b/service/artifact/go_module_metadata.go index bd51ce28872..ced4b8e7fd1 100644 --- a/service/artifact/go_module_metadata.go +++ b/service/artifact/go_module_metadata.go @@ -3,4 +3,4 @@ package artifact // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.6.7" +const goModuleVersion = "1.7.0" diff --git a/service/cloudtrail/CHANGELOG.md b/service/cloudtrail/CHANGELOG.md index b0a2523ac95..8a843891878 100644 --- a/service/cloudtrail/CHANGELOG.md +++ b/service/cloudtrail/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.46.3 (2024-12-11) + +* **Documentation**: Doc-only updates for CloudTrail. + # v1.46.2 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/cloudtrail/go_module_metadata.go b/service/cloudtrail/go_module_metadata.go index 3671a7545c2..f633fa6f8b2 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.46.2" +const goModuleVersion = "1.46.3" diff --git a/service/cognitoidentityprovider/CHANGELOG.md b/service/cognitoidentityprovider/CHANGELOG.md index 38a7f8d5d60..94f9550a131 100644 --- a/service/cognitoidentityprovider/CHANGELOG.md +++ b/service/cognitoidentityprovider/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.48.1 (2024-12-11) + +* **Documentation**: Updated descriptions for some API operations and parameters, corrected some errors in Cognito user pools + # v1.48.0 (2024-12-09) * **Feature**: Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation. diff --git a/service/cognitoidentityprovider/go_module_metadata.go b/service/cognitoidentityprovider/go_module_metadata.go index 66503c819d6..191c7826cba 100644 --- a/service/cognitoidentityprovider/go_module_metadata.go +++ b/service/cognitoidentityprovider/go_module_metadata.go @@ -3,4 +3,4 @@ package cognitoidentityprovider // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.48.0" +const goModuleVersion = "1.48.1" diff --git a/service/controlcatalog/CHANGELOG.md b/service/controlcatalog/CHANGELOG.md index e11ee396fa9..1eda3fd819c 100644 --- a/service/controlcatalog/CHANGELOG.md +++ b/service/controlcatalog/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.6.3 (2024-12-11) + +* **Documentation**: Minor documentation updates to the content of ImplementationDetails object part of the Control Catalog GetControl API + # v1.6.2 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/controlcatalog/go_module_metadata.go b/service/controlcatalog/go_module_metadata.go index ff11477a13b..20419144677 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.6.2" +const goModuleVersion = "1.6.3" diff --git a/service/dlm/CHANGELOG.md b/service/dlm/CHANGELOG.md index d696a6f07ee..63b7e1618be 100644 --- a/service/dlm/CHANGELOG.md +++ b/service/dlm/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.9 (2024-12-11) + +* No change notes available for this release. + # v1.28.8 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/dlm/go_module_metadata.go b/service/dlm/go_module_metadata.go index eb827453bfd..a5734242fa7 100644 --- a/service/dlm/go_module_metadata.go +++ b/service/dlm/go_module_metadata.go @@ -3,4 +3,4 @@ package dlm // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.28.8" +const goModuleVersion = "1.28.9" diff --git a/service/dynamodbstreams/CHANGELOG.md b/service/dynamodbstreams/CHANGELOG.md index 7fab37d14ff..a9967c53a6e 100644 --- a/service/dynamodbstreams/CHANGELOG.md +++ b/service/dynamodbstreams/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.24.9 (2024-12-11) + +* No change notes available for this release. + # v1.24.8 (2024-12-03) * No change notes available for this release. diff --git a/service/dynamodbstreams/go_module_metadata.go b/service/dynamodbstreams/go_module_metadata.go index 2e698b2fcae..45b85686793 100644 --- a/service/dynamodbstreams/go_module_metadata.go +++ b/service/dynamodbstreams/go_module_metadata.go @@ -3,4 +3,4 @@ package dynamodbstreams // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.24.8" +const goModuleVersion = "1.24.9" diff --git a/service/emrserverless/CHANGELOG.md b/service/emrserverless/CHANGELOG.md index 3458d330d89..12f54c4b3b7 100644 --- a/service/emrserverless/CHANGELOG.md +++ b/service/emrserverless/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.27.0 (2024-12-11) + +* **Feature**: This release adds support for accessing system profile logs in Lake Formation-enabled jobs. + # v1.26.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/emrserverless/go_module_metadata.go b/service/emrserverless/go_module_metadata.go index a6bec51ce64..ab4a006925a 100644 --- a/service/emrserverless/go_module_metadata.go +++ b/service/emrserverless/go_module_metadata.go @@ -3,4 +3,4 @@ package emrserverless // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.26.7" +const goModuleVersion = "1.27.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 25d4749d1b4..6204b0415c3 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -14,13 +14,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1 github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1 github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8 - github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.2 + github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.3 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.43.3 github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2 github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 github.com/aws/aws-sdk-go-v2/service/codedeploy v1.29.7 github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.48.0 + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.48.1 github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.7 github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 diff --git a/service/migrationhub/CHANGELOG.md b/service/migrationhub/CHANGELOG.md index 09ed4a4a65e..75f58cc2cec 100644 --- a/service/migrationhub/CHANGELOG.md +++ b/service/migrationhub/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.25.0 (2024-12-11) + +* **Feature**: API and documentation updates for AWS MigrationHub related to adding support for listing migration task updates and associating, disassociating and listing source resources + # v1.24.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/migrationhub/go_module_metadata.go b/service/migrationhub/go_module_metadata.go index 88c09212445..1410be5836c 100644 --- a/service/migrationhub/go_module_metadata.go +++ b/service/migrationhub/go_module_metadata.go @@ -3,4 +3,4 @@ package migrationhub // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.24.7" +const goModuleVersion = "1.25.0" diff --git a/service/sesv2/CHANGELOG.md b/service/sesv2/CHANGELOG.md index a05bb0630b0..ef224c2f694 100644 --- a/service/sesv2/CHANGELOG.md +++ b/service/sesv2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.40.0 (2024-12-11) + +* **Feature**: Introduces support for multi-region endpoint. + # v1.39.0 (2024-12-10) * **Feature**: Introduces support for creating DEED (Deterministic Easy-DKIM) identities. diff --git a/service/sesv2/go_module_metadata.go b/service/sesv2/go_module_metadata.go index 0a47a97cd24..0439dd7198a 100644 --- a/service/sesv2/go_module_metadata.go +++ b/service/sesv2/go_module_metadata.go @@ -3,4 +3,4 @@ package sesv2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.39.0" +const goModuleVersion = "1.40.0" diff --git a/service/timestreaminfluxdb/CHANGELOG.md b/service/timestreaminfluxdb/CHANGELOG.md index e9d7675cf2c..e7a03dd2029 100644 --- a/service/timestreaminfluxdb/CHANGELOG.md +++ b/service/timestreaminfluxdb/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.0 (2024-12-11) + +* **Feature**: Adds networkType parameter to CreateDbInstance API which allows IPv6 support to the InfluxDB endpoint + # v1.6.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/timestreaminfluxdb/go_module_metadata.go b/service/timestreaminfluxdb/go_module_metadata.go index 00f2b441005..8df098bab00 100644 --- a/service/timestreaminfluxdb/go_module_metadata.go +++ b/service/timestreaminfluxdb/go_module_metadata.go @@ -3,4 +3,4 @@ package timestreaminfluxdb // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.6.7" +const goModuleVersion = "1.7.0" diff --git a/service/vpclattice/CHANGELOG.md b/service/vpclattice/CHANGELOG.md index e15efec476f..d7819a3cfcf 100644 --- a/service/vpclattice/CHANGELOG.md +++ b/service/vpclattice/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.13.1 (2024-12-11) + +* No change notes available for this release. + # v1.13.0 (2024-12-02) * **Feature**: Lattice APIs that allow sharing and access of VPC resources across accounts. diff --git a/service/vpclattice/go_module_metadata.go b/service/vpclattice/go_module_metadata.go index be761ccf85a..062e1f27e6c 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.13.0" +const goModuleVersion = "1.13.1"