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 01/17] 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 ", + "smithy.api#documentation": "

The identifier of the resource.

\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 ", + "smithy.api#documentation": "

A list of resource identifiers to retrieve flow associations.

\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 ", + "smithy.api#documentation": "

The identifier of the resource.

\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 ", + "smithy.api#documentation": "

The identifier of the resource.

\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

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

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 " + "smithy.api#documentation": "

A string that indicates how DKIM was configured for the identity. These are the\n possible values:

\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 " + } } }, "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 " + "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 " } }, "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 02/17] 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 03/17] 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 04/17] 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 05/17] 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 06/17] 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 07/17] 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 08/17] 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 09/17] 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" From f9aaf8a68c0a14c43b68983e952cd251182f09b8 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 12 Dec 2024 19:24:35 +0000 Subject: [PATCH 10/17] Update API model --- codegen/sdk-codegen/aws-models/connect.json | 1061 ++++++++++++++++- .../database-migration-service.json | 187 ++- codegen/sdk-codegen/aws-models/glue.json | 71 +- codegen/sdk-codegen/aws-models/guardduty.json | 18 +- .../aws-models/route-53-domains.json | 18 +- 5 files changed, 1292 insertions(+), 63 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/connect.json b/codegen/sdk-codegen/aws-models/connect.json index 206fb10c275..b7d3ffc65e4 100644 --- a/codegen/sdk-codegen/aws-models/connect.json +++ b/codegen/sdk-codegen/aws-models/connect.json @@ -979,6 +979,9 @@ { "target": "com.amazonaws.connect#CreateHoursOfOperation" }, + { + "target": "com.amazonaws.connect#CreateHoursOfOperationOverride" + }, { "target": "com.amazonaws.connect#CreateInstance" }, @@ -1063,6 +1066,9 @@ { "target": "com.amazonaws.connect#DeleteHoursOfOperation" }, + { + "target": "com.amazonaws.connect#DeleteHoursOfOperationOverride" + }, { "target": "com.amazonaws.connect#DeleteInstance" }, @@ -1144,6 +1150,9 @@ { "target": "com.amazonaws.connect#DescribeHoursOfOperation" }, + { + "target": "com.amazonaws.connect#DescribeHoursOfOperationOverride" + }, { "target": "com.amazonaws.connect#DescribeInstance" }, @@ -1249,6 +1258,9 @@ { "target": "com.amazonaws.connect#GetCurrentUserData" }, + { + "target": "com.amazonaws.connect#GetEffectiveHoursOfOperations" + }, { "target": "com.amazonaws.connect#GetFederationToken" }, @@ -1318,6 +1330,9 @@ { "target": "com.amazonaws.connect#ListFlowAssociations" }, + { + "target": "com.amazonaws.connect#ListHoursOfOperationOverrides" + }, { "target": "com.amazonaws.connect#ListHoursOfOperations" }, @@ -1453,6 +1468,9 @@ { "target": "com.amazonaws.connect#SearchEmailAddresses" }, + { + "target": "com.amazonaws.connect#SearchHoursOfOperationOverrides" + }, { "target": "com.amazonaws.connect#SearchHoursOfOperations" }, @@ -1603,6 +1621,9 @@ { "target": "com.amazonaws.connect#UpdateHoursOfOperation" }, + { + "target": "com.amazonaws.connect#UpdateHoursOfOperationOverride" + }, { "target": "com.amazonaws.connect#UpdateInstanceAttribute" }, @@ -5309,6 +5330,18 @@ "target": "com.amazonaws.connect#CommonAttributeAndCondition" } }, + "com.amazonaws.connect#CommonHumanReadableDescription": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\P{C}\\r\\n\\t]{1,250}$" + } + }, + "com.amazonaws.connect#CommonHumanReadableName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\P{C}\\r\\n\\t]{1,127}$" + } + }, "com.amazonaws.connect#CommonNameLength127": { "type": "string", "traits": { @@ -5450,7 +5483,7 @@ } }, "traits": { - "smithy.api#documentation": "

A conditional check failed.

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

Request processing failed because dependent condition failed.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -5742,7 +5775,7 @@ "ParticipantRole": { "target": "com.amazonaws.connect#ParticipantRole", "traits": { - "smithy.api#documentation": "

The role of the participant in the chat conversation.

" + "smithy.api#documentation": "

The role of the participant in the chat conversation.

\n \n

Only CUSTOMER is currently supported. Any other values other than\n CUSTOMER will result in an exception (4xx error).

\n
" } }, "IncludeRawMessage": { @@ -6051,6 +6084,18 @@ }, "StringCondition": { "target": "com.amazonaws.connect#StringCondition" + }, + "StateCondition": { + "target": "com.amazonaws.connect#ContactFlowModuleState", + "traits": { + "smithy.api#documentation": "

The state of the flow.

" + } + }, + "StatusCondition": { + "target": "com.amazonaws.connect#ContactFlowModuleStatus", + "traits": { + "smithy.api#documentation": "

The status of the flow.

" + } } }, "traits": { @@ -7816,6 +7861,118 @@ } } }, + "com.amazonaws.connect#CreateHoursOfOperationOverride": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#CreateHoursOfOperationOverrideRequest" + }, + "output": { + "target": "com.amazonaws.connect#CreateHoursOfOperationOverrideResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#DuplicateResourceException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#LimitExceededException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an hours of operation override in an Amazon Connect hours of operation\n resource

", + "smithy.api#http": { + "method": "PUT", + "uri": "/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides", + "code": 200 + } + } + }, + "com.amazonaws.connect#CreateHoursOfOperationOverrideRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.connect#CommonHumanReadableName", + "traits": { + "smithy.api#documentation": "

The name of the hours of operation override.

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

The description of the hours of operation override.

" + } + }, + "Config": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideConfigList", + "traits": { + "smithy.api#documentation": "

Configuration information for the hours of operation override: day, start time, and end\n time.

", + "smithy.api#required": {} + } + }, + "EffectiveFrom": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date from when the hours of operation override would be effective.

", + "smithy.api#required": {} + } + }, + "EffectiveTill": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date until when the hours of operation override would be effective.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#CreateHoursOfOperationOverrideResponse": { + "type": "structure", + "members": { + "HoursOfOperationOverrideId": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation override.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#CreateHoursOfOperationRequest": { "type": "structure", "members": { @@ -8589,7 +8746,7 @@ } ], "traits": { - "smithy.api#documentation": "

This API is in preview release for Amazon Connect and is subject to change.

\n

Creates a new queue for the specified Amazon Connect instance.

\n \n
    \n
  • \n

    If the phone number is claimed to a traffic distribution group that was created in the\n same Region as the Amazon Connect instance where you are calling this API, then you can use a\n full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed\n to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a\n UUID is provided in this scenario, you will receive a\n ResourceNotFoundException.

    \n
  • \n
  • \n

    Only use the phone number ARN format that doesn't contain instance in the\n path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This\n is the same ARN format that is returned when you call the ListPhoneNumbersV2\n API.

    \n
  • \n
  • \n

    If you plan to use IAM policies to allow/deny access to this API for phone\n number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

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

Creates a new queue for the specified Amazon Connect instance.

\n \n
    \n
  • \n

    If the phone number is claimed to a traffic distribution group that was created in the\n same Region as the Amazon Connect instance where you are calling this API, then you can use a\n full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed\n to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a\n UUID is provided in this scenario, you will receive a\n ResourceNotFoundException.

    \n
  • \n
  • \n

    Only use the phone number ARN format that doesn't contain instance in the\n path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This\n is the same ARN format that is returned when you call the ListPhoneNumbersV2\n API.

    \n
  • \n
  • \n

    If you plan to use IAM policies to allow/deny access to this API for phone\n number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

    \n
  • \n
\n
", "smithy.api#http": { "method": "PUT", "uri": "/queues/{InstanceId}", @@ -10384,6 +10541,67 @@ "target": "com.amazonaws.connect#DataSetId" } }, + "com.amazonaws.connect#DateComparisonType": { + "type": "enum", + "members": { + "GREATER_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GREATER_THAN" + } + }, + "LESS_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LESS_THAN" + } + }, + "GREATER_THAN_OR_EQUAL_TO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GREATER_THAN_OR_EQUAL_TO" + } + }, + "LESS_THAN_OR_EQUAL_TO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LESS_THAN_OR_EQUAL_TO" + } + }, + "EQUAL_TO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EQUAL_TO" + } + } + } + }, + "com.amazonaws.connect#DateCondition": { + "type": "structure", + "members": { + "FieldName": { + "target": "com.amazonaws.connect#String", + "traits": { + "smithy.api#documentation": "

An object to specify the hours of operation override date field.

" + } + }, + "Value": { + "target": "com.amazonaws.connect#DateYearMonthDayFormat", + "traits": { + "smithy.api#documentation": "

An object to specify the hours of operation override date value.

" + } + }, + "ComparisonType": { + "target": "com.amazonaws.connect#DateComparisonType", + "traits": { + "smithy.api#documentation": "

An object to specify the hours of operation override date condition\n comparisonType.

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

An object to specify the hours of operation override date condition.

" + } + }, "com.amazonaws.connect#DateReference": { "type": "structure", "members": { @@ -10404,6 +10622,12 @@ "smithy.api#documentation": "

Information about a reference when the referenceType is DATE.\n Otherwise, null.

" } }, + "com.amazonaws.connect#DateYearMonthDayFormat": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\d{4}-\\d{2}-\\d{2}$" + } + }, "com.amazonaws.connect#DeactivateEvaluationForm": { "type": "operation", "input": { @@ -10994,6 +11218,72 @@ } } }, + "com.amazonaws.connect#DeleteHoursOfOperationOverride": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DeleteHoursOfOperationOverrideRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an hours of operation override in an Amazon Connect hours of operation\n resource

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DeleteHoursOfOperationOverrideRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationOverrideId": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation override.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.connect#DeleteHoursOfOperationRequest": { "type": "structure", "members": { @@ -12829,6 +13119,86 @@ } } }, + "com.amazonaws.connect#DescribeHoursOfOperationOverride": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DescribeHoursOfOperationOverrideRequest" + }, + "output": { + "target": "com.amazonaws.connect#DescribeHoursOfOperationOverrideResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the hours of operation override.

", + "smithy.api#http": { + "method": "GET", + "uri": "/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DescribeHoursOfOperationOverrideRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationOverrideId": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation override.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#DescribeHoursOfOperationOverrideResponse": { + "type": "structure", + "members": { + "HoursOfOperationOverride": { + "target": "com.amazonaws.connect#HoursOfOperationOverride", + "traits": { + "smithy.api#documentation": "

Information about the hours of operations override.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#DescribeHoursOfOperationRequest": { "type": "structure", "members": { @@ -15284,6 +15654,32 @@ "com.amazonaws.connect#DurationInSeconds": { "type": "integer" }, + "com.amazonaws.connect#EffectiveHoursOfOperationList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#EffectiveHoursOfOperations" + } + }, + "com.amazonaws.connect#EffectiveHoursOfOperations": { + "type": "structure", + "members": { + "Date": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date that the hours of operation or overrides applies to.

" + } + }, + "OperationalHours": { + "target": "com.amazonaws.connect#OperationalHours", + "traits": { + "smithy.api#documentation": "

Information about the hours of operations with the effective override applied.

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

Information about the hours of operations with the effective override applied.

" + } + }, "com.amazonaws.connect#Email": { "type": "string", "traits": { @@ -18110,6 +18506,100 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#GetEffectiveHoursOfOperations": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#GetEffectiveHoursOfOperationsRequest" + }, + "output": { + "target": "com.amazonaws.connect#GetEffectiveHoursOfOperationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Get the hours of operations with the effective override applied.

", + "smithy.api#http": { + "method": "GET", + "uri": "/effective-hours-of-operations/{InstanceId}/{HoursOfOperationId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#GetEffectiveHoursOfOperationsRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "FromDate": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The Date from when the hours of operation are listed.

", + "smithy.api#httpQuery": "fromDate", + "smithy.api#required": {} + } + }, + "ToDate": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The Date until when the hours of operation are listed.

", + "smithy.api#httpQuery": "toDate", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#GetEffectiveHoursOfOperationsResponse": { + "type": "structure", + "members": { + "EffectiveHoursOfOperationList": { + "target": "com.amazonaws.connect#EffectiveHoursOfOperationList", + "traits": { + "smithy.api#documentation": "

Information about the effective hours of operations

" + } + }, + "TimeZone": { + "target": "com.amazonaws.connect#TimeZone", + "traits": { + "smithy.api#documentation": "

The time zone for the hours of operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#GetFederationToken": { "type": "operation", "input": { @@ -19812,6 +20302,156 @@ "com.amazonaws.connect#HoursOfOperationName": { "type": "string" }, + "com.amazonaws.connect#HoursOfOperationOverride": { + "type": "structure", + "members": { + "HoursOfOperationOverrideId": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation override.

" + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation.

" + } + }, + "HoursOfOperationArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the hours of operation.

" + } + }, + "Name": { + "target": "com.amazonaws.connect#CommonHumanReadableName", + "traits": { + "smithy.api#documentation": "

The name of the hours of operation override.

" + } + }, + "Description": { + "target": "com.amazonaws.connect#CommonHumanReadableDescription", + "traits": { + "smithy.api#documentation": "

The description of the hours of operation override.

" + } + }, + "Config": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideConfigList", + "traits": { + "smithy.api#documentation": "

Configuration information for the hours of operation override: day, start time, and end\n time.

" + } + }, + "EffectiveFrom": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date from which the hours of operation override would be effective.

" + } + }, + "EffectiveTill": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date till which the hours of operation override would be effective.

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

Information about the hours of operations override.

" + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideConfig": { + "type": "structure", + "members": { + "Day": { + "target": "com.amazonaws.connect#OverrideDays", + "traits": { + "smithy.api#documentation": "

The day that the hours of operation override applies to.

" + } + }, + "StartTime": { + "target": "com.amazonaws.connect#OverrideTimeSlice", + "traits": { + "smithy.api#documentation": "

The start time when your contact center opens if overrides are applied.

" + } + }, + "EndTime": { + "target": "com.amazonaws.connect#OverrideTimeSlice", + "traits": { + "smithy.api#documentation": "

The end time that your contact center closes if overrides are applied.

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

Information about the hours of operation override config: day, start time, and end\n time.

" + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideConfig" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 36 + } + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#HoursOfOperationOverride" + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideSearchConditionList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideSearchCriteria" + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideSearchCriteria": { + "type": "structure", + "members": { + "OrConditions": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideSearchConditionList", + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an OR condition.

" + } + }, + "AndConditions": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideSearchConditionList", + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an AND condition.

" + } + }, + "StringCondition": { + "target": "com.amazonaws.connect#StringCondition" + }, + "DateCondition": { + "target": "com.amazonaws.connect#DateCondition", + "traits": { + "smithy.api#documentation": "

A leaf node condition which can be used to specify a date condition.

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

The search criteria to be used to return hours of operations overrides.

" + } + }, + "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\d{4}-\\d{2}-\\d{2}$" + } + }, "com.amazonaws.connect#HoursOfOperationSearchConditionList": { "type": "list", "member": { @@ -22678,6 +23318,116 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#ListHoursOfOperationOverrides": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#ListHoursOfOperationOverridesRequest" + }, + "output": { + "target": "com.amazonaws.connect#ListHoursOfOperationOverridesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

List the hours of operation overrides.

", + "smithy.api#http": { + "method": "GET", + "uri": "/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "HoursOfOperationOverrideList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.connect#ListHoursOfOperationOverridesRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.connect#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use the value returned in the previous response in\n the next request to retrieve the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.connect#MaxResult100", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return per page. The default MaxResult size is 100. Valid\n Range: Minimum value of 1. Maximum value of 1000.

", + "smithy.api#httpQuery": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#ListHoursOfOperationOverridesResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.connect#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use the value returned in the previous response in\n the next request to retrieve the next set of results.

" + } + }, + "HoursOfOperationOverrideList": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideList", + "traits": { + "smithy.api#documentation": "

Information about the hours of operation override.

" + } + }, + "LastModifiedRegion": { + "target": "com.amazonaws.connect#RegionName", + "traits": { + "smithy.api#documentation": "

The AWS Region where this resource was last modified.

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

The timestamp when this resource was last modified.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#ListHoursOfOperations": { "type": "operation", "input": { @@ -26723,6 +27473,32 @@ } } }, + "com.amazonaws.connect#OperationalHour": { + "type": "structure", + "members": { + "Start": { + "target": "com.amazonaws.connect#OverrideTimeSlice", + "traits": { + "smithy.api#documentation": "

The start time that your contact center opens.

" + } + }, + "End": { + "target": "com.amazonaws.connect#OverrideTimeSlice", + "traits": { + "smithy.api#documentation": "

The end time that your contact center closes.

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

Information about the hours of operations with the effective override applied.

" + } + }, + "com.amazonaws.connect#OperationalHours": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#OperationalHour" + } + }, "com.amazonaws.connect#Origin": { "type": "string", "traits": { @@ -26929,6 +27705,77 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.connect#OverrideDays": { + "type": "enum", + "members": { + "SUNDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUNDAY" + } + }, + "MONDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONDAY" + } + }, + "TUESDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TUESDAY" + } + }, + "WEDNESDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WEDNESDAY" + } + }, + "THURSDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "THURSDAY" + } + }, + "FRIDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FRIDAY" + } + }, + "SATURDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SATURDAY" + } + } + } + }, + "com.amazonaws.connect#OverrideTimeSlice": { + "type": "structure", + "members": { + "Hours": { + "target": "com.amazonaws.connect#Hours24Format", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The hours.

", + "smithy.api#required": {} + } + }, + "Minutes": { + "target": "com.amazonaws.connect#MinutesLimit60", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The minutes.

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

The start time or end time for an hours of operation override.

" + } + }, "com.amazonaws.connect#PEM": { "type": "string", "traits": { @@ -33469,6 +34316,108 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#SearchHoursOfOperationOverrides": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#SearchHoursOfOperationOverridesRequest" + }, + "output": { + "target": "com.amazonaws.connect#SearchHoursOfOperationOverridesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Searches the hours of operation overrides.

", + "smithy.api#http": { + "method": "POST", + "uri": "/search-hours-of-operation-overrides", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "HoursOfOperationOverrides", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.connect#SearchHoursOfOperationOverridesRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.connect#NextToken2500", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use the value returned in the previous response in\n the next request to retrieve the next set of results. Length Constraints: Minimum length of 1.\n Maximum length of 2500.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.connect#MaxResult100", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return per page. Valid Range: Minimum value of 1. Maximum\n value of 100.

" + } + }, + "SearchFilter": { + "target": "com.amazonaws.connect#HoursOfOperationSearchFilter" + }, + "SearchCriteria": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideSearchCriteria", + "traits": { + "smithy.api#documentation": "

The search criteria to be used to return hours of operations overrides.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#SearchHoursOfOperationOverridesResponse": { + "type": "structure", + "members": { + "HoursOfOperationOverrides": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideList", + "traits": { + "smithy.api#documentation": "

Information about the hours of operations overrides.

" + } + }, + "NextToken": { + "target": "com.amazonaws.connect#NextToken2500", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use the value returned in the previous response in\n the next request to retrieve the next set of results. Length Constraints: Minimum length of 1.\n Maximum length of 2500.

" + } + }, + "ApproximateTotalCount": { + "target": "com.amazonaws.connect#ApproximateTotalCount", + "traits": { + "smithy.api#documentation": "

The total number of hours of operations which matched your search query.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#SearchHoursOfOperations": { "type": "operation", "input": { @@ -40578,6 +41527,108 @@ } } }, + "com.amazonaws.connect#UpdateHoursOfOperationOverride": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#UpdateHoursOfOperationOverrideRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.connect#ConditionalOperationFailedException" + }, + { + "target": "com.amazonaws.connect#DuplicateResourceException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Update the hours of operation override.

", + "smithy.api#http": { + "method": "POST", + "uri": "/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#UpdateHoursOfOperationOverrideRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationId": { + "target": "com.amazonaws.connect#HoursOfOperationId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "HoursOfOperationOverrideId": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideId", + "traits": { + "smithy.api#documentation": "

The identifier for the hours of operation override.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.connect#CommonHumanReadableName", + "traits": { + "smithy.api#documentation": "

The name of the hours of operation override.

" + } + }, + "Description": { + "target": "com.amazonaws.connect#CommonHumanReadableDescription", + "traits": { + "smithy.api#documentation": "

The description of the hours of operation override.

" + } + }, + "Config": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideConfigList", + "traits": { + "smithy.api#documentation": "

Configuration information for the hours of operation override: day, start time, and end\n time.

" + } + }, + "EffectiveFrom": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date from when the hours of operation override would be effective.

" + } + }, + "EffectiveTill": { + "target": "com.amazonaws.connect#HoursOfOperationOverrideYearMonthDayDateFormat", + "traits": { + "smithy.api#documentation": "

The date till when the hours of operation override would be effective.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.connect#UpdateHoursOfOperationRequest": { "type": "structure", "members": { @@ -43616,13 +44667,13 @@ "FirstName": { "target": "com.amazonaws.connect#AgentFirstName", "traits": { - "smithy.api#documentation": "

The first name. This is required if you are using Amazon Connect or SAML for identity\n management.

" + "smithy.api#documentation": "

The first name. This is required if you are using Amazon Connect or SAML for identity\n management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a\n non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" } }, "LastName": { "target": "com.amazonaws.connect#AgentLastName", "traits": { - "smithy.api#documentation": "

The last name. This is required if you are using Amazon Connect or SAML for identity\n management.

" + "smithy.api#documentation": "

The last name. This is required if you are using Amazon Connect or SAML for identity\n management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a\n non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" } }, "Email": { diff --git a/codegen/sdk-codegen/aws-models/database-migration-service.json b/codegen/sdk-codegen/aws-models/database-migration-service.json index 05e72af77b5..dd96ca60093 100644 --- a/codegen/sdk-codegen/aws-models/database-migration-service.json +++ b/codegen/sdk-codegen/aws-models/database-migration-service.json @@ -3697,7 +3697,7 @@ } }, "ReplicationInstanceClass": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#ReplicationInstanceClass", "traits": { "smithy.api#documentation": "

The compute and memory capacity of the replication instance as defined for the specified\n replication instance class. For example to specify the instance class dms.c4.large, set this parameter to \"dms.c4.large\".

\n

For more information on the settings and capacities for the available replication instance classes, see \n \n Choosing the right DMS replication instance; and, \n Selecting the best size for a replication instance.\n

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

The type of IP address protocol used by a replication instance, \n such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. \n IPv6 only is not yet supported.

" } + }, + "KerberosAuthenticationSettings": { + "target": "com.amazonaws.databasemigrationservice#KerberosAuthenticationSettings", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the secret that stores the key cache file required for kerberos authentication, when creating a replication instance.

" + } } }, "traits": { @@ -5071,6 +5077,9 @@ "target": "com.amazonaws.databasemigrationservice#DeleteEventSubscriptionResponse" }, "errors": [ + { + "target": "com.amazonaws.databasemigrationservice#AccessDeniedFault" + }, { "target": "com.amazonaws.databasemigrationservice#InvalidResourceStateFault" }, @@ -5533,6 +5542,9 @@ "target": "com.amazonaws.databasemigrationservice#DeleteReplicationSubnetGroupResponse" }, "errors": [ + { + "target": "com.amazonaws.databasemigrationservice#AccessDeniedFault" + }, { "target": "com.amazonaws.databasemigrationservice#InvalidResourceStateFault" }, @@ -6315,7 +6327,7 @@ "Filters": { "target": "com.amazonaws.databasemigrationservice#FilterList", "traits": { - "smithy.api#documentation": "

Filters applied to the data providers described in the form of key-value pairs.

\n

Valid filter names: data-provider-identifier

" + "smithy.api#documentation": "

Filters applied to the data providers described in the form of key-value pairs.

\n

Valid filter names and values: data-provider-identifier, data provider arn or name

" } }, "MaxRecords": { @@ -7428,7 +7440,7 @@ "Filters": { "target": "com.amazonaws.databasemigrationservice#FilterList", "traits": { - "smithy.api#documentation": "

Filters applied to the instance profiles described in the form of key-value pairs.

" + "smithy.api#documentation": "

Filters applied to the instance profiles described in the form of key-value pairs.

\n

Valid filter names and values: instance-profile-identifier, instance profile arn or name

" } }, "MaxRecords": { @@ -8072,7 +8084,7 @@ "Filters": { "target": "com.amazonaws.databasemigrationservice#FilterList", "traits": { - "smithy.api#documentation": "

Filters applied to the migration projects described in the form of key-value pairs.

" + "smithy.api#documentation": "

Filters applied to the migration projects described in the form of key-value pairs.

\n

Valid filter names and values:

\n
    \n
  • \n

    instance-profile-identifier, instance profile arn or name

    \n
  • \n
  • \n

    data-provider-identifier, data provider arn or name

    \n
  • \n
  • \n

    migration-project-identifier, migration project arn or name

    \n
  • \n
" } }, "MaxRecords": { @@ -9791,6 +9803,9 @@ "target": "com.amazonaws.databasemigrationservice#DescribeTableStatisticsResponse" }, "errors": [ + { + "target": "com.amazonaws.databasemigrationservice#AccessDeniedFault" + }, { "target": "com.amazonaws.databasemigrationservice#InvalidResourceStateFault" }, @@ -11717,6 +11732,12 @@ "traits": { "smithy.api#documentation": "

Sets hostname verification\n for the certificate. This setting is supported in DMS version 3.5.1 and later.

" } + }, + "UseLargeIntegerValue": { + "target": "com.amazonaws.databasemigrationservice#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies using the large integer value with Kafka.

" + } } }, "traits": { @@ -11740,6 +11761,32 @@ } } }, + "com.amazonaws.databasemigrationservice#KerberosAuthenticationSettings": { + "type": "structure", + "members": { + "KeyCacheSecretId": { + "target": "com.amazonaws.databasemigrationservice#String", + "traits": { + "smithy.api#documentation": "

Specifies the secret ID of the key cache for the replication instance.

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

Specifies the Amazon Resource Name (ARN) of the IAM role that grants Amazon Web Services DMS access to the secret containing key cache file for the replication instance.

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

Specifies the ID of the secret that stores the key cache file required for kerberos authentication of the replication instance.

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

Specifies using Kerberos authentication settings for use with DMS.

" + } + }, "com.amazonaws.databasemigrationservice#KeyList": { "type": "list", "member": { @@ -11808,6 +11855,12 @@ "traits": { "smithy.api#documentation": "

Set this optional parameter to true to avoid adding a '0x' prefix\n to raw data in hexadecimal format. For example, by default, DMS adds a '0x'\n prefix to the LOB column type in hexadecimal format moving from an Oracle source to an\n Amazon Kinesis target. Use the NoHexPrefix endpoint setting to enable\n migration of RAW data type columns without adding the '0x' prefix.

" } + }, + "UseLargeIntegerValue": { + "target": "com.amazonaws.databasemigrationservice#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies using the large integer value with Kinesis.

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

Forces LOB lookup on inline LOB.

" } + }, + "AuthenticationMethod": { + "target": "com.amazonaws.databasemigrationservice#SqlServerAuthenticationMethod", + "traits": { + "smithy.api#documentation": "

Specifies using Kerberos authentication with Microsoft SQL Server.

" + } } }, "traits": { @@ -12841,6 +12900,9 @@ "target": "com.amazonaws.databasemigrationservice#ModifyEventSubscriptionResponse" }, "errors": [ + { + "target": "com.amazonaws.databasemigrationservice#AccessDeniedFault" + }, { "target": "com.amazonaws.databasemigrationservice#KMSAccessDeniedFault" }, @@ -13472,7 +13534,7 @@ } }, "ReplicationInstanceClass": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#ReplicationInstanceClass", "traits": { "smithy.api#documentation": "

The compute and memory capacity of the replication instance as defined for the specified\n replication instance class. For example to specify the instance class dms.c4.large, set this parameter to \"dms.c4.large\".

\n

For more information on the settings and capacities for the available replication instance classes, see \n \n Selecting the right DMS replication instance for your migration.\n

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

The type of IP address protocol used by a replication instance, \n such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. \n IPv6 only is not yet supported.

" } + }, + "KerberosAuthenticationSettings": { + "target": "com.amazonaws.databasemigrationservice#KerberosAuthenticationSettings", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the secret that stores the key cache file required for kerberos authentication, when modifying a replication instance.

" + } } }, "traits": { @@ -14168,6 +14236,23 @@ } } }, + "com.amazonaws.databasemigrationservice#OracleAuthenticationMethod": { + "type": "enum", + "members": { + "Password": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "password" + } + }, + "Kerberos": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kerberos" + } + } + } + }, "com.amazonaws.databasemigrationservice#OracleDataProviderSettings": { "type": "structure", "members": { @@ -14326,7 +14411,7 @@ "ArchivedLogsOnly": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

When this field is set to Y, DMS only accesses the\n archived redo logs. If the archived redo logs are stored on\n Automatic Storage Management (ASM) only, the DMS user account needs to be\n granted ASM privileges.

" + "smithy.api#documentation": "

When this field is set to True, DMS only accesses the\n archived redo logs. If the archived redo logs are stored on\n Automatic Storage Management (ASM) only, the DMS user account needs to be\n granted ASM privileges.

" } }, "AsmPassword": { @@ -14440,19 +14525,19 @@ "UseBFile": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

Set this attribute to Y to capture change data using the Binary Reader utility. Set\n UseLogminerReader to N to set this attribute to Y. To use Binary Reader\n with Amazon RDS for Oracle as the source, you set additional attributes. For more information\n about using this setting with Oracle Automatic Storage Management (ASM), see Using Oracle LogMiner or DMS Binary Reader for\n CDC.

" + "smithy.api#documentation": "

Set this attribute to True to capture change data using the Binary Reader utility. Set\n UseLogminerReader to False to set this attribute to True. To use Binary Reader\n with Amazon RDS for Oracle as the source, you set additional attributes. For more information\n about using this setting with Oracle Automatic Storage Management (ASM), see Using Oracle LogMiner or DMS Binary Reader for\n CDC.

" } }, "UseDirectPathFullLoad": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

Set this attribute to Y to have DMS use a direct path full load. \n Specify this value to use the direct path protocol in the Oracle Call Interface (OCI). \n By using this OCI protocol, you can bulk-load Oracle target tables during a full load.

" + "smithy.api#documentation": "

Set this attribute to True to have DMS use a direct path full load. \n Specify this value to use the direct path protocol in the Oracle Call Interface (OCI). \n By using this OCI protocol, you can bulk-load Oracle target tables during a full load.

" } }, "UseLogminerReader": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

Set this attribute to Y to capture change data using the Oracle LogMiner utility (the\n default). Set this attribute to N if you want to access the redo logs as a binary file.\n When you set UseLogminerReader to N, also set UseBfile to Y. For\n more information on this setting and using Oracle ASM, see Using Oracle LogMiner or DMS Binary Reader for CDC in\n the DMS User Guide.

" + "smithy.api#documentation": "

Set this attribute to True to capture change data using the Oracle LogMiner utility (the\n default). Set this attribute to False if you want to access the redo logs as a binary file.\n When you set UseLogminerReader to False, also set UseBfile to True. For\n more information on this setting and using Oracle ASM, see Using Oracle LogMiner or DMS Binary Reader for CDC in\n the DMS User Guide.

" } }, "SecretsManagerAccessRoleArn": { @@ -14494,7 +14579,13 @@ "OpenTransactionWindow": { "target": "com.amazonaws.databasemigrationservice#IntegerOptional", "traits": { - "smithy.api#documentation": "

The timeframe in minutes to check for open transactions for a CDC-only task.

\n

You can\n specify an integer value between 0 (the default) and 240 (the maximum).

\n \n

This parameter is only valid in DMS version 3.5.0 and later. DMS supports\n a window of up to 9.5 hours including the value for OpenTransactionWindow.

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

The timeframe in minutes to check for open transactions for a CDC-only task.

\n

You can\n specify an integer value between 0 (the default) and 240 (the maximum).

\n \n

This parameter is only valid in DMS version 3.5.0 and later.

\n
" + } + }, + "AuthenticationMethod": { + "target": "com.amazonaws.databasemigrationservice#OracleAuthenticationMethod", + "traits": { + "smithy.api#documentation": "

Specifies using Kerberos authentication with Oracle.

" } } }, @@ -14512,7 +14603,7 @@ } }, "ReplicationInstanceClass": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#ReplicationInstanceClass", "traits": { "smithy.api#documentation": "

The compute and memory capacity of the replication instance as defined for the specified\n replication instance class. For example to specify the instance class dms.c4.large, set this parameter to \"dms.c4.large\".

\n

For more information on the settings and capacities for the available replication instance classes, see \n \n Selecting the right DMS replication instance for your migration.\n

" } @@ -14708,13 +14799,13 @@ "CaptureDdls": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

To capture DDL events, DMS creates various artifacts in\n the PostgreSQL database when the task starts. You can later\n remove these artifacts.

\n

If this value is set to N, you don't have to create tables or\n triggers on the source database.

" + "smithy.api#documentation": "

To capture DDL events, DMS creates various artifacts in\n the PostgreSQL database when the task starts. You can later\n remove these artifacts.

\n

The default value is true.

\n

If this value is set to N, you don't have to create tables or\n triggers on the source database.

" } }, "MaxFileSize": { "target": "com.amazonaws.databasemigrationservice#IntegerOptional", "traits": { - "smithy.api#documentation": "

Specifies the maximum size (in KB) of any .csv file used to\n transfer data to PostgreSQL.

\n

Example: maxFileSize=512\n

" + "smithy.api#documentation": "

Specifies the maximum size (in KB) of any .csv file used to\n transfer data to PostgreSQL.

\n

The default value is 32,768 KB (32 MB).

\n

Example: maxFileSize=512\n

" } }, "DatabaseName": { @@ -14726,7 +14817,7 @@ "DdlArtifactsSchema": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

The schema in which the operational DDL database artifacts\n are created.

\n

Example: ddlArtifactsSchema=xyzddlschema;\n

" + "smithy.api#documentation": "

The schema in which the operational DDL database artifacts\n are created.

\n

The default value is public.

\n

Example: ddlArtifactsSchema=xyzddlschema;\n

" } }, "ExecuteTimeout": { @@ -14738,25 +14829,25 @@ "FailTasksOnLobTruncation": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

When set to true, this value causes a task to fail if the\n actual size of a LOB column is greater than the specified\n LobMaxSize.

\n

If task is set to Limited LOB mode and this option is set to\n true, the task fails instead of truncating the LOB data.

" + "smithy.api#documentation": "

When set to true, this value causes a task to fail if the\n actual size of a LOB column is greater than the specified\n LobMaxSize.

\n

The default value is false.

\n

If task is set to Limited LOB mode and this option is set to\n true, the task fails instead of truncating the LOB data.

" } }, "HeartbeatEnable": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

The write-ahead log (WAL) heartbeat feature mimics a dummy transaction. By doing this,\n it prevents idle logical replication slots from holding onto old WAL logs, which can result in\n storage full situations on the source. This heartbeat keeps restart_lsn moving\n and prevents storage full scenarios.

" + "smithy.api#documentation": "

The write-ahead log (WAL) heartbeat feature mimics a dummy transaction. By doing this,\n it prevents idle logical replication slots from holding onto old WAL logs, which can result in\n storage full situations on the source. This heartbeat keeps restart_lsn moving\n and prevents storage full scenarios.

\n

The default value is false.

" } }, "HeartbeatSchema": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

Sets the schema in which the heartbeat artifacts are created.

" + "smithy.api#documentation": "

Sets the schema in which the heartbeat artifacts are created.

\n

The default value is public.

" } }, "HeartbeatFrequency": { "target": "com.amazonaws.databasemigrationservice#IntegerOptional", "traits": { - "smithy.api#documentation": "

Sets the WAL heartbeat frequency (in minutes).

" + "smithy.api#documentation": "

Sets the WAL heartbeat frequency (in minutes).

\n

The default value is 5 minutes.

" } }, "Password": { @@ -14792,7 +14883,7 @@ "PluginName": { "target": "com.amazonaws.databasemigrationservice#PluginNameValue", "traits": { - "smithy.api#documentation": "

Specifies the plugin to use to create a replication slot.

" + "smithy.api#documentation": "

Specifies the plugin to use to create a replication slot.

\n

The default value is pglogical.

" } }, "SecretsManagerAccessRoleArn": { @@ -14816,19 +14907,19 @@ "MapBooleanAsBoolean": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

When true, lets PostgreSQL migrate the boolean type as boolean. By default, PostgreSQL migrates booleans as \n varchar(5). You must set this setting on both the source and target endpoints for it to take effect.

" + "smithy.api#documentation": "

When true, lets PostgreSQL migrate the boolean type as boolean. By default, PostgreSQL migrates booleans as \n varchar(5). You must set this setting on both the source and target endpoints for it to take effect.

\n

The default value is false.

" } }, "MapJsonbAsClob": { "target": "com.amazonaws.databasemigrationservice#BooleanOptional", "traits": { - "smithy.api#documentation": "

When true, DMS migrates JSONB values as CLOB.

" + "smithy.api#documentation": "

When true, DMS migrates JSONB values as CLOB.

\n

The default value is false.

" } }, "MapLongVarcharAs": { "target": "com.amazonaws.databasemigrationservice#LongVarcharMappingType", "traits": { - "smithy.api#documentation": "

When true, DMS migrates LONG values as VARCHAR.

" + "smithy.api#documentation": "

Sets what datatype to map LONG values as.

\n

The default value is wstring.

" } }, "DatabaseMode": { @@ -14842,6 +14933,12 @@ "traits": { "smithy.api#documentation": "

The Babelfish for Aurora PostgreSQL database name for the endpoint.

" } + }, + "DisableUnicodeSourceFilter": { + "target": "com.amazonaws.databasemigrationservice#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Disables the Unicode source filter with PostgreSQL, for values passed into the Selection rule filter on Source Endpoint column values. \n By default DMS performs source filter comparisons using a Unicode string which can cause look ups to ignore the indexes in the text columns and slow down migrations.

\n

Unicode support should only be disabled when using a selection rule filter is on a text column in the Source database that is indexed.

" + } } }, "traits": { @@ -15948,7 +16045,7 @@ "StartReplicationType": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

The replication type.

" + "smithy.api#documentation": "

The type of replication to start.

" } }, "CdcStartTime": { @@ -16114,7 +16211,7 @@ } }, "ReplicationInstanceClass": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#ReplicationInstanceClass", "traits": { "smithy.api#documentation": "

The compute and memory capacity of the replication instance as defined for the specified\n replication instance class. It is a required parameter, although a default value is\n pre-selected in the DMS console.

\n

For more information on the settings and capacities for the available replication instance classes, see \n \n Selecting the right DMS replication instance for your migration.\n

" } @@ -16262,12 +16359,27 @@ "traits": { "smithy.api#documentation": "

The type of IP address protocol used by a replication instance, \n such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. \n IPv6 only is not yet supported.

" } + }, + "KerberosAuthenticationSettings": { + "target": "com.amazonaws.databasemigrationservice#KerberosAuthenticationSettings", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the secret that stores the key cache file required for kerberos authentication, when replicating an instance.

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

Provides information that defines a replication instance.

" } }, + "com.amazonaws.databasemigrationservice#ReplicationInstanceClass": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + } + } + }, "com.amazonaws.databasemigrationservice#ReplicationInstanceIpv6AddressList": { "type": "list", "member": { @@ -16341,7 +16453,7 @@ "type": "structure", "members": { "ReplicationInstanceClass": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#ReplicationInstanceClass", "traits": { "smithy.api#documentation": "

The compute and memory capacity of the replication instance as defined for the specified\n replication instance class.

\n

For more information on the settings and capacities for the available replication instance classes, see \n \n Selecting the right DMS replication instance for your migration.\n

" } @@ -16589,7 +16701,7 @@ "StopReason": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

The reason the replication task was stopped. This response parameter can return one of\n the following values:

\n
    \n
  • \n

    \n \"Stop Reason NORMAL\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason RECOVERABLE_ERROR\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason FATAL_ERROR\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason FULL_LOAD_ONLY_FINISHED\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_FULL_LOAD\" – Full load completed, with cached changes not applied

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_CACHED_EVENTS\" – Full load completed, with cached changes applied

    \n
  • \n
  • \n

    \n \"Stop Reason EXPRESS_LICENSE_LIMITS_REACHED\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_DDL_APPLY\" – User-defined stop task after DDL applied

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_DUE_TO_LOW_MEMORY\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_DUE_TO_LOW_DISK\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AT_SERVER_TIME\" – User-defined server time for stopping task

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AT_COMMIT_TIME\" – User-defined commit time for stopping task

    \n
  • \n
  • \n

    \n \"Stop Reason RECONFIGURATION_RESTART\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason RECYCLE_TASK\"\n

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

The reason the replication task was stopped. This response parameter can return one of\n the following values:

\n
    \n
  • \n

    \n \"Stop Reason NORMAL\" – The task completed successfully with no additional information returned.

    \n
  • \n
  • \n

    \n \"Stop Reason RECOVERABLE_ERROR\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason FATAL_ERROR\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason FULL_LOAD_ONLY_FINISHED\" – The task completed the full load phase.\n DMS applied cached changes if you set StopTaskCachedChangesApplied to true.

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_FULL_LOAD\" – Full load completed, with cached changes not applied

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_CACHED_EVENTS\" – Full load completed, with cached changes applied

    \n
  • \n
  • \n

    \n \"Stop Reason EXPRESS_LICENSE_LIMITS_REACHED\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AFTER_DDL_APPLY\" – User-defined stop task after DDL applied

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_DUE_TO_LOW_MEMORY\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_DUE_TO_LOW_DISK\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AT_SERVER_TIME\" – User-defined server time for stopping task

    \n
  • \n
  • \n

    \n \"Stop Reason STOPPED_AT_COMMIT_TIME\" – User-defined commit time for stopping task

    \n
  • \n
  • \n

    \n \"Stop Reason RECONFIGURATION_RESTART\"\n

    \n
  • \n
  • \n

    \n \"Stop Reason RECYCLE_TASK\"\n

    \n
  • \n
" } }, "ReplicationTaskCreationDate": { @@ -16691,7 +16803,7 @@ } }, "S3ObjectUrl": { - "target": "com.amazonaws.databasemigrationservice#String", + "target": "com.amazonaws.databasemigrationservice#SecretString", "traits": { "smithy.api#documentation": "

The URL of the S3 object containing the task assessment results.

\n

The response object only contains this field if you provide DescribeReplicationTaskAssessmentResultsMessage$ReplicationTaskArn\n in the request.

" } @@ -16728,7 +16840,7 @@ "Status": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

Assessment run status.

\n

This status can have one of the following values:

\n
    \n
  • \n

    \n \"cancelling\" – The assessment run was canceled by the\n CancelReplicationTaskAssessmentRun operation.

    \n
  • \n
  • \n

    \n \"deleting\" – The assessment run was deleted by the\n DeleteReplicationTaskAssessmentRun operation.

    \n
  • \n
  • \n

    \n \"failed\" – At least one individual assessment completed with a\n failed status.

    \n
  • \n
  • \n

    \n \"error-provisioning\" – An internal error occurred while\n resources were provisioned (during provisioning status).

    \n
  • \n
  • \n

    \n \"error-executing\" – An internal error occurred while\n individual assessments ran (during running status).

    \n
  • \n
  • \n

    \n \"invalid state\" – The assessment run is in an unknown state.

    \n
  • \n
  • \n

    \n \"passed\" – All individual assessments have completed, and none\n has a failed status.

    \n
  • \n
  • \n

    \n \"provisioning\" – Resources required to run individual\n assessments are being provisioned.

    \n
  • \n
  • \n

    \n \"running\" – Individual assessments are being run.

    \n
  • \n
  • \n

    \n \"starting\" – The assessment run is starting, but resources are not yet\n being provisioned for individual assessments.

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

Assessment run status.

\n

This status can have one of the following values:

\n
    \n
  • \n

    \n \"cancelling\" – The assessment run was canceled by the\n CancelReplicationTaskAssessmentRun operation.

    \n
  • \n
  • \n

    \n \"deleting\" – The assessment run was deleted by the\n DeleteReplicationTaskAssessmentRun operation.

    \n
  • \n
  • \n

    \n \"failed\" – At least one individual assessment completed with a\n failed status.

    \n
  • \n
  • \n

    \n \"error-provisioning\" – An internal error occurred while\n resources were provisioned (during provisioning status).

    \n
  • \n
  • \n

    \n \"error-executing\" – An internal error occurred while\n individual assessments ran (during running status).

    \n
  • \n
  • \n

    \n \"invalid state\" – The assessment run is in an unknown state.

    \n
  • \n
  • \n

    \n \"passed\" – All individual assessments have completed, and none\n has a failed status.

    \n
  • \n
  • \n

    \n \"provisioning\" – Resources required to run individual\n assessments are being provisioned.

    \n
  • \n
  • \n

    \n \"running\" – Individual assessments are being run.

    \n
  • \n
  • \n

    \n \"starting\" – The assessment run is starting, but resources are not yet\n being provisioned for individual assessments.

    \n
  • \n
  • \n

    \n \"warning\" – At least one individual assessment completed with a warning status.

    \n
  • \n
" } }, "ReplicationTaskAssessmentRunCreationDate": { @@ -17703,6 +17815,23 @@ } } }, + "com.amazonaws.databasemigrationservice#SqlServerAuthenticationMethod": { + "type": "enum", + "members": { + "Password": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "password" + } + }, + "Kerberos": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kerberos" + } + } + } + }, "com.amazonaws.databasemigrationservice#SslSecurityProtocolValue": { "type": "enum", "members": { @@ -18446,7 +18575,7 @@ "StartReplicationType": { "target": "com.amazonaws.databasemigrationservice#String", "traits": { - "smithy.api#documentation": "

The replication type.

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

The replication type.

\n

When the replication type is full-load or full-load-and-cdc, the only valid value \n for the first run of the replication is start-replication. This option will start the replication.

\n

You can also use ReloadTables to reload specific tables that failed during replication instead \n of restarting the replication.

\n

The resume-processing option isn't applicable for a full-load replication,\n because you can't resume partially loaded tables during the full load phase.

\n

For a full-load-and-cdc replication, DMS migrates table data, and then applies data changes \n that occur on the source. To load all the tables again, and start capturing source changes, \n use reload-target. Otherwise use resume-processing, to replicate the \n changes from the last stop position.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/glue.json b/codegen/sdk-codegen/aws-models/glue.json index b8a441b21ee..37d25bc7bda 100644 --- a/codegen/sdk-codegen/aws-models/glue.json +++ b/codegen/sdk-codegen/aws-models/glue.json @@ -10749,7 +10749,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "CodeGenConfigurationNodes": { @@ -11627,7 +11627,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, or G.8X for Spark jobs. Accepts the value Z.2X for Ray notebooks.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, or G.8X for Spark jobs. Accepts the value Z.2X for Ray notebooks.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "SecurityConfiguration": { @@ -11894,7 +11894,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new trigger.

" + "smithy.api#documentation": "

Creates a new trigger.

\n

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

" } }, "com.amazonaws.glue#CreateTriggerRequest": { @@ -12184,7 +12184,7 @@ "DefaultRunProperties": { "target": "com.amazonaws.glue#WorkflowRunProperties", "traits": { - "smithy.api#documentation": "

A collection of properties to be used as part of each execution of the workflow.

" + "smithy.api#documentation": "

A collection of properties to be used as part of each execution of the workflow.

\n

Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

" } }, "Tags": { @@ -12915,6 +12915,43 @@ } } }, + "com.amazonaws.glue#DataQualityEncryption": { + "type": "structure", + "members": { + "DataQualityEncryptionMode": { + "target": "com.amazonaws.glue#DataQualityEncryptionMode", + "traits": { + "smithy.api#documentation": "

The encryption mode to use for encrypting Data Quality assets. These assets include data quality rulesets, results, statistics, anomaly detection models and observations.

\n

Valid values are SSEKMS for encryption using a customer-managed KMS key, or DISABLED.

" + } + }, + "KmsKeyArn": { + "target": "com.amazonaws.glue#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.

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

Specifies how Data Quality assets in your account should be encrypted.

" + } + }, + "com.amazonaws.glue#DataQualityEncryptionMode": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "SSEKMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSE-KMS" + } + } + } + }, "com.amazonaws.glue#DataQualityEvaluationRunAdditionalRunOptions": { "type": "structure", "members": { @@ -17152,6 +17189,12 @@ "traits": { "smithy.api#documentation": "

The encryption configuration for job bookmarks.

" } + }, + "DataQualityEncryption": { + "target": "com.amazonaws.glue#DataQualityEncryption", + "traits": { + "smithy.api#documentation": "

The encryption configuration for Glue Data Quality assets.

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

Retrieves the metadata for a given job run. Job run history is accessible for 90 days for your workflow and job run.

" + "smithy.api#documentation": "

Retrieves the metadata for a given job run. Job run history is accessible for 365 days for your workflow and job run.

" } }, "com.amazonaws.glue#GetJobRunRequest": { @@ -21447,7 +21490,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves metadata for all runs of a given job definition.

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

Retrieves metadata for all runs of a given job definition.

\n

\n GetJobRuns returns the job runs in chronological order, with the newest jobs returned first.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -27027,7 +27070,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "NumberOfWorkers": { @@ -27383,7 +27426,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "NumberOfWorkers": { @@ -27617,7 +27660,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "NumberOfWorkers": { @@ -33645,7 +33688,7 @@ "RunProperties": { "target": "com.amazonaws.glue#WorkflowRunProperties", "traits": { - "smithy.api#documentation": "

The properties to put for the specified run.

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

The properties to put for the specified run.

\n

Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

", "smithy.api#required": {} } } @@ -38494,7 +38537,7 @@ "WorkerType": { "target": "com.amazonaws.glue#WorkerType", "traits": { - "smithy.api#documentation": "

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.

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

The type of predefined worker that is allocated when a job runs. Accepts a value of\n G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.

\n
    \n
  • \n

    For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.

    \n
  • \n
  • \n

    For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).

    \n
  • \n
  • \n

    For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as supported for the G.4X worker type.

    \n
  • \n
  • \n

    For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.

    \n
  • \n
  • \n

    For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.

    \n
  • \n
" } }, "NumberOfWorkers": { @@ -38760,7 +38803,7 @@ "RunProperties": { "target": "com.amazonaws.glue#WorkflowRunProperties", "traits": { - "smithy.api#documentation": "

The workflow run properties for the new workflow run.

" + "smithy.api#documentation": "

The workflow run properties for the new workflow run.

\n

Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

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

Updates a trigger definition.

" + "smithy.api#documentation": "

Updates a trigger definition.

\n

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

" } }, "com.amazonaws.glue#UpdateTriggerRequest": { @@ -44328,7 +44371,7 @@ "DefaultRunProperties": { "target": "com.amazonaws.glue#WorkflowRunProperties", "traits": { - "smithy.api#documentation": "

A collection of properties to be used as part of each execution of the workflow.

" + "smithy.api#documentation": "

A collection of properties to be used as part of each execution of the workflow.

\n

Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

" } }, "MaxConcurrentRuns": { diff --git a/codegen/sdk-codegen/aws-models/guardduty.json b/codegen/sdk-codegen/aws-models/guardduty.json index 1292bbc67dc..615a4135bf3 100644 --- a/codegen/sdk-codegen/aws-models/guardduty.json +++ b/codegen/sdk-codegen/aws-models/guardduty.json @@ -2090,7 +2090,7 @@ "target": "com.amazonaws.guardduty#FindingCriteria", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Represents the criteria to be used in the filter for querying findings.

\n

You can only use the following attributes to query findings:

\n
    \n
  • \n

    accountId

    \n
  • \n
  • \n

    id

    \n
  • \n
  • \n

    region

    \n
  • \n
  • \n

    severity

    \n

    To filter on the basis of severity, the API and CLI use the following input list for\n the FindingCriteria\n condition:

    \n
      \n
    • \n

      \n Low: [\"1\", \"2\", \"3\"]\n

      \n
    • \n
    • \n

      \n Medium: [\"4\", \"5\", \"6\"]\n

      \n
    • \n
    • \n

      \n High: [\"7\", \"8\", \"9\"]\n

      \n
    • \n
    \n

    For more information, see Severity\n levels for GuardDuty findings.

    \n
  • \n
  • \n

    type

    \n
  • \n
  • \n

    updatedAt

    \n

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ\n depending on whether the value contains milliseconds.

    \n
  • \n
  • \n

    resource.accessKeyDetails.accessKeyId

    \n
  • \n
  • \n

    resource.accessKeyDetails.principalId

    \n
  • \n
  • \n

    resource.accessKeyDetails.userName

    \n
  • \n
  • \n

    resource.accessKeyDetails.userType

    \n
  • \n
  • \n

    resource.instanceDetails.iamInstanceProfile.id

    \n
  • \n
  • \n

    resource.instanceDetails.imageId

    \n
  • \n
  • \n

    resource.instanceDetails.instanceId

    \n
  • \n
  • \n

    resource.instanceDetails.tags.key

    \n
  • \n
  • \n

    resource.instanceDetails.tags.value

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.ipv6Addresses

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicDnsName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicIp

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.subnetId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.vpcId

    \n
  • \n
  • \n

    resource.instanceDetails.outpostArn

    \n
  • \n
  • \n

    resource.resourceType

    \n
  • \n
  • \n

    resource.s3BucketDetails.publicAccess.effectivePermissions

    \n
  • \n
  • \n

    resource.s3BucketDetails.name

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.key

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.value

    \n
  • \n
  • \n

    resource.s3BucketDetails.type

    \n
  • \n
  • \n

    service.action.actionType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.api

    \n
  • \n
  • \n

    service.action.awsApiCallAction.callerType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.errorCode

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domain

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domainWithSuffix

    \n
  • \n
  • \n

    service.action.networkConnectionAction.blocked

    \n
  • \n
  • \n

    service.action.networkConnectionAction.connectionDirection

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localPortDetails.port

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remotePortDetails.port

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.affiliated

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.namespace

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.requestUri

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.statusCode

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.accountId

    \n
  • \n
  • \n

    service.additionalInfo.threatListName

    \n
  • \n
  • \n

    service.resourceRole

    \n
  • \n
  • \n

    resource.eksClusterDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesUserDetails.username

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanId

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    \n
  • \n
  • \n

    resource.ecsClusterDetails.name

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.containers.image

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.definitionArn

    \n
  • \n
  • \n

    resource.containerDetails.image

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbInstanceIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbClusterIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.engine

    \n
  • \n
  • \n

    resource.rdsDbUserDetails.user

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.key

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.value

    \n
  • \n
  • \n

    service.runtimeDetails.process.executableSha256

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    resource.lambdaDetails.functionName

    \n
  • \n
  • \n

    resource.lambdaDetails.functionArn

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.key

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.value

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

Represents the criteria to be used in the filter for querying findings.

\n

You can only use the following attributes to query findings:

\n
    \n
  • \n

    accountId

    \n
  • \n
  • \n

    id

    \n
  • \n
  • \n

    region

    \n
  • \n
  • \n

    severity

    \n

    To filter on the basis of severity, the API and CLI use the following input list for\n the FindingCriteria\n condition:

    \n
      \n
    • \n

      \n Low: [\"1\", \"2\", \"3\"]\n

      \n
    • \n
    • \n

      \n Medium: [\"4\", \"5\", \"6\"]\n

      \n
    • \n
    • \n

      \n High: [\"7\", \"8\"]\n

      \n
    • \n
    • \n

      \n Critical: [\"9\", \"10\"]\n

      \n
    • \n
    \n

    For more information, see Findings severity levels\n in the Amazon GuardDuty User Guide.

    \n
  • \n
  • \n

    type

    \n
  • \n
  • \n

    updatedAt

    \n

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ\n depending on whether the value contains milliseconds.

    \n
  • \n
  • \n

    resource.accessKeyDetails.accessKeyId

    \n
  • \n
  • \n

    resource.accessKeyDetails.principalId

    \n
  • \n
  • \n

    resource.accessKeyDetails.userName

    \n
  • \n
  • \n

    resource.accessKeyDetails.userType

    \n
  • \n
  • \n

    resource.instanceDetails.iamInstanceProfile.id

    \n
  • \n
  • \n

    resource.instanceDetails.imageId

    \n
  • \n
  • \n

    resource.instanceDetails.instanceId

    \n
  • \n
  • \n

    resource.instanceDetails.tags.key

    \n
  • \n
  • \n

    resource.instanceDetails.tags.value

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.ipv6Addresses

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicDnsName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicIp

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.subnetId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.vpcId

    \n
  • \n
  • \n

    resource.instanceDetails.outpostArn

    \n
  • \n
  • \n

    resource.resourceType

    \n
  • \n
  • \n

    resource.s3BucketDetails.publicAccess.effectivePermissions

    \n
  • \n
  • \n

    resource.s3BucketDetails.name

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.key

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.value

    \n
  • \n
  • \n

    resource.s3BucketDetails.type

    \n
  • \n
  • \n

    service.action.actionType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.api

    \n
  • \n
  • \n

    service.action.awsApiCallAction.callerType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.errorCode

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domain

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domainWithSuffix

    \n
  • \n
  • \n

    service.action.networkConnectionAction.blocked

    \n
  • \n
  • \n

    service.action.networkConnectionAction.connectionDirection

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localPortDetails.port

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remotePortDetails.port

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.affiliated

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.namespace

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.requestUri

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.statusCode

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.accountId

    \n
  • \n
  • \n

    service.additionalInfo.threatListName

    \n
  • \n
  • \n

    service.resourceRole

    \n
  • \n
  • \n

    resource.eksClusterDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesUserDetails.username

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanId

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    \n
  • \n
  • \n

    resource.ecsClusterDetails.name

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.containers.image

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.definitionArn

    \n
  • \n
  • \n

    resource.containerDetails.image

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbInstanceIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbClusterIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.engine

    \n
  • \n
  • \n

    resource.rdsDbUserDetails.user

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.key

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.value

    \n
  • \n
  • \n

    service.runtimeDetails.process.executableSha256

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    resource.lambdaDetails.functionName

    \n
  • \n
  • \n

    resource.lambdaDetails.functionArn

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.key

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.value

    \n
  • \n
", "smithy.api#jsonName": "findingCriteria", "smithy.api#required": {} } @@ -3643,7 +3643,7 @@ "target": "com.amazonaws.guardduty#Scans", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Contains information about malware scans.

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

Contains information about malware scans associated with GuardDuty Malware Protection for EC2.

", "smithy.api#jsonName": "scans", "smithy.api#required": {} } @@ -11969,7 +11969,7 @@ "Name": { "target": "com.amazonaws.guardduty#OrgFeatureAdditionalConfiguration", "traits": { - "smithy.api#documentation": "

The name of the additional configuration that will be configured for the\n organization.

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

The name of the additional configuration that will be configured for the\n organization. These values are applicable to only Runtime Monitoring protection plan.

", "smithy.api#jsonName": "name" } }, @@ -11982,7 +11982,7 @@ } }, "traits": { - "smithy.api#documentation": "

A list of additional configurations which will be configured for the organization.

" + "smithy.api#documentation": "

A list of additional configurations which will be configured for the organization.

\n

Additional configuration applies to only GuardDuty Runtime Monitoring protection plan.

" } }, "com.amazonaws.guardduty#OrganizationAdditionalConfigurationResult": { @@ -11991,7 +11991,7 @@ "Name": { "target": "com.amazonaws.guardduty#OrgFeatureAdditionalConfiguration", "traits": { - "smithy.api#documentation": "

The name of the additional configuration that is configured for the member accounts within\n the organization.

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

The name of the additional configuration that is configured for the member accounts within\n the organization. These values are applicable to only Runtime Monitoring protection plan.

", "smithy.api#jsonName": "name" } }, @@ -14015,7 +14015,7 @@ "DetectorId": { "target": "com.amazonaws.guardduty#DetectorId", "traits": { - "smithy.api#documentation": "

The unique ID of the detector that the request is associated with.

\n

To find the detectorId in the current Region, see the\nSettings page in the GuardDuty console, or run the ListDetectors API.

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

The unique ID of the detector that is associated with the request.

\n

To find the detectorId in the current Region, see the\nSettings page in the GuardDuty console, or run the ListDetectors API.

", "smithy.api#jsonName": "detectorId" } }, @@ -14043,7 +14043,7 @@ "FailureReason": { "target": "com.amazonaws.guardduty#NonEmptyString", "traits": { - "smithy.api#documentation": "

Represents the reason for FAILED scan status.

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

Represents the reason for FAILED scan status.

", "smithy.api#jsonName": "failureReason" } }, @@ -14119,7 +14119,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about a malware scan.

" + "smithy.api#documentation": "

Contains information about malware scans associated with GuardDuty Malware Protection for EC2.

" } }, "com.amazonaws.guardduty#ScanCondition": { @@ -16396,7 +16396,7 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use AutoEnableOrganizationMembers instead" }, - "smithy.api#documentation": "

Represents whether or not to automatically enable member accounts in the organization.

\n

Even though this is still supported, we recommend using\n AutoEnableOrganizationMembers to achieve the similar results. You must provide a \n value for either autoEnableOrganizationMembers or autoEnable.

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

Represents whether to automatically enable member accounts in the organization. This\n applies to only new member accounts, not the existing member accounts. When a new account joins the organization,\n the chosen features will be enabled for them by default.

\n

Even though this is still supported, we recommend using\n AutoEnableOrganizationMembers to achieve the similar results. You must provide a \n value for either autoEnableOrganizationMembers or autoEnable.

", "smithy.api#jsonName": "autoEnable" } }, diff --git a/codegen/sdk-codegen/aws-models/route-53-domains.json b/codegen/sdk-codegen/aws-models/route-53-domains.json index e78189dd068..01bf154947e 100644 --- a/codegen/sdk-codegen/aws-models/route-53-domains.json +++ b/codegen/sdk-codegen/aws-models/route-53-domains.json @@ -3638,10 +3638,7 @@ "com.amazonaws.route53domains#LangCode": { "type": "string", "traits": { - "smithy.api#length": { - "min": 0, - "max": 3 - } + "smithy.api#pattern": "^|[A-Za-z]{2,3}$" } }, "com.amazonaws.route53domains#ListDomains": { @@ -4280,6 +4277,12 @@ "traits": { "smithy.api#enumValue": "TRANSFER_ON_RENEW" } + }, + "RESTORE_DOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESTORE_DOMAIN" + } } } }, @@ -4291,7 +4294,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 20 + "max": 21 } } }, @@ -4344,7 +4347,10 @@ "com.amazonaws.route53domains#Price": { "type": "double", "traits": { - "smithy.api#default": 0 + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0.0 + } } }, "com.amazonaws.route53domains#PriceWithCurrency": { From 6cdae888df43d81a5f4ec19ac62f4fd5ded4bc33 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 12 Dec 2024 19:24:35 +0000 Subject: [PATCH 11/17] Update endpoints model --- .../amazon/smithy/aws/go/codegen/endpoints.json | 13 +++++++++++++ 1 file changed, 13 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 93ffb541d3c..80f78bc40c0 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 @@ -14403,6 +14403,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "network-firewall-fips.ca-central-1.amazonaws.com", @@ -31875,6 +31876,18 @@ "us-isob-east-1" : { } } }, + "organizations" : { + "endpoints" : { + "aws-iso-b-global" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "organizations.us-isob-east-1.sc2s.sgov.gov" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-b-global" + }, "outposts" : { "endpoints" : { "us-isob-east-1" : { } From ed939da621ba02359d515d92b98643a4389476c8 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 12 Dec 2024 19:44:25 +0000 Subject: [PATCH 12/17] Regenerated Clients --- .../0239a2bef04048d89ed20f62bb5c68ad.json | 8 + .../1c8626820e62415a8bc89f3972398b0d.json | 8 + .../73daebd545e8475c8ec6957d106ba9ce.json | 8 + .../bc4127c64d09473e9a74180173056107.json | 8 + .../d99b61b4379c48a282978e55d9f78d5b.json | 8 + .../api_op_CreateHoursOfOperationOverride.go | 187 ++ service/connect/api_op_CreateQueue.go | 2 - .../api_op_DeleteHoursOfOperationOverride.go | 163 ++ ...api_op_DescribeHoursOfOperationOverride.go | 167 ++ .../api_op_GetEffectiveHoursOfOperations.go | 175 ++ .../api_op_ListHoursOfOperationOverrides.go | 278 +++ .../api_op_SearchHoursOfOperationOverrides.go | 277 +++ .../api_op_UpdateHoursOfOperationOverride.go | 179 ++ service/connect/deserializers.go | 1945 +++++++++++++++-- service/connect/generated.json | 7 + service/connect/serializers.go | 982 ++++++++- ..._op_CreateHoursOfOperationOverride.go.snap | 41 + ..._op_DeleteHoursOfOperationOverride.go.snap | 41 + ...p_DescribeHoursOfOperationOverride.go.snap | 41 + ...i_op_GetEffectiveHoursOfOperations.go.snap | 41 + ...i_op_ListHoursOfOperationOverrides.go.snap | 41 + ...op_SearchHoursOfOperationOverrides.go.snap | 41 + ..._op_UpdateHoursOfOperationOverride.go.snap | 41 + service/connect/snapshot_test.go | 168 ++ service/connect/types/enums.go | 54 + service/connect/types/errors.go | 2 +- service/connect/types/types.go | 138 +- service/connect/validators.go | 384 ++++ .../api_op_CreateReplicationInstance.go | 4 + .../api_op_DescribeDataProviders.go | 3 +- .../api_op_DescribeInstanceProfiles.go | 3 + .../api_op_DescribeMigrationProjects.go | 8 + .../api_op_ModifyReplicationInstance.go | 4 + .../api_op_StartReplication.go | 15 + .../databasemigrationservice/deserializers.go | 128 +- .../databasemigrationservice/serializers.go | 61 + .../databasemigrationservice/types/enums.go | 39 + .../databasemigrationservice/types/types.go | 114 +- service/glue/api_op_CreateJob.go | 48 +- service/glue/api_op_CreateSession.go | 42 +- service/glue/api_op_CreateTrigger.go | 4 + service/glue/api_op_CreateWorkflow.go | 5 + service/glue/api_op_GetJobRun.go | 2 +- service/glue/api_op_GetJobRuns.go | 3 + .../glue/api_op_PutWorkflowRunProperties.go | 5 + service/glue/api_op_StartJobRun.go | 48 +- service/glue/api_op_StartWorkflowRun.go | 5 + service/glue/api_op_UpdateTrigger.go | 4 + service/glue/api_op_UpdateWorkflow.go | 5 + service/glue/deserializers.go | 54 + service/glue/serializers.go | 24 + service/glue/types/enums.go | 19 + service/glue/types/types.go | 164 +- service/guardduty/api_op_CreateFilter.go | 8 +- .../guardduty/api_op_DescribeMalwareScans.go | 3 +- .../api_op_UpdateOrganizationConfiguration.go | 6 +- service/guardduty/types/types.go | 14 +- .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 15 +- service/route53domains/types/enums.go | 2 + 60 files changed, 5839 insertions(+), 458 deletions(-) create mode 100644 .changelog/0239a2bef04048d89ed20f62bb5c68ad.json create mode 100644 .changelog/1c8626820e62415a8bc89f3972398b0d.json create mode 100644 .changelog/73daebd545e8475c8ec6957d106ba9ce.json create mode 100644 .changelog/bc4127c64d09473e9a74180173056107.json create mode 100644 .changelog/d99b61b4379c48a282978e55d9f78d5b.json create mode 100644 service/connect/api_op_CreateHoursOfOperationOverride.go create mode 100644 service/connect/api_op_DeleteHoursOfOperationOverride.go create mode 100644 service/connect/api_op_DescribeHoursOfOperationOverride.go create mode 100644 service/connect/api_op_GetEffectiveHoursOfOperations.go create mode 100644 service/connect/api_op_ListHoursOfOperationOverrides.go create mode 100644 service/connect/api_op_SearchHoursOfOperationOverrides.go create mode 100644 service/connect/api_op_UpdateHoursOfOperationOverride.go create mode 100644 service/connect/snapshot/api_op_CreateHoursOfOperationOverride.go.snap create mode 100644 service/connect/snapshot/api_op_DeleteHoursOfOperationOverride.go.snap create mode 100644 service/connect/snapshot/api_op_DescribeHoursOfOperationOverride.go.snap create mode 100644 service/connect/snapshot/api_op_GetEffectiveHoursOfOperations.go.snap create mode 100644 service/connect/snapshot/api_op_ListHoursOfOperationOverrides.go.snap create mode 100644 service/connect/snapshot/api_op_SearchHoursOfOperationOverrides.go.snap create mode 100644 service/connect/snapshot/api_op_UpdateHoursOfOperationOverride.go.snap diff --git a/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json b/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json new file mode 100644 index 00000000000..8b730074414 --- /dev/null +++ b/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json @@ -0,0 +1,8 @@ +{ + "id": "0239a2be-f040-48d8-9ed2-0f62bb5c68ad", + "type": "feature", + "description": "Configure holidays and other overrides to hours of operation in advance. During contact handling, Amazon Connect automatically checks for overrides and provides customers with an appropriate flow path. After an override period passes call center automatically reverts to standard hours of operation.", + "modules": [ + "service/connect" + ] +} \ No newline at end of file diff --git a/.changelog/1c8626820e62415a8bc89f3972398b0d.json b/.changelog/1c8626820e62415a8bc89f3972398b0d.json new file mode 100644 index 00000000000..90dc8f9d0b4 --- /dev/null +++ b/.changelog/1c8626820e62415a8bc89f3972398b0d.json @@ -0,0 +1,8 @@ +{ + "id": "1c862682-0e62-415a-8bc8-9f3972398b0d", + "type": "documentation", + "description": "Improved descriptions for certain APIs.", + "modules": [ + "service/guardduty" + ] +} \ No newline at end of file diff --git a/.changelog/73daebd545e8475c8ec6957d106ba9ce.json b/.changelog/73daebd545e8475c8ec6957d106ba9ce.json new file mode 100644 index 00000000000..e4e910e0a15 --- /dev/null +++ b/.changelog/73daebd545e8475c8ec6957d106ba9ce.json @@ -0,0 +1,8 @@ +{ + "id": "73daebd5-45e8-475c-8ec6-957d106ba9ce", + "type": "feature", + "description": "To support customer-managed encryption in Data Quality to allow customers encrypt data with their own KMS key, we will add a DataQualityEncryption field to the SecurityConfiguration API where customers can provide their KMS keys.", + "modules": [ + "service/glue" + ] +} \ No newline at end of file diff --git a/.changelog/bc4127c64d09473e9a74180173056107.json b/.changelog/bc4127c64d09473e9a74180173056107.json new file mode 100644 index 00000000000..1fe06bf4c1e --- /dev/null +++ b/.changelog/bc4127c64d09473e9a74180173056107.json @@ -0,0 +1,8 @@ +{ + "id": "bc4127c6-4d09-473e-9a74-180173056107", + "type": "feature", + "description": "This release includes the following API updates: added the enumeration type RESTORE_DOMAIN to the OperationType; constrained the Price attribute to non-negative values; updated the LangCode to allow 2 or 3 alphabetical characters.", + "modules": [ + "service/route53domains" + ] +} \ No newline at end of file diff --git a/.changelog/d99b61b4379c48a282978e55d9f78d5b.json b/.changelog/d99b61b4379c48a282978e55d9f78d5b.json new file mode 100644 index 00000000000..02866877234 --- /dev/null +++ b/.changelog/d99b61b4379c48a282978e55d9f78d5b.json @@ -0,0 +1,8 @@ +{ + "id": "d99b61b4-379c-48a2-8297-8e55d9f78d5b", + "type": "feature", + "description": "Add parameters to support for kerberos authentication. Add parameter for disabling the Unicode source filter with PostgreSQL settings. Add parameter to use large integer value with Kinesis/Kafka settings.", + "modules": [ + "service/databasemigrationservice" + ] +} \ No newline at end of file diff --git a/service/connect/api_op_CreateHoursOfOperationOverride.go b/service/connect/api_op_CreateHoursOfOperationOverride.go new file mode 100644 index 00000000000..009b6eb52a5 --- /dev/null +++ b/service/connect/api_op_CreateHoursOfOperationOverride.go @@ -0,0 +1,187 @@ +// 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 an hours of operation override in an Amazon Connect hours of operation +// resource +func (c *Client) CreateHoursOfOperationOverride(ctx context.Context, params *CreateHoursOfOperationOverrideInput, optFns ...func(*Options)) (*CreateHoursOfOperationOverrideOutput, error) { + if params == nil { + params = &CreateHoursOfOperationOverrideInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateHoursOfOperationOverride", params, optFns, c.addOperationCreateHoursOfOperationOverrideMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateHoursOfOperationOverrideOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateHoursOfOperationOverrideInput struct { + + // Configuration information for the hours of operation override: day, start time, + // and end time. + // + // This member is required. + Config []types.HoursOfOperationOverrideConfig + + // The date from when the hours of operation override would be effective. + // + // This member is required. + EffectiveFrom *string + + // The date until when the hours of operation override would be effective. + // + // This member is required. + EffectiveTill *string + + // The identifier for the hours of operation + // + // This member is required. + HoursOfOperationId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + // The name of the hours of operation override. + // + // This member is required. + Name *string + + // The description of the hours of operation override. + Description *string + + noSmithyDocumentSerde +} + +type CreateHoursOfOperationOverrideOutput struct { + + // The identifier for the hours of operation override. + HoursOfOperationOverrideId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateHoursOfOperationOverrideMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateHoursOfOperationOverride"); 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 = addOpCreateHoursOfOperationOverrideValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateHoursOfOperationOverride(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_opCreateHoursOfOperationOverride(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateHoursOfOperationOverride", + } +} diff --git a/service/connect/api_op_CreateQueue.go b/service/connect/api_op_CreateQueue.go index 1864400edfd..5bc29237ca9 100644 --- a/service/connect/api_op_CreateQueue.go +++ b/service/connect/api_op_CreateQueue.go @@ -11,8 +11,6 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This API is in preview release for Amazon Connect and is subject to change. -// // Creates a new queue for the specified Amazon Connect instance. // // - If the phone number is claimed to a traffic distribution group that was diff --git a/service/connect/api_op_DeleteHoursOfOperationOverride.go b/service/connect/api_op_DeleteHoursOfOperationOverride.go new file mode 100644 index 00000000000..1c532cc2ce6 --- /dev/null +++ b/service/connect/api_op_DeleteHoursOfOperationOverride.go @@ -0,0 +1,163 @@ +// 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 an hours of operation override in an Amazon Connect hours of operation +// resource +func (c *Client) DeleteHoursOfOperationOverride(ctx context.Context, params *DeleteHoursOfOperationOverrideInput, optFns ...func(*Options)) (*DeleteHoursOfOperationOverrideOutput, error) { + if params == nil { + params = &DeleteHoursOfOperationOverrideInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteHoursOfOperationOverride", params, optFns, c.addOperationDeleteHoursOfOperationOverrideMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteHoursOfOperationOverrideOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteHoursOfOperationOverrideInput struct { + + // The identifier for the hours of operation. + // + // This member is required. + HoursOfOperationId *string + + // The identifier for the hours of operation override. + // + // This member is required. + HoursOfOperationOverrideId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + noSmithyDocumentSerde +} + +type DeleteHoursOfOperationOverrideOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteHoursOfOperationOverrideMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteHoursOfOperationOverride"); 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 = addOpDeleteHoursOfOperationOverrideValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteHoursOfOperationOverride(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_opDeleteHoursOfOperationOverride(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteHoursOfOperationOverride", + } +} diff --git a/service/connect/api_op_DescribeHoursOfOperationOverride.go b/service/connect/api_op_DescribeHoursOfOperationOverride.go new file mode 100644 index 00000000000..910758694a0 --- /dev/null +++ b/service/connect/api_op_DescribeHoursOfOperationOverride.go @@ -0,0 +1,167 @@ +// 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" +) + +// Describes the hours of operation override. +func (c *Client) DescribeHoursOfOperationOverride(ctx context.Context, params *DescribeHoursOfOperationOverrideInput, optFns ...func(*Options)) (*DescribeHoursOfOperationOverrideOutput, error) { + if params == nil { + params = &DescribeHoursOfOperationOverrideInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeHoursOfOperationOverride", params, optFns, c.addOperationDescribeHoursOfOperationOverrideMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeHoursOfOperationOverrideOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeHoursOfOperationOverrideInput struct { + + // The identifier for the hours of operation. + // + // This member is required. + HoursOfOperationId *string + + // The identifier for the hours of operation override. + // + // This member is required. + HoursOfOperationOverrideId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + noSmithyDocumentSerde +} + +type DescribeHoursOfOperationOverrideOutput struct { + + // Information about the hours of operations override. + HoursOfOperationOverride *types.HoursOfOperationOverride + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeHoursOfOperationOverrideMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeHoursOfOperationOverride"); 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 = addOpDescribeHoursOfOperationOverrideValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeHoursOfOperationOverride(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_opDescribeHoursOfOperationOverride(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeHoursOfOperationOverride", + } +} diff --git a/service/connect/api_op_GetEffectiveHoursOfOperations.go b/service/connect/api_op_GetEffectiveHoursOfOperations.go new file mode 100644 index 00000000000..a8778c592ef --- /dev/null +++ b/service/connect/api_op_GetEffectiveHoursOfOperations.go @@ -0,0 +1,175 @@ +// 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" +) + +// Get the hours of operations with the effective override applied. +func (c *Client) GetEffectiveHoursOfOperations(ctx context.Context, params *GetEffectiveHoursOfOperationsInput, optFns ...func(*Options)) (*GetEffectiveHoursOfOperationsOutput, error) { + if params == nil { + params = &GetEffectiveHoursOfOperationsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetEffectiveHoursOfOperations", params, optFns, c.addOperationGetEffectiveHoursOfOperationsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetEffectiveHoursOfOperationsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetEffectiveHoursOfOperationsInput struct { + + // The Date from when the hours of operation are listed. + // + // This member is required. + FromDate *string + + // The identifier for the hours of operation. + // + // This member is required. + HoursOfOperationId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + // The Date until when the hours of operation are listed. + // + // This member is required. + ToDate *string + + noSmithyDocumentSerde +} + +type GetEffectiveHoursOfOperationsOutput struct { + + // Information about the effective hours of operations + EffectiveHoursOfOperationList []types.EffectiveHoursOfOperations + + // The time zone for the hours of operation. + TimeZone *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetEffectiveHoursOfOperationsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetEffectiveHoursOfOperations{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetEffectiveHoursOfOperations{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetEffectiveHoursOfOperations"); 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 = addOpGetEffectiveHoursOfOperationsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetEffectiveHoursOfOperations(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_opGetEffectiveHoursOfOperations(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetEffectiveHoursOfOperations", + } +} diff --git a/service/connect/api_op_ListHoursOfOperationOverrides.go b/service/connect/api_op_ListHoursOfOperationOverrides.go new file mode 100644 index 00000000000..661114fff4b --- /dev/null +++ b/service/connect/api_op_ListHoursOfOperationOverrides.go @@ -0,0 +1,278 @@ +// 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" + "time" +) + +// List the hours of operation overrides. +func (c *Client) ListHoursOfOperationOverrides(ctx context.Context, params *ListHoursOfOperationOverridesInput, optFns ...func(*Options)) (*ListHoursOfOperationOverridesOutput, error) { + if params == nil { + params = &ListHoursOfOperationOverridesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListHoursOfOperationOverrides", params, optFns, c.addOperationListHoursOfOperationOverridesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListHoursOfOperationOverridesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListHoursOfOperationOverridesInput struct { + + // The identifier for the hours of operation + // + // This member is required. + HoursOfOperationId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + // The maximum number of results to return per page. The default MaxResult size is + // 100. Valid Range: Minimum value of 1. Maximum value of 1000. + MaxResults *int32 + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListHoursOfOperationOverridesOutput struct { + + // Information about the hours of operation override. + HoursOfOperationOverrideList []types.HoursOfOperationOverride + + // The AWS Region where this resource was last modified. + LastModifiedRegion *string + + // The timestamp when this resource was last modified. + LastModifiedTime *time.Time + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListHoursOfOperationOverridesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListHoursOfOperationOverrides{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListHoursOfOperationOverrides{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListHoursOfOperationOverrides"); 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 = addOpListHoursOfOperationOverridesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListHoursOfOperationOverrides(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 +} + +// ListHoursOfOperationOverridesPaginatorOptions is the paginator options for +// ListHoursOfOperationOverrides +type ListHoursOfOperationOverridesPaginatorOptions struct { + // The maximum number of results to return per page. The default MaxResult size is + // 100. Valid Range: Minimum value of 1. Maximum value of 1000. + 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 +} + +// ListHoursOfOperationOverridesPaginator is a paginator for +// ListHoursOfOperationOverrides +type ListHoursOfOperationOverridesPaginator struct { + options ListHoursOfOperationOverridesPaginatorOptions + client ListHoursOfOperationOverridesAPIClient + params *ListHoursOfOperationOverridesInput + nextToken *string + firstPage bool +} + +// NewListHoursOfOperationOverridesPaginator returns a new +// ListHoursOfOperationOverridesPaginator +func NewListHoursOfOperationOverridesPaginator(client ListHoursOfOperationOverridesAPIClient, params *ListHoursOfOperationOverridesInput, optFns ...func(*ListHoursOfOperationOverridesPaginatorOptions)) *ListHoursOfOperationOverridesPaginator { + if params == nil { + params = &ListHoursOfOperationOverridesInput{} + } + + options := ListHoursOfOperationOverridesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListHoursOfOperationOverridesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListHoursOfOperationOverridesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListHoursOfOperationOverrides page. +func (p *ListHoursOfOperationOverridesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListHoursOfOperationOverridesOutput, 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.ListHoursOfOperationOverrides(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 +} + +// ListHoursOfOperationOverridesAPIClient is a client that implements the +// ListHoursOfOperationOverrides operation. +type ListHoursOfOperationOverridesAPIClient interface { + ListHoursOfOperationOverrides(context.Context, *ListHoursOfOperationOverridesInput, ...func(*Options)) (*ListHoursOfOperationOverridesOutput, error) +} + +var _ ListHoursOfOperationOverridesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListHoursOfOperationOverrides(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListHoursOfOperationOverrides", + } +} diff --git a/service/connect/api_op_SearchHoursOfOperationOverrides.go b/service/connect/api_op_SearchHoursOfOperationOverrides.go new file mode 100644 index 00000000000..d1354d361c2 --- /dev/null +++ b/service/connect/api_op_SearchHoursOfOperationOverrides.go @@ -0,0 +1,277 @@ +// 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" +) + +// Searches the hours of operation overrides. +func (c *Client) SearchHoursOfOperationOverrides(ctx context.Context, params *SearchHoursOfOperationOverridesInput, optFns ...func(*Options)) (*SearchHoursOfOperationOverridesOutput, error) { + if params == nil { + params = &SearchHoursOfOperationOverridesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SearchHoursOfOperationOverrides", params, optFns, c.addOperationSearchHoursOfOperationOverridesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SearchHoursOfOperationOverridesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SearchHoursOfOperationOverridesInput struct { + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + // The maximum number of results to return per page. Valid Range: Minimum value of + // 1. Maximum value of 100. + MaxResults *int32 + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. Length + // Constraints: Minimum length of 1. Maximum length of 2500. + NextToken *string + + // The search criteria to be used to return hours of operations overrides. + SearchCriteria *types.HoursOfOperationOverrideSearchCriteria + + // Filters to be applied to search results. + SearchFilter *types.HoursOfOperationSearchFilter + + noSmithyDocumentSerde +} + +type SearchHoursOfOperationOverridesOutput struct { + + // The total number of hours of operations which matched your search query. + ApproximateTotalCount *int64 + + // Information about the hours of operations overrides. + HoursOfOperationOverrides []types.HoursOfOperationOverride + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. Length + // Constraints: Minimum length of 1. Maximum length of 2500. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSearchHoursOfOperationOverridesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpSearchHoursOfOperationOverrides{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpSearchHoursOfOperationOverrides{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "SearchHoursOfOperationOverrides"); 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 = addOpSearchHoursOfOperationOverridesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSearchHoursOfOperationOverrides(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 +} + +// SearchHoursOfOperationOverridesPaginatorOptions is the paginator options for +// SearchHoursOfOperationOverrides +type SearchHoursOfOperationOverridesPaginatorOptions struct { + // The maximum number of results to return per page. Valid Range: Minimum value of + // 1. Maximum value of 100. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// SearchHoursOfOperationOverridesPaginator is a paginator for +// SearchHoursOfOperationOverrides +type SearchHoursOfOperationOverridesPaginator struct { + options SearchHoursOfOperationOverridesPaginatorOptions + client SearchHoursOfOperationOverridesAPIClient + params *SearchHoursOfOperationOverridesInput + nextToken *string + firstPage bool +} + +// NewSearchHoursOfOperationOverridesPaginator returns a new +// SearchHoursOfOperationOverridesPaginator +func NewSearchHoursOfOperationOverridesPaginator(client SearchHoursOfOperationOverridesAPIClient, params *SearchHoursOfOperationOverridesInput, optFns ...func(*SearchHoursOfOperationOverridesPaginatorOptions)) *SearchHoursOfOperationOverridesPaginator { + if params == nil { + params = &SearchHoursOfOperationOverridesInput{} + } + + options := SearchHoursOfOperationOverridesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &SearchHoursOfOperationOverridesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *SearchHoursOfOperationOverridesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next SearchHoursOfOperationOverrides page. +func (p *SearchHoursOfOperationOverridesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*SearchHoursOfOperationOverridesOutput, 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.SearchHoursOfOperationOverrides(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 +} + +// SearchHoursOfOperationOverridesAPIClient is a client that implements the +// SearchHoursOfOperationOverrides operation. +type SearchHoursOfOperationOverridesAPIClient interface { + SearchHoursOfOperationOverrides(context.Context, *SearchHoursOfOperationOverridesInput, ...func(*Options)) (*SearchHoursOfOperationOverridesOutput, error) +} + +var _ SearchHoursOfOperationOverridesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opSearchHoursOfOperationOverrides(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "SearchHoursOfOperationOverrides", + } +} diff --git a/service/connect/api_op_UpdateHoursOfOperationOverride.go b/service/connect/api_op_UpdateHoursOfOperationOverride.go new file mode 100644 index 00000000000..f5edd1e5b43 --- /dev/null +++ b/service/connect/api_op_UpdateHoursOfOperationOverride.go @@ -0,0 +1,179 @@ +// 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" +) + +// Update the hours of operation override. +func (c *Client) UpdateHoursOfOperationOverride(ctx context.Context, params *UpdateHoursOfOperationOverrideInput, optFns ...func(*Options)) (*UpdateHoursOfOperationOverrideOutput, error) { + if params == nil { + params = &UpdateHoursOfOperationOverrideInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateHoursOfOperationOverride", params, optFns, c.addOperationUpdateHoursOfOperationOverrideMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateHoursOfOperationOverrideOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateHoursOfOperationOverrideInput struct { + + // The identifier for the hours of operation. + // + // This member is required. + HoursOfOperationId *string + + // The identifier for the hours of operation override. + // + // This member is required. + HoursOfOperationOverrideId *string + + // The identifier of the Amazon Connect instance. + // + // This member is required. + InstanceId *string + + // Configuration information for the hours of operation override: day, start time, + // and end time. + Config []types.HoursOfOperationOverrideConfig + + // The description of the hours of operation override. + Description *string + + // The date from when the hours of operation override would be effective. + EffectiveFrom *string + + // The date till when the hours of operation override would be effective. + EffectiveTill *string + + // The name of the hours of operation override. + Name *string + + noSmithyDocumentSerde +} + +type UpdateHoursOfOperationOverrideOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateHoursOfOperationOverrideMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateHoursOfOperationOverride{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateHoursOfOperationOverride"); 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 = addOpUpdateHoursOfOperationOverrideValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateHoursOfOperationOverride(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_opUpdateHoursOfOperationOverride(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateHoursOfOperationOverride", + } +} diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 87579ca350b..c0647af10c4 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -4569,6 +4569,180 @@ func awsRestjson1_deserializeOpDocumentCreateHoursOfOperationOutput(v **CreateHo return nil } +type awsRestjson1_deserializeOpCreateHoursOfOperationOverride struct { +} + +func (*awsRestjson1_deserializeOpCreateHoursOfOperationOverride) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateHoursOfOperationOverride) HandleDeserialize(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_deserializeOpErrorCreateHoursOfOperationOverride(response, &metadata) + } + output := &CreateHoursOfOperationOverrideOutput{} + 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_deserializeOpDocumentCreateHoursOfOperationOverrideOutput(&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_deserializeOpErrorCreateHoursOfOperationOverride(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("DuplicateResourceException", errorCode): + return awsRestjson1_deserializeErrorDuplicateResourceException(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("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreateHoursOfOperationOverrideOutput(v **CreateHoursOfOperationOverrideOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateHoursOfOperationOverrideOutput + if *v == nil { + sv = &CreateHoursOfOperationOverrideOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "HoursOfOperationOverrideId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationOverrideId to be of type string, got %T instead", value) + } + sv.HoursOfOperationOverrideId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateInstance struct { } @@ -9015,6 +9189,112 @@ func awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response *smithyhttp. } } +type awsRestjson1_deserializeOpDeleteHoursOfOperationOverride struct { +} + +func (*awsRestjson1_deserializeOpDeleteHoursOfOperationOverride) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteHoursOfOperationOverride) HandleDeserialize(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_deserializeOpErrorDeleteHoursOfOperationOverride(response, &metadata) + } + output := &DeleteHoursOfOperationOverrideOutput{} + 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), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteHoursOfOperationOverride(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpDeleteInstance struct { } @@ -12541,6 +12821,170 @@ func awsRestjson1_deserializeOpDocumentDescribeHoursOfOperationOutput(v **Descri return nil } +type awsRestjson1_deserializeOpDescribeHoursOfOperationOverride struct { +} + +func (*awsRestjson1_deserializeOpDescribeHoursOfOperationOverride) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeHoursOfOperationOverride) HandleDeserialize(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_deserializeOpErrorDescribeHoursOfOperationOverride(response, &metadata) + } + output := &DescribeHoursOfOperationOverrideOutput{} + 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_deserializeOpDocumentDescribeHoursOfOperationOverrideOutput(&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_deserializeOpErrorDescribeHoursOfOperationOverride(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeHoursOfOperationOverrideOutput(v **DescribeHoursOfOperationOverrideOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeHoursOfOperationOverrideOutput + if *v == nil { + sv = &DescribeHoursOfOperationOverrideOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "HoursOfOperationOverride": + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverride(&sv.HoursOfOperationOverride, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeInstance struct { } @@ -17599,14 +18043,14 @@ func awsRestjson1_deserializeOpDocumentGetCurrentUserDataOutput(v **GetCurrentUs return nil } -type awsRestjson1_deserializeOpGetFederationToken struct { +type awsRestjson1_deserializeOpGetEffectiveHoursOfOperations struct { } -func (*awsRestjson1_deserializeOpGetFederationToken) ID() string { +func (*awsRestjson1_deserializeOpGetEffectiveHoursOfOperations) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetFederationToken) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetEffectiveHoursOfOperations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17624,9 +18068,9 @@ func (m *awsRestjson1_deserializeOpGetFederationToken) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetFederationToken(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetEffectiveHoursOfOperations(response, &metadata) } - output := &GetFederationTokenOutput{} + output := &GetEffectiveHoursOfOperationsOutput{} out.Result = output var buff [1024]byte @@ -17647,7 +18091,7 @@ func (m *awsRestjson1_deserializeOpGetFederationToken) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetEffectiveHoursOfOperationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17661,7 +18105,7 @@ func (m *awsRestjson1_deserializeOpGetFederationToken) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetFederationToken(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetEffectiveHoursOfOperations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17702,9 +18146,6 @@ func awsRestjson1_deserializeOpErrorGetFederationToken(response *smithyhttp.Resp } switch { - case strings.EqualFold("DuplicateResourceException", errorCode): - return awsRestjson1_deserializeErrorDuplicateResourceException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) @@ -17717,8 +18158,8 @@ func awsRestjson1_deserializeOpErrorGetFederationToken(response *smithyhttp.Resp case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("UserNotFoundException", errorCode): - return awsRestjson1_deserializeErrorUserNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -17730,7 +18171,7 @@ func awsRestjson1_deserializeOpErrorGetFederationToken(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(v **GetFederationTokenOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetEffectiveHoursOfOperationsOutput(v **GetEffectiveHoursOfOperationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17743,45 +18184,27 @@ func awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(v **GetFederatio return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetFederationTokenOutput + var sv *GetEffectiveHoursOfOperationsOutput if *v == nil { - sv = &GetFederationTokenOutput{} + sv = &GetEffectiveHoursOfOperationsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Credentials": - if err := awsRestjson1_deserializeDocumentCredentials(&sv.Credentials, value); err != nil { + case "EffectiveHoursOfOperationList": + if err := awsRestjson1_deserializeDocumentEffectiveHoursOfOperationList(&sv.EffectiveHoursOfOperationList, value); err != nil { return err } - case "SignInUrl": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Url to be of type string, got %T instead", value) - } - sv.SignInUrl = ptr.String(jtv) - } - - case "UserArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ARN to be of type string, got %T instead", value) - } - sv.UserArn = ptr.String(jtv) - } - - case "UserId": + case "TimeZone": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AgentResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected TimeZone to be of type string, got %T instead", value) } - sv.UserId = ptr.String(jtv) + sv.TimeZone = ptr.String(jtv) } default: @@ -17793,14 +18216,14 @@ func awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(v **GetFederatio return nil } -type awsRestjson1_deserializeOpGetFlowAssociation struct { +type awsRestjson1_deserializeOpGetFederationToken struct { } -func (*awsRestjson1_deserializeOpGetFlowAssociation) ID() string { +func (*awsRestjson1_deserializeOpGetFederationToken) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetFlowAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetFederationToken) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -17818,9 +18241,9 @@ func (m *awsRestjson1_deserializeOpGetFlowAssociation) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetFlowAssociation(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetFederationToken(response, &metadata) } - output := &GetFlowAssociationOutput{} + output := &GetFederationTokenOutput{} out.Result = output var buff [1024]byte @@ -17841,7 +18264,7 @@ func (m *awsRestjson1_deserializeOpGetFlowAssociation) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17855,7 +18278,7 @@ func (m *awsRestjson1_deserializeOpGetFlowAssociation) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetFlowAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetFederationToken(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -17896,8 +18319,8 @@ func awsRestjson1_deserializeOpErrorGetFlowAssociation(response *smithyhttp.Resp } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("DuplicateResourceException", errorCode): + return awsRestjson1_deserializeErrorDuplicateResourceException(response, errorBody) case strings.EqualFold("InternalServiceException", errorCode): return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) @@ -17911,8 +18334,8 @@ func awsRestjson1_deserializeOpErrorGetFlowAssociation(response *smithyhttp.Resp case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UserNotFoundException", errorCode): + return awsRestjson1_deserializeErrorUserNotFoundException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -17924,7 +18347,7 @@ func awsRestjson1_deserializeOpErrorGetFlowAssociation(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(v **GetFlowAssociationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetFederationTokenOutput(v **GetFederationTokenOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17937,40 +18360,45 @@ func awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(v **GetFlowAssoc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetFlowAssociationOutput + var sv *GetFederationTokenOutput if *v == nil { - sv = &GetFlowAssociationOutput{} + sv = &GetFederationTokenOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FlowId": + case "Credentials": + if err := awsRestjson1_deserializeDocumentCredentials(&sv.Credentials, value); err != nil { + return err + } + + case "SignInUrl": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + return fmt.Errorf("expected Url to be of type string, got %T instead", value) } - sv.FlowId = ptr.String(jtv) + sv.SignInUrl = ptr.String(jtv) } - case "ResourceId": + case "UserArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected ARN to be of type string, got %T instead", value) } - sv.ResourceId = ptr.String(jtv) + sv.UserArn = ptr.String(jtv) } - case "ResourceType": + case "UserId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FlowAssociationResourceType to be of type string, got %T instead", value) + return fmt.Errorf("expected AgentResourceId to be of type string, got %T instead", value) } - sv.ResourceType = types.FlowAssociationResourceType(jtv) + sv.UserId = ptr.String(jtv) } default: @@ -17982,14 +18410,14 @@ func awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(v **GetFlowAssoc return nil } -type awsRestjson1_deserializeOpGetMetricData struct { +type awsRestjson1_deserializeOpGetFlowAssociation struct { } -func (*awsRestjson1_deserializeOpGetMetricData) ID() string { +func (*awsRestjson1_deserializeOpGetFlowAssociation) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetMetricData) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetFlowAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -18007,9 +18435,9 @@ func (m *awsRestjson1_deserializeOpGetMetricData) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetMetricData(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetFlowAssociation(response, &metadata) } - output := &GetMetricDataOutput{} + output := &GetFlowAssociationOutput{} out.Result = output var buff [1024]byte @@ -18030,7 +18458,7 @@ func (m *awsRestjson1_deserializeOpGetMetricData) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetMetricDataOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18044,7 +18472,196 @@ func (m *awsRestjson1_deserializeOpGetMetricData) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetMetricData(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetFlowAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetFlowAssociationOutput(v **GetFlowAssociationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetFlowAssociationOutput + if *v == nil { + sv = &GetFlowAssociationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FlowId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.FlowId = ptr.String(jtv) + } + + case "ResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN 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 FlowAssociationResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = types.FlowAssociationResourceType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetMetricData struct { +} + +func (*awsRestjson1_deserializeOpGetMetricData) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetMetricData) HandleDeserialize(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_deserializeOpErrorGetMetricData(response, &metadata) + } + output := &GetMetricDataOutput{} + 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_deserializeOpDocumentGetMetricDataOutput(&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_deserializeOpErrorGetMetricData(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21765,14 +22382,14 @@ func awsRestjson1_deserializeOpDocumentListFlowAssociationsOutput(v **ListFlowAs return nil } -type awsRestjson1_deserializeOpListHoursOfOperations struct { +type awsRestjson1_deserializeOpListHoursOfOperationOverrides struct { } -func (*awsRestjson1_deserializeOpListHoursOfOperations) ID() string { +func (*awsRestjson1_deserializeOpListHoursOfOperationOverrides) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListHoursOfOperations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListHoursOfOperationOverrides) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21790,9 +22407,9 @@ func (m *awsRestjson1_deserializeOpListHoursOfOperations) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListHoursOfOperations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListHoursOfOperationOverrides(response, &metadata) } - output := &ListHoursOfOperationsOutput{} + output := &ListHoursOfOperationOverridesOutput{} out.Result = output var buff [1024]byte @@ -21813,7 +22430,7 @@ func (m *awsRestjson1_deserializeOpListHoursOfOperations) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListHoursOfOperationOverridesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21827,7 +22444,7 @@ func (m *awsRestjson1_deserializeOpListHoursOfOperations) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListHoursOfOperations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListHoursOfOperationOverrides(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21893,7 +22510,7 @@ func awsRestjson1_deserializeOpErrorListHoursOfOperations(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(v **ListHoursOfOperationsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListHoursOfOperationOverridesOutput(v **ListHoursOfOperationOverridesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21906,20 +22523,45 @@ func awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(v **ListHours return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListHoursOfOperationsOutput + var sv *ListHoursOfOperationOverridesOutput if *v == nil { - sv = &ListHoursOfOperationsOutput{} + sv = &ListHoursOfOperationOverridesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "HoursOfOperationSummaryList": - if err := awsRestjson1_deserializeDocumentHoursOfOperationSummaryList(&sv.HoursOfOperationSummaryList, value); err != nil { + case "HoursOfOperationOverrideList": + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverrideList(&sv.HoursOfOperationOverrideList, value); err != nil { return err } + case "LastModifiedRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RegionName to be of type string, got %T instead", value) + } + sv.LastModifiedRegion = ptr.String(jtv) + } + + 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 "NextToken": if value != nil { jtv, ok := value.(string) @@ -21938,14 +22580,14 @@ func awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(v **ListHours return nil } -type awsRestjson1_deserializeOpListInstanceAttributes struct { +type awsRestjson1_deserializeOpListHoursOfOperations struct { } -func (*awsRestjson1_deserializeOpListInstanceAttributes) ID() string { +func (*awsRestjson1_deserializeOpListHoursOfOperations) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListInstanceAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListHoursOfOperations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21963,9 +22605,9 @@ func (m *awsRestjson1_deserializeOpListInstanceAttributes) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListInstanceAttributes(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListHoursOfOperations(response, &metadata) } - output := &ListInstanceAttributesOutput{} + output := &ListHoursOfOperationsOutput{} out.Result = output var buff [1024]byte @@ -21986,7 +22628,7 @@ func (m *awsRestjson1_deserializeOpListInstanceAttributes) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22000,7 +22642,7 @@ func (m *awsRestjson1_deserializeOpListInstanceAttributes) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListInstanceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListHoursOfOperations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -22066,7 +22708,7 @@ func awsRestjson1_deserializeOpErrorListInstanceAttributes(response *smithyhttp. } } -func awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(v **ListInstanceAttributesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListHoursOfOperationsOutput(v **ListHoursOfOperationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22079,17 +22721,17 @@ func awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(v **ListInst return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListInstanceAttributesOutput + var sv *ListHoursOfOperationsOutput if *v == nil { - sv = &ListInstanceAttributesOutput{} + sv = &ListHoursOfOperationsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Attributes": - if err := awsRestjson1_deserializeDocumentAttributesList(&sv.Attributes, value); err != nil { + case "HoursOfOperationSummaryList": + if err := awsRestjson1_deserializeDocumentHoursOfOperationSummaryList(&sv.HoursOfOperationSummaryList, value); err != nil { return err } @@ -22111,14 +22753,14 @@ func awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(v **ListInst return nil } -type awsRestjson1_deserializeOpListInstances struct { +type awsRestjson1_deserializeOpListInstanceAttributes struct { } -func (*awsRestjson1_deserializeOpListInstances) ID() string { +func (*awsRestjson1_deserializeOpListInstanceAttributes) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListInstanceAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -22136,9 +22778,9 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListInstances(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListInstanceAttributes(response, &metadata) } - output := &ListInstancesOutput{} + output := &ListInstanceAttributesOutput{} out.Result = output var buff [1024]byte @@ -22159,7 +22801,7 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListInstancesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22173,7 +22815,180 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorListInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListInstanceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListInstanceAttributesOutput(v **ListInstanceAttributesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListInstanceAttributesOutput + if *v == nil { + sv = &ListInstanceAttributesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Attributes": + if err := awsRestjson1_deserializeDocumentAttributesList(&sv.Attributes, 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_deserializeOpListInstances struct { +} + +func (*awsRestjson1_deserializeOpListInstances) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + 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_deserializeOpErrorListInstances(response, &metadata) + } + output := &ListInstancesOutput{} + 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_deserializeOpDocumentListInstancesOutput(&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_deserializeOpErrorListInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29422,14 +30237,14 @@ func awsRestjson1_deserializeOpDocumentSearchEmailAddressesOutput(v **SearchEmai return nil } -type awsRestjson1_deserializeOpSearchHoursOfOperations struct { +type awsRestjson1_deserializeOpSearchHoursOfOperationOverrides struct { } -func (*awsRestjson1_deserializeOpSearchHoursOfOperations) ID() string { +func (*awsRestjson1_deserializeOpSearchHoursOfOperationOverrides) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchHoursOfOperations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchHoursOfOperationOverrides) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29447,9 +30262,9 @@ func (m *awsRestjson1_deserializeOpSearchHoursOfOperations) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchHoursOfOperations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchHoursOfOperationOverrides(response, &metadata) } - output := &SearchHoursOfOperationsOutput{} + output := &SearchHoursOfOperationOverridesOutput{} out.Result = output var buff [1024]byte @@ -29470,7 +30285,7 @@ func (m *awsRestjson1_deserializeOpSearchHoursOfOperations) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchHoursOfOperationOverridesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29484,7 +30299,7 @@ func (m *awsRestjson1_deserializeOpSearchHoursOfOperations) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchHoursOfOperations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchHoursOfOperationOverrides(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29550,7 +30365,7 @@ func awsRestjson1_deserializeOpErrorSearchHoursOfOperations(response *smithyhttp } } -func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(v **SearchHoursOfOperationsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationOverridesOutput(v **SearchHoursOfOperationOverridesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29563,9 +30378,9 @@ func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(v **SearchH return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchHoursOfOperationsOutput + var sv *SearchHoursOfOperationOverridesOutput if *v == nil { - sv = &SearchHoursOfOperationsOutput{} + sv = &SearchHoursOfOperationOverridesOutput{} } else { sv = *v } @@ -29585,8 +30400,8 @@ func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(v **SearchH sv.ApproximateTotalCount = ptr.Int64(i64) } - case "HoursOfOperations": - if err := awsRestjson1_deserializeDocumentHoursOfOperationList(&sv.HoursOfOperations, value); err != nil { + case "HoursOfOperationOverrides": + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverrideList(&sv.HoursOfOperationOverrides, value); err != nil { return err } @@ -29608,14 +30423,14 @@ func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(v **SearchH return nil } -type awsRestjson1_deserializeOpSearchPredefinedAttributes struct { +type awsRestjson1_deserializeOpSearchHoursOfOperations struct { } -func (*awsRestjson1_deserializeOpSearchPredefinedAttributes) ID() string { +func (*awsRestjson1_deserializeOpSearchHoursOfOperations) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchPredefinedAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchHoursOfOperations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29633,9 +30448,9 @@ func (m *awsRestjson1_deserializeOpSearchPredefinedAttributes) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchPredefinedAttributes(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchHoursOfOperations(response, &metadata) } - output := &SearchPredefinedAttributesOutput{} + output := &SearchHoursOfOperationsOutput{} out.Result = output var buff [1024]byte @@ -29656,7 +30471,7 @@ func (m *awsRestjson1_deserializeOpSearchPredefinedAttributes) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29670,7 +30485,7 @@ func (m *awsRestjson1_deserializeOpSearchPredefinedAttributes) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchPredefinedAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchHoursOfOperations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29736,7 +30551,7 @@ func awsRestjson1_deserializeOpErrorSearchPredefinedAttributes(response *smithyh } } -func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **SearchPredefinedAttributesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchHoursOfOperationsOutput(v **SearchHoursOfOperationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29749,9 +30564,9 @@ func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **Sear return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchPredefinedAttributesOutput + var sv *SearchHoursOfOperationsOutput if *v == nil { - sv = &SearchPredefinedAttributesOutput{} + sv = &SearchHoursOfOperationsOutput{} } else { sv = *v } @@ -29771,6 +30586,11 @@ func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **Sear sv.ApproximateTotalCount = ptr.Int64(i64) } + case "HoursOfOperations": + if err := awsRestjson1_deserializeDocumentHoursOfOperationList(&sv.HoursOfOperations, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -29780,11 +30600,6 @@ func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **Sear sv.NextToken = ptr.String(jtv) } - case "PredefinedAttributes": - if err := awsRestjson1_deserializeDocumentPredefinedAttributeSearchSummaryList(&sv.PredefinedAttributes, value); err != nil { - return err - } - default: _, _ = key, value @@ -29794,14 +30609,14 @@ func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **Sear return nil } -type awsRestjson1_deserializeOpSearchPrompts struct { +type awsRestjson1_deserializeOpSearchPredefinedAttributes struct { } -func (*awsRestjson1_deserializeOpSearchPrompts) ID() string { +func (*awsRestjson1_deserializeOpSearchPredefinedAttributes) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchPrompts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchPredefinedAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -29819,9 +30634,9 @@ func (m *awsRestjson1_deserializeOpSearchPrompts) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchPrompts(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchPredefinedAttributes(response, &metadata) } - output := &SearchPromptsOutput{} + output := &SearchPredefinedAttributesOutput{} out.Result = output var buff [1024]byte @@ -29842,7 +30657,7 @@ func (m *awsRestjson1_deserializeOpSearchPrompts) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchPromptsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29856,7 +30671,7 @@ func (m *awsRestjson1_deserializeOpSearchPrompts) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchPrompts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchPredefinedAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -29922,7 +30737,7 @@ func awsRestjson1_deserializeOpErrorSearchPrompts(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentSearchPromptsOutput(v **SearchPromptsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchPredefinedAttributesOutput(v **SearchPredefinedAttributesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29935,9 +30750,9 @@ func awsRestjson1_deserializeOpDocumentSearchPromptsOutput(v **SearchPromptsOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchPromptsOutput + var sv *SearchPredefinedAttributesOutput if *v == nil { - sv = &SearchPromptsOutput{} + sv = &SearchPredefinedAttributesOutput{} } else { sv = *v } @@ -29966,8 +30781,8 @@ func awsRestjson1_deserializeOpDocumentSearchPromptsOutput(v **SearchPromptsOutp sv.NextToken = ptr.String(jtv) } - case "Prompts": - if err := awsRestjson1_deserializeDocumentPromptList(&sv.Prompts, value); err != nil { + case "PredefinedAttributes": + if err := awsRestjson1_deserializeDocumentPredefinedAttributeSearchSummaryList(&sv.PredefinedAttributes, value); err != nil { return err } @@ -29980,14 +30795,14 @@ func awsRestjson1_deserializeOpDocumentSearchPromptsOutput(v **SearchPromptsOutp return nil } -type awsRestjson1_deserializeOpSearchQueues struct { +type awsRestjson1_deserializeOpSearchPrompts struct { } -func (*awsRestjson1_deserializeOpSearchQueues) ID() string { +func (*awsRestjson1_deserializeOpSearchPrompts) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchQueues) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchPrompts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -30005,9 +30820,9 @@ func (m *awsRestjson1_deserializeOpSearchQueues) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchQueues(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchPrompts(response, &metadata) } - output := &SearchQueuesOutput{} + output := &SearchPromptsOutput{} out.Result = output var buff [1024]byte @@ -30028,7 +30843,7 @@ func (m *awsRestjson1_deserializeOpSearchQueues) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchQueuesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchPromptsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30042,7 +30857,7 @@ func (m *awsRestjson1_deserializeOpSearchQueues) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchQueues(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchPrompts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -30108,7 +30923,7 @@ func awsRestjson1_deserializeOpErrorSearchQueues(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentSearchQueuesOutput(v **SearchQueuesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchPromptsOutput(v **SearchPromptsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -30121,9 +30936,195 @@ func awsRestjson1_deserializeOpDocumentSearchQueuesOutput(v **SearchQueuesOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchQueuesOutput + var sv *SearchPromptsOutput if *v == nil { - sv = &SearchQueuesOutput{} + sv = &SearchPromptsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ApproximateTotalCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ApproximateTotalCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ApproximateTotalCount = ptr.Int64(i64) + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken2500 to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "Prompts": + if err := awsRestjson1_deserializeDocumentPromptList(&sv.Prompts, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpSearchQueues struct { +} + +func (*awsRestjson1_deserializeOpSearchQueues) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpSearchQueues) HandleDeserialize(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_deserializeOpErrorSearchQueues(response, &metadata) + } + output := &SearchQueuesOutput{} + 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_deserializeOpDocumentSearchQueuesOutput(&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_deserializeOpErrorSearchQueues(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentSearchQueuesOutput(v **SearchQueuesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SearchQueuesOutput + if *v == nil { + sv = &SearchQueuesOutput{} } else { sv = *v } @@ -36698,14 +37699,14 @@ func awsRestjson1_deserializeOpErrorUpdateHoursOfOperation(response *smithyhttp. } } -type awsRestjson1_deserializeOpUpdateInstanceAttribute struct { +type awsRestjson1_deserializeOpUpdateHoursOfOperationOverride struct { } -func (*awsRestjson1_deserializeOpUpdateInstanceAttribute) ID() string { +func (*awsRestjson1_deserializeOpUpdateHoursOfOperationOverride) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateHoursOfOperationOverride) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36723,9 +37724,9 @@ func (m *awsRestjson1_deserializeOpUpdateInstanceAttribute) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateHoursOfOperationOverride(response, &metadata) } - output := &UpdateInstanceAttributeOutput{} + output := &UpdateHoursOfOperationOverrideOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -36738,7 +37739,7 @@ func (m *awsRestjson1_deserializeOpUpdateInstanceAttribute) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateHoursOfOperationOverride(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36779,6 +37780,12 @@ func awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response *smithyhttp } switch { + case strings.EqualFold("ConditionalOperationFailedException", errorCode): + return awsRestjson1_deserializeErrorConditionalOperationFailedException(response, errorBody) + + case strings.EqualFold("DuplicateResourceException", errorCode): + return awsRestjson1_deserializeErrorDuplicateResourceException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) @@ -36804,14 +37811,14 @@ func awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response *smithyhttp } } -type awsRestjson1_deserializeOpUpdateInstanceStorageConfig struct { +type awsRestjson1_deserializeOpUpdateInstanceAttribute struct { } -func (*awsRestjson1_deserializeOpUpdateInstanceStorageConfig) ID() string { +func (*awsRestjson1_deserializeOpUpdateInstanceAttribute) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateInstanceStorageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36829,9 +37836,9 @@ func (m *awsRestjson1_deserializeOpUpdateInstanceStorageConfig) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateInstanceStorageConfig(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response, &metadata) } - output := &UpdateInstanceStorageConfigOutput{} + output := &UpdateInstanceAttributeOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -36844,7 +37851,7 @@ func (m *awsRestjson1_deserializeOpUpdateInstanceStorageConfig) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateInstanceStorageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36910,14 +37917,14 @@ func awsRestjson1_deserializeOpErrorUpdateInstanceStorageConfig(response *smithy } } -type awsRestjson1_deserializeOpUpdateParticipantRoleConfig struct { +type awsRestjson1_deserializeOpUpdateInstanceStorageConfig struct { } -func (*awsRestjson1_deserializeOpUpdateParticipantRoleConfig) ID() string { +func (*awsRestjson1_deserializeOpUpdateInstanceStorageConfig) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateParticipantRoleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateInstanceStorageConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36935,16 +37942,22 @@ func (m *awsRestjson1_deserializeOpUpdateParticipantRoleConfig) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateInstanceStorageConfig(response, &metadata) } - output := &UpdateParticipantRoleConfigOutput{} + output := &UpdateInstanceStorageConfigOutput{} 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), + } + } + span.End() return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateInstanceStorageConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36985,9 +37998,6 @@ func awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response *smithy } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) @@ -37013,14 +38023,14 @@ func awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response *smithy } } -type awsRestjson1_deserializeOpUpdatePhoneNumber struct { +type awsRestjson1_deserializeOpUpdateParticipantRoleConfig struct { } -func (*awsRestjson1_deserializeOpUpdatePhoneNumber) ID() string { +func (*awsRestjson1_deserializeOpUpdateParticipantRoleConfig) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdatePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateParticipantRoleConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37038,44 +38048,147 @@ func (m *awsRestjson1_deserializeOpUpdatePhoneNumber) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response, &metadata) } - output := &UpdatePhoneNumberOutput{} + output := &UpdateParticipantRoleConfigOutput{} 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_deserializeOpDocumentUpdatePhoneNumberOutput(&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_deserializeOpErrorUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateParticipantRoleConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpUpdatePhoneNumber struct { +} + +func (*awsRestjson1_deserializeOpUpdatePhoneNumber) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdatePhoneNumber) HandleDeserialize(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_deserializeOpErrorUpdatePhoneNumber(response, &metadata) + } + output := &UpdatePhoneNumberOutput{} + 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_deserializeOpDocumentUpdatePhoneNumberOutput(&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_deserializeOpErrorUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -47138,6 +48251,85 @@ func awsRestjson1_deserializeDocumentDuplicateResourceException(v **types.Duplic return nil } +func awsRestjson1_deserializeDocumentEffectiveHoursOfOperationList(v *[]types.EffectiveHoursOfOperations, 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.EffectiveHoursOfOperations + if *v == nil { + cv = []types.EffectiveHoursOfOperations{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EffectiveHoursOfOperations + destAddr := &col + if err := awsRestjson1_deserializeDocumentEffectiveHoursOfOperations(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentEffectiveHoursOfOperations(v **types.EffectiveHoursOfOperations, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EffectiveHoursOfOperations + if *v == nil { + sv = &types.EffectiveHoursOfOperations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Date": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationOverrideYearMonthDayDateFormat to be of type string, got %T instead", value) + } + sv.Date = ptr.String(jtv) + } + + case "OperationalHours": + if err := awsRestjson1_deserializeDocumentOperationalHours(&sv.OperationalHours, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentEmailAddressList(v *[]types.EmailAddressMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -51519,6 +52711,223 @@ func awsRestjson1_deserializeDocumentHoursOfOperationList(v *[]types.HoursOfOper return nil } +func awsRestjson1_deserializeDocumentHoursOfOperationOverride(v **types.HoursOfOperationOverride, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.HoursOfOperationOverride + if *v == nil { + sv = &types.HoursOfOperationOverride{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Config": + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverrideConfigList(&sv.Config, value); err != nil { + return err + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CommonHumanReadableDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "EffectiveFrom": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationOverrideYearMonthDayDateFormat to be of type string, got %T instead", value) + } + sv.EffectiveFrom = ptr.String(jtv) + } + + case "EffectiveTill": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationOverrideYearMonthDayDateFormat to be of type string, got %T instead", value) + } + sv.EffectiveTill = ptr.String(jtv) + } + + case "HoursOfOperationArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.HoursOfOperationArn = ptr.String(jtv) + } + + case "HoursOfOperationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationId to be of type string, got %T instead", value) + } + sv.HoursOfOperationId = ptr.String(jtv) + } + + case "HoursOfOperationOverrideId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HoursOfOperationOverrideId to be of type string, got %T instead", value) + } + sv.HoursOfOperationOverrideId = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CommonHumanReadableName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentHoursOfOperationOverrideConfig(v **types.HoursOfOperationOverrideConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.HoursOfOperationOverrideConfig + if *v == nil { + sv = &types.HoursOfOperationOverrideConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Day": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OverrideDays to be of type string, got %T instead", value) + } + sv.Day = types.OverrideDays(jtv) + } + + case "EndTime": + if err := awsRestjson1_deserializeDocumentOverrideTimeSlice(&sv.EndTime, value); err != nil { + return err + } + + case "StartTime": + if err := awsRestjson1_deserializeDocumentOverrideTimeSlice(&sv.StartTime, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentHoursOfOperationOverrideConfigList(v *[]types.HoursOfOperationOverrideConfig, 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.HoursOfOperationOverrideConfig + if *v == nil { + cv = []types.HoursOfOperationOverrideConfig{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.HoursOfOperationOverrideConfig + destAddr := &col + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverrideConfig(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentHoursOfOperationOverrideList(v *[]types.HoursOfOperationOverride, 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.HoursOfOperationOverride + if *v == nil { + cv = []types.HoursOfOperationOverride{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.HoursOfOperationOverride + destAddr := &col + if err := awsRestjson1_deserializeDocumentHoursOfOperationOverride(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentHoursOfOperationSummary(v **types.HoursOfOperationSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -54079,6 +55488,81 @@ func awsRestjson1_deserializeDocumentNumericQuestionPropertyValueAutomation(v ** return nil } +func awsRestjson1_deserializeDocumentOperationalHour(v **types.OperationalHour, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.OperationalHour + if *v == nil { + sv = &types.OperationalHour{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "End": + if err := awsRestjson1_deserializeDocumentOverrideTimeSlice(&sv.End, value); err != nil { + return err + } + + case "Start": + if err := awsRestjson1_deserializeDocumentOverrideTimeSlice(&sv.Start, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentOperationalHours(v *[]types.OperationalHour, 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.OperationalHour + if *v == nil { + cv = []types.OperationalHour{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.OperationalHour + destAddr := &col + if err := awsRestjson1_deserializeDocumentOperationalHour(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentOriginsList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -54293,6 +55777,63 @@ func awsRestjson1_deserializeDocumentOutputTypeNotFoundException(v **types.Outpu return nil } +func awsRestjson1_deserializeDocumentOverrideTimeSlice(v **types.OverrideTimeSlice, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.OverrideTimeSlice + if *v == nil { + sv = &types.OverrideTimeSlice{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Hours": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Hours24Format to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Hours = ptr.Int32(int32(i64)) + } + + case "Minutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected MinutesLimit60 to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Minutes = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentParticipantCapabilities(v **types.ParticipantCapabilities, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/connect/generated.json b/service/connect/generated.json index f8fd5c4ffde..0d7ffe3362a 100644 --- a/service/connect/generated.json +++ b/service/connect/generated.json @@ -38,6 +38,7 @@ "api_op_CreateEmailAddress.go", "api_op_CreateEvaluationForm.go", "api_op_CreateHoursOfOperation.go", + "api_op_CreateHoursOfOperationOverride.go", "api_op_CreateInstance.go", "api_op_CreateIntegrationAssociation.go", "api_op_CreateParticipant.go", @@ -66,6 +67,7 @@ "api_op_DeleteEmailAddress.go", "api_op_DeleteEvaluationForm.go", "api_op_DeleteHoursOfOperation.go", + "api_op_DeleteHoursOfOperationOverride.go", "api_op_DeleteInstance.go", "api_op_DeleteIntegrationAssociation.go", "api_op_DeletePredefinedAttribute.go", @@ -93,6 +95,7 @@ "api_op_DescribeEmailAddress.go", "api_op_DescribeEvaluationForm.go", "api_op_DescribeHoursOfOperation.go", + "api_op_DescribeHoursOfOperationOverride.go", "api_op_DescribeInstance.go", "api_op_DescribeInstanceAttribute.go", "api_op_DescribeInstanceStorageConfig.go", @@ -128,6 +131,7 @@ "api_op_GetContactAttributes.go", "api_op_GetCurrentMetricData.go", "api_op_GetCurrentUserData.go", + "api_op_GetEffectiveHoursOfOperations.go", "api_op_GetFederationToken.go", "api_op_GetFlowAssociation.go", "api_op_GetMetricData.go", @@ -151,6 +155,7 @@ "api_op_ListEvaluationFormVersions.go", "api_op_ListEvaluationForms.go", "api_op_ListFlowAssociations.go", + "api_op_ListHoursOfOperationOverrides.go", "api_op_ListHoursOfOperations.go", "api_op_ListInstanceAttributes.go", "api_op_ListInstanceStorageConfigs.go", @@ -196,6 +201,7 @@ "api_op_SearchContactFlows.go", "api_op_SearchContacts.go", "api_op_SearchEmailAddresses.go", + "api_op_SearchHoursOfOperationOverrides.go", "api_op_SearchHoursOfOperations.go", "api_op_SearchPredefinedAttributes.go", "api_op_SearchPrompts.go", @@ -246,6 +252,7 @@ "api_op_UpdateEmailAddressMetadata.go", "api_op_UpdateEvaluationForm.go", "api_op_UpdateHoursOfOperation.go", + "api_op_UpdateHoursOfOperationOverride.go", "api_op_UpdateInstanceAttribute.go", "api_op_UpdateInstanceStorageConfig.go", "api_op_UpdateParticipantRoleConfig.go", diff --git a/service/connect/serializers.go b/service/connect/serializers.go index ebffa71fc5c..a38aea6200c 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -3189,6 +3189,131 @@ func awsRestjson1_serializeOpDocumentCreateHoursOfOperationInput(v *CreateHoursO return nil } +type awsRestjson1_serializeOpCreateHoursOfOperationOverride struct { +} + +func (*awsRestjson1_serializeOpCreateHoursOfOperationOverride) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateHoursOfOperationOverride) 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.(*CreateHoursOfOperationOverrideInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides") + 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_serializeOpHttpBindingsCreateHoursOfOperationOverrideInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateHoursOfOperationOverrideInput(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_serializeOpHttpBindingsCreateHoursOfOperationOverrideInput(v *CreateHoursOfOperationOverrideInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { + return err + } + } + + 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_serializeOpDocumentCreateHoursOfOperationOverrideInput(v *CreateHoursOfOperationOverrideInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Config != nil { + ok := object.Key("Config") + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideConfigList(v.Config, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.EffectiveFrom != nil { + ok := object.Key("EffectiveFrom") + ok.String(*v.EffectiveFrom) + } + + if v.EffectiveTill != nil { + ok := object.Key("EffectiveTill") + ok.String(*v.EffectiveTill) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + return nil +} + type awsRestjson1_serializeOpCreateInstance struct { } @@ -6230,6 +6355,95 @@ func awsRestjson1_serializeOpHttpBindingsDeleteHoursOfOperationInput(v *DeleteHo return nil } +type awsRestjson1_serializeOpDeleteHoursOfOperationOverride struct { +} + +func (*awsRestjson1_serializeOpDeleteHoursOfOperationOverride) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteHoursOfOperationOverride) 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.(*DeleteHoursOfOperationOverrideInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}") + 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_serializeOpHttpBindingsDeleteHoursOfOperationOverrideInput(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_serializeOpHttpBindingsDeleteHoursOfOperationOverrideInput(v *DeleteHoursOfOperationOverrideInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { + return err + } + } + + if v.HoursOfOperationOverrideId == nil || len(*v.HoursOfOperationOverrideId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationOverrideId must not be empty")} + } + if v.HoursOfOperationOverrideId != nil { + if err := encoder.SetURI("HoursOfOperationOverrideId").String(*v.HoursOfOperationOverrideId); err != nil { + return err + } + } + + 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 +} + type awsRestjson1_serializeOpDeleteInstance struct { } @@ -8398,6 +8612,95 @@ func awsRestjson1_serializeOpHttpBindingsDescribeHoursOfOperationInput(v *Descri return nil } +type awsRestjson1_serializeOpDescribeHoursOfOperationOverride struct { +} + +func (*awsRestjson1_serializeOpDescribeHoursOfOperationOverride) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeHoursOfOperationOverride) 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.(*DescribeHoursOfOperationOverrideInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}") + 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_serializeOpHttpBindingsDescribeHoursOfOperationOverrideInput(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_serializeOpHttpBindingsDescribeHoursOfOperationOverrideInput(v *DescribeHoursOfOperationOverrideInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { + return err + } + } + + if v.HoursOfOperationOverrideId == nil || len(*v.HoursOfOperationOverrideId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationOverrideId must not be empty")} + } + if v.HoursOfOperationOverrideId != nil { + if err := encoder.SetURI("HoursOfOperationOverrideId").String(*v.HoursOfOperationOverrideId); err != nil { + return err + } + } + + 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 +} + type awsRestjson1_serializeOpDescribeInstance struct { } @@ -11250,9 +11553,122 @@ func awsRestjson1_serializeOpDocumentGetCurrentMetricDataInput(v *GetCurrentMetr } } - if v.Groupings != nil { - ok := object.Key("Groupings") - if err := awsRestjson1_serializeDocumentGroupings(v.Groupings, ok); err != nil { + if v.Groupings != nil { + ok := object.Key("Groupings") + if err := awsRestjson1_serializeDocumentGroupings(v.Groupings, 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.SortCriteria != nil { + ok := object.Key("SortCriteria") + if err := awsRestjson1_serializeDocumentCurrentMetricSortCriteriaMaxOne(v.SortCriteria, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpGetCurrentUserData struct { +} + +func (*awsRestjson1_serializeOpGetCurrentUserData) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetCurrentUserData) 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.(*GetCurrentUserDataInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/metrics/userdata/{InstanceId}") + 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_serializeOpHttpBindingsGetCurrentUserDataInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGetCurrentUserDataInput(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_serializeOpHttpBindingsGetCurrentUserDataInput(v *GetCurrentUserDataInput, 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_serializeOpDocumentGetCurrentUserDataInput(v *GetCurrentUserDataInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentUserDataFilters(v.Filters, ok); err != nil { return err } } @@ -11267,24 +11683,17 @@ func awsRestjson1_serializeOpDocumentGetCurrentMetricDataInput(v *GetCurrentMetr ok.String(*v.NextToken) } - if v.SortCriteria != nil { - ok := object.Key("SortCriteria") - if err := awsRestjson1_serializeDocumentCurrentMetricSortCriteriaMaxOne(v.SortCriteria, ok); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpGetCurrentUserData struct { +type awsRestjson1_serializeOpGetEffectiveHoursOfOperations struct { } -func (*awsRestjson1_serializeOpGetCurrentUserData) ID() string { +func (*awsRestjson1_serializeOpGetEffectiveHoursOfOperations) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetCurrentUserData) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGetEffectiveHoursOfOperations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11296,16 +11705,16 @@ func (m *awsRestjson1_serializeOpGetCurrentUserData) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetCurrentUserDataInput) + input, ok := in.Parameters.(*GetEffectiveHoursOfOperationsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/metrics/userdata/{InstanceId}") + opPath, opQuery := httpbinding.SplitURI("/effective-hours-of-operations/{InstanceId}/{HoursOfOperationId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -11318,18 +11727,7 @@ func (m *awsRestjson1_serializeOpGetCurrentUserData) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsGetCurrentUserDataInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentGetCurrentUserDataInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetEffectiveHoursOfOperationsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11342,42 +11740,35 @@ func (m *awsRestjson1_serializeOpGetCurrentUserData) HandleSerialize(ctx context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetCurrentUserDataInput(v *GetCurrentUserDataInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetEffectiveHoursOfOperationsInput(v *GetEffectiveHoursOfOperationsInput, 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.FromDate != nil { + encoder.SetQuery("fromDate").String(*v.FromDate) } - if v.InstanceId != nil { - if err := encoder.SetURI("InstanceId").String(*v.InstanceId); err != nil { + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { return err } } - return nil -} - -func awsRestjson1_serializeOpDocumentGetCurrentUserDataInput(v *GetCurrentUserDataInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentUserDataFilters(v.Filters, ok); err != nil { + 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.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) - } - - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + if v.ToDate != nil { + encoder.SetQuery("toDate").String(*v.ToDate) } return nil @@ -13411,6 +13802,94 @@ func awsRestjson1_serializeOpHttpBindingsListFlowAssociationsInput(v *ListFlowAs return nil } +type awsRestjson1_serializeOpListHoursOfOperationOverrides struct { +} + +func (*awsRestjson1_serializeOpListHoursOfOperationOverrides) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListHoursOfOperationOverrides) 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.(*ListHoursOfOperationOverridesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides") + 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_serializeOpHttpBindingsListHoursOfOperationOverridesInput(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_serializeOpHttpBindingsListHoursOfOperationOverridesInput(v *ListHoursOfOperationOverridesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { + return err + } + } + + 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.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListHoursOfOperations struct { } @@ -17304,9 +17783,114 @@ func awsRestjson1_serializeOpDocumentSearchContactsInput(v *SearchContactsInput, } } - if v.TimeRange != nil { - ok := object.Key("TimeRange") - if err := awsRestjson1_serializeDocumentSearchContactsTimeRange(v.TimeRange, ok); err != nil { + if v.TimeRange != nil { + ok := object.Key("TimeRange") + if err := awsRestjson1_serializeDocumentSearchContactsTimeRange(v.TimeRange, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpSearchEmailAddresses struct { +} + +func (*awsRestjson1_serializeOpSearchEmailAddresses) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchEmailAddresses) 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.(*SearchEmailAddressesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/search-email-addresses") + 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_serializeOpDocumentSearchEmailAddressesInput(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_serializeOpHttpBindingsSearchEmailAddressesInput(v *SearchEmailAddressesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchEmailAddressesInput(v *SearchEmailAddressesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InstanceId != nil { + ok := object.Key("InstanceId") + ok.String(*v.InstanceId) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.SearchCriteria != nil { + ok := object.Key("SearchCriteria") + if err := awsRestjson1_serializeDocumentEmailAddressSearchCriteria(v.SearchCriteria, ok); err != nil { + return err + } + } + + if v.SearchFilter != nil { + ok := object.Key("SearchFilter") + if err := awsRestjson1_serializeDocumentEmailAddressSearchFilter(v.SearchFilter, ok); err != nil { return err } } @@ -17314,14 +17898,14 @@ func awsRestjson1_serializeOpDocumentSearchContactsInput(v *SearchContactsInput, return nil } -type awsRestjson1_serializeOpSearchEmailAddresses struct { +type awsRestjson1_serializeOpSearchHoursOfOperationOverrides struct { } -func (*awsRestjson1_serializeOpSearchEmailAddresses) ID() string { +func (*awsRestjson1_serializeOpSearchHoursOfOperationOverrides) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchEmailAddresses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpSearchHoursOfOperationOverrides) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -17333,13 +17917,13 @@ func (m *awsRestjson1_serializeOpSearchEmailAddresses) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchEmailAddressesInput) + input, ok := in.Parameters.(*SearchHoursOfOperationOverridesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/search-email-addresses") + opPath, opQuery := httpbinding.SplitURI("/search-hours-of-operation-overrides") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -17358,7 +17942,7 @@ func (m *awsRestjson1_serializeOpSearchEmailAddresses) HandleSerialize(ctx conte restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchEmailAddressesInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentSearchHoursOfOperationOverridesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -17375,7 +17959,7 @@ func (m *awsRestjson1_serializeOpSearchEmailAddresses) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchEmailAddressesInput(v *SearchEmailAddressesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsSearchHoursOfOperationOverridesInput(v *SearchHoursOfOperationOverridesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -17383,7 +17967,7 @@ func awsRestjson1_serializeOpHttpBindingsSearchEmailAddressesInput(v *SearchEmai return nil } -func awsRestjson1_serializeOpDocumentSearchEmailAddressesInput(v *SearchEmailAddressesInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentSearchHoursOfOperationOverridesInput(v *SearchHoursOfOperationOverridesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -17404,14 +17988,14 @@ func awsRestjson1_serializeOpDocumentSearchEmailAddressesInput(v *SearchEmailAdd if v.SearchCriteria != nil { ok := object.Key("SearchCriteria") - if err := awsRestjson1_serializeDocumentEmailAddressSearchCriteria(v.SearchCriteria, ok); err != nil { + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchCriteria(v.SearchCriteria, ok); err != nil { return err } } if v.SearchFilter != nil { ok := object.Key("SearchFilter") - if err := awsRestjson1_serializeDocumentEmailAddressSearchFilter(v.SearchFilter, ok); err != nil { + if err := awsRestjson1_serializeDocumentHoursOfOperationSearchFilter(v.SearchFilter, ok); err != nil { return err } } @@ -23005,6 +23589,140 @@ func awsRestjson1_serializeOpDocumentUpdateHoursOfOperationInput(v *UpdateHoursO return nil } +type awsRestjson1_serializeOpUpdateHoursOfOperationOverride struct { +} + +func (*awsRestjson1_serializeOpUpdateHoursOfOperationOverride) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateHoursOfOperationOverride) 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.(*UpdateHoursOfOperationOverrideInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/hours-of-operations/{InstanceId}/{HoursOfOperationId}/overrides/{HoursOfOperationOverrideId}") + 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_serializeOpHttpBindingsUpdateHoursOfOperationOverrideInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateHoursOfOperationOverrideInput(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_serializeOpHttpBindingsUpdateHoursOfOperationOverrideInput(v *UpdateHoursOfOperationOverrideInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.HoursOfOperationId == nil || len(*v.HoursOfOperationId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationId must not be empty")} + } + if v.HoursOfOperationId != nil { + if err := encoder.SetURI("HoursOfOperationId").String(*v.HoursOfOperationId); err != nil { + return err + } + } + + if v.HoursOfOperationOverrideId == nil || len(*v.HoursOfOperationOverrideId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member HoursOfOperationOverrideId must not be empty")} + } + if v.HoursOfOperationOverrideId != nil { + if err := encoder.SetURI("HoursOfOperationOverrideId").String(*v.HoursOfOperationOverrideId); err != nil { + return err + } + } + + 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_serializeOpDocumentUpdateHoursOfOperationOverrideInput(v *UpdateHoursOfOperationOverrideInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Config != nil { + ok := object.Key("Config") + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideConfigList(v.Config, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.EffectiveFrom != nil { + ok := object.Key("EffectiveFrom") + ok.String(*v.EffectiveFrom) + } + + if v.EffectiveTill != nil { + ok := object.Key("EffectiveTill") + ok.String(*v.EffectiveTill) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + return nil +} + type awsRestjson1_serializeOpUpdateInstanceAttribute struct { } @@ -27326,6 +28044,16 @@ func awsRestjson1_serializeDocumentContactFlowModuleSearchCriteria(v *types.Cont } } + if len(v.StateCondition) > 0 { + ok := object.Key("StateCondition") + ok.String(string(v.StateCondition)) + } + + if len(v.StatusCondition) > 0 { + ok := object.Key("StatusCondition") + ok.String(string(v.StatusCondition)) + } + if v.StringCondition != nil { ok := object.Key("StringCondition") if err := awsRestjson1_serializeDocumentStringCondition(v.StringCondition, ok); err != nil { @@ -27669,6 +28397,28 @@ func awsRestjson1_serializeDocumentDataSetIds(v []string, value smithyjson.Value return nil } +func awsRestjson1_serializeDocumentDateCondition(v *types.DateCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ComparisonType) > 0 { + ok := object.Key("ComparisonType") + ok.String(string(v.ComparisonType)) + } + + if v.FieldName != nil { + ok := object.Key("FieldName") + ok.String(*v.FieldName) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + func awsRestjson1_serializeDocumentDisconnectReason(v *types.DisconnectReason, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -28781,6 +29531,93 @@ func awsRestjson1_serializeDocumentHoursOfOperationConfigList(v []types.HoursOfO return nil } +func awsRestjson1_serializeDocumentHoursOfOperationOverrideConfig(v *types.HoursOfOperationOverrideConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Day) > 0 { + ok := object.Key("Day") + ok.String(string(v.Day)) + } + + if v.EndTime != nil { + ok := object.Key("EndTime") + if err := awsRestjson1_serializeDocumentOverrideTimeSlice(v.EndTime, ok); err != nil { + return err + } + } + + if v.StartTime != nil { + ok := object.Key("StartTime") + if err := awsRestjson1_serializeDocumentOverrideTimeSlice(v.StartTime, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentHoursOfOperationOverrideConfigList(v []types.HoursOfOperationOverrideConfig, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideConfig(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchConditionList(v []types.HoursOfOperationOverrideSearchCriteria, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchCriteria(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchCriteria(v *types.HoursOfOperationOverrideSearchCriteria, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AndConditions != nil { + ok := object.Key("AndConditions") + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchConditionList(v.AndConditions, ok); err != nil { + return err + } + } + + if v.DateCondition != nil { + ok := object.Key("DateCondition") + if err := awsRestjson1_serializeDocumentDateCondition(v.DateCondition, ok); err != nil { + return err + } + } + + if v.OrConditions != nil { + ok := object.Key("OrConditions") + if err := awsRestjson1_serializeDocumentHoursOfOperationOverrideSearchConditionList(v.OrConditions, ok); err != nil { + return err + } + } + + if v.StringCondition != nil { + ok := object.Key("StringCondition") + if err := awsRestjson1_serializeDocumentStringCondition(v.StringCondition, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentHoursOfOperationSearchConditionList(v []types.HoursOfOperationSearchCriteria, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -29458,6 +30295,23 @@ func awsRestjson1_serializeDocumentOutboundRawMessage(v *types.OutboundRawMessag return nil } +func awsRestjson1_serializeDocumentOverrideTimeSlice(v *types.OverrideTimeSlice, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Hours != nil { + ok := object.Key("Hours") + ok.Integer(*v.Hours) + } + + if v.Minutes != nil { + ok := object.Key("Minutes") + ok.Integer(*v.Minutes) + } + + return nil +} + func awsRestjson1_serializeDocumentParticipantCapabilities(v *types.ParticipantCapabilities, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/connect/snapshot/api_op_CreateHoursOfOperationOverride.go.snap b/service/connect/snapshot/api_op_CreateHoursOfOperationOverride.go.snap new file mode 100644 index 00000000000..441c6c370c6 --- /dev/null +++ b/service/connect/snapshot/api_op_CreateHoursOfOperationOverride.go.snap @@ -0,0 +1,41 @@ +CreateHoursOfOperationOverride + 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/api_op_DeleteHoursOfOperationOverride.go.snap b/service/connect/snapshot/api_op_DeleteHoursOfOperationOverride.go.snap new file mode 100644 index 00000000000..31f2b834b54 --- /dev/null +++ b/service/connect/snapshot/api_op_DeleteHoursOfOperationOverride.go.snap @@ -0,0 +1,41 @@ +DeleteHoursOfOperationOverride + 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/api_op_DescribeHoursOfOperationOverride.go.snap b/service/connect/snapshot/api_op_DescribeHoursOfOperationOverride.go.snap new file mode 100644 index 00000000000..a2b5ed6e1d8 --- /dev/null +++ b/service/connect/snapshot/api_op_DescribeHoursOfOperationOverride.go.snap @@ -0,0 +1,41 @@ +DescribeHoursOfOperationOverride + 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/api_op_GetEffectiveHoursOfOperations.go.snap b/service/connect/snapshot/api_op_GetEffectiveHoursOfOperations.go.snap new file mode 100644 index 00000000000..ea93956aacd --- /dev/null +++ b/service/connect/snapshot/api_op_GetEffectiveHoursOfOperations.go.snap @@ -0,0 +1,41 @@ +GetEffectiveHoursOfOperations + 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/api_op_ListHoursOfOperationOverrides.go.snap b/service/connect/snapshot/api_op_ListHoursOfOperationOverrides.go.snap new file mode 100644 index 00000000000..bf943366009 --- /dev/null +++ b/service/connect/snapshot/api_op_ListHoursOfOperationOverrides.go.snap @@ -0,0 +1,41 @@ +ListHoursOfOperationOverrides + 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/api_op_SearchHoursOfOperationOverrides.go.snap b/service/connect/snapshot/api_op_SearchHoursOfOperationOverrides.go.snap new file mode 100644 index 00000000000..51ada01f754 --- /dev/null +++ b/service/connect/snapshot/api_op_SearchHoursOfOperationOverrides.go.snap @@ -0,0 +1,41 @@ +SearchHoursOfOperationOverrides + 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/api_op_UpdateHoursOfOperationOverride.go.snap b/service/connect/snapshot/api_op_UpdateHoursOfOperationOverride.go.snap new file mode 100644 index 00000000000..eabf6e0c156 --- /dev/null +++ b/service/connect/snapshot/api_op_UpdateHoursOfOperationOverride.go.snap @@ -0,0 +1,41 @@ +UpdateHoursOfOperationOverride + 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 844221ba5ac..06f8a82bec0 100644 --- a/service/connect/snapshot_test.go +++ b/service/connect/snapshot_test.go @@ -422,6 +422,18 @@ func TestCheckSnapshot_CreateHoursOfOperation(t *testing.T) { } } +func TestCheckSnapshot_CreateHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateInstance(t *testing.T) { svc := New(Options{}) _, err := svc.CreateInstance(context.Background(), nil, func(o *Options) { @@ -758,6 +770,18 @@ func TestCheckSnapshot_DeleteHoursOfOperation(t *testing.T) { } } +func TestCheckSnapshot_DeleteHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteInstance(context.Background(), nil, func(o *Options) { @@ -1082,6 +1106,18 @@ func TestCheckSnapshot_DescribeHoursOfOperation(t *testing.T) { } } +func TestCheckSnapshot_DescribeHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeInstance(context.Background(), nil, func(o *Options) { @@ -1502,6 +1538,18 @@ func TestCheckSnapshot_GetCurrentUserData(t *testing.T) { } } +func TestCheckSnapshot_GetEffectiveHoursOfOperations(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEffectiveHoursOfOperations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetEffectiveHoursOfOperations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetFederationToken(t *testing.T) { svc := New(Options{}) _, err := svc.GetFederationToken(context.Background(), nil, func(o *Options) { @@ -1778,6 +1826,18 @@ func TestCheckSnapshot_ListFlowAssociations(t *testing.T) { } } +func TestCheckSnapshot_ListHoursOfOperationOverrides(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListHoursOfOperationOverrides(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListHoursOfOperationOverrides") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListHoursOfOperations(t *testing.T) { svc := New(Options{}) _, err := svc.ListHoursOfOperations(context.Background(), nil, func(o *Options) { @@ -2318,6 +2378,18 @@ func TestCheckSnapshot_SearchEmailAddresses(t *testing.T) { } } +func TestCheckSnapshot_SearchHoursOfOperationOverrides(t *testing.T) { + svc := New(Options{}) + _, err := svc.SearchHoursOfOperationOverrides(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "SearchHoursOfOperationOverrides") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_SearchHoursOfOperations(t *testing.T) { svc := New(Options{}) _, err := svc.SearchHoursOfOperations(context.Background(), nil, func(o *Options) { @@ -2918,6 +2990,18 @@ func TestCheckSnapshot_UpdateHoursOfOperation(t *testing.T) { } } +func TestCheckSnapshot_UpdateHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateInstanceAttribute(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateInstanceAttribute(context.Background(), nil, func(o *Options) { @@ -3685,6 +3769,18 @@ func TestUpdateSnapshot_CreateHoursOfOperation(t *testing.T) { } } +func TestUpdateSnapshot_CreateHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateInstance(t *testing.T) { svc := New(Options{}) _, err := svc.CreateInstance(context.Background(), nil, func(o *Options) { @@ -4021,6 +4117,18 @@ func TestUpdateSnapshot_DeleteHoursOfOperation(t *testing.T) { } } +func TestUpdateSnapshot_DeleteHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteInstance(context.Background(), nil, func(o *Options) { @@ -4345,6 +4453,18 @@ func TestUpdateSnapshot_DescribeHoursOfOperation(t *testing.T) { } } +func TestUpdateSnapshot_DescribeHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeInstance(context.Background(), nil, func(o *Options) { @@ -4765,6 +4885,18 @@ func TestUpdateSnapshot_GetCurrentUserData(t *testing.T) { } } +func TestUpdateSnapshot_GetEffectiveHoursOfOperations(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEffectiveHoursOfOperations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetEffectiveHoursOfOperations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetFederationToken(t *testing.T) { svc := New(Options{}) _, err := svc.GetFederationToken(context.Background(), nil, func(o *Options) { @@ -5041,6 +5173,18 @@ func TestUpdateSnapshot_ListFlowAssociations(t *testing.T) { } } +func TestUpdateSnapshot_ListHoursOfOperationOverrides(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListHoursOfOperationOverrides(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListHoursOfOperationOverrides") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListHoursOfOperations(t *testing.T) { svc := New(Options{}) _, err := svc.ListHoursOfOperations(context.Background(), nil, func(o *Options) { @@ -5581,6 +5725,18 @@ func TestUpdateSnapshot_SearchEmailAddresses(t *testing.T) { } } +func TestUpdateSnapshot_SearchHoursOfOperationOverrides(t *testing.T) { + svc := New(Options{}) + _, err := svc.SearchHoursOfOperationOverrides(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "SearchHoursOfOperationOverrides") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_SearchHoursOfOperations(t *testing.T) { svc := New(Options{}) _, err := svc.SearchHoursOfOperations(context.Background(), nil, func(o *Options) { @@ -6181,6 +6337,18 @@ func TestUpdateSnapshot_UpdateHoursOfOperation(t *testing.T) { } } +func TestUpdateSnapshot_UpdateHoursOfOperationOverride(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateHoursOfOperationOverride(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateHoursOfOperationOverride") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateInstanceAttribute(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateInstanceAttribute(context.Background(), nil, func(o *Options) { diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 1f0bc62e180..8d9991252f1 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -522,6 +522,31 @@ func (CurrentMetricName) Values() []CurrentMetricName { } } +type DateComparisonType string + +// Enum values for DateComparisonType +const ( + DateComparisonTypeGreaterThan DateComparisonType = "GREATER_THAN" + DateComparisonTypeLessThan DateComparisonType = "LESS_THAN" + DateComparisonTypeGreaterThanOrEqualTo DateComparisonType = "GREATER_THAN_OR_EQUAL_TO" + DateComparisonTypeLessThanOrEqualTo DateComparisonType = "LESS_THAN_OR_EQUAL_TO" + DateComparisonTypeEqualTo DateComparisonType = "EQUAL_TO" +) + +// Values returns all known values for DateComparisonType. 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 (DateComparisonType) Values() []DateComparisonType { + return []DateComparisonType{ + "GREATER_THAN", + "LESS_THAN", + "GREATER_THAN_OR_EQUAL_TO", + "LESS_THAN_OR_EQUAL_TO", + "EQUAL_TO", + } +} + type DeviceType string // Enum values for DeviceType @@ -1465,6 +1490,35 @@ func (OutboundMessageSourceType) Values() []OutboundMessageSourceType { } } +type OverrideDays string + +// Enum values for OverrideDays +const ( + OverrideDaysSunday OverrideDays = "SUNDAY" + OverrideDaysMonday OverrideDays = "MONDAY" + OverrideDaysTuesday OverrideDays = "TUESDAY" + OverrideDaysWednesday OverrideDays = "WEDNESDAY" + OverrideDaysThursday OverrideDays = "THURSDAY" + OverrideDaysFriday OverrideDays = "FRIDAY" + OverrideDaysSaturday OverrideDays = "SATURDAY" +) + +// Values returns all known values for OverrideDays. 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 (OverrideDays) Values() []OverrideDays { + return []OverrideDays{ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + } +} + type ParticipantRole string // Enum values for ParticipantRole diff --git a/service/connect/types/errors.go b/service/connect/types/errors.go index 2dc2bf2156c..7532395fc33 100644 --- a/service/connect/types/errors.go +++ b/service/connect/types/errors.go @@ -33,7 +33,7 @@ func (e *AccessDeniedException) ErrorCode() string { } func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// A conditional check failed. +// Request processing failed because dependent condition failed. type ConditionalOperationFailedException struct { Message *string diff --git a/service/connect/types/types.go b/service/connect/types/types.go index 1e92336922a..cf12cd7dba8 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -1045,6 +1045,9 @@ type ContactConfiguration struct { IncludeRawMessage bool // The role of the participant in the chat conversation. + // + // Only CUSTOMER is currently supported. Any other values other than CUSTOMER will + // result in an exception (4xx error). ParticipantRole ParticipantRole noSmithyDocumentSerde @@ -1188,6 +1191,12 @@ type ContactFlowModuleSearchCriteria struct { // A list of conditions which would be applied together with an OR condition. OrConditions []ContactFlowModuleSearchCriteria + // The state of the flow. + StateCondition ContactFlowModuleState + + // The status of the flow. + StatusCondition ContactFlowModuleStatus + // A leaf node condition which can be used to specify a string condition. StringCondition *StringCondition @@ -1640,6 +1649,22 @@ type CustomerVoiceActivity struct { noSmithyDocumentSerde } +// An object to specify the hours of operation override date condition. +type DateCondition struct { + + // An object to specify the hours of operation override date condition + // comparisonType . + ComparisonType DateComparisonType + + // An object to specify the hours of operation override date field. + FieldName *string + + // An object to specify the hours of operation override date value. + Value *string + + noSmithyDocumentSerde +} + // Information about a reference when the referenceType is DATE . Otherwise, null. type DateReference struct { @@ -1766,6 +1791,18 @@ type DownloadUrlMetadata struct { noSmithyDocumentSerde } +// Information about the hours of operations with the effective override applied. +type EffectiveHoursOfOperations struct { + + // The date that the hours of operation or overrides applies to. + Date *string + + // Information about the hours of operations with the effective override applied. + OperationalHours []OperationalHour + + noSmithyDocumentSerde +} + // Contains information about a source or destination email address type EmailAddressInfo struct { @@ -3135,6 +3172,71 @@ type HoursOfOperationConfig struct { noSmithyDocumentSerde } +// Information about the hours of operations override. +type HoursOfOperationOverride struct { + + // Configuration information for the hours of operation override: day, start time, + // and end time. + Config []HoursOfOperationOverrideConfig + + // The description of the hours of operation override. + Description *string + + // The date from which the hours of operation override would be effective. + EffectiveFrom *string + + // The date till which the hours of operation override would be effective. + EffectiveTill *string + + // The Amazon Resource Name (ARN) for the hours of operation. + HoursOfOperationArn *string + + // The identifier for the hours of operation. + HoursOfOperationId *string + + // The identifier for the hours of operation override. + HoursOfOperationOverrideId *string + + // The name of the hours of operation override. + Name *string + + noSmithyDocumentSerde +} + +// Information about the hours of operation override config: day, start time, and +// end time. +type HoursOfOperationOverrideConfig struct { + + // The day that the hours of operation override applies to. + Day OverrideDays + + // The end time that your contact center closes if overrides are applied. + EndTime *OverrideTimeSlice + + // The start time when your contact center opens if overrides are applied. + StartTime *OverrideTimeSlice + + noSmithyDocumentSerde +} + +// The search criteria to be used to return hours of operations overrides. +type HoursOfOperationOverrideSearchCriteria struct { + + // A list of conditions which would be applied together with an AND condition. + AndConditions []HoursOfOperationOverrideSearchCriteria + + // A leaf node condition which can be used to specify a date condition. + DateCondition *DateCondition + + // A list of conditions which would be applied together with an OR condition. + OrConditions []HoursOfOperationOverrideSearchCriteria + + // A leaf node condition which can be used to specify a string condition. + StringCondition *StringCondition + + noSmithyDocumentSerde +} + // The search criteria to be used to return hours of operations. type HoursOfOperationSearchCriteria struct { @@ -3917,6 +4019,18 @@ type NumericQuestionPropertyValueAutomation struct { noSmithyDocumentSerde } +// Information about the hours of operations with the effective override applied. +type OperationalHour struct { + + // The end time that your contact center closes. + End *OverrideTimeSlice + + // The start time that your contact center opens. + Start *OverrideTimeSlice + + noSmithyDocumentSerde +} + // The additional recipients information of outbound email. type OutboundAdditionalRecipients struct { @@ -3988,6 +4102,22 @@ type OutboundRawMessage struct { noSmithyDocumentSerde } +// The start time or end time for an hours of operation override. +type OverrideTimeSlice struct { + + // The hours. + // + // This member is required. + Hours *int32 + + // The minutes. + // + // This member is required. + Minutes *int32 + + noSmithyDocumentSerde +} + // The configuration for the allowed video and screen sharing capabilities for // participants present over the call. For more information, see [Set up in-app, web, video calling, and screen sharing capabilities]in the Amazon // Connect Administrator Guide. @@ -6817,11 +6947,15 @@ type UserIdentityInfo struct { Email *string // The first name. This is required if you are using Amazon Connect or SAML for - // identity management. + // identity management. Inputs must be in Unicode Normalization Form C (NFC). Text + // containing characters in a non-NFC form (for example, decomposed characters or + // combining marks) are not accepted. FirstName *string // The last name. This is required if you are using Amazon Connect or SAML for - // identity management. + // identity management. Inputs must be in Unicode Normalization Form C (NFC). Text + // containing characters in a non-NFC form (for example, decomposed characters or + // combining marks) are not accepted. LastName *string // The user's mobile number. diff --git a/service/connect/validators.go b/service/connect/validators.go index 038a36e9e65..1d6a460ef3f 100644 --- a/service/connect/validators.go +++ b/service/connect/validators.go @@ -610,6 +610,26 @@ func (m *validateOpCreateHoursOfOperation) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpCreateHoursOfOperationOverride struct { +} + +func (*validateOpCreateHoursOfOperationOverride) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateHoursOfOperationOverride) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateHoursOfOperationOverrideInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateHoursOfOperationOverrideInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateInstance struct { } @@ -1170,6 +1190,26 @@ func (m *validateOpDeleteHoursOfOperation) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpDeleteHoursOfOperationOverride struct { +} + +func (*validateOpDeleteHoursOfOperationOverride) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteHoursOfOperationOverride) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteHoursOfOperationOverrideInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteHoursOfOperationOverrideInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteInstance struct { } @@ -1710,6 +1750,26 @@ func (m *validateOpDescribeHoursOfOperation) HandleInitialize(ctx context.Contex return next.HandleInitialize(ctx, in) } +type validateOpDescribeHoursOfOperationOverride struct { +} + +func (*validateOpDescribeHoursOfOperationOverride) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeHoursOfOperationOverride) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeHoursOfOperationOverrideInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeHoursOfOperationOverrideInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeInstanceAttribute struct { } @@ -2410,6 +2470,26 @@ func (m *validateOpGetCurrentUserData) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpGetEffectiveHoursOfOperations struct { +} + +func (*validateOpGetEffectiveHoursOfOperations) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetEffectiveHoursOfOperations) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetEffectiveHoursOfOperationsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetEffectiveHoursOfOperationsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetFederationToken struct { } @@ -2870,6 +2950,26 @@ func (m *validateOpListFlowAssociations) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpListHoursOfOperationOverrides struct { +} + +func (*validateOpListHoursOfOperationOverrides) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListHoursOfOperationOverrides) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListHoursOfOperationOverridesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListHoursOfOperationOverridesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListHoursOfOperations struct { } @@ -3710,6 +3810,26 @@ func (m *validateOpSearchEmailAddresses) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpSearchHoursOfOperationOverrides struct { +} + +func (*validateOpSearchHoursOfOperationOverrides) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSearchHoursOfOperationOverrides) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SearchHoursOfOperationOverridesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSearchHoursOfOperationOverridesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpSearchHoursOfOperations struct { } @@ -4710,6 +4830,26 @@ func (m *validateOpUpdateHoursOfOperation) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpUpdateHoursOfOperationOverride struct { +} + +func (*validateOpUpdateHoursOfOperationOverride) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateHoursOfOperationOverride) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateHoursOfOperationOverrideInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateHoursOfOperationOverrideInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateInstanceAttribute struct { } @@ -5510,6 +5650,10 @@ func addOpCreateHoursOfOperationValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpCreateHoursOfOperation{}, middleware.After) } +func addOpCreateHoursOfOperationOverrideValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateHoursOfOperationOverride{}, middleware.After) +} + func addOpCreateInstanceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateInstance{}, middleware.After) } @@ -5622,6 +5766,10 @@ func addOpDeleteHoursOfOperationValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpDeleteHoursOfOperation{}, middleware.After) } +func addOpDeleteHoursOfOperationOverrideValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteHoursOfOperationOverride{}, middleware.After) +} + func addOpDeleteInstanceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteInstance{}, middleware.After) } @@ -5730,6 +5878,10 @@ func addOpDescribeHoursOfOperationValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpDescribeHoursOfOperation{}, middleware.After) } +func addOpDescribeHoursOfOperationOverrideValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeHoursOfOperationOverride{}, middleware.After) +} + func addOpDescribeInstanceAttributeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeInstanceAttribute{}, middleware.After) } @@ -5870,6 +6022,10 @@ func addOpGetCurrentUserDataValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetCurrentUserData{}, middleware.After) } +func addOpGetEffectiveHoursOfOperationsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetEffectiveHoursOfOperations{}, middleware.After) +} + func addOpGetFederationTokenValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetFederationToken{}, middleware.After) } @@ -5962,6 +6118,10 @@ func addOpListFlowAssociationsValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpListFlowAssociations{}, middleware.After) } +func addOpListHoursOfOperationOverridesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListHoursOfOperationOverrides{}, middleware.After) +} + func addOpListHoursOfOperationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListHoursOfOperations{}, middleware.After) } @@ -6130,6 +6290,10 @@ func addOpSearchEmailAddressesValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpSearchEmailAddresses{}, middleware.After) } +func addOpSearchHoursOfOperationOverridesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSearchHoursOfOperationOverrides{}, middleware.After) +} + func addOpSearchHoursOfOperationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpSearchHoursOfOperations{}, middleware.After) } @@ -6330,6 +6494,10 @@ func addOpUpdateHoursOfOperationValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpUpdateHoursOfOperation{}, middleware.After) } +func addOpUpdateHoursOfOperationOverrideValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateHoursOfOperationOverride{}, middleware.After) +} + func addOpUpdateInstanceAttributeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateInstanceAttribute{}, middleware.After) } @@ -7222,6 +7390,45 @@ func validateHoursOfOperationConfigList(v []types.HoursOfOperationConfig) error } } +func validateHoursOfOperationOverrideConfig(v *types.HoursOfOperationOverrideConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "HoursOfOperationOverrideConfig"} + if v.StartTime != nil { + if err := validateOverrideTimeSlice(v.StartTime); err != nil { + invalidParams.AddNested("StartTime", err.(smithy.InvalidParamsError)) + } + } + if v.EndTime != nil { + if err := validateOverrideTimeSlice(v.EndTime); err != nil { + invalidParams.AddNested("EndTime", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateHoursOfOperationOverrideConfigList(v []types.HoursOfOperationOverrideConfig) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "HoursOfOperationOverrideConfigList"} + for i := range v { + if err := validateHoursOfOperationOverrideConfig(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateHoursOfOperationTimeSlice(v *types.HoursOfOperationTimeSlice) error { if v == nil { return nil @@ -7548,6 +7755,24 @@ func validateOutboundRawMessage(v *types.OutboundRawMessage) error { } } +func validateOverrideTimeSlice(v *types.OverrideTimeSlice) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OverrideTimeSlice"} + if v.Hours == nil { + invalidParams.Add(smithy.NewErrParamRequired("Hours")) + } + if v.Minutes == nil { + invalidParams.Add(smithy.NewErrParamRequired("Minutes")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateParticipantDetails(v *types.ParticipantDetails) error { if v == nil { return nil @@ -9064,6 +9289,40 @@ func validateOpCreateHoursOfOperationInput(v *CreateHoursOfOperationInput) error } } +func validateOpCreateHoursOfOperationOverrideInput(v *CreateHoursOfOperationOverrideInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateHoursOfOperationOverrideInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Config == nil { + invalidParams.Add(smithy.NewErrParamRequired("Config")) + } else if v.Config != nil { + if err := validateHoursOfOperationOverrideConfigList(v.Config); err != nil { + invalidParams.AddNested("Config", err.(smithy.InvalidParamsError)) + } + } + if v.EffectiveFrom == nil { + invalidParams.Add(smithy.NewErrParamRequired("EffectiveFrom")) + } + if v.EffectiveTill == nil { + invalidParams.Add(smithy.NewErrParamRequired("EffectiveTill")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateInstanceInput(v *CreateInstanceInput) error { if v == nil { return nil @@ -9688,6 +9947,27 @@ func validateOpDeleteHoursOfOperationInput(v *DeleteHoursOfOperationInput) error } } +func validateOpDeleteHoursOfOperationOverrideInput(v *DeleteHoursOfOperationOverrideInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteHoursOfOperationOverrideInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if v.HoursOfOperationOverrideId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationOverrideId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteInstanceInput(v *DeleteInstanceInput) error { if v == nil { return nil @@ -10177,6 +10457,27 @@ func validateOpDescribeHoursOfOperationInput(v *DescribeHoursOfOperationInput) e } } +func validateOpDescribeHoursOfOperationOverrideInput(v *DescribeHoursOfOperationOverrideInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeHoursOfOperationOverrideInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if v.HoursOfOperationOverrideId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationOverrideId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeInstanceAttributeInput(v *DescribeInstanceAttributeInput) error { if v == nil { return nil @@ -10838,6 +11139,30 @@ func validateOpGetCurrentUserDataInput(v *GetCurrentUserDataInput) error { } } +func validateOpGetEffectiveHoursOfOperationsInput(v *GetEffectiveHoursOfOperationsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetEffectiveHoursOfOperationsInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if v.FromDate == nil { + invalidParams.Add(smithy.NewErrParamRequired("FromDate")) + } + if v.ToDate == nil { + invalidParams.Add(smithy.NewErrParamRequired("ToDate")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetFederationTokenInput(v *GetFederationTokenInput) error { if v == nil { return nil @@ -11243,6 +11568,24 @@ func validateOpListFlowAssociationsInput(v *ListFlowAssociationsInput) error { } } +func validateOpListHoursOfOperationOverridesInput(v *ListHoursOfOperationOverridesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListHoursOfOperationOverridesInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListHoursOfOperationsInput(v *ListHoursOfOperationsInput) error { if v == nil { return nil @@ -11956,6 +12299,21 @@ func validateOpSearchEmailAddressesInput(v *SearchEmailAddressesInput) error { } } +func validateOpSearchHoursOfOperationOverridesInput(v *SearchHoursOfOperationOverridesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SearchHoursOfOperationOverridesInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpSearchHoursOfOperationsInput(v *SearchHoursOfOperationsInput) error { if v == nil { return nil @@ -13053,6 +13411,32 @@ func validateOpUpdateHoursOfOperationInput(v *UpdateHoursOfOperationInput) error } } +func validateOpUpdateHoursOfOperationOverrideInput(v *UpdateHoursOfOperationOverrideInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateHoursOfOperationOverrideInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.HoursOfOperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationId")) + } + if v.HoursOfOperationOverrideId == nil { + invalidParams.Add(smithy.NewErrParamRequired("HoursOfOperationOverrideId")) + } + if v.Config != nil { + if err := validateHoursOfOperationOverrideConfigList(v.Config); err != nil { + invalidParams.AddNested("Config", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateInstanceAttributeInput(v *UpdateInstanceAttributeInput) error { if v == nil { return nil diff --git a/service/databasemigrationservice/api_op_CreateReplicationInstance.go b/service/databasemigrationservice/api_op_CreateReplicationInstance.go index f890dd7aaaa..18ab0ac90ff 100644 --- a/service/databasemigrationservice/api_op_CreateReplicationInstance.go +++ b/service/databasemigrationservice/api_op_CreateReplicationInstance.go @@ -99,6 +99,10 @@ type CreateReplicationInstanceInput struct { // created, the default is the latest engine version available. EngineVersion *string + // Specifies the ID of the secret that stores the key cache file required for + // kerberos authentication, when creating a replication instance. + KerberosAuthenticationSettings *types.KerberosAuthenticationSettings + // An KMS key identifier that is used to encrypt the data on the replication // instance. // diff --git a/service/databasemigrationservice/api_op_DescribeDataProviders.go b/service/databasemigrationservice/api_op_DescribeDataProviders.go index d989f13c893..a3d3b3ade39 100644 --- a/service/databasemigrationservice/api_op_DescribeDataProviders.go +++ b/service/databasemigrationservice/api_op_DescribeDataProviders.go @@ -32,7 +32,8 @@ type DescribeDataProvidersInput struct { // Filters applied to the data providers described in the form of key-value pairs. // - // Valid filter names: data-provider-identifier + // Valid filter names and values: data-provider-identifier, data provider arn or + // name Filters []types.Filter // Specifies the unique pagination token that makes it possible to display the diff --git a/service/databasemigrationservice/api_op_DescribeInstanceProfiles.go b/service/databasemigrationservice/api_op_DescribeInstanceProfiles.go index 2d77e4ddad8..c4f7243f767 100644 --- a/service/databasemigrationservice/api_op_DescribeInstanceProfiles.go +++ b/service/databasemigrationservice/api_op_DescribeInstanceProfiles.go @@ -32,6 +32,9 @@ type DescribeInstanceProfilesInput struct { // Filters applied to the instance profiles described in the form of key-value // pairs. + // + // Valid filter names and values: instance-profile-identifier, instance profile + // arn or name Filters []types.Filter // Specifies the unique pagination token that makes it possible to display the diff --git a/service/databasemigrationservice/api_op_DescribeMigrationProjects.go b/service/databasemigrationservice/api_op_DescribeMigrationProjects.go index 7d773364b67..3af4da3a971 100644 --- a/service/databasemigrationservice/api_op_DescribeMigrationProjects.go +++ b/service/databasemigrationservice/api_op_DescribeMigrationProjects.go @@ -32,6 +32,14 @@ type DescribeMigrationProjectsInput struct { // Filters applied to the migration projects described in the form of key-value // pairs. + // + // Valid filter names and values: + // + // - instance-profile-identifier, instance profile arn or name + // + // - data-provider-identifier, data provider arn or name + // + // - migration-project-identifier, migration project arn or name Filters []types.Filter // Specifies the unique pagination token that makes it possible to display the diff --git a/service/databasemigrationservice/api_op_ModifyReplicationInstance.go b/service/databasemigrationservice/api_op_ModifyReplicationInstance.go index e7a2dc4fa3c..a1b5e6b1ea3 100644 --- a/service/databasemigrationservice/api_op_ModifyReplicationInstance.go +++ b/service/databasemigrationservice/api_op_ModifyReplicationInstance.go @@ -75,6 +75,10 @@ type ModifyReplicationInstanceInput struct { // AllowMajorVersionUpgrade to true . EngineVersion *string + // Specifies the ID of the secret that stores the key cache file required for + // kerberos authentication, when modifying a replication instance. + KerberosAuthenticationSettings *types.KerberosAuthenticationSettings + // Specifies whether the replication instance is a Multi-AZ deployment. You can't // set the AvailabilityZone parameter if the Multi-AZ parameter is set to true . MultiAZ *bool diff --git a/service/databasemigrationservice/api_op_StartReplication.go b/service/databasemigrationservice/api_op_StartReplication.go index d6a9f783827..e715cb4d3d3 100644 --- a/service/databasemigrationservice/api_op_StartReplication.go +++ b/service/databasemigrationservice/api_op_StartReplication.go @@ -41,6 +41,21 @@ type StartReplicationInput struct { // The replication type. // + // When the replication type is full-load or full-load-and-cdc , the only valid + // value for the first run of the replication is start-replication . This option + // will start the replication. + // + // You can also use ReloadTables to reload specific tables that failed during replication + // instead of restarting the replication. + // + // The resume-processing option isn't applicable for a full-load replication, + // because you can't resume partially loaded tables during the full load phase. + // + // For a full-load-and-cdc replication, DMS migrates table data, and then applies + // data changes that occur on the source. To load all the tables again, and start + // capturing source changes, use reload-target . Otherwise use resume-processing , + // to replicate the changes from the last stop position. + // // This member is required. StartReplicationType *string diff --git a/service/databasemigrationservice/deserializers.go b/service/databasemigrationservice/deserializers.go index eb5f90a7828..52eac58b495 100644 --- a/service/databasemigrationservice/deserializers.go +++ b/service/databasemigrationservice/deserializers.go @@ -2590,6 +2590,9 @@ func awsAwsjson11_deserializeOpErrorDeleteEventSubscription(response *smithyhttp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("AccessDeniedFault", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedFault(response, errorBody) + case strings.EqualFold("InvalidResourceStateFault", errorCode): return awsAwsjson11_deserializeErrorInvalidResourceStateFault(response, errorBody) @@ -3387,6 +3390,9 @@ func awsAwsjson11_deserializeOpErrorDeleteReplicationSubnetGroup(response *smith errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("AccessDeniedFault", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedFault(response, errorBody) + case strings.EqualFold("InvalidResourceStateFault", errorCode): return awsAwsjson11_deserializeErrorInvalidResourceStateFault(response, errorBody) @@ -8529,6 +8535,9 @@ func awsAwsjson11_deserializeOpErrorDescribeTableStatistics(response *smithyhttp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("AccessDeniedFault", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedFault(response, errorBody) + case strings.EqualFold("InvalidResourceStateFault", errorCode): return awsAwsjson11_deserializeErrorInvalidResourceStateFault(response, errorBody) @@ -9459,6 +9468,9 @@ func awsAwsjson11_deserializeOpErrorModifyEventSubscription(response *smithyhttp errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("AccessDeniedFault", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedFault(response, errorBody) + case strings.EqualFold("KMSAccessDeniedFault", errorCode): return awsAwsjson11_deserializeErrorKMSAccessDeniedFault(response, errorBody) @@ -19191,6 +19203,73 @@ func awsAwsjson11_deserializeDocumentKafkaSettings(v **types.KafkaSettings, valu sv.Topic = ptr.String(jtv) } + case "UseLargeIntegerValue": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanOptional to be of type *bool, got %T instead", value) + } + sv.UseLargeIntegerValue = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentKerberosAuthenticationSettings(v **types.KerberosAuthenticationSettings, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KerberosAuthenticationSettings + if *v == nil { + sv = &types.KerberosAuthenticationSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "KeyCacheSecretIamArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.KeyCacheSecretIamArn = ptr.String(jtv) + } + + case "KeyCacheSecretId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.KeyCacheSecretId = ptr.String(jtv) + } + + case "Krb5FileContents": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Krb5FileContents = ptr.String(jtv) + } + default: _, _ = key, value @@ -19312,6 +19391,15 @@ func awsAwsjson11_deserializeDocumentKinesisSettings(v **types.KinesisSettings, sv.StreamArn = ptr.String(jtv) } + case "UseLargeIntegerValue": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanOptional to be of type *bool, got %T instead", value) + } + sv.UseLargeIntegerValue = ptr.Bool(jtv) + } + default: _, _ = key, value @@ -19893,6 +19981,15 @@ func awsAwsjson11_deserializeDocumentMicrosoftSQLServerSettings(v **types.Micros for key, value := range shape { switch key { + case "AuthenticationMethod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SqlServerAuthenticationMethod to be of type string, got %T instead", value) + } + sv.AuthenticationMethod = types.SqlServerAuthenticationMethod(jtv) + } + case "BcpPacketSize": if value != nil { jtv, ok := value.(json.Number) @@ -21095,6 +21192,15 @@ func awsAwsjson11_deserializeDocumentOracleSettings(v **types.OracleSettings, va sv.AsmUser = ptr.String(jtv) } + case "AuthenticationMethod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OracleAuthenticationMethod to be of type string, got %T instead", value) + } + sv.AuthenticationMethod = types.OracleAuthenticationMethod(jtv) + } + case "CharLengthSemantics": if value != nil { jtv, ok := value.(string) @@ -21535,7 +21641,7 @@ func awsAwsjson11_deserializeDocumentOrderableReplicationInstance(v **types.Orde 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 ReplicationInstanceClass to be of type string, got %T instead", value) } sv.ReplicationInstanceClass = ptr.String(jtv) } @@ -21922,6 +22028,15 @@ func awsAwsjson11_deserializeDocumentPostgreSQLSettings(v **types.PostgreSQLSett sv.DdlArtifactsSchema = ptr.String(jtv) } + case "DisableUnicodeSourceFilter": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanOptional to be of type *bool, got %T instead", value) + } + sv.DisableUnicodeSourceFilter = ptr.Bool(jtv) + } + case "ExecuteTimeout": if value != nil { jtv, ok := value.(json.Number) @@ -23895,6 +24010,11 @@ func awsAwsjson11_deserializeDocumentReplicationInstance(v **types.ReplicationIn } } + case "KerberosAuthenticationSettings": + if err := awsAwsjson11_deserializeDocumentKerberosAuthenticationSettings(&sv.KerberosAuthenticationSettings, value); err != nil { + return err + } + case "KmsKeyId": if value != nil { jtv, ok := value.(string) @@ -23958,7 +24078,7 @@ func awsAwsjson11_deserializeDocumentReplicationInstance(v **types.ReplicationIn 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 ReplicationInstanceClass to be of type string, got %T instead", value) } sv.ReplicationInstanceClass = ptr.String(jtv) } @@ -24380,7 +24500,7 @@ func awsAwsjson11_deserializeDocumentReplicationPendingModifiedValues(v **types. 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 ReplicationInstanceClass to be of type string, got %T instead", value) } sv.ReplicationInstanceClass = ptr.String(jtv) } @@ -25067,7 +25187,7 @@ func awsAwsjson11_deserializeDocumentReplicationTaskAssessmentResult(v **types.R 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 SecretString to be of type string, got %T instead", value) } sv.S3ObjectUrl = ptr.String(jtv) } diff --git a/service/databasemigrationservice/serializers.go b/service/databasemigrationservice/serializers.go index 4a4554ccda6..a671e9c2a1a 100644 --- a/service/databasemigrationservice/serializers.go +++ b/service/databasemigrationservice/serializers.go @@ -7525,6 +7525,33 @@ func awsAwsjson11_serializeDocumentKafkaSettings(v *types.KafkaSettings, value s ok.String(*v.Topic) } + if v.UseLargeIntegerValue != nil { + ok := object.Key("UseLargeIntegerValue") + ok.Boolean(*v.UseLargeIntegerValue) + } + + return nil +} + +func awsAwsjson11_serializeDocumentKerberosAuthenticationSettings(v *types.KerberosAuthenticationSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyCacheSecretIamArn != nil { + ok := object.Key("KeyCacheSecretIamArn") + ok.String(*v.KeyCacheSecretIamArn) + } + + if v.KeyCacheSecretId != nil { + ok := object.Key("KeyCacheSecretId") + ok.String(*v.KeyCacheSecretId) + } + + if v.Krb5FileContents != nil { + ok := object.Key("Krb5FileContents") + ok.String(*v.Krb5FileContents) + } + return nil } @@ -7593,6 +7620,11 @@ func awsAwsjson11_serializeDocumentKinesisSettings(v *types.KinesisSettings, val ok.String(*v.StreamArn) } + if v.UseLargeIntegerValue != nil { + ok := object.Key("UseLargeIntegerValue") + ok.Boolean(*v.UseLargeIntegerValue) + } + return nil } @@ -7659,6 +7691,11 @@ func awsAwsjson11_serializeDocumentMicrosoftSQLServerSettings(v *types.Microsoft object := value.Object() defer object.Close() + if len(v.AuthenticationMethod) > 0 { + ok := object.Key("AuthenticationMethod") + ok.String(string(v.AuthenticationMethod)) + } + if v.BcpPacketSize != nil { ok := object.Key("BcpPacketSize") ok.Integer(*v.BcpPacketSize) @@ -8138,6 +8175,11 @@ func awsAwsjson11_serializeDocumentOracleSettings(v *types.OracleSettings, value ok.String(*v.AsmUser) } + if len(v.AuthenticationMethod) > 0 { + ok := object.Key("AuthenticationMethod") + ok.String(string(v.AuthenticationMethod)) + } + if len(v.CharLengthSemantics) > 0 { ok := object.Key("CharLengthSemantics") ok.String(string(v.CharLengthSemantics)) @@ -8379,6 +8421,11 @@ func awsAwsjson11_serializeDocumentPostgreSQLSettings(v *types.PostgreSQLSetting ok.String(*v.DdlArtifactsSchema) } + if v.DisableUnicodeSourceFilter != nil { + ok := object.Key("DisableUnicodeSourceFilter") + ok.Boolean(*v.DisableUnicodeSourceFilter) + } + if v.ExecuteTimeout != nil { ok := object.Key("ExecuteTimeout") ok.Integer(*v.ExecuteTimeout) @@ -9856,6 +9903,13 @@ func awsAwsjson11_serializeOpDocumentCreateReplicationInstanceInput(v *CreateRep ok.String(*v.EngineVersion) } + if v.KerberosAuthenticationSettings != nil { + ok := object.Key("KerberosAuthenticationSettings") + if err := awsAwsjson11_serializeDocumentKerberosAuthenticationSettings(v.KerberosAuthenticationSettings, ok); err != nil { + return err + } + } + if v.KmsKeyId != nil { ok := object.Key("KmsKeyId") ok.String(*v.KmsKeyId) @@ -11927,6 +11981,13 @@ func awsAwsjson11_serializeOpDocumentModifyReplicationInstanceInput(v *ModifyRep ok.String(*v.EngineVersion) } + if v.KerberosAuthenticationSettings != nil { + ok := object.Key("KerberosAuthenticationSettings") + if err := awsAwsjson11_serializeDocumentKerberosAuthenticationSettings(v.KerberosAuthenticationSettings, ok); err != nil { + return err + } + } + if v.MultiAZ != nil { ok := object.Key("MultiAZ") ok.Boolean(*v.MultiAZ) diff --git a/service/databasemigrationservice/types/enums.go b/service/databasemigrationservice/types/enums.go index 8b50793b25e..f300eed3e13 100644 --- a/service/databasemigrationservice/types/enums.go +++ b/service/databasemigrationservice/types/enums.go @@ -465,6 +465,25 @@ func (NestingLevelValue) Values() []NestingLevelValue { } } +type OracleAuthenticationMethod string + +// Enum values for OracleAuthenticationMethod +const ( + OracleAuthenticationMethodPassword OracleAuthenticationMethod = "password" + OracleAuthenticationMethodKerberos OracleAuthenticationMethod = "kerberos" +) + +// Values returns all known values for OracleAuthenticationMethod. 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 (OracleAuthenticationMethod) Values() []OracleAuthenticationMethod { + return []OracleAuthenticationMethod{ + "password", + "kerberos", + } +} + type OriginTypeValue string // Enum values for OriginTypeValue @@ -663,6 +682,26 @@ func (SourceType) Values() []SourceType { } } +type SqlServerAuthenticationMethod string + +// Enum values for SqlServerAuthenticationMethod +const ( + SqlServerAuthenticationMethodPassword SqlServerAuthenticationMethod = "password" + SqlServerAuthenticationMethodKerberos SqlServerAuthenticationMethod = "kerberos" +) + +// Values returns all known values for SqlServerAuthenticationMethod. 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 (SqlServerAuthenticationMethod) Values() []SqlServerAuthenticationMethod { + return []SqlServerAuthenticationMethod{ + "password", + "kerberos", + } +} + type SslSecurityProtocolValue string // Enum values for SslSecurityProtocolValue diff --git a/service/databasemigrationservice/types/types.go b/service/databasemigrationservice/types/types.go index 46f6e24aadf..7890a1a2cf5 100644 --- a/service/databasemigrationservice/types/types.go +++ b/service/databasemigrationservice/types/types.go @@ -1570,6 +1570,27 @@ type KafkaSettings struct { // specifies "kafka-default-topic" as the migration topic. Topic *string + // Specifies using the large integer value with Kafka. + UseLargeIntegerValue *bool + + noSmithyDocumentSerde +} + +// Specifies using Kerberos authentication settings for use with DMS. +type KerberosAuthenticationSettings struct { + + // Specifies the Amazon Resource Name (ARN) of the IAM role that grants Amazon Web + // Services DMS access to the secret containing key cache file for the replication + // instance. + KeyCacheSecretIamArn *string + + // Specifies the secret ID of the key cache for the replication instance. + KeyCacheSecretId *string + + // Specifies the ID of the secret that stores the key cache file required for + // kerberos authentication of the replication instance. + Krb5FileContents *string + noSmithyDocumentSerde } @@ -1627,6 +1648,9 @@ type KinesisSettings struct { // The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint. StreamArn *string + // Specifies using the large integer value with Kinesis. + UseLargeIntegerValue *bool + noSmithyDocumentSerde } @@ -1714,6 +1738,9 @@ type MicrosoftSqlServerDataProviderSettings struct { // Provides information that defines a Microsoft SQL Server endpoint. type MicrosoftSQLServerSettings struct { + // Specifies using Kerberos authentication with Microsoft SQL Server. + AuthenticationMethod SqlServerAuthenticationMethod + // The maximum size of the packets (in bytes) used to transfer data using BCP. BcpPacketSize *int32 @@ -2262,9 +2289,9 @@ type OracleSettings struct { // from the outset. ArchivedLogDestId *int32 - // When this field is set to Y , DMS only accesses the archived redo logs. If the - // archived redo logs are stored on Automatic Storage Management (ASM) only, the - // DMS user account needs to be granted ASM privileges. + // When this field is set to True , DMS only accesses the archived redo logs. If + // the archived redo logs are stored on Automatic Storage Management (ASM) only, + // the DMS user account needs to be granted ASM privileges. ArchivedLogsOnly *bool // For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) @@ -2292,6 +2319,9 @@ type OracleSettings struct { // [Configuration for change data capture (CDC) on an Oracle source database]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration AsmUser *string + // Specifies using Kerberos authentication with Oracle. + AuthenticationMethod OracleAuthenticationMethod + // Specifies whether the length of a character column is in bytes or in // characters. To indicate that the character column length is in characters, set // this attribute to CHAR . Otherwise, the character column length is in bytes. @@ -2361,8 +2391,7 @@ type OracleSettings struct { // // You can specify an integer value between 0 (the default) and 240 (the maximum). // - // This parameter is only valid in DMS version 3.5.0 and later. DMS supports a - // window of up to 9.5 hours including the value for OpenTransactionWindow . + // This parameter is only valid in DMS version 3.5.0 and later. OpenTransactionWindow *int32 // Set this string attribute to the required value in order to use the Binary @@ -2500,26 +2529,26 @@ type OracleSettings struct { // use any specified prefix replacement to access all online redo logs. UseAlternateFolderForOnline *bool - // Set this attribute to Y to capture change data using the Binary Reader utility. - // Set UseLogminerReader to N to set this attribute to Y. To use Binary Reader - // with Amazon RDS for Oracle as the source, you set additional attributes. For - // more information about using this setting with Oracle Automatic Storage - // Management (ASM), see [Using Oracle LogMiner or DMS Binary Reader for CDC]. + // Set this attribute to True to capture change data using the Binary Reader + // utility. Set UseLogminerReader to False to set this attribute to True. To use + // Binary Reader with Amazon RDS for Oracle as the source, you set additional + // attributes. For more information about using this setting with Oracle Automatic + // Storage Management (ASM), see [Using Oracle LogMiner or DMS Binary Reader for CDC]. // // [Using Oracle LogMiner or DMS Binary Reader for CDC]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC UseBFile *bool - // Set this attribute to Y to have DMS use a direct path full load. Specify this - // value to use the direct path protocol in the Oracle Call Interface (OCI). By - // using this OCI protocol, you can bulk-load Oracle target tables during a full + // Set this attribute to True to have DMS use a direct path full load. Specify + // this value to use the direct path protocol in the Oracle Call Interface (OCI). + // By using this OCI protocol, you can bulk-load Oracle target tables during a full // load. UseDirectPathFullLoad *bool - // Set this attribute to Y to capture change data using the Oracle LogMiner - // utility (the default). Set this attribute to N if you want to access the redo - // logs as a binary file. When you set UseLogminerReader to N, also set UseBfile - // to Y. For more information on this setting and using Oracle ASM, see [Using Oracle LogMiner or DMS Binary Reader for CDC]in the DMS - // User Guide. + // Set this attribute to True to capture change data using the Oracle LogMiner + // utility (the default). Set this attribute to False if you want to access the + // redo logs as a binary file. When you set UseLogminerReader to False, also set + // UseBfile to True. For more information on this setting and using Oracle ASM, see [Using Oracle LogMiner or DMS Binary Reader for CDC] + // in the DMS User Guide. // // [Using Oracle LogMiner or DMS Binary Reader for CDC]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC UseLogminerReader *bool @@ -2660,6 +2689,8 @@ type PostgreSQLSettings struct { // To capture DDL events, DMS creates various artifacts in the PostgreSQL database // when the task starts. You can later remove these artifacts. // + // The default value is true . + // // If this value is set to N , you don't have to create tables or triggers on the // source database. CaptureDdls *bool @@ -2674,9 +2705,20 @@ type PostgreSQLSettings struct { // The schema in which the operational DDL database artifacts are created. // + // The default value is public . + // // Example: ddlArtifactsSchema=xyzddlschema; DdlArtifactsSchema *string + // Disables the Unicode source filter with PostgreSQL, for values passed into the + // Selection rule filter on Source Endpoint column values. By default DMS performs + // source filter comparisons using a Unicode string which can cause look ups to + // ignore the indexes in the text columns and slow down migrations. + // + // Unicode support should only be disabled when using a selection rule filter is + // on a text column in the Source database that is indexed. + DisableUnicodeSourceFilter *bool + // Sets the client statement timeout for the PostgreSQL instance, in seconds. The // default value is 60 seconds. // @@ -2686,6 +2728,8 @@ type PostgreSQLSettings struct { // When set to true , this value causes a task to fail if the actual size of a LOB // column is greater than the specified LobMaxSize . // + // The default value is false . + // // If task is set to Limited LOB mode and this option is set to true, the task // fails instead of truncating the LOB data. FailTasksOnLobTruncation *bool @@ -2694,28 +2738,42 @@ type PostgreSQLSettings struct { // doing this, it prevents idle logical replication slots from holding onto old WAL // logs, which can result in storage full situations on the source. This heartbeat // keeps restart_lsn moving and prevents storage full scenarios. + // + // The default value is false . HeartbeatEnable *bool // Sets the WAL heartbeat frequency (in minutes). + // + // The default value is 5 minutes. HeartbeatFrequency *int32 // Sets the schema in which the heartbeat artifacts are created. + // + // The default value is public . HeartbeatSchema *string // When true, lets PostgreSQL migrate the boolean type as boolean. By default, // PostgreSQL migrates booleans as varchar(5) . You must set this setting on both // the source and target endpoints for it to take effect. + // + // The default value is false . MapBooleanAsBoolean *bool // When true, DMS migrates JSONB values as CLOB. + // + // The default value is false . MapJsonbAsClob *bool - // When true, DMS migrates LONG values as VARCHAR. + // Sets what datatype to map LONG values as. + // + // The default value is wstring . MapLongVarcharAs LongVarcharMappingType // Specifies the maximum size (in KB) of any .csv file used to transfer data to // PostgreSQL. // + // The default value is 32,768 KB (32 MB). + // // Example: maxFileSize=512 MaxFileSize *int32 @@ -2723,6 +2781,8 @@ type PostgreSQLSettings struct { Password *string // Specifies the plugin to use to create a replication slot. + // + // The default value is pglogical . PluginName PluginNameValue // Endpoint TCP port. The default is 5432. @@ -3318,7 +3378,7 @@ type Replication struct { // uses for its data source. SourceEndpointArn *string - // The replication type. + // The type of replication to start. StartReplicationType *string // The current status of the serverless replication. @@ -3443,6 +3503,10 @@ type ReplicationInstance struct { // The time the replication instance was created. InstanceCreateTime *time.Time + // Specifies the ID of the secret that stores the key cache file required for + // kerberos authentication, when replicating an instance. + KerberosAuthenticationSettings *KerberosAuthenticationSettings + // An KMS key identifier that is used to encrypt the data on the replication // instance. // @@ -3811,13 +3875,16 @@ type ReplicationTask struct { // The reason the replication task was stopped. This response parameter can return // one of the following values: // - // - "Stop Reason NORMAL" + // - "Stop Reason NORMAL" – The task completed successfully with no additional + // information returned. // // - "Stop Reason RECOVERABLE_ERROR" // // - "Stop Reason FATAL_ERROR" // - // - "Stop Reason FULL_LOAD_ONLY_FINISHED" + // - "Stop Reason FULL_LOAD_ONLY_FINISHED" – The task completed the full load + // phase. DMS applied cached changes if you set StopTaskCachedChangesApplied to + // true . // // - "Stop Reason STOPPED_AFTER_FULL_LOAD" – Full load completed, with cached // changes not applied @@ -3984,6 +4051,9 @@ type ReplicationTaskAssessmentRun struct { // // - "starting" – The assessment run is starting, but resources are not yet being // provisioned for individual assessments. + // + // - "warning" – At least one individual assessment completed with a warning + // status. Status *string noSmithyDocumentSerde diff --git a/service/glue/api_op_CreateJob.go b/service/glue/api_op_CreateJob.go index 691e40e0c48..f7e1eaafb38 100644 --- a/service/glue/api_op_CreateJob.go +++ b/service/glue/api_op_CreateJob.go @@ -221,41 +221,39 @@ type CreateJobInput struct { // for Ray jobs. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for low volume streaming jobs. This worker - // type is only available for Glue version 3.0 streaming jobs. + // memory) with 84GB disk, and provides 1 executor per worker. We recommend this + // worker type for low volume streaming jobs. This worker type is only available + // for Glue version 3.0 or later streaming jobs. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType types.WorkerType noSmithyDocumentSerde diff --git a/service/glue/api_op_CreateSession.go b/service/glue/api_op_CreateSession.go index 761826f3670..4299b5ad7dc 100644 --- a/service/glue/api_op_CreateSession.go +++ b/service/glue/api_op_CreateSession.go @@ -89,36 +89,34 @@ type CreateSessionInput struct { // Ray notebooks. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType types.WorkerType noSmithyDocumentSerde diff --git a/service/glue/api_op_CreateTrigger.go b/service/glue/api_op_CreateTrigger.go index bbdd4abd900..ad99001e5b4 100644 --- a/service/glue/api_op_CreateTrigger.go +++ b/service/glue/api_op_CreateTrigger.go @@ -12,6 +12,10 @@ import ( ) // Creates a new trigger. +// +// Job arguments may be logged. Do not pass plaintext secrets as arguments. +// Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or +// other secret management mechanism if you intend to keep them within the Job. func (c *Client) CreateTrigger(ctx context.Context, params *CreateTriggerInput, optFns ...func(*Options)) (*CreateTriggerOutput, error) { if params == nil { params = &CreateTriggerInput{} diff --git a/service/glue/api_op_CreateWorkflow.go b/service/glue/api_op_CreateWorkflow.go index 1c81c3915a6..0522a14506b 100644 --- a/service/glue/api_op_CreateWorkflow.go +++ b/service/glue/api_op_CreateWorkflow.go @@ -35,6 +35,11 @@ type CreateWorkflowInput struct { Name *string // A collection of properties to be used as part of each execution of the workflow. + // + // Run properties may be logged. Do not pass plaintext secrets as properties. + // Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or + // other secret management mechanism if you intend to use them within the workflow + // run. DefaultRunProperties map[string]string // A description of the workflow. diff --git a/service/glue/api_op_GetJobRun.go b/service/glue/api_op_GetJobRun.go index 9c178bf2823..6127824a6e5 100644 --- a/service/glue/api_op_GetJobRun.go +++ b/service/glue/api_op_GetJobRun.go @@ -12,7 +12,7 @@ import ( ) // Retrieves the metadata for a given job run. Job run history is accessible for -// 90 days for your workflow and job run. +// 365 days for your workflow and job run. func (c *Client) GetJobRun(ctx context.Context, params *GetJobRunInput, optFns ...func(*Options)) (*GetJobRunOutput, error) { if params == nil { params = &GetJobRunInput{} diff --git a/service/glue/api_op_GetJobRuns.go b/service/glue/api_op_GetJobRuns.go index 1215267b6a4..d07da60430f 100644 --- a/service/glue/api_op_GetJobRuns.go +++ b/service/glue/api_op_GetJobRuns.go @@ -12,6 +12,9 @@ import ( ) // Retrieves metadata for all runs of a given job definition. +// +// GetJobRuns returns the job runs in chronological order, with the newest jobs +// returned first. func (c *Client) GetJobRuns(ctx context.Context, params *GetJobRunsInput, optFns ...func(*Options)) (*GetJobRunsOutput, error) { if params == nil { params = &GetJobRunsInput{} diff --git a/service/glue/api_op_PutWorkflowRunProperties.go b/service/glue/api_op_PutWorkflowRunProperties.go index a0ae5df1d60..cfc45576580 100644 --- a/service/glue/api_op_PutWorkflowRunProperties.go +++ b/service/glue/api_op_PutWorkflowRunProperties.go @@ -42,6 +42,11 @@ type PutWorkflowRunPropertiesInput struct { // The properties to put for the specified run. // + // Run properties may be logged. Do not pass plaintext secrets as properties. + // Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or + // other secret management mechanism if you intend to use them within the workflow + // run. + // // This member is required. RunProperties map[string]string diff --git a/service/glue/api_op_StartJobRun.go b/service/glue/api_op_StartJobRun.go index f72d15af95c..eb1257e2d3b 100644 --- a/service/glue/api_op_StartJobRun.go +++ b/service/glue/api_op_StartJobRun.go @@ -141,41 +141,39 @@ type StartJobRunInput struct { // for Ray jobs. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for low volume streaming jobs. This worker - // type is only available for Glue version 3.0 streaming jobs. + // memory) with 84GB disk, and provides 1 executor per worker. We recommend this + // worker type for low volume streaming jobs. This worker type is only available + // for Glue version 3.0 or later streaming jobs. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType types.WorkerType noSmithyDocumentSerde diff --git a/service/glue/api_op_StartWorkflowRun.go b/service/glue/api_op_StartWorkflowRun.go index df59cfd73ea..513ecb6c2d1 100644 --- a/service/glue/api_op_StartWorkflowRun.go +++ b/service/glue/api_op_StartWorkflowRun.go @@ -34,6 +34,11 @@ type StartWorkflowRunInput struct { Name *string // The workflow run properties for the new workflow run. + // + // Run properties may be logged. Do not pass plaintext secrets as properties. + // Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or + // other secret management mechanism if you intend to use them within the workflow + // run. RunProperties map[string]string noSmithyDocumentSerde diff --git a/service/glue/api_op_UpdateTrigger.go b/service/glue/api_op_UpdateTrigger.go index dd0167774bf..5ab21172316 100644 --- a/service/glue/api_op_UpdateTrigger.go +++ b/service/glue/api_op_UpdateTrigger.go @@ -12,6 +12,10 @@ import ( ) // Updates a trigger definition. +// +// Job arguments may be logged. Do not pass plaintext secrets as arguments. +// Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or +// other secret management mechanism if you intend to keep them within the Job. func (c *Client) UpdateTrigger(ctx context.Context, params *UpdateTriggerInput, optFns ...func(*Options)) (*UpdateTriggerOutput, error) { if params == nil { params = &UpdateTriggerInput{} diff --git a/service/glue/api_op_UpdateWorkflow.go b/service/glue/api_op_UpdateWorkflow.go index 27fdee77767..f942a725a7e 100644 --- a/service/glue/api_op_UpdateWorkflow.go +++ b/service/glue/api_op_UpdateWorkflow.go @@ -34,6 +34,11 @@ type UpdateWorkflowInput struct { Name *string // A collection of properties to be used as part of each execution of the workflow. + // + // Run properties may be logged. Do not pass plaintext secrets as properties. + // Retrieve secrets from a Glue Connection, Amazon Web Services Secrets Manager or + // other secret management mechanism if you intend to use them within the workflow + // run. DefaultRunProperties map[string]string // The description of the workflow. diff --git a/service/glue/deserializers.go b/service/glue/deserializers.go index e093a7138d8..8e50e7e8ff4 100644 --- a/service/glue/deserializers.go +++ b/service/glue/deserializers.go @@ -41728,6 +41728,55 @@ func awsAwsjson11_deserializeDocumentDataQualityAnalyzerResults(v *[]types.DataQ return nil } +func awsAwsjson11_deserializeDocumentDataQualityEncryption(v **types.DataQualityEncryption, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DataQualityEncryption + if *v == nil { + sv = &types.DataQualityEncryption{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataQualityEncryptionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataQualityEncryptionMode to be of type string, got %T instead", value) + } + sv.DataQualityEncryptionMode = types.DataQualityEncryptionMode(jtv) + } + + case "KmsKeyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyArn to be of type string, got %T instead", value) + } + sv.KmsKeyArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentDataQualityEvaluationRunAdditionalRunOptions(v **types.DataQualityEvaluationRunAdditionalRunOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -45057,6 +45106,11 @@ func awsAwsjson11_deserializeDocumentEncryptionConfiguration(v **types.Encryptio return err } + case "DataQualityEncryption": + if err := awsAwsjson11_deserializeDocumentDataQualityEncryption(&sv.DataQualityEncryption, value); err != nil { + return err + } + case "JobBookmarksEncryption": if err := awsAwsjson11_deserializeDocumentJobBookmarksEncryption(&sv.JobBookmarksEncryption, value); err != nil { return err diff --git a/service/glue/serializers.go b/service/glue/serializers.go index c524263472f..c5759eda79f 100644 --- a/service/glue/serializers.go +++ b/service/glue/serializers.go @@ -18286,6 +18286,23 @@ func awsAwsjson11_serializeDocumentDatapointInclusionAnnotation(v *types.Datapoi return nil } +func awsAwsjson11_serializeDocumentDataQualityEncryption(v *types.DataQualityEncryption, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.DataQualityEncryptionMode) > 0 { + ok := object.Key("DataQualityEncryptionMode") + ok.String(string(v.DataQualityEncryptionMode)) + } + + if v.KmsKeyArn != nil { + ok := object.Key("KmsKeyArn") + ok.String(*v.KmsKeyArn) + } + + return nil +} + func awsAwsjson11_serializeDocumentDataQualityEvaluationRunAdditionalRunOptions(v *types.DataQualityEvaluationRunAdditionalRunOptions, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -19192,6 +19209,13 @@ func awsAwsjson11_serializeDocumentEncryptionConfiguration(v *types.EncryptionCo } } + if v.DataQualityEncryption != nil { + ok := object.Key("DataQualityEncryption") + if err := awsAwsjson11_serializeDocumentDataQualityEncryption(v.DataQualityEncryption, ok); err != nil { + return err + } + } + if v.JobBookmarksEncryption != nil { ok := object.Key("JobBookmarksEncryption") if err := awsAwsjson11_serializeDocumentJobBookmarksEncryption(v.JobBookmarksEncryption, ok); err != nil { diff --git a/service/glue/types/enums.go b/service/glue/types/enums.go index 5b08eea0b9c..de569962afa 100644 --- a/service/glue/types/enums.go +++ b/service/glue/types/enums.go @@ -765,6 +765,25 @@ func (DataOperation) Values() []DataOperation { } } +type DataQualityEncryptionMode string + +// Enum values for DataQualityEncryptionMode +const ( + DataQualityEncryptionModeDisabled DataQualityEncryptionMode = "DISABLED" + DataQualityEncryptionModeSsekms DataQualityEncryptionMode = "SSE-KMS" +) + +// Values returns all known values for DataQualityEncryptionMode. 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 (DataQualityEncryptionMode) Values() []DataQualityEncryptionMode { + return []DataQualityEncryptionMode{ + "DISABLED", + "SSE-KMS", + } +} + type DataQualityModelStatus string // Enum values for DataQualityModelStatus diff --git a/service/glue/types/types.go b/service/glue/types/types.go index 4320590b241..6b985a0bd66 100644 --- a/service/glue/types/types.go +++ b/service/glue/types/types.go @@ -3079,6 +3079,23 @@ type DataQualityAnalyzerResult struct { noSmithyDocumentSerde } +// Specifies how Data Quality assets in your account should be encrypted. +type DataQualityEncryption struct { + + // The encryption mode to use for encrypting Data Quality assets. These assets + // include data quality rulesets, results, statistics, anomaly detection models and + // observations. + // + // Valid values are SSEKMS for encryption using a customer-managed KMS key, or + // DISABLED . + DataQualityEncryptionMode DataQualityEncryptionMode + + // The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. + KmsKeyArn *string + + noSmithyDocumentSerde +} + // Additional run options you can specify for an evaluation run. type DataQualityEvaluationRunAdditionalRunOptions struct { @@ -4018,6 +4035,9 @@ type EncryptionConfiguration struct { // The encryption configuration for Amazon CloudWatch. CloudWatchEncryption *CloudWatchEncryption + // The encryption configuration for Glue Data Quality assets. + DataQualityEncryption *DataQualityEncryption + // The encryption configuration for job bookmarks. JobBookmarksEncryption *JobBookmarksEncryption @@ -5392,41 +5412,39 @@ type Job struct { // for Ray jobs. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for low volume streaming jobs. This worker - // type is only available for Glue version 3.0 streaming jobs. + // memory) with 84GB disk, and provides 1 executor per worker. We recommend this + // worker type for low volume streaming jobs. This worker type is only available + // for Glue version 3.0 or later streaming jobs. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType WorkerType noSmithyDocumentSerde @@ -5719,41 +5737,39 @@ type JobRun struct { // for Ray jobs. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for low volume streaming jobs. This worker - // type is only available for Glue version 3.0 streaming jobs. + // memory) with 84GB disk, and provides 1 executor per worker. We recommend this + // worker type for low volume streaming jobs. This worker type is only available + // for Glue version 3.0 or later streaming jobs. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType WorkerType noSmithyDocumentSerde @@ -5941,41 +5957,39 @@ type JobUpdate struct { // for Ray jobs. // // - For the G.1X worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 94GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.2X worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of - // memory) with 128GB disk (approximately 77GB free), and provides 1 executor per - // worker. We recommend this worker type for workloads such as data transforms, - // joins, and queries, to offers a scalable and cost effective way to run most - // jobs. + // memory) with 138GB disk, and provides 1 executor per worker. We recommend this + // worker type for workloads such as data transforms, joins, and queries, to offers + // a scalable and cost effective way to run most jobs. // // - For the G.4X worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of - // memory) with 256GB disk (approximately 235GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs in the following - // Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West - // (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), - // Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). + // memory) with 256GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs in the following Amazon Web Services + // Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), + // Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm). // // - For the G.8X worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of - // memory) with 512GB disk (approximately 487GB free), and provides 1 executor per - // worker. We recommend this worker type for jobs whose workloads contain your most - // demanding transforms, aggregations, joins, and queries. This worker type is - // available only for Glue version 3.0 or later Spark ETL jobs, in the same Amazon - // Web Services Regions as supported for the G.4X worker type. + // memory) with 512GB disk, and provides 1 executor per worker. We recommend this + // worker type for jobs whose workloads contain your most demanding transforms, + // aggregations, joins, and queries. This worker type is available only for Glue + // version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions as + // supported for the G.4X worker type. // // - For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of - // memory) with 84GB disk (approximately 34GB free), and provides 1 executor per - // worker. We recommend this worker type for low volume streaming jobs. This worker - // type is only available for Glue version 3.0 streaming jobs. + // memory) with 84GB disk, and provides 1 executor per worker. We recommend this + // worker type for low volume streaming jobs. This worker type is only available + // for Glue version 3.0 or later streaming jobs. // // - For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of - // memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray - // workers based on the autoscaler. + // memory) with 128 GB disk, and provides up to 8 Ray workers based on the + // autoscaler. WorkerType WorkerType noSmithyDocumentSerde diff --git a/service/guardduty/api_op_CreateFilter.go b/service/guardduty/api_op_CreateFilter.go index 1faf41d9e7f..75ecaa09e37 100644 --- a/service/guardduty/api_op_CreateFilter.go +++ b/service/guardduty/api_op_CreateFilter.go @@ -63,9 +63,11 @@ type CreateFilterInput struct { // // - Medium: ["4", "5", "6"] // - // - High: ["7", "8", "9"] + // - High: ["7", "8"] // - // For more information, see [Severity levels for GuardDuty findings]. + // - Critical: ["9", "10"] + // + // For more information, see [Findings severity levels]in the Amazon GuardDuty User Guide. // // - type // @@ -256,8 +258,8 @@ type CreateFilterInput struct { // // - resource.lambdaDetails.tags.value // + // [Findings severity levels]: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings-severity.html // [FindingCriteria]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_FindingCriteria.html - // [Severity levels for GuardDuty findings]: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html#guardduty_findings-severity // // This member is required. FindingCriteria *types.FindingCriteria diff --git a/service/guardduty/api_op_DescribeMalwareScans.go b/service/guardduty/api_op_DescribeMalwareScans.go index 644c095a1b1..a391c28a39f 100644 --- a/service/guardduty/api_op_DescribeMalwareScans.go +++ b/service/guardduty/api_op_DescribeMalwareScans.go @@ -71,7 +71,8 @@ type DescribeMalwareScansInput struct { type DescribeMalwareScansOutput struct { - // Contains information about malware scans. + // Contains information about malware scans associated with GuardDuty Malware + // Protection for EC2. // // This member is required. Scans []types.Scan diff --git a/service/guardduty/api_op_UpdateOrganizationConfiguration.go b/service/guardduty/api_op_UpdateOrganizationConfiguration.go index f20f645aaa1..62c56d12e15 100644 --- a/service/guardduty/api_op_UpdateOrganizationConfiguration.go +++ b/service/guardduty/api_op_UpdateOrganizationConfiguration.go @@ -53,8 +53,10 @@ type UpdateOrganizationConfigurationInput struct { // This member is required. DetectorId *string - // Represents whether or not to automatically enable member accounts in the - // organization. + // Represents whether to automatically enable member accounts in the organization. + // This applies to only new member accounts, not the existing member accounts. When + // a new account joins the organization, the chosen features will be enabled for + // them by default. // // Even though this is still supported, we recommend using // AutoEnableOrganizationMembers to achieve the similar results. You must provide a diff --git a/service/guardduty/types/types.go b/service/guardduty/types/types.go index bd4aa5c7609..c57a801ef47 100644 --- a/service/guardduty/types/types.go +++ b/service/guardduty/types/types.go @@ -2371,6 +2371,9 @@ type Organization struct { // A list of additional configurations which will be configured for the // organization. +// +// Additional configuration applies to only GuardDuty Runtime Monitoring +// protection plan. type OrganizationAdditionalConfiguration struct { // The status of the additional configuration that will be configured for the @@ -2394,7 +2397,8 @@ type OrganizationAdditionalConfiguration struct { AutoEnable OrgFeatureStatus // The name of the additional configuration that will be configured for the - // organization. + // organization. These values are applicable to only Runtime Monitoring protection + // plan. Name OrgFeatureAdditionalConfiguration noSmithyDocumentSerde @@ -2425,7 +2429,8 @@ type OrganizationAdditionalConfigurationResult struct { AutoEnable OrgFeatureStatus // The name of the additional configuration that is configured for the member - // accounts within the organization. + // accounts within the organization. These values are applicable to only Runtime + // Monitoring protection plan. Name OrgFeatureAdditionalConfiguration noSmithyDocumentSerde @@ -3454,7 +3459,8 @@ type S3ObjectDetail struct { noSmithyDocumentSerde } -// Contains information about a malware scan. +// Contains information about malware scans associated with GuardDuty Malware +// Protection for EC2. type Scan struct { // The ID for the account that belongs to the scan. @@ -3473,7 +3479,7 @@ type Scan struct { // List of volumes that were attached to the original instance to be scanned. AttachedVolumes []VolumeDetail - // The unique ID of the detector that the request is associated with. + // The unique ID of the detector that is associated with the request. // // To find the detectorId in the current Region, see the Settings page in the // GuardDuty console, or run the [ListDetectors]API. diff --git a/service/networkfirewall/internal/endpoints/endpoints.go b/service/networkfirewall/internal/endpoints/endpoints.go index 4c38d18a9ef..0bcd06394eb 100644 --- a/service/networkfirewall/internal/endpoints/endpoints.go +++ b/service/networkfirewall/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/organizations/internal/endpoints/endpoints.go b/service/organizations/internal/endpoints/endpoints.go index ec0bf3b3c25..ca2f175d598 100644 --- a/service/organizations/internal/endpoints/endpoints.go +++ b/service/organizations/internal/endpoints/endpoints.go @@ -253,8 +253,19 @@ 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: "organizations.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-isob-east-1", + }, + }, + }, }, { ID: "aws-iso-e", diff --git a/service/route53domains/types/enums.go b/service/route53domains/types/enums.go index fae9fb69355..be9619e9993 100644 --- a/service/route53domains/types/enums.go +++ b/service/route53domains/types/enums.go @@ -742,6 +742,7 @@ const ( OperationTypeInternalTransferInDomain OperationType = "INTERNAL_TRANSFER_IN_DOMAIN" OperationTypeReleaseToGandi OperationType = "RELEASE_TO_GANDI" OperationTypeTransferOnRenew OperationType = "TRANSFER_ON_RENEW" + OperationTypeRestoreDomain OperationType = "RESTORE_DOMAIN" ) // Values returns all known values for OperationType. Note that this can be @@ -770,6 +771,7 @@ func (OperationType) Values() []OperationType { "INTERNAL_TRANSFER_IN_DOMAIN", "RELEASE_TO_GANDI", "TRANSFER_ON_RENEW", + "RESTORE_DOMAIN", } } From f4602b1b4dfd5e84c4c25a99b674b16053de1e06 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 12 Dec 2024 19:44:41 +0000 Subject: [PATCH 13/17] Release 2024-12-12 --- .changelog/0239a2bef04048d89ed20f62bb5c68ad.json | 8 -------- .changelog/1c8626820e62415a8bc89f3972398b0d.json | 8 -------- .changelog/73daebd545e8475c8ec6957d106ba9ce.json | 8 -------- .changelog/bc4127c64d09473e9a74180173056107.json | 8 -------- .changelog/d99b61b4379c48a282978e55d9f78d5b.json | 8 -------- CHANGELOG.md | 14 ++++++++++++++ service/connect/CHANGELOG.md | 4 ++++ service/connect/go_module_metadata.go | 2 +- service/databasemigrationservice/CHANGELOG.md | 4 ++++ .../databasemigrationservice/go_module_metadata.go | 2 +- service/glue/CHANGELOG.md | 4 ++++ service/glue/go_module_metadata.go | 2 +- service/guardduty/CHANGELOG.md | 4 ++++ service/guardduty/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 6 +++--- service/networkfirewall/CHANGELOG.md | 4 ++++ service/networkfirewall/go_module_metadata.go | 2 +- service/organizations/CHANGELOG.md | 4 ++++ service/organizations/go_module_metadata.go | 2 +- service/route53domains/CHANGELOG.md | 4 ++++ service/route53domains/go_module_metadata.go | 2 +- 21 files changed, 52 insertions(+), 50 deletions(-) delete mode 100644 .changelog/0239a2bef04048d89ed20f62bb5c68ad.json delete mode 100644 .changelog/1c8626820e62415a8bc89f3972398b0d.json delete mode 100644 .changelog/73daebd545e8475c8ec6957d106ba9ce.json delete mode 100644 .changelog/bc4127c64d09473e9a74180173056107.json delete mode 100644 .changelog/d99b61b4379c48a282978e55d9f78d5b.json diff --git a/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json b/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json deleted file mode 100644 index 8b730074414..00000000000 --- a/.changelog/0239a2bef04048d89ed20f62bb5c68ad.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "0239a2be-f040-48d8-9ed2-0f62bb5c68ad", - "type": "feature", - "description": "Configure holidays and other overrides to hours of operation in advance. During contact handling, Amazon Connect automatically checks for overrides and provides customers with an appropriate flow path. After an override period passes call center automatically reverts to standard hours of operation.", - "modules": [ - "service/connect" - ] -} \ No newline at end of file diff --git a/.changelog/1c8626820e62415a8bc89f3972398b0d.json b/.changelog/1c8626820e62415a8bc89f3972398b0d.json deleted file mode 100644 index 90dc8f9d0b4..00000000000 --- a/.changelog/1c8626820e62415a8bc89f3972398b0d.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "1c862682-0e62-415a-8bc8-9f3972398b0d", - "type": "documentation", - "description": "Improved descriptions for certain APIs.", - "modules": [ - "service/guardduty" - ] -} \ No newline at end of file diff --git a/.changelog/73daebd545e8475c8ec6957d106ba9ce.json b/.changelog/73daebd545e8475c8ec6957d106ba9ce.json deleted file mode 100644 index e4e910e0a15..00000000000 --- a/.changelog/73daebd545e8475c8ec6957d106ba9ce.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "73daebd5-45e8-475c-8ec6-957d106ba9ce", - "type": "feature", - "description": "To support customer-managed encryption in Data Quality to allow customers encrypt data with their own KMS key, we will add a DataQualityEncryption field to the SecurityConfiguration API where customers can provide their KMS keys.", - "modules": [ - "service/glue" - ] -} \ No newline at end of file diff --git a/.changelog/bc4127c64d09473e9a74180173056107.json b/.changelog/bc4127c64d09473e9a74180173056107.json deleted file mode 100644 index 1fe06bf4c1e..00000000000 --- a/.changelog/bc4127c64d09473e9a74180173056107.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "bc4127c6-4d09-473e-9a74-180173056107", - "type": "feature", - "description": "This release includes the following API updates: added the enumeration type RESTORE_DOMAIN to the OperationType; constrained the Price attribute to non-negative values; updated the LangCode to allow 2 or 3 alphabetical characters.", - "modules": [ - "service/route53domains" - ] -} \ No newline at end of file diff --git a/.changelog/d99b61b4379c48a282978e55d9f78d5b.json b/.changelog/d99b61b4379c48a282978e55d9f78d5b.json deleted file mode 100644 index 02866877234..00000000000 --- a/.changelog/d99b61b4379c48a282978e55d9f78d5b.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "d99b61b4-379c-48a2-8297-8e55d9f78d5b", - "type": "feature", - "description": "Add parameters to support for kerberos authentication. Add parameter for disabling the Unicode source filter with PostgreSQL settings. Add parameter to use large integer value with Kinesis/Kafka settings.", - "modules": [ - "service/databasemigrationservice" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 800f23dd6c9..4666633119e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# Release (2024-12-12) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.121.0](service/connect/CHANGELOG.md#v11210-2024-12-12) + * **Feature**: Configure holidays and other overrides to hours of operation in advance. During contact handling, Amazon Connect automatically checks for overrides and provides customers with an appropriate flow path. After an override period passes call center automatically reverts to standard hours of operation. +* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.45.0](service/databasemigrationservice/CHANGELOG.md#v1450-2024-12-12) + * **Feature**: Add parameters to support for kerberos authentication. Add parameter for disabling the Unicode source filter with PostgreSQL settings. Add parameter to use large integer value with Kinesis/Kafka settings. +* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.104.0](service/glue/CHANGELOG.md#v11040-2024-12-12) + * **Feature**: To support customer-managed encryption in Data Quality to allow customers encrypt data with their own KMS key, we will add a DataQualityEncryption field to the SecurityConfiguration API where customers can provide their KMS keys. +* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.52.1](service/guardduty/CHANGELOG.md#v1521-2024-12-12) + * **Documentation**: Improved descriptions for certain APIs. +* `github.com/aws/aws-sdk-go-v2/service/route53domains`: [v1.28.0](service/route53domains/CHANGELOG.md#v1280-2024-12-12) + * **Feature**: This release includes the following API updates: added the enumeration type RESTORE_DOMAIN to the OperationType; constrained the Price attribute to non-negative values; updated the LangCode to allow 2 or 3 alphabetical characters. + # Release (2024-12-11) ## General Highlights diff --git a/service/connect/CHANGELOG.md b/service/connect/CHANGELOG.md index 8283f6d0646..c9d9bea8e12 100644 --- a/service/connect/CHANGELOG.md +++ b/service/connect/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.121.0 (2024-12-12) + +* **Feature**: Configure holidays and other overrides to hours of operation in advance. During contact handling, Amazon Connect automatically checks for overrides and provides customers with an appropriate flow path. After an override period passes call center automatically reverts to standard hours of operation. + # 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. diff --git a/service/connect/go_module_metadata.go b/service/connect/go_module_metadata.go index 3cfb81a4ce6..39870858d1e 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.120.0" +const goModuleVersion = "1.121.0" diff --git a/service/databasemigrationservice/CHANGELOG.md b/service/databasemigrationservice/CHANGELOG.md index f68e07b1682..eb8ec8f9fc6 100644 --- a/service/databasemigrationservice/CHANGELOG.md +++ b/service/databasemigrationservice/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.45.0 (2024-12-12) + +* **Feature**: Add parameters to support for kerberos authentication. Add parameter for disabling the Unicode source filter with PostgreSQL settings. Add parameter to use large integer value with Kinesis/Kafka settings. + # v1.44.5 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/databasemigrationservice/go_module_metadata.go b/service/databasemigrationservice/go_module_metadata.go index 9f158701906..fd78fb2b296 100644 --- a/service/databasemigrationservice/go_module_metadata.go +++ b/service/databasemigrationservice/go_module_metadata.go @@ -3,4 +3,4 @@ package databasemigrationservice // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.44.5" +const goModuleVersion = "1.45.0" diff --git a/service/glue/CHANGELOG.md b/service/glue/CHANGELOG.md index 7d83905e6ec..5aa9beb4343 100644 --- a/service/glue/CHANGELOG.md +++ b/service/glue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.104.0 (2024-12-12) + +* **Feature**: To support customer-managed encryption in Data Quality to allow customers encrypt data with their own KMS key, we will add a DataQualityEncryption field to the SecurityConfiguration API where customers can provide their KMS keys. + # v1.103.0 (2024-12-03.2) * **Feature**: This release includes(1)Zero-ETL integration to ingest data from 3P SaaS and DynamoDB to Redshift/Redlake (2)new properties on Connections to enable reuse; new connection APIs for retrieve/preview metadata (3)support of CRUD operations for Multi-catalog (4)support of automatic statistics collections diff --git a/service/glue/go_module_metadata.go b/service/glue/go_module_metadata.go index 05aaf970aa4..7b543085722 100644 --- a/service/glue/go_module_metadata.go +++ b/service/glue/go_module_metadata.go @@ -3,4 +3,4 @@ package glue // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.103.0" +const goModuleVersion = "1.104.0" diff --git a/service/guardduty/CHANGELOG.md b/service/guardduty/CHANGELOG.md index ef96b63f603..2161d8e62df 100644 --- a/service/guardduty/CHANGELOG.md +++ b/service/guardduty/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.52.1 (2024-12-12) + +* **Documentation**: Improved descriptions for certain APIs. + # v1.52.0 (2024-12-02) * **Feature**: Add new Multi Domain Correlation findings. diff --git a/service/guardduty/go_module_metadata.go b/service/guardduty/go_module_metadata.go index ec4a6228a65..366b47e13b6 100644 --- a/service/guardduty/go_module_metadata.go +++ b/service/guardduty/go_module_metadata.go @@ -3,4 +3,4 @@ package guardduty // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.52.0" +const goModuleVersion = "1.52.1" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 6204b0415c3..2432ee474d4 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -23,7 +23,7 @@ require ( 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 + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0 github.com/aws/aws-sdk-go-v2/service/devicefarm v1.28.7 github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1 github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 @@ -43,7 +43,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/firehose v1.35.2 github.com/aws/aws-sdk-go-v2/service/gamelift v1.37.2 github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7 - github.com/aws/aws-sdk-go-v2/service/glue v1.103.0 + github.com/aws/aws-sdk-go-v2/service/glue v1.104.0 github.com/aws/aws-sdk-go-v2/service/health v1.29.1 github.com/aws/aws-sdk-go-v2/service/iam v1.38.2 github.com/aws/aws-sdk-go-v2/service/inspector v1.25.7 @@ -60,7 +60,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0 github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8 github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3 - github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7 + github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0 github.com/aws/aws-sdk-go-v2/service/route53resolver v1.34.2 github.com/aws/aws-sdk-go-v2/service/s3 v1.71.0 github.com/aws/aws-sdk-go-v2/service/s3control v1.52.0 diff --git a/service/networkfirewall/CHANGELOG.md b/service/networkfirewall/CHANGELOG.md index 92952b42fa8..8047f9e44b7 100644 --- a/service/networkfirewall/CHANGELOG.md +++ b/service/networkfirewall/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.44.5 (2024-12-12) + +* No change notes available for this release. + # v1.44.4 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/networkfirewall/go_module_metadata.go b/service/networkfirewall/go_module_metadata.go index 0e84594598c..cfb1398d9b8 100644 --- a/service/networkfirewall/go_module_metadata.go +++ b/service/networkfirewall/go_module_metadata.go @@ -3,4 +3,4 @@ package networkfirewall // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.44.4" +const goModuleVersion = "1.44.5" diff --git a/service/organizations/CHANGELOG.md b/service/organizations/CHANGELOG.md index cf9bd0410b4..2d8e34f9648 100644 --- a/service/organizations/CHANGELOG.md +++ b/service/organizations/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.36.1 (2024-12-12) + +* No change notes available for this release. + # v1.36.0 (2024-12-02) * **Feature**: Add support for policy operations on the DECLARATIVE_POLICY_EC2 policy type. diff --git a/service/organizations/go_module_metadata.go b/service/organizations/go_module_metadata.go index 8dae7a084b2..cfd529ea9dd 100644 --- a/service/organizations/go_module_metadata.go +++ b/service/organizations/go_module_metadata.go @@ -3,4 +3,4 @@ package organizations // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.36.0" +const goModuleVersion = "1.36.1" diff --git a/service/route53domains/CHANGELOG.md b/service/route53domains/CHANGELOG.md index c7c8cb72c00..48a21c9982e 100644 --- a/service/route53domains/CHANGELOG.md +++ b/service/route53domains/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.0 (2024-12-12) + +* **Feature**: This release includes the following API updates: added the enumeration type RESTORE_DOMAIN to the OperationType; constrained the Price attribute to non-negative values; updated the LangCode to allow 2 or 3 alphabetical characters. + # v1.27.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/route53domains/go_module_metadata.go b/service/route53domains/go_module_metadata.go index 681327c65cd..f725a91862f 100644 --- a/service/route53domains/go_module_metadata.go +++ b/service/route53domains/go_module_metadata.go @@ -3,4 +3,4 @@ package route53domains // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.7" +const goModuleVersion = "1.28.0" From bc23383117541f61743e01824444a5044cc312bc Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 13 Dec 2024 19:17:32 +0000 Subject: [PATCH 14/17] Update API model --- .../sdk-codegen/aws-models/cloudhsm-v2.json | 86 +++++- .../aws-models/cloudwatch-logs.json | 4 +- codegen/sdk-codegen/aws-models/ec2.json | 32 +- codegen/sdk-codegen/aws-models/eks.json | 50 ++- .../sdk-codegen/aws-models/mediaconnect.json | 33 ++ .../aws-models/networkmanager.json | 2 +- .../aws-models/servicediscovery.json | 291 +++++++++++++++++- 7 files changed, 479 insertions(+), 19 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/cloudhsm-v2.json b/codegen/sdk-codegen/aws-models/cloudhsm-v2.json index bd920e51783..18c34751c07 100644 --- a/codegen/sdk-codegen/aws-models/cloudhsm-v2.json +++ b/codegen/sdk-codegen/aws-models/cloudhsm-v2.json @@ -1350,6 +1350,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.cloudhsmv2#CloudHsmResourceLimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudhsmv2#errorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because it exceeds an CloudHSM limit.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.cloudhsmv2#CloudHsmResourceNotFoundException": { "type": "structure", "members": { @@ -1467,6 +1479,12 @@ "smithy.api#documentation": "

The identifier (ID) of the virtual private cloud (VPC) that contains the\n cluster.

" } }, + "NetworkType": { + "target": "com.amazonaws.cloudhsmv2#NetworkType", + "traits": { + "smithy.api#documentation": "

The cluster's NetworkType can be set to either IPV4 (which is the default) or DUALSTACK.\n When set to IPV4, communication between your application and the Hardware Security Modules (HSMs) is restricted to the IPv4 protocol only.\n In contrast, the DUALSTACK network type enables communication over both the IPv4 and IPv6 protocols.\n To use the DUALSTACK option, you'll need to configure your Virtual Private Cloud (VPC) and subnets to support both IPv4 and IPv6. This involves adding IPv6 Classless Inter-Domain Routing (CIDR) blocks to the existing IPv4 CIDR blocks in your subnets.\n The choice between IPV4 and DUALSTACK network types determines the flexibility of the network addressing setup for your cluster. The DUALSTACK option provides more flexibility by allowing both IPv4 and IPv6 communication.

" + } + }, "Certificates": { "target": "com.amazonaws.cloudhsmv2#Certificates", "traits": { @@ -1552,6 +1570,18 @@ "smithy.api#enumValue": "UPDATE_IN_PROGRESS" } }, + "MODIFY_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODIFY_IN_PROGRESS" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, "DELETE_IN_PROGRESS": { "target": "smithy.api#Unit", "traits": { @@ -1722,6 +1752,12 @@ "smithy.api#required": {} } }, + "NetworkType": { + "target": "com.amazonaws.cloudhsmv2#NetworkType", + "traits": { + "smithy.api#documentation": "

The NetworkType to create a cluster with. The allowed values are\n IPV4 and DUALSTACK.\n

" + } + }, "TagList": { "target": "com.amazonaws.cloudhsmv2#TagList", "traits": { @@ -2208,7 +2244,20 @@ "inputToken": "NextToken", "outputToken": "NextToken", "pageSize": "MaxResults" - } + }, + "smithy.test#smokeTests": [ + { + "id": "DescribeClustersSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] } }, "com.amazonaws.cloudhsmv2#DescribeClustersRequest": { @@ -2421,6 +2470,12 @@ "smithy.api#documentation": "

The IP address of the HSM's elastic network interface (ENI).

" } }, + "EniIpV6": { + "target": "com.amazonaws.cloudhsmv2#IpV6Address", + "traits": { + "smithy.api#documentation": "

The IPv6 address (if any) of the HSM's elastic network interface (ENI).

" + } + }, "HsmId": { "target": "com.amazonaws.cloudhsmv2#HsmId", "traits": { @@ -2586,6 +2641,15 @@ "smithy.api#pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$" } }, + "com.amazonaws.cloudhsmv2#IpV6Address": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.cloudhsmv2#ListTags": { "type": "operation", "input": { @@ -2804,6 +2868,23 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudhsmv2#NetworkType": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV4" + } + }, + "DUALSTACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DUALSTACK" + } + } + } + }, "com.amazonaws.cloudhsmv2#NextToken": { "type": "string", "traits": { @@ -3088,6 +3169,9 @@ { "target": "com.amazonaws.cloudhsmv2#CloudHsmInvalidRequestException" }, + { + "target": "com.amazonaws.cloudhsmv2#CloudHsmResourceLimitExceededException" + }, { "target": "com.amazonaws.cloudhsmv2#CloudHsmResourceNotFoundException" }, diff --git a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json index b0595b8e02a..d4a1f0549b8 100644 --- a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json +++ b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json @@ -5741,7 +5741,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 256 + "max": 50 }, "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]+$" } @@ -5751,7 +5751,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 256 + "max": 50 }, "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]+$" } diff --git a/codegen/sdk-codegen/aws-models/ec2.json b/codegen/sdk-codegen/aws-models/ec2.json index 0d54e9f911e..92dfa74af68 100644 --- a/codegen/sdk-codegen/aws-models/ec2.json +++ b/codegen/sdk-codegen/aws-models/ec2.json @@ -26471,7 +26471,7 @@ "target": "com.amazonaws.ec2#DeleteSecurityGroupRequest" }, "output": { - "target": "smithy.api#Unit" + "target": "com.amazonaws.ec2#DeleteSecurityGroupResult" }, "traits": { "smithy.api#documentation": "

Deletes a security group.

\n

If you attempt to delete a security group that is associated with an instance or network interface, is\n\t\t\t referenced by another security group in the same VPC, or has a VPC association, the operation fails with\n\t\t\t\tDependencyViolation.

", @@ -26515,6 +26515,30 @@ "smithy.api#input": {} } }, + "com.amazonaws.ec2#DeleteSecurityGroupResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the deleted security group.

", + "smithy.api#xmlName": "groupId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#DeleteSnapshot": { "type": "operation", "input": { @@ -52254,7 +52278,7 @@ } }, "traits": { - "smithy.api#documentation": "

A filter name and value pair that is used to return a more specific list of results from a describe operation. \n Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

\n

If you specify multiple filters, the filters are joined with an AND, and the request returns only \n results that match all of the specified filters.

" + "smithy.api#documentation": "

A filter name and value pair that is used to return a more specific list of results from a describe operation. \n Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

\n

If you specify multiple filters, the filters are joined with an AND, and the request returns only \n results that match all of the specified filters.

\n

For more information, see List and filter using the CLI and API in the Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#FilterList": { @@ -102869,7 +102893,7 @@ "target": "com.amazonaws.ec2#StartDeclarativePoliciesReportResult" }, "traits": { - "smithy.api#documentation": "

Generates an account status report. The report is generated asynchronously, and can\n take several hours to complete.

\n

The report provides the current status of all attributes supported by declarative\n policies for the accounts within the specified scope. The scope is determined by the\n specified TargetId, which can represent an individual account, or all the\n accounts that fall under the specified organizational unit (OU) or root (the entire\n Amazon Web Services Organization).

\n

The report is saved to your specified S3 bucket, using the following path structure\n (with the italicized placeholders representing your specific\n values):

\n

\n s3://amzn-s3-demo-bucket/your-optional-s3-prefix/ec2_targetId_reportId_yyyyMMddThhmmZ.csv\n

\n

\n Prerequisites for generating a report\n

\n
    \n
  • \n

    The StartDeclarativePoliciesReport API can only be called by the\n management account or delegated administrators for the organization.

    \n
  • \n
  • \n

    An S3 bucket must be available before generating the report (you can create a\n new one or use an existing one), and it must have an appropriate bucket policy.\n For a sample S3 policy, see Sample Amazon S3 policy under\n .

    \n
  • \n
  • \n

    Trusted access must be enabled for the service for which the declarative\n policy will enforce a baseline configuration. If you use the Amazon Web Services Organizations\n console, this is done automatically when you enable declarative policies. The\n API uses the following service principal to identify the EC2 service:\n ec2.amazonaws.com. For more information on how to enable\n trusted access with the Amazon Web Services CLI and Amazon Web Services SDKs, see Using\n Organizations with other Amazon Web Services services in the\n Amazon Web Services Organizations User Guide.

    \n
  • \n
  • \n

    Only one report per organization can be generated at a time. Attempting to\n generate a report while another is in progress will result in an error.

    \n
  • \n
\n

For more information, including the required IAM permissions to run this API, see\n Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" + "smithy.api#documentation": "

Generates an account status report. The report is generated asynchronously, and can\n take several hours to complete.

\n

The report provides the current status of all attributes supported by declarative\n policies for the accounts within the specified scope. The scope is determined by the\n specified TargetId, which can represent an individual account, or all the\n accounts that fall under the specified organizational unit (OU) or root (the entire\n Amazon Web Services Organization).

\n

The report is saved to your specified S3 bucket, using the following path structure\n (with the italicized placeholders representing your specific\n values):

\n

\n s3://amzn-s3-demo-bucket/your-optional-s3-prefix/ec2_targetId_reportId_yyyyMMddThhmmZ.csv\n

\n

\n Prerequisites for generating a report\n

\n
    \n
  • \n

    The StartDeclarativePoliciesReport API can only be called by the\n management account or delegated administrators for the organization.

    \n
  • \n
  • \n

    An S3 bucket must be available before generating the report (you can create a\n new one or use an existing one), it must be in the same Region where the report\n generation request is made, and it must have an appropriate bucket policy. For a\n sample S3 policy, see Sample Amazon S3 policy under .

    \n
  • \n
  • \n

    Trusted access must be enabled for the service for which the declarative\n policy will enforce a baseline configuration. If you use the Amazon Web Services Organizations\n console, this is done automatically when you enable declarative policies. The\n API uses the following service principal to identify the EC2 service:\n ec2.amazonaws.com. For more information on how to enable\n trusted access with the Amazon Web Services CLI and Amazon Web Services SDKs, see Using\n Organizations with other Amazon Web Services services in the\n Amazon Web Services Organizations User Guide.

    \n
  • \n
  • \n

    Only one report per organization can be generated at a time. Attempting to\n generate a report while another is in progress will result in an error.

    \n
  • \n
\n

For more information, including the required IAM permissions to run this API, see\n Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" } }, "com.amazonaws.ec2#StartDeclarativePoliciesReportRequest": { @@ -102885,7 +102909,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the S3 bucket where the report will be saved.

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

The name of the S3 bucket where the report will be saved. The bucket must be in the\n same Region where the report generation request is made.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/eks.json b/codegen/sdk-codegen/aws-models/eks.json index 06f60c4a44e..d4cc65bd5e9 100644 --- a/codegen/sdk-codegen/aws-models/eks.json +++ b/codegen/sdk-codegen/aws-models/eks.json @@ -3843,6 +3843,12 @@ "smithy.api#documentation": "

The node group update configuration.

" } }, + "nodeRepairConfig": { + "target": "com.amazonaws.eks#NodeRepairConfig", + "traits": { + "smithy.api#documentation": "

The node auto repair configuration for the node group.

" + } + }, "capacityType": { "target": "com.amazonaws.eks#CapacityTypes", "traits": { @@ -8400,6 +8406,20 @@ "smithy.api#documentation": "

Information about an Amazon EKS add-on from the Amazon Web Services Marketplace.

" } }, + "com.amazonaws.eks#NodeRepairConfig": { + "type": "structure", + "members": { + "enabled": { + "target": "com.amazonaws.eks#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable node auto repair for the node group. Node auto repair is \n disabled by default.

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

The node auto repair configuration for the node group.

" + } + }, "com.amazonaws.eks#Nodegroup": { "type": "structure", "members": { @@ -8529,6 +8549,12 @@ "smithy.api#documentation": "

The node group update configuration.

" } }, + "nodeRepairConfig": { + "target": "com.amazonaws.eks#NodeRepairConfig", + "traits": { + "smithy.api#documentation": "

The node auto repair configuration for the node group.

" + } + }, "launchTemplate": { "target": "com.amazonaws.eks#LaunchTemplateSpecification", "traits": { @@ -9383,13 +9409,13 @@ "remoteNodeNetworks": { "target": "com.amazonaws.eks#RemoteNodeNetworkList", "traits": { - "smithy.api#documentation": "

The list of network CIDRs that can contain hybrid nodes.

" + "smithy.api#documentation": "

The list of network CIDRs that can contain hybrid nodes.

\n

These CIDR blocks define the expected IP address range of the hybrid nodes that join\n the cluster. These blocks are typically determined by your network administrator.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

    \n
  • \n
  • \n

    Each block must have a route to the VPC that uses the VPC CIDR blocks, not\n public IPs or Elastic IPs. There are many options including Transit Gateway,\n Site-to-Site VPN, or Direct Connect.

    \n
  • \n
  • \n

    Each host must allow outbound connection to the EKS cluster control plane on\n TCP ports 443 and 10250.

    \n
  • \n
  • \n

    Each host must allow inbound connection from the EKS cluster control plane on\n TCP port 10250 for logs, exec and port-forward operations.

    \n
  • \n
  • \n

    Each host must allow TCP and UDP network connectivity to and from other hosts\n that are running CoreDNS on UDP port 53 for service and pod DNS\n names.

    \n
  • \n
" } }, "remotePodNetworks": { "target": "com.amazonaws.eks#RemotePodNetworkList", "traits": { - "smithy.api#documentation": "

The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes.

" + "smithy.api#documentation": "

The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes.

\n

These CIDR blocks are determined by configuring your Container Network Interface (CNI)\n plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't\n available for on-premises and edge locations.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

    \n
  • \n
" } } }, @@ -9423,12 +9449,12 @@ "cidrs": { "target": "com.amazonaws.eks#StringList", "traits": { - "smithy.api#documentation": "

A network CIDR that can contain hybrid nodes.

" + "smithy.api#documentation": "

A network CIDR that can contain hybrid nodes.

\n

These CIDR blocks define the expected IP address range of the hybrid nodes that join\n the cluster. These blocks are typically determined by your network administrator.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

    \n
  • \n
  • \n

    Each block must have a route to the VPC that uses the VPC CIDR blocks, not\n public IPs or Elastic IPs. There are many options including Transit Gateway,\n Site-to-Site VPN, or Direct Connect.

    \n
  • \n
  • \n

    Each host must allow outbound connection to the EKS cluster control plane on\n TCP ports 443 and 10250.

    \n
  • \n
  • \n

    Each host must allow inbound connection from the EKS cluster control plane on\n TCP port 10250 for logs, exec and port-forward operations.

    \n
  • \n
  • \n

    Each host must allow TCP and UDP network connectivity to and from other hosts\n that are running CoreDNS on UDP port 53 for service and pod DNS\n names.

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

A network CIDR that can contain hybrid nodes.

" + "smithy.api#documentation": "

A network CIDR that can contain hybrid nodes.

\n

These CIDR blocks define the expected IP address range of the hybrid nodes that join\n the cluster. These blocks are typically determined by your network administrator.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

    \n
  • \n
  • \n

    Each block must have a route to the VPC that uses the VPC CIDR blocks, not\n public IPs or Elastic IPs. There are many options including Transit Gateway,\n Site-to-Site VPN, or Direct Connect.

    \n
  • \n
  • \n

    Each host must allow outbound connection to the EKS cluster control plane on\n TCP ports 443 and 10250.

    \n
  • \n
  • \n

    Each host must allow inbound connection from the EKS cluster control plane on\n TCP port 10250 for logs, exec and port-forward operations.

    \n
  • \n
  • \n

    Each host must allow TCP and UDP network connectivity to and from other hosts\n that are running CoreDNS on UDP port 53 for service and pod DNS\n names.

    \n
  • \n
" } }, "com.amazonaws.eks#RemoteNodeNetworkList": { @@ -9449,12 +9475,12 @@ "cidrs": { "target": "com.amazonaws.eks#StringList", "traits": { - "smithy.api#documentation": "

A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes.

" + "smithy.api#documentation": "

A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes.

\n

These CIDR blocks are determined by configuring your Container Network Interface (CNI)\n plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't\n available for on-premises and edge locations.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

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

A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes.

" + "smithy.api#documentation": "

A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes.

\n

These CIDR blocks are determined by configuring your Container Network Interface (CNI)\n plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't\n available for on-premises and edge locations.

\n

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, \n 10.2.0.0/16).

\n

It must satisfy the following requirements:

\n
    \n
  • \n

    Each block must be within an IPv4 RFC-1918 network range. Minimum\n allowed size is /24, maximum allowed size is /8. Publicly-routable addresses\n aren't supported.

    \n
  • \n
  • \n

    Each block cannot overlap with the range of the VPC CIDR blocks for your EKS\n resources, or the block of the Kubernetes service IP range.

    \n
  • \n
" } }, "com.amazonaws.eks#RemotePodNetworkList": { @@ -10614,6 +10640,12 @@ "smithy.api#documentation": "

The node group update configuration.

" } }, + "nodeRepairConfig": { + "target": "com.amazonaws.eks#NodeRepairConfig", + "traits": { + "smithy.api#documentation": "

The node auto repair configuration for the node group.

" + } + }, "clientRequestToken": { "target": "com.amazonaws.eks#String", "traits": { @@ -10902,6 +10934,12 @@ "smithy.api#enumValue": "MaxUnavailablePercentage" } }, + "NODE_REPAIR_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NodeRepairEnabled" + } + }, "CONFIGURATION_VALUES": { "target": "smithy.api#Unit", "traits": { diff --git a/codegen/sdk-codegen/aws-models/mediaconnect.json b/codegen/sdk-codegen/aws-models/mediaconnect.json index 69a8937f51a..191555a3fba 100644 --- a/codegen/sdk-codegen/aws-models/mediaconnect.json +++ b/codegen/sdk-codegen/aws-models/mediaconnect.json @@ -137,6 +137,12 @@ "smithy.api#required": {} } }, + "MulticastSourceSettings": { + "target": "com.amazonaws.mediaconnect#MulticastSourceSettings", + "traits": { + "smithy.api#jsonName": "multicastSourceSettings" + } + }, "Name": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -1276,6 +1282,12 @@ "smithy.api#required": {} } }, + "MulticastSourceSettings": { + "target": "com.amazonaws.mediaconnect#MulticastSourceSettings", + "traits": { + "smithy.api#jsonName": "multicastSourceSettings" + } + }, "Name": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -6594,6 +6606,21 @@ "smithy.api#documentation": "The settings for source monitoring." } }, + "com.amazonaws.mediaconnect#MulticastSourceSettings": { + "type": "structure", + "members": { + "MulticastSourceIp": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address of the source for source-specific multicast (SSM).", + "smithy.api#jsonName": "multicastSourceIp" + } + } + }, + "traits": { + "smithy.api#documentation": "The settings related to the multicast source." + } + }, "com.amazonaws.mediaconnect#NetworkInterfaceType": { "type": "enum", "members": { @@ -9006,6 +9033,12 @@ "smithy.api#jsonName": "multicastIp" } }, + "MulticastSourceSettings": { + "target": "com.amazonaws.mediaconnect#MulticastSourceSettings", + "traits": { + "smithy.api#jsonName": "multicastSourceSettings" + } + }, "NetworkName": { "target": "com.amazonaws.mediaconnect#__string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/networkmanager.json b/codegen/sdk-codegen/aws-models/networkmanager.json index 8000d04bff4..2019fcd2fbe 100644 --- a/codegen/sdk-codegen/aws-models/networkmanager.json +++ b/codegen/sdk-codegen/aws-models/networkmanager.json @@ -12880,7 +12880,7 @@ "EdgeLocations": { "target": "com.amazonaws.networkmanager#ExternalRegionCodeList", "traits": { - "smithy.api#documentation": "

One or more edge locations to update for the Direct Connect gateway attachment. The updated array of edge locations overwrites the previous array of locations. EdgeLocations is only used for Direct Connect gateway attachments. Do

" + "smithy.api#documentation": "

One or more edge locations to update for the Direct Connect gateway attachment. The updated array of edge locations overwrites the previous array of locations. EdgeLocations is only used for Direct Connect gateway attachments.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/servicediscovery.json b/codegen/sdk-codegen/aws-models/servicediscovery.json index 483b9e06716..6e5f392f14e 100644 --- a/codegen/sdk-codegen/aws-models/servicediscovery.json +++ b/codegen/sdk-codegen/aws-models/servicediscovery.json @@ -636,7 +636,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a specified service. If the service still contains one or more registered instances, the request\n fails.

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

Deletes a specified service and all associated service attributes. If the service still contains one or more registered instances, the request\n fails.

", "smithy.api#examples": [ { "title": "Example: Delete service", @@ -649,6 +649,68 @@ ] } }, + "com.amazonaws.servicediscovery#DeleteServiceAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicediscovery#DeleteServiceAttributesRequest" + }, + "output": { + "target": "com.amazonaws.servicediscovery#DeleteServiceAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicediscovery#InvalidInput" + }, + { + "target": "com.amazonaws.servicediscovery#ServiceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes specific attributes associated with a service.

", + "smithy.api#examples": [ + { + "title": "DeleteServiceAttributes example", + "documentation": "Example: Delete service attribute by providing attribute key and service ID", + "input": { + "Attributes": [ + "port" + ], + "ServiceId": "srv-e4anhexample0004" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.servicediscovery#DeleteServiceAttributesRequest": { + "type": "structure", + "members": { + "ServiceId": { + "target": "com.amazonaws.servicediscovery#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the service from which the attributes will be deleted.

", + "smithy.api#required": {} + } + }, + "Attributes": { + "target": "com.amazonaws.servicediscovery#ServiceAttributeKeyList", + "traits": { + "smithy.api#documentation": "

A list of keys corresponding to each attribute that you want to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.servicediscovery#DeleteServiceAttributesResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.servicediscovery#DeleteServiceRequest": { "type": "structure", "members": { @@ -978,13 +1040,13 @@ "DnsRecords": { "target": "com.amazonaws.servicediscovery#DnsRecordList", "traits": { - "smithy.api#documentation": "

An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map\n to create when you register an instance.

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

An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map\n to create when you register an instance.

\n \n

The record type of a service specified in a DnsRecord object can't be updated. To change a record type, you need to delete the service and recreate it with a new\n DnsConfig.

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

A complex type that contains information about the Amazon Route 53 DNS records that you want Cloud Map to create\n when you register an instance.

\n \n

The record types of a service can only be changed by deleting the service and recreating it with a new\n Dnsconfig.

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

A complex type that contains information about the Amazon Route 53 DNS records that you want Cloud Map to create\n when you register an instance.

" } }, "com.amazonaws.servicediscovery#DnsConfigChange": { @@ -1444,6 +1506,72 @@ "smithy.api#documentation": "

Gets the settings for a specified service.

" } }, + "com.amazonaws.servicediscovery#GetServiceAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicediscovery#GetServiceAttributesRequest" + }, + "output": { + "target": "com.amazonaws.servicediscovery#GetServiceAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicediscovery#InvalidInput" + }, + { + "target": "com.amazonaws.servicediscovery#ServiceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the attributes associated with a specified service.

", + "smithy.api#examples": [ + { + "title": "GetServiceAttributes Example", + "documentation": "This example gets the attributes for a specified service.", + "input": { + "ServiceId": "srv-e4anhexample0004" + }, + "output": { + "ServiceAttributes": { + "Attributes": { + "port": "80" + }, + "ServiceArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004" + } + } + } + ] + } + }, + "com.amazonaws.servicediscovery#GetServiceAttributesRequest": { + "type": "structure", + "members": { + "ServiceId": { + "target": "com.amazonaws.servicediscovery#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the service that you want to get attributes for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.servicediscovery#GetServiceAttributesResponse": { + "type": "structure", + "members": { + "ServiceAttributes": { + "target": "com.amazonaws.servicediscovery#ServiceAttributes", + "traits": { + "smithy.api#documentation": "

A complex type that contains the service ARN and a list of attribute key-value pairs associated with the service.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.servicediscovery#GetServiceRequest": { "type": "structure", "members": { @@ -2424,7 +2552,8 @@ "smithy.api#length": { "min": 0, "max": 1024 - } + }, + "smithy.api#pattern": "^[!-~]{1,1024}$" } }, "com.amazonaws.servicediscovery#NamespaceNameHttp": { @@ -3267,6 +3396,9 @@ { "target": "com.amazonaws.servicediscovery#DeleteService" }, + { + "target": "com.amazonaws.servicediscovery#DeleteServiceAttributes" + }, { "target": "com.amazonaws.servicediscovery#DeregisterInstance" }, @@ -3291,6 +3423,9 @@ { "target": "com.amazonaws.servicediscovery#GetService" }, + { + "target": "com.amazonaws.servicediscovery#GetServiceAttributes" + }, { "target": "com.amazonaws.servicediscovery#ListInstances" }, @@ -3329,6 +3464,9 @@ }, { "target": "com.amazonaws.servicediscovery#UpdateService" + }, + { + "target": "com.amazonaws.servicediscovery#UpdateServiceAttributes" } ], "traits": { @@ -4540,6 +4678,84 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.servicediscovery#ServiceAttributeKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.servicediscovery#ServiceAttributeKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.servicediscovery#ServiceAttributeKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, + "com.amazonaws.servicediscovery#ServiceAttributeValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.servicediscovery#ServiceAttributes": { + "type": "structure", + "members": { + "ServiceArn": { + "target": "com.amazonaws.servicediscovery#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the service that the attributes are associated with.

" + } + }, + "Attributes": { + "target": "com.amazonaws.servicediscovery#ServiceAttributesMap", + "traits": { + "smithy.api#documentation": "

A string map that contains the following information for the service that you specify in\n ServiceArn:

\n
    \n
  • \n

    The attributes that apply to the service.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n

You can specify a total of 30 attributes.

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

A complex type that contains information about attributes associated with a specific service.

" + } + }, + "com.amazonaws.servicediscovery#ServiceAttributesLimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.servicediscovery#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The attribute can't be added to the service because you've exceeded the quota for the number of attributes you can add to a service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.servicediscovery#ServiceAttributesMap": { + "type": "map", + "key": { + "target": "com.amazonaws.servicediscovery#ServiceAttributeKey" + }, + "value": { + "target": "com.amazonaws.servicediscovery#ServiceAttributeValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, "com.amazonaws.servicediscovery#ServiceChange": { "type": "structure", "members": { @@ -5330,6 +5546,71 @@ ] } }, + "com.amazonaws.servicediscovery#UpdateServiceAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicediscovery#UpdateServiceAttributesRequest" + }, + "output": { + "target": "com.amazonaws.servicediscovery#UpdateServiceAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicediscovery#InvalidInput" + }, + { + "target": "com.amazonaws.servicediscovery#ServiceAttributesLimitExceededException" + }, + { + "target": "com.amazonaws.servicediscovery#ServiceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Submits a request to update a specified service to add service-level attributes.

", + "smithy.api#examples": [ + { + "title": "UpdateServiceAttributes Example", + "documentation": "This example submits a request to update the specified service to add a port attribute with the value 80.", + "input": { + "ServiceId": "srv-e4anhexample0004", + "Attributes": { + "port": "80" + } + }, + "output": {} + } + ] + } + }, + "com.amazonaws.servicediscovery#UpdateServiceAttributesRequest": { + "type": "structure", + "members": { + "ServiceId": { + "target": "com.amazonaws.servicediscovery#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the service that you want to update.

", + "smithy.api#required": {} + } + }, + "Attributes": { + "target": "com.amazonaws.servicediscovery#ServiceAttributesMap", + "traits": { + "smithy.api#documentation": "

A string map that contains attribute key-value pairs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.servicediscovery#UpdateServiceAttributesResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.servicediscovery#UpdateServiceRequest": { "type": "structure", "members": { @@ -5343,7 +5624,7 @@ "Service": { "target": "com.amazonaws.servicediscovery#ServiceChange", "traits": { - "smithy.api#documentation": "

A complex type that contains the new settings for the service.

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

A complex type that contains the new settings for the service. You can specify a maximum of 30 attributes (key-value pairs).

", "smithy.api#required": {} } } From 0551e393c8faf27d62356cc9931175497ab048d5 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 13 Dec 2024 19:17:32 +0000 Subject: [PATCH 15/17] Update endpoints model --- .../smithy/aws/go/codegen/endpoints.json | 66 ++++++++++++------- 1 file changed, 42 insertions(+), 24 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 80f78bc40c0..05a28b33ff5 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 @@ -22079,6 +22079,28 @@ } } }, + "trustedadvisor" : { + "endpoints" : { + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "trustedadvisor-fips.us-east-1.api.aws" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "trustedadvisor-fips.us-east-2.api.aws" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "trustedadvisor-fips.us-west-2.api.aws" + } + } + }, "verifiedpermissions" : { "endpoints" : { "af-south-1" : { }, @@ -26580,9 +26602,6 @@ "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" ] } ] @@ -26596,9 +26615,6 @@ }, "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" ] } ] @@ -30639,6 +30655,12 @@ } } }, + "codebuild" : { + "endpoints" : { + "us-iso-east-1" : { }, + "us-iso-west-1" : { } + } + }, "codedeploy" : { "endpoints" : { "us-iso-east-1" : { }, @@ -30702,18 +30724,8 @@ }, "dlm" : { "endpoints" : { - "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" ] - } ] - } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "dms" : { @@ -31328,6 +31340,12 @@ } } }, + "scheduler" : { + "endpoints" : { + "us-iso-east-1" : { }, + "us-iso-west-1" : { } + } + }, "secretsmanager" : { "endpoints" : { "us-iso-east-1" : { }, @@ -31615,12 +31633,7 @@ }, "dlm" : { "endpoints" : { - "us-isob-east-1" : { - "variants" : [ { - "hostname" : "dlm-fips.us-isob-east-1.api.aws.scloud", - "tags" : [ "dualstack", "fips" ] - } ] - } + "us-isob-east-1" : { } } }, "dms" : { @@ -32045,6 +32058,11 @@ } } }, + "scheduler" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "secretsmanager" : { "endpoints" : { "us-isob-east-1" : { } From 15abbee314bfccb9b8a0892d9cef2fabfe0530ed Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 13 Dec 2024 19:37:58 +0000 Subject: [PATCH 16/17] Regenerated Clients --- .../2c30a371457d45e29137a0dbfa6efca9.json | 8 + .../3550fde8f74240d8b0de0755ef513a48.json | 8 + .../3708358d0f7f440abc9ed8242d480111.json | 8 + .../3d1e692c20ca4d70be1444940d66761a.json | 8 + .../68053e24d75a49fc8a15b173cf3e95bf.json | 8 + .../95130284cce24dd29c1e24172d993fd2.json | 8 + .../c4bc0b8974b74d7c9de9e2ec9cfe2754.json | 8 + service/cloudhsmv2/api_op_CreateCluster.go | 4 + service/cloudhsmv2/deserializers.go | 96 +++ service/cloudhsmv2/serializers.go | 5 + service/cloudhsmv2/types/enums.go | 23 + service/cloudhsmv2/types/errors.go | 28 + service/cloudhsmv2/types/types.go | 16 + .../codebuild/internal/endpoints/endpoints.go | 8 + service/dlm/internal/endpoints/endpoints.go | 30 - service/ec2/api_op_DeleteSecurityGroup.go | 7 + .../api_op_StartDeclarativePoliciesReport.go | 6 +- service/ec2/deserializers.go | 92 ++- service/ec2/types/types.go | 4 + service/eks/api_op_CreateNodegroup.go | 3 + service/eks/api_op_UpdateNodegroupConfig.go | 3 + service/eks/deserializers.go | 45 ++ service/eks/serializers.go | 26 + service/eks/types/enums.go | 2 + service/eks/types/types.go | 151 +++++ service/mediaconnect/deserializers.go | 45 ++ service/mediaconnect/serializers.go | 26 + service/mediaconnect/types/types.go | 18 + ...op_UpdateDirectConnectGatewayAttachment.go | 2 +- .../scheduler/internal/endpoints/endpoints.go | 13 + .../servicediscovery/api_op_DeleteService.go | 4 +- .../api_op_DeleteServiceAttributes.go | 157 +++++ .../api_op_GetServiceAttributes.go | 158 +++++ .../servicediscovery/api_op_UpdateService.go | 3 +- .../api_op_UpdateServiceAttributes.go | 157 +++++ service/servicediscovery/deserializers.go | 637 +++++++++++++++++- service/servicediscovery/generated.json | 3 + service/servicediscovery/serializers.go | 255 +++++++ .../api_op_DeleteServiceAttributes.go.snap | 41 ++ .../api_op_GetServiceAttributes.go.snap | 41 ++ .../api_op_UpdateServiceAttributes.go.snap | 41 ++ service/servicediscovery/snapshot_test.go | 72 ++ service/servicediscovery/types/errors.go | 29 + service/servicediscovery/types/types.go | 27 +- service/servicediscovery/validators.go | 123 ++++ .../internal/endpoints/endpoints.go | 26 + 46 files changed, 2423 insertions(+), 60 deletions(-) create mode 100644 .changelog/2c30a371457d45e29137a0dbfa6efca9.json create mode 100644 .changelog/3550fde8f74240d8b0de0755ef513a48.json create mode 100644 .changelog/3708358d0f7f440abc9ed8242d480111.json create mode 100644 .changelog/3d1e692c20ca4d70be1444940d66761a.json create mode 100644 .changelog/68053e24d75a49fc8a15b173cf3e95bf.json create mode 100644 .changelog/95130284cce24dd29c1e24172d993fd2.json create mode 100644 .changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json create mode 100644 service/servicediscovery/api_op_DeleteServiceAttributes.go create mode 100644 service/servicediscovery/api_op_GetServiceAttributes.go create mode 100644 service/servicediscovery/api_op_UpdateServiceAttributes.go create mode 100644 service/servicediscovery/snapshot/api_op_DeleteServiceAttributes.go.snap create mode 100644 service/servicediscovery/snapshot/api_op_GetServiceAttributes.go.snap create mode 100644 service/servicediscovery/snapshot/api_op_UpdateServiceAttributes.go.snap diff --git a/.changelog/2c30a371457d45e29137a0dbfa6efca9.json b/.changelog/2c30a371457d45e29137a0dbfa6efca9.json new file mode 100644 index 00000000000..512dd1527e6 --- /dev/null +++ b/.changelog/2c30a371457d45e29137a0dbfa6efca9.json @@ -0,0 +1,8 @@ +{ + "id": "2c30a371-457d-45e2-9137-a0dbfa6efca9", + "type": "feature", + "description": "This release adds GroupId to the response for DeleteSecurityGroup.", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/.changelog/3550fde8f74240d8b0de0755ef513a48.json b/.changelog/3550fde8f74240d8b0de0755ef513a48.json new file mode 100644 index 00000000000..2be3d794dc7 --- /dev/null +++ b/.changelog/3550fde8f74240d8b0de0755ef513a48.json @@ -0,0 +1,8 @@ +{ + "id": "3550fde8-f742-40d8-b0de-0755ef513a48", + "type": "feature", + "description": "Limit PutIntegration IntegrationName and ListIntegrations IntegrationNamePrefix parameters to 50 characters", + "modules": [ + "service/cloudwatchlogs" + ] +} \ No newline at end of file diff --git a/.changelog/3708358d0f7f440abc9ed8242d480111.json b/.changelog/3708358d0f7f440abc9ed8242d480111.json new file mode 100644 index 00000000000..49053b45ba0 --- /dev/null +++ b/.changelog/3708358d0f7f440abc9ed8242d480111.json @@ -0,0 +1,8 @@ +{ + "id": "3708358d-0f7f-440a-bc9e-d8242d480111", + "type": "feature", + "description": "AWS Cloud Map now supports service-level attributes, allowing you to associate custom metadata directly with services. These attributes can be retrieved, updated, and deleted using the new GetServiceAttributes, UpdateServiceAttributes, and DeleteServiceAttributes API calls.", + "modules": [ + "service/servicediscovery" + ] +} \ No newline at end of file diff --git a/.changelog/3d1e692c20ca4d70be1444940d66761a.json b/.changelog/3d1e692c20ca4d70be1444940d66761a.json new file mode 100644 index 00000000000..ac4dc294abf --- /dev/null +++ b/.changelog/3d1e692c20ca4d70be1444940d66761a.json @@ -0,0 +1,8 @@ +{ + "id": "3d1e692c-20ca-4d70-be14-44940d66761a", + "type": "feature", + "description": "Add NodeRepairConfig in CreateNodegroupRequest and UpdateNodegroupConfigRequest", + "modules": [ + "service/eks" + ] +} \ No newline at end of file diff --git a/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json b/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json new file mode 100644 index 00000000000..a6ff6bb142c --- /dev/null +++ b/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json @@ -0,0 +1,8 @@ +{ + "id": "68053e24-d75a-49fc-8a15-b173cf3e95bf", + "type": "feature", + "description": "AWS Elemental MediaConnect Gateway now supports Source Specific Multicast (SSM) for ingress bridges. This enables you to specify a source IP address in addition to a multicast IP when creating or updating an ingress bridge source.", + "modules": [ + "service/mediaconnect" + ] +} \ No newline at end of file diff --git a/.changelog/95130284cce24dd29c1e24172d993fd2.json b/.changelog/95130284cce24dd29c1e24172d993fd2.json new file mode 100644 index 00000000000..6d0098b0420 --- /dev/null +++ b/.changelog/95130284cce24dd29c1e24172d993fd2.json @@ -0,0 +1,8 @@ +{ + "id": "95130284-cce2-4dd2-9c1e-24172d993fd2", + "type": "documentation", + "description": "There was a sentence fragment in UpdateDirectConnectGatewayAttachment that was causing customer confusion as to whether it's an incomplete sentence or if it was a typo. Removed the fragment.", + "modules": [ + "service/networkmanager" + ] +} \ No newline at end of file diff --git a/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json b/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json new file mode 100644 index 00000000000..aec3a16ff6d --- /dev/null +++ b/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json @@ -0,0 +1,8 @@ +{ + "id": "c4bc0b89-74b7-4d7c-9de9-e2ec9cfe2754", + "type": "feature", + "description": "Add support for Dual-Stack hsm2m.medium clusters. The customers will now be able to create hsm2m.medium clusters having both IPv4 and IPv6 connection capabilities by specifying a new param called NetworkType=DUALSTACK during cluster creation.", + "modules": [ + "service/cloudhsmv2" + ] +} \ No newline at end of file diff --git a/service/cloudhsmv2/api_op_CreateCluster.go b/service/cloudhsmv2/api_op_CreateCluster.go index d016fb19bf9..badafbc8708 100644 --- a/service/cloudhsmv2/api_op_CreateCluster.go +++ b/service/cloudhsmv2/api_op_CreateCluster.go @@ -56,6 +56,10 @@ type CreateClusterInput struct { // The mode to use in the cluster. The allowed values are FIPS and NON_FIPS . Mode types.ClusterMode + // The NetworkType to create a cluster with. The allowed values are IPV4 and + // DUALSTACK . + NetworkType types.NetworkType + // The identifier (ID) or the Amazon Resource Name (ARN) of the cluster backup to // restore. Use this value to restore the cluster from a backup instead of creating // a new cluster. To find the backup ID or ARN, use DescribeBackups. If using a backup in another diff --git a/service/cloudhsmv2/deserializers.go b/service/cloudhsmv2/deserializers.go index 7799e984bc0..5c394399202 100644 --- a/service/cloudhsmv2/deserializers.go +++ b/service/cloudhsmv2/deserializers.go @@ -2119,6 +2119,9 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("CloudHsmInvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorCloudHsmInvalidRequestException(response, errorBody) + case strings.EqualFold("CloudHsmResourceLimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorCloudHsmResourceLimitExceededException(response, errorBody) + case strings.EqualFold("CloudHsmResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorCloudHsmResourceNotFoundException(response, errorBody) @@ -2369,6 +2372,41 @@ func awsAwsjson11_deserializeErrorCloudHsmInvalidRequestException(response *smit return output } +func awsAwsjson11_deserializeErrorCloudHsmResourceLimitExceededException(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.CloudHsmResourceLimitExceededException{} + err := awsAwsjson11_deserializeDocumentCloudHsmResourceLimitExceededException(&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_deserializeErrorCloudHsmResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -2927,6 +2965,46 @@ func awsAwsjson11_deserializeDocumentCloudHsmInvalidRequestException(v **types.C return nil } +func awsAwsjson11_deserializeDocumentCloudHsmResourceLimitExceededException(v **types.CloudHsmResourceLimitExceededException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CloudHsmResourceLimitExceededException + if *v == nil { + sv = &types.CloudHsmResourceLimitExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected errorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentCloudHsmResourceNotFoundException(v **types.CloudHsmResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3136,6 +3214,15 @@ func awsAwsjson11_deserializeDocumentCluster(v **types.Cluster, value interface{ sv.Mode = types.ClusterMode(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 "PreCoPassword": if value != nil { jtv, ok := value.(string) @@ -3411,6 +3498,15 @@ func awsAwsjson11_deserializeDocumentHsm(v **types.Hsm, value interface{}) error sv.EniIp = ptr.String(jtv) } + case "EniIpV6": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpV6Address to be of type string, got %T instead", value) + } + sv.EniIpV6 = ptr.String(jtv) + } + case "HsmId": if value != nil { jtv, ok := value.(string) diff --git a/service/cloudhsmv2/serializers.go b/service/cloudhsmv2/serializers.go index 5d6b74fc92f..c11abbd1586 100644 --- a/service/cloudhsmv2/serializers.go +++ b/service/cloudhsmv2/serializers.go @@ -1254,6 +1254,11 @@ func awsAwsjson11_serializeOpDocumentCreateClusterInput(v *CreateClusterInput, v ok.String(string(v.Mode)) } + if len(v.NetworkType) > 0 { + ok := object.Key("NetworkType") + ok.String(string(v.NetworkType)) + } + if v.SourceBackupId != nil { ok := object.Key("SourceBackupId") ok.String(*v.SourceBackupId) diff --git a/service/cloudhsmv2/types/enums.go b/service/cloudhsmv2/types/enums.go index f822474b9f5..63dbcdd0b1d 100644 --- a/service/cloudhsmv2/types/enums.go +++ b/service/cloudhsmv2/types/enums.go @@ -88,6 +88,8 @@ const ( ClusterStateInitialized ClusterState = "INITIALIZED" ClusterStateActive ClusterState = "ACTIVE" ClusterStateUpdateInProgress ClusterState = "UPDATE_IN_PROGRESS" + ClusterStateModifyInProgress ClusterState = "MODIFY_IN_PROGRESS" + ClusterStateRollbackInProgress ClusterState = "ROLLBACK_IN_PROGRESS" ClusterStateDeleteInProgress ClusterState = "DELETE_IN_PROGRESS" ClusterStateDeleted ClusterState = "DELETED" ClusterStateDegraded ClusterState = "DEGRADED" @@ -105,6 +107,8 @@ func (ClusterState) Values() []ClusterState { "INITIALIZED", "ACTIVE", "UPDATE_IN_PROGRESS", + "MODIFY_IN_PROGRESS", + "ROLLBACK_IN_PROGRESS", "DELETE_IN_PROGRESS", "DELETED", "DEGRADED", @@ -135,3 +139,22 @@ func (HsmState) Values() []HsmState { "DELETED", } } + +type NetworkType string + +// Enum values for NetworkType +const ( + NetworkTypeIpv4 NetworkType = "IPV4" + NetworkTypeDualstack NetworkType = "DUALSTACK" +) + +// 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", + "DUALSTACK", + } +} diff --git a/service/cloudhsmv2/types/errors.go b/service/cloudhsmv2/types/errors.go index 8db9046db82..b3c26426876 100644 --- a/service/cloudhsmv2/types/errors.go +++ b/service/cloudhsmv2/types/errors.go @@ -87,6 +87,34 @@ func (e *CloudHsmInvalidRequestException) ErrorCode() string { } func (e *CloudHsmInvalidRequestException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// The request was rejected because it exceeds an CloudHSM limit. +type CloudHsmResourceLimitExceededException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *CloudHsmResourceLimitExceededException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *CloudHsmResourceLimitExceededException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *CloudHsmResourceLimitExceededException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "CloudHsmResourceLimitExceededException" + } + return *e.ErrorCodeOverride +} +func (e *CloudHsmResourceLimitExceededException) ErrorFault() smithy.ErrorFault { + return smithy.FaultClient +} + // The request was rejected because it refers to a resource that cannot be found. type CloudHsmResourceNotFoundException struct { Message *string diff --git a/service/cloudhsmv2/types/types.go b/service/cloudhsmv2/types/types.go index 388e7ee96c0..2fcd862371e 100644 --- a/service/cloudhsmv2/types/types.go +++ b/service/cloudhsmv2/types/types.go @@ -129,6 +129,19 @@ type Cluster struct { // The mode of the cluster. Mode ClusterMode + // The cluster's NetworkType can be set to either IPV4 (which is the default) or + // DUALSTACK. When set to IPV4, communication between your application and the + // Hardware Security Modules (HSMs) is restricted to the IPv4 protocol only. In + // contrast, the DUALSTACK network type enables communication over both the IPv4 + // and IPv6 protocols. To use the DUALSTACK option, you'll need to configure your + // Virtual Private Cloud (VPC) and subnets to support both IPv4 and IPv6. This + // involves adding IPv6 Classless Inter-Domain Routing (CIDR) blocks to the + // existing IPv4 CIDR blocks in your subnets. The choice between IPV4 and DUALSTACK + // network types determines the flexibility of the network addressing setup for + // your cluster. The DUALSTACK option provides more flexibility by allowing both + // IPv4 and IPv6 communication. + NetworkType NetworkType + // The default password for the cluster's Pre-Crypto Officer (PRECO) user. PreCoPassword *string @@ -200,6 +213,9 @@ type Hsm struct { // The IP address of the HSM's elastic network interface (ENI). EniIp *string + // The IPv6 address (if any) of the HSM's elastic network interface (ENI). + EniIpV6 *string + // The HSM's state. State HsmState diff --git a/service/codebuild/internal/endpoints/endpoints.go b/service/codebuild/internal/endpoints/endpoints.go index d89ef6eebb2..2da508377c6 100644 --- a/service/codebuild/internal/endpoints/endpoints.go +++ b/service/codebuild/internal/endpoints/endpoints.go @@ -348,6 +348,14 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-iso-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-west-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso-b", diff --git a/service/dlm/internal/endpoints/endpoints.go b/service/dlm/internal/endpoints/endpoints.go index 8573bdce5bd..542d339239c 100644 --- a/service/dlm/internal/endpoints/endpoints.go +++ b/service/dlm/internal/endpoints/endpoints.go @@ -514,21 +514,9 @@ 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", - }, }, }, { @@ -555,12 +543,6 @@ 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", - }, }, }, { @@ -643,12 +625,6 @@ 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, @@ -667,12 +643,6 @@ 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/ec2/api_op_DeleteSecurityGroup.go b/service/ec2/api_op_DeleteSecurityGroup.go index 2515cb81f73..80d5cc78365 100644 --- a/service/ec2/api_op_DeleteSecurityGroup.go +++ b/service/ec2/api_op_DeleteSecurityGroup.go @@ -50,6 +50,13 @@ type DeleteSecurityGroupInput struct { } type DeleteSecurityGroupOutput struct { + + // The ID of the deleted security group. + GroupId *string + + // Returns true if the request succeeds; otherwise, returns an error. + Return *bool + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/ec2/api_op_StartDeclarativePoliciesReport.go b/service/ec2/api_op_StartDeclarativePoliciesReport.go index 9448c06499d..f2ccf8541dd 100644 --- a/service/ec2/api_op_StartDeclarativePoliciesReport.go +++ b/service/ec2/api_op_StartDeclarativePoliciesReport.go @@ -31,7 +31,8 @@ import ( // account or delegated administrators for the organization. // // - An S3 bucket must be available before generating the report (you can create -// a new one or use an existing one), and it must have an appropriate bucket +// a new one or use an existing one), it must be in the same Region where the +// report generation request is made, and it must have an appropriate bucket // policy. For a sample S3 policy, see Sample Amazon S3 policy under . // // - Trusted access must be enabled for the service for which the declarative @@ -67,7 +68,8 @@ func (c *Client) StartDeclarativePoliciesReport(ctx context.Context, params *Sta type StartDeclarativePoliciesReportInput struct { - // The name of the S3 bucket where the report will be saved. + // The name of the S3 bucket where the report will be saved. The bucket must be in + // the same Region where the report generation request is made. // // This member is required. S3Bucket *string diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 51ce478d97e..3eefdeb4655 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -17271,10 +17271,33 @@ func (m *awsEc2query_deserializeOpDeleteSecurityGroup) HandleDeserialize(ctx con output := &DeleteSecurityGroupOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentDeleteSecurityGroupOutput(&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 @@ -160900,6 +160923,71 @@ func awsEc2query_deserializeOpDocumentDeleteQueuedReservedInstancesOutput(v **De return nil } +func awsEc2query_deserializeOpDocumentDeleteSecurityGroupOutput(v **DeleteSecurityGroupOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DeleteSecurityGroupOutput + if *v == nil { + sv = &DeleteSecurityGroupOutput{} + } 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("groupId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.GroupId = ptr.String(xtv) + } + + case strings.EqualFold("return", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) + } + sv.Return = ptr.Bool(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_deserializeOpDocumentDeleteSubnetCidrReservationOutput(v **DeleteSubnetCidrReservationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index 2a262e00819..5c2ceea7803 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -4944,6 +4944,10 @@ type FederatedAuthenticationRequest struct { // // If you specify multiple filters, the filters are joined with an AND , and the // request returns only results that match all of the specified filters. +// +// For more information, see [List and filter using the CLI and API] in the Amazon EC2 User Guide. +// +// [List and filter using the CLI and API]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html#Filtering_Resources_CLI type Filter struct { // The name of the filter. Filter names are case-sensitive. diff --git a/service/eks/api_op_CreateNodegroup.go b/service/eks/api_op_CreateNodegroup.go index bd78f63fc06..c44efabb1b9 100644 --- a/service/eks/api_op_CreateNodegroup.go +++ b/service/eks/api_op_CreateNodegroup.go @@ -136,6 +136,9 @@ type CreateNodegroupInput struct { // [Customizing managed nodes with launch templates]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html LaunchTemplate *types.LaunchTemplateSpecification + // The node auto repair configuration for the node group. + NodeRepairConfig *types.NodeRepairConfig + // The AMI version of the Amazon EKS optimized AMI to use with your node group. By // default, the latest available AMI version for the node group's current // Kubernetes version is used. For information about Linux versions, see [Amazon EKS optimized Amazon Linux AMI versions]in the diff --git a/service/eks/api_op_UpdateNodegroupConfig.go b/service/eks/api_op_UpdateNodegroupConfig.go index c0913e98d8c..c287486c22a 100644 --- a/service/eks/api_op_UpdateNodegroupConfig.go +++ b/service/eks/api_op_UpdateNodegroupConfig.go @@ -50,6 +50,9 @@ type UpdateNodegroupConfigInput struct { // The Kubernetes labels to apply to the nodes in the node group after the update. Labels *types.UpdateLabelsPayload + // The node auto repair configuration for the node group. + NodeRepairConfig *types.NodeRepairConfig + // The scaling configuration details for the Auto Scaling group after the update. ScalingConfig *types.NodegroupScalingConfig diff --git a/service/eks/deserializers.go b/service/eks/deserializers.go index a3663cd07ef..c88a3cf5c47 100644 --- a/service/eks/deserializers.go +++ b/service/eks/deserializers.go @@ -13827,6 +13827,11 @@ func awsRestjson1_deserializeDocumentNodegroup(v **types.Nodegroup, value interf sv.NodegroupName = ptr.String(jtv) } + case "nodeRepairConfig": + if err := awsRestjson1_deserializeDocumentNodeRepairConfig(&sv.NodeRepairConfig, value); err != nil { + return err + } + case "nodeRole": if value != nil { jtv, ok := value.(string) @@ -14115,6 +14120,46 @@ func awsRestjson1_deserializeDocumentNodegroupUpdateConfig(v **types.NodegroupUp return nil } +func awsRestjson1_deserializeDocumentNodeRepairConfig(v **types.NodeRepairConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NodeRepairConfig + if *v == nil { + sv = &types.NodeRepairConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.Enabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/eks/serializers.go b/service/eks/serializers.go index a58b7383b0c..cfcf16c42a2 100644 --- a/service/eks/serializers.go +++ b/service/eks/serializers.go @@ -1147,6 +1147,13 @@ func awsRestjson1_serializeOpDocumentCreateNodegroupInput(v *CreateNodegroupInpu ok.String(*v.NodegroupName) } + if v.NodeRepairConfig != nil { + ok := object.Key("nodeRepairConfig") + if err := awsRestjson1_serializeDocumentNodeRepairConfig(v.NodeRepairConfig, ok); err != nil { + return err + } + } + if v.NodeRole != nil { ok := object.Key("nodeRole") ok.String(*v.NodeRole) @@ -5135,6 +5142,13 @@ func awsRestjson1_serializeOpDocumentUpdateNodegroupConfigInput(v *UpdateNodegro } } + if v.NodeRepairConfig != nil { + ok := object.Key("nodeRepairConfig") + if err := awsRestjson1_serializeDocumentNodeRepairConfig(v.NodeRepairConfig, ok); err != nil { + return err + } + } + if v.ScalingConfig != nil { ok := object.Key("scalingConfig") if err := awsRestjson1_serializeDocumentNodegroupScalingConfig(v.ScalingConfig, ok); err != nil { @@ -5860,6 +5874,18 @@ func awsRestjson1_serializeDocumentNodegroupUpdateConfig(v *types.NodegroupUpdat return nil } +func awsRestjson1_serializeDocumentNodeRepairConfig(v *types.NodeRepairConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled != nil { + ok := object.Key("enabled") + ok.Boolean(*v.Enabled) + } + + return nil +} + func awsRestjson1_serializeDocumentOidcIdentityProviderConfigRequest(v *types.OidcIdentityProviderConfigRequest, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/eks/types/enums.go b/service/eks/types/enums.go index 79bc48c4803..83a3903a0a0 100644 --- a/service/eks/types/enums.go +++ b/service/eks/types/enums.go @@ -759,6 +759,7 @@ const ( UpdateParamTypeResolveConflicts UpdateParamType = "ResolveConflicts" UpdateParamTypeMaxUnavailable UpdateParamType = "MaxUnavailable" UpdateParamTypeMaxUnavailablePercentage UpdateParamType = "MaxUnavailablePercentage" + UpdateParamTypeNodeRepairEnabled UpdateParamType = "NodeRepairEnabled" UpdateParamTypeConfigurationValues UpdateParamType = "ConfigurationValues" UpdateParamTypeSecurityGroups UpdateParamType = "SecurityGroups" UpdateParamTypeSubnets UpdateParamType = "Subnets" @@ -800,6 +801,7 @@ func (UpdateParamType) Values() []UpdateParamType { "ResolveConflicts", "MaxUnavailable", "MaxUnavailablePercentage", + "NodeRepairEnabled", "ConfigurationValues", "SecurityGroups", "Subnets", diff --git a/service/eks/types/types.go b/service/eks/types/types.go index e70cd9a7622..b7ac14cb62b 100644 --- a/service/eks/types/types.go +++ b/service/eks/types/types.go @@ -1307,6 +1307,9 @@ type Nodegroup struct { // The Unix epoch timestamp for the last modification to the object. ModifiedAt *time.Time + // The node auto repair configuration for the node group. + NodeRepairConfig *NodeRepairConfig + // The IAM role associated with your node group. The Amazon EKS node kubelet // daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive // permissions for these API calls through an IAM instance profile and associated @@ -1450,6 +1453,16 @@ type NodegroupUpdateConfig struct { noSmithyDocumentSerde } +// The node auto repair configuration for the node group. +type NodeRepairConfig struct { + + // Specifies whether to enable node auto repair for the node group. Node auto + // repair is disabled by default. + Enabled *bool + + noSmithyDocumentSerde +} + // An object representing the [OpenID Connect] (OIDC) identity provider information for the // cluster. // @@ -1790,10 +1803,56 @@ type RemoteAccessConfig struct { type RemoteNetworkConfigRequest struct { // The list of network CIDRs that can contain hybrid nodes. + // + // These CIDR blocks define the expected IP address range of the hybrid nodes that + // join the cluster. These blocks are typically determined by your network + // administrator. + // + // Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for + // example, 10.2.0.0/16 ). + // + // It must satisfy the following requirements: + // + // - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed + // size is /24, maximum allowed size is /8. Publicly-routable addresses aren't + // supported. + // + // - Each block cannot overlap with the range of the VPC CIDR blocks for your + // EKS resources, or the block of the Kubernetes service IP range. + // + // - Each block must have a route to the VPC that uses the VPC CIDR blocks, not + // public IPs or Elastic IPs. There are many options including Transit Gateway, + // Site-to-Site VPN, or Direct Connect. + // + // - Each host must allow outbound connection to the EKS cluster control plane + // on TCP ports 443 and 10250 . + // + // - Each host must allow inbound connection from the EKS cluster control plane + // on TCP port 10250 for logs, exec and port-forward operations. + // + // - Each host must allow TCP and UDP network connectivity to and from other + // hosts that are running CoreDNS on UDP port 53 for service and pod DNS names. RemoteNodeNetworks []RemoteNodeNetwork // The list of network CIDRs that can contain pods that run Kubernetes webhooks on // hybrid nodes. + // + // These CIDR blocks are determined by configuring your Container Network + // Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the + // Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge + // locations. + // + // Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for + // example, 10.2.0.0/16 ). + // + // It must satisfy the following requirements: + // + // - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed + // size is /24, maximum allowed size is /8. Publicly-routable addresses aren't + // supported. + // + // - Each block cannot overlap with the range of the VPC CIDR blocks for your + // EKS resources, or the block of the Kubernetes service IP range. RemotePodNetworks []RemotePodNetwork noSmithyDocumentSerde @@ -1814,9 +1873,67 @@ type RemoteNetworkConfigResponse struct { } // A network CIDR that can contain hybrid nodes. +// +// These CIDR blocks define the expected IP address range of the hybrid nodes that +// join the cluster. These blocks are typically determined by your network +// administrator. +// +// Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for +// example, 10.2.0.0/16 ). +// +// It must satisfy the following requirements: +// +// - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed +// size is /24, maximum allowed size is /8. Publicly-routable addresses aren't +// supported. +// +// - Each block cannot overlap with the range of the VPC CIDR blocks for your +// EKS resources, or the block of the Kubernetes service IP range. +// +// - Each block must have a route to the VPC that uses the VPC CIDR blocks, not +// public IPs or Elastic IPs. There are many options including Transit Gateway, +// Site-to-Site VPN, or Direct Connect. +// +// - Each host must allow outbound connection to the EKS cluster control plane +// on TCP ports 443 and 10250 . +// +// - Each host must allow inbound connection from the EKS cluster control plane +// on TCP port 10250 for logs, exec and port-forward operations. +// +// - Each host must allow TCP and UDP network connectivity to and from other +// hosts that are running CoreDNS on UDP port 53 for service and pod DNS names. type RemoteNodeNetwork struct { // A network CIDR that can contain hybrid nodes. + // + // These CIDR blocks define the expected IP address range of the hybrid nodes that + // join the cluster. These blocks are typically determined by your network + // administrator. + // + // Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for + // example, 10.2.0.0/16 ). + // + // It must satisfy the following requirements: + // + // - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed + // size is /24, maximum allowed size is /8. Publicly-routable addresses aren't + // supported. + // + // - Each block cannot overlap with the range of the VPC CIDR blocks for your + // EKS resources, or the block of the Kubernetes service IP range. + // + // - Each block must have a route to the VPC that uses the VPC CIDR blocks, not + // public IPs or Elastic IPs. There are many options including Transit Gateway, + // Site-to-Site VPN, or Direct Connect. + // + // - Each host must allow outbound connection to the EKS cluster control plane + // on TCP ports 443 and 10250 . + // + // - Each host must allow inbound connection from the EKS cluster control plane + // on TCP port 10250 for logs, exec and port-forward operations. + // + // - Each host must allow TCP and UDP network connectivity to and from other + // hosts that are running CoreDNS on UDP port 53 for service and pod DNS names. Cidrs []string noSmithyDocumentSerde @@ -1824,10 +1941,44 @@ type RemoteNodeNetwork struct { // A network CIDR that can contain pods that run Kubernetes webhooks on hybrid // nodes. +// +// These CIDR blocks are determined by configuring your Container Network +// Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the +// Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge +// locations. +// +// Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for +// example, 10.2.0.0/16 ). +// +// It must satisfy the following requirements: +// +// - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed +// size is /24, maximum allowed size is /8. Publicly-routable addresses aren't +// supported. +// +// - Each block cannot overlap with the range of the VPC CIDR blocks for your +// EKS resources, or the block of the Kubernetes service IP range. type RemotePodNetwork struct { // A network CIDR that can contain pods that run Kubernetes webhooks on hybrid // nodes. + // + // These CIDR blocks are determined by configuring your Container Network + // Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the + // Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge + // locations. + // + // Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for + // example, 10.2.0.0/16 ). + // + // It must satisfy the following requirements: + // + // - Each block must be within an IPv4 RFC-1918 network range. Minimum allowed + // size is /24, maximum allowed size is /8. Publicly-routable addresses aren't + // supported. + // + // - Each block cannot overlap with the range of the VPC CIDR blocks for your + // EKS resources, or the block of the Kubernetes service IP range. Cidrs []string noSmithyDocumentSerde diff --git a/service/mediaconnect/deserializers.go b/service/mediaconnect/deserializers.go index d22c135acce..b2379c428bc 100644 --- a/service/mediaconnect/deserializers.go +++ b/service/mediaconnect/deserializers.go @@ -10698,6 +10698,11 @@ func awsRestjson1_deserializeDocumentBridgeNetworkSource(v **types.BridgeNetwork sv.MulticastIp = ptr.String(jtv) } + case "multicastSourceSettings": + if err := awsRestjson1_deserializeDocumentMulticastSourceSettings(&sv.MulticastSourceSettings, value); err != nil { + return err + } + case "name": if value != nil { jtv, ok := value.(string) @@ -13110,6 +13115,46 @@ func awsRestjson1_deserializeDocumentMonitoringConfig(v **types.MonitoringConfig return nil } +func awsRestjson1_deserializeDocumentMulticastSourceSettings(v **types.MulticastSourceSettings, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.MulticastSourceSettings + if *v == nil { + sv = &types.MulticastSourceSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "multicastSourceIp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.MulticastSourceIp = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/mediaconnect/serializers.go b/service/mediaconnect/serializers.go index f46fdbdd5c1..99784be0e9c 100644 --- a/service/mediaconnect/serializers.go +++ b/service/mediaconnect/serializers.go @@ -4952,6 +4952,13 @@ func awsRestjson1_serializeDocumentAddBridgeNetworkSourceRequest(v *types.AddBri ok.String(*v.MulticastIp) } + if v.MulticastSourceSettings != nil { + ok := object.Key("multicastSourceSettings") + if err := awsRestjson1_serializeDocumentMulticastSourceSettings(v.MulticastSourceSettings, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") ok.String(*v.Name) @@ -5547,6 +5554,18 @@ func awsRestjson1_serializeDocumentMonitoringConfig(v *types.MonitoringConfig, v return nil } +func awsRestjson1_serializeDocumentMulticastSourceSettings(v *types.MulticastSourceSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MulticastSourceIp != nil { + ok := object.Key("multicastSourceIp") + ok.String(*v.MulticastSourceIp) + } + + return nil +} + func awsRestjson1_serializeDocumentSetGatewayBridgeSourceRequest(v *types.SetGatewayBridgeSourceRequest, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5746,6 +5765,13 @@ func awsRestjson1_serializeDocumentUpdateBridgeNetworkSourceRequest(v *types.Upd ok.String(*v.MulticastIp) } + if v.MulticastSourceSettings != nil { + ok := object.Key("multicastSourceSettings") + if err := awsRestjson1_serializeDocumentMulticastSourceSettings(v.MulticastSourceSettings, ok); err != nil { + return err + } + } + if v.NetworkName != nil { ok := object.Key("networkName") ok.String(*v.NetworkName) diff --git a/service/mediaconnect/types/types.go b/service/mediaconnect/types/types.go index c2e91d46c68..8bc010b48b8 100644 --- a/service/mediaconnect/types/types.go +++ b/service/mediaconnect/types/types.go @@ -94,6 +94,9 @@ type AddBridgeNetworkSourceRequest struct { // This member is required. Protocol Protocol + // The settings related to the multicast source. + MulticastSourceSettings *MulticastSourceSettings + noSmithyDocumentSerde } @@ -417,6 +420,9 @@ type BridgeNetworkSource struct { // This member is required. Protocol Protocol + // The settings related to the multicast source. + MulticastSourceSettings *MulticastSourceSettings + noSmithyDocumentSerde } @@ -1397,6 +1403,15 @@ type MonitoringConfig struct { noSmithyDocumentSerde } +// The settings related to the multicast source. +type MulticastSourceSettings struct { + + // The IP address of the source for source-specific multicast (SSM). + MulticastSourceIp *string + + noSmithyDocumentSerde +} + // A savings plan that reserves a certain amount of outbound bandwidth usage at a // discounted rate each month over a period of time. type Offering struct { @@ -1977,6 +1992,9 @@ type UpdateBridgeNetworkSourceRequest struct { // The network source multicast IP. MulticastIp *string + // The settings related to the multicast source. + MulticastSourceSettings *MulticastSourceSettings + // The network source's gateway network name. NetworkName *string diff --git a/service/networkmanager/api_op_UpdateDirectConnectGatewayAttachment.go b/service/networkmanager/api_op_UpdateDirectConnectGatewayAttachment.go index 9f8418c39d9..5924c176eb6 100644 --- a/service/networkmanager/api_op_UpdateDirectConnectGatewayAttachment.go +++ b/service/networkmanager/api_op_UpdateDirectConnectGatewayAttachment.go @@ -37,7 +37,7 @@ type UpdateDirectConnectGatewayAttachmentInput struct { // One or more edge locations to update for the Direct Connect gateway attachment. // The updated array of edge locations overwrites the previous array of locations. - // EdgeLocations is only used for Direct Connect gateway attachments. Do + // EdgeLocations is only used for Direct Connect gateway attachments. EdgeLocations []string noSmithyDocumentSerde diff --git a/service/scheduler/internal/endpoints/endpoints.go b/service/scheduler/internal/endpoints/endpoints.go index e238301fe55..99a2dbf2423 100644 --- a/service/scheduler/internal/endpoints/endpoints.go +++ b/service/scheduler/internal/endpoints/endpoints.go @@ -277,6 +277,14 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-iso-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-west-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso-b", @@ -298,6 +306,11 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIsoB, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-isob-east-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso-e", diff --git a/service/servicediscovery/api_op_DeleteService.go b/service/servicediscovery/api_op_DeleteService.go index e8bd1a52215..30d2c1f4c8e 100644 --- a/service/servicediscovery/api_op_DeleteService.go +++ b/service/servicediscovery/api_op_DeleteService.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a specified service. If the service still contains one or more -// registered instances, the request fails. +// Deletes a specified service and all associated service attributes. If the +// service still contains one or more registered instances, the request fails. func (c *Client) DeleteService(ctx context.Context, params *DeleteServiceInput, optFns ...func(*Options)) (*DeleteServiceOutput, error) { if params == nil { params = &DeleteServiceInput{} diff --git a/service/servicediscovery/api_op_DeleteServiceAttributes.go b/service/servicediscovery/api_op_DeleteServiceAttributes.go new file mode 100644 index 00000000000..fef057b8b41 --- /dev/null +++ b/service/servicediscovery/api_op_DeleteServiceAttributes.go @@ -0,0 +1,157 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package servicediscovery + +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 specific attributes associated with a service. +func (c *Client) DeleteServiceAttributes(ctx context.Context, params *DeleteServiceAttributesInput, optFns ...func(*Options)) (*DeleteServiceAttributesOutput, error) { + if params == nil { + params = &DeleteServiceAttributesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteServiceAttributes", params, optFns, c.addOperationDeleteServiceAttributesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteServiceAttributesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteServiceAttributesInput struct { + + // A list of keys corresponding to each attribute that you want to delete. + // + // This member is required. + Attributes []string + + // The ID of the service from which the attributes will be deleted. + // + // This member is required. + ServiceId *string + + noSmithyDocumentSerde +} + +type DeleteServiceAttributesOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteServiceAttributesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteServiceAttributes{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteServiceAttributes{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteServiceAttributes"); 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 = addOpDeleteServiceAttributesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteServiceAttributes(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_opDeleteServiceAttributes(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteServiceAttributes", + } +} diff --git a/service/servicediscovery/api_op_GetServiceAttributes.go b/service/servicediscovery/api_op_GetServiceAttributes.go new file mode 100644 index 00000000000..dc3f092829a --- /dev/null +++ b/service/servicediscovery/api_op_GetServiceAttributes.go @@ -0,0 +1,158 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package servicediscovery + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/servicediscovery/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns the attributes associated with a specified service. +func (c *Client) GetServiceAttributes(ctx context.Context, params *GetServiceAttributesInput, optFns ...func(*Options)) (*GetServiceAttributesOutput, error) { + if params == nil { + params = &GetServiceAttributesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetServiceAttributes", params, optFns, c.addOperationGetServiceAttributesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetServiceAttributesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetServiceAttributesInput struct { + + // The ID of the service that you want to get attributes for. + // + // This member is required. + ServiceId *string + + noSmithyDocumentSerde +} + +type GetServiceAttributesOutput struct { + + // A complex type that contains the service ARN and a list of attribute key-value + // pairs associated with the service. + ServiceAttributes *types.ServiceAttributes + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetServiceAttributesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetServiceAttributes{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetServiceAttributes{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetServiceAttributes"); 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 = addOpGetServiceAttributesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetServiceAttributes(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_opGetServiceAttributes(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetServiceAttributes", + } +} diff --git a/service/servicediscovery/api_op_UpdateService.go b/service/servicediscovery/api_op_UpdateService.go index ef35b280efa..c439cfe59c4 100644 --- a/service/servicediscovery/api_op_UpdateService.go +++ b/service/servicediscovery/api_op_UpdateService.go @@ -52,7 +52,8 @@ type UpdateServiceInput struct { // This member is required. Id *string - // A complex type that contains the new settings for the service. + // A complex type that contains the new settings for the service. You can specify + // a maximum of 30 attributes (key-value pairs). // // This member is required. Service *types.ServiceChange diff --git a/service/servicediscovery/api_op_UpdateServiceAttributes.go b/service/servicediscovery/api_op_UpdateServiceAttributes.go new file mode 100644 index 00000000000..20603c622ab --- /dev/null +++ b/service/servicediscovery/api_op_UpdateServiceAttributes.go @@ -0,0 +1,157 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package servicediscovery + +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" +) + +// Submits a request to update a specified service to add service-level attributes. +func (c *Client) UpdateServiceAttributes(ctx context.Context, params *UpdateServiceAttributesInput, optFns ...func(*Options)) (*UpdateServiceAttributesOutput, error) { + if params == nil { + params = &UpdateServiceAttributesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateServiceAttributes", params, optFns, c.addOperationUpdateServiceAttributesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateServiceAttributesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateServiceAttributesInput struct { + + // A string map that contains attribute key-value pairs. + // + // This member is required. + Attributes map[string]string + + // The ID of the service that you want to update. + // + // This member is required. + ServiceId *string + + noSmithyDocumentSerde +} + +type UpdateServiceAttributesOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateServiceAttributesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateServiceAttributes{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateServiceAttributes{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateServiceAttributes"); 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 = addOpUpdateServiceAttributesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateServiceAttributes(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_opUpdateServiceAttributes(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateServiceAttributes", + } +} diff --git a/service/servicediscovery/deserializers.go b/service/servicediscovery/deserializers.go index 4a010e86caa..aec053e2694 100644 --- a/service/servicediscovery/deserializers.go +++ b/service/servicediscovery/deserializers.go @@ -759,6 +759,120 @@ func awsAwsjson11_deserializeOpErrorDeleteService(response *smithyhttp.Response, } } +type awsAwsjson11_deserializeOpDeleteServiceAttributes struct { +} + +func (*awsAwsjson11_deserializeOpDeleteServiceAttributes) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteServiceAttributes) HandleDeserialize(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_deserializeOpErrorDeleteServiceAttributes(response, &metadata) + } + output := &DeleteServiceAttributesOutput{} + 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_deserializeOpDocumentDeleteServiceAttributesOutput(&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_deserializeOpErrorDeleteServiceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("ServiceNotFound", errorCode): + return awsAwsjson11_deserializeErrorServiceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDeregisterInstance struct { } @@ -1698,6 +1812,120 @@ func awsAwsjson11_deserializeOpErrorGetService(response *smithyhttp.Response, me } } +type awsAwsjson11_deserializeOpGetServiceAttributes struct { +} + +func (*awsAwsjson11_deserializeOpGetServiceAttributes) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGetServiceAttributes) HandleDeserialize(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_deserializeOpErrorGetServiceAttributes(response, &metadata) + } + output := &GetServiceAttributesOutput{} + 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_deserializeOpDocumentGetServiceAttributesOutput(&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_deserializeOpErrorGetServiceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("ServiceNotFound", errorCode): + return awsAwsjson11_deserializeErrorServiceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpListInstances struct { } @@ -2976,9 +3204,129 @@ func (m *awsAwsjson11_deserializeOpUpdatePublicDnsNamespace) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdatePublicDnsNamespace(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdatePublicDnsNamespace(response, &metadata) + } + output := &UpdatePublicDnsNamespaceOutput{} + 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_deserializeOpDocumentUpdatePublicDnsNamespaceOutput(&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_deserializeOpErrorUpdatePublicDnsNamespace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("DuplicateRequest", errorCode): + return awsAwsjson11_deserializeErrorDuplicateRequest(response, errorBody) + + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("NamespaceNotFound", errorCode): + return awsAwsjson11_deserializeErrorNamespaceNotFound(response, errorBody) + + case strings.EqualFold("ResourceInUse", errorCode): + return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateService struct { +} + +func (*awsAwsjson11_deserializeOpUpdateService) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateService) HandleDeserialize(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_deserializeOpErrorUpdateService(response, &metadata) } - output := &UpdatePublicDnsNamespaceOutput{} + output := &UpdateServiceOutput{} out.Result = output var buff [1024]byte @@ -2998,7 +3346,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePublicDnsNamespace) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdatePublicDnsNamespaceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateServiceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3012,7 +3360,7 @@ func (m *awsAwsjson11_deserializeOpUpdatePublicDnsNamespace) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdatePublicDnsNamespace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateService(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3055,11 +3403,8 @@ func awsAwsjson11_deserializeOpErrorUpdatePublicDnsNamespace(response *smithyhtt case strings.EqualFold("InvalidInput", errorCode): return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) - case strings.EqualFold("NamespaceNotFound", errorCode): - return awsAwsjson11_deserializeErrorNamespaceNotFound(response, errorBody) - - case strings.EqualFold("ResourceInUse", errorCode): - return awsAwsjson11_deserializeErrorResourceInUse(response, errorBody) + case strings.EqualFold("ServiceNotFound", errorCode): + return awsAwsjson11_deserializeErrorServiceNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -3071,14 +3416,14 @@ func awsAwsjson11_deserializeOpErrorUpdatePublicDnsNamespace(response *smithyhtt } } -type awsAwsjson11_deserializeOpUpdateService struct { +type awsAwsjson11_deserializeOpUpdateServiceAttributes struct { } -func (*awsAwsjson11_deserializeOpUpdateService) ID() string { +func (*awsAwsjson11_deserializeOpUpdateServiceAttributes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateService) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateServiceAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3096,9 +3441,9 @@ func (m *awsAwsjson11_deserializeOpUpdateService) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateService(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateServiceAttributes(response, &metadata) } - output := &UpdateServiceOutput{} + output := &UpdateServiceAttributesOutput{} out.Result = output var buff [1024]byte @@ -3118,7 +3463,7 @@ func (m *awsAwsjson11_deserializeOpUpdateService) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateServiceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateServiceAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3132,7 +3477,7 @@ func (m *awsAwsjson11_deserializeOpUpdateService) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateService(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateServiceAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3169,12 +3514,12 @@ func awsAwsjson11_deserializeOpErrorUpdateService(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("DuplicateRequest", errorCode): - return awsAwsjson11_deserializeErrorDuplicateRequest(response, errorBody) - case strings.EqualFold("InvalidInput", errorCode): return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + case strings.EqualFold("ServiceAttributesLimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorServiceAttributesLimitExceededException(response, errorBody) + case strings.EqualFold("ServiceNotFound", errorCode): return awsAwsjson11_deserializeErrorServiceNotFound(response, errorBody) @@ -3608,6 +3953,41 @@ func awsAwsjson11_deserializeErrorServiceAlreadyExists(response *smithyhttp.Resp return output } +func awsAwsjson11_deserializeErrorServiceAttributesLimitExceededException(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.ServiceAttributesLimitExceededException{} + err := awsAwsjson11_deserializeDocumentServiceAttributesLimitExceededException(&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_deserializeErrorServiceNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -5520,6 +5900,127 @@ func awsAwsjson11_deserializeDocumentServiceAlreadyExists(v **types.ServiceAlrea return nil } +func awsAwsjson11_deserializeDocumentServiceAttributes(v **types.ServiceAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceAttributes + if *v == nil { + sv = &types.ServiceAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Attributes": + if err := awsAwsjson11_deserializeDocumentServiceAttributesMap(&sv.Attributes, value); err != nil { + return err + } + + case "ServiceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ServiceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentServiceAttributesLimitExceededException(v **types.ServiceAttributesLimitExceededException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceAttributesLimitExceededException + if *v == nil { + sv = &types.ServiceAttributesLimitExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentServiceAttributesMap(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 ServiceAttributeValue to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsAwsjson11_deserializeDocumentServiceNotFound(v **types.ServiceNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6086,6 +6587,37 @@ func awsAwsjson11_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespace return nil } +func awsAwsjson11_deserializeOpDocumentDeleteServiceAttributesOutput(v **DeleteServiceAttributesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteServiceAttributesOutput + if *v == nil { + sv = &DeleteServiceAttributesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteServiceOutput(v **DeleteServiceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6403,6 +6935,42 @@ func awsAwsjson11_deserializeOpDocumentGetOperationOutput(v **GetOperationOutput return nil } +func awsAwsjson11_deserializeOpDocumentGetServiceAttributesOutput(v **GetServiceAttributesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetServiceAttributesOutput + if *v == nil { + sv = &GetServiceAttributesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ServiceAttributes": + if err := awsAwsjson11_deserializeDocumentServiceAttributes(&sv.ServiceAttributes, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetServiceOutput(v **GetServiceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6877,6 +7445,37 @@ func awsAwsjson11_deserializeOpDocumentUpdatePublicDnsNamespaceOutput(v **Update return nil } +func awsAwsjson11_deserializeOpDocumentUpdateServiceAttributesOutput(v **UpdateServiceAttributesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateServiceAttributesOutput + if *v == nil { + sv = &UpdateServiceAttributesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdateServiceOutput(v **UpdateServiceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/servicediscovery/generated.json b/service/servicediscovery/generated.json index c9892de7d45..2c74b69476a 100644 --- a/service/servicediscovery/generated.json +++ b/service/servicediscovery/generated.json @@ -14,6 +14,7 @@ "api_op_CreateService.go", "api_op_DeleteNamespace.go", "api_op_DeleteService.go", + "api_op_DeleteServiceAttributes.go", "api_op_DeregisterInstance.go", "api_op_DiscoverInstances.go", "api_op_DiscoverInstancesRevision.go", @@ -22,6 +23,7 @@ "api_op_GetNamespace.go", "api_op_GetOperation.go", "api_op_GetService.go", + "api_op_GetServiceAttributes.go", "api_op_ListInstances.go", "api_op_ListNamespaces.go", "api_op_ListOperations.go", @@ -35,6 +37,7 @@ "api_op_UpdatePrivateDnsNamespace.go", "api_op_UpdatePublicDnsNamespace.go", "api_op_UpdateService.go", + "api_op_UpdateServiceAttributes.go", "auth.go", "deserializers.go", "doc.go", diff --git a/service/servicediscovery/serializers.go b/service/servicediscovery/serializers.go index b4b14b97e14..19a92bb5b8f 100644 --- a/service/servicediscovery/serializers.go +++ b/service/servicediscovery/serializers.go @@ -382,6 +382,67 @@ func (m *awsAwsjson11_serializeOpDeleteService) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteServiceAttributes struct { +} + +func (*awsAwsjson11_serializeOpDeleteServiceAttributes) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteServiceAttributes) 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.(*DeleteServiceAttributesInput) + _ = 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("Route53AutoNaming_v20170314.DeleteServiceAttributes") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteServiceAttributesInput(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_serializeOpDeregisterInstance struct { } @@ -870,6 +931,67 @@ func (m *awsAwsjson11_serializeOpGetService) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetServiceAttributes struct { +} + +func (*awsAwsjson11_serializeOpGetServiceAttributes) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetServiceAttributes) 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.(*GetServiceAttributesInput) + _ = 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("Route53AutoNaming_v20170314.GetServiceAttributes") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetServiceAttributesInput(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_serializeOpListInstances struct { } @@ -1662,6 +1784,67 @@ func (m *awsAwsjson11_serializeOpUpdateService) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } + +type awsAwsjson11_serializeOpUpdateServiceAttributes struct { +} + +func (*awsAwsjson11_serializeOpUpdateServiceAttributes) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateServiceAttributes) 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.(*UpdateServiceAttributesInput) + _ = 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("Route53AutoNaming_v20170314.UpdateServiceAttributes") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateServiceAttributesInput(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_serializeDocumentAttributes(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2033,6 +2216,28 @@ func awsAwsjson11_serializeDocumentPublicDnsPropertiesMutableChange(v *types.Pub return nil } +func awsAwsjson11_serializeDocumentServiceAttributeKeyList(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_serializeDocumentServiceAttributesMap(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_serializeDocumentServiceChange(v *types.ServiceChange, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2339,6 +2544,25 @@ func awsAwsjson11_serializeOpDocumentDeleteNamespaceInput(v *DeleteNamespaceInpu return nil } +func awsAwsjson11_serializeOpDocumentDeleteServiceAttributesInput(v *DeleteServiceAttributesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Attributes != nil { + ok := object.Key("Attributes") + if err := awsAwsjson11_serializeDocumentServiceAttributeKeyList(v.Attributes, ok); err != nil { + return err + } + } + + if v.ServiceId != nil { + ok := object.Key("ServiceId") + ok.String(*v.ServiceId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteServiceInput(v *DeleteServiceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2496,6 +2720,18 @@ func awsAwsjson11_serializeOpDocumentGetOperationInput(v *GetOperationInput, val return nil } +func awsAwsjson11_serializeOpDocumentGetServiceAttributesInput(v *GetServiceAttributesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ServiceId != nil { + ok := object.Key("ServiceId") + ok.String(*v.ServiceId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetServiceInput(v *GetServiceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2775,6 +3011,25 @@ func awsAwsjson11_serializeOpDocumentUpdatePublicDnsNamespaceInput(v *UpdatePubl return nil } +func awsAwsjson11_serializeOpDocumentUpdateServiceAttributesInput(v *UpdateServiceAttributesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Attributes != nil { + ok := object.Key("Attributes") + if err := awsAwsjson11_serializeDocumentServiceAttributesMap(v.Attributes, ok); err != nil { + return err + } + } + + if v.ServiceId != nil { + ok := object.Key("ServiceId") + ok.String(*v.ServiceId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdateServiceInput(v *UpdateServiceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/servicediscovery/snapshot/api_op_DeleteServiceAttributes.go.snap b/service/servicediscovery/snapshot/api_op_DeleteServiceAttributes.go.snap new file mode 100644 index 00000000000..73659e866e5 --- /dev/null +++ b/service/servicediscovery/snapshot/api_op_DeleteServiceAttributes.go.snap @@ -0,0 +1,41 @@ +DeleteServiceAttributes + 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/servicediscovery/snapshot/api_op_GetServiceAttributes.go.snap b/service/servicediscovery/snapshot/api_op_GetServiceAttributes.go.snap new file mode 100644 index 00000000000..0d21857c836 --- /dev/null +++ b/service/servicediscovery/snapshot/api_op_GetServiceAttributes.go.snap @@ -0,0 +1,41 @@ +GetServiceAttributes + 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/servicediscovery/snapshot/api_op_UpdateServiceAttributes.go.snap b/service/servicediscovery/snapshot/api_op_UpdateServiceAttributes.go.snap new file mode 100644 index 00000000000..8777d2f5cab --- /dev/null +++ b/service/servicediscovery/snapshot/api_op_UpdateServiceAttributes.go.snap @@ -0,0 +1,41 @@ +UpdateServiceAttributes + 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/servicediscovery/snapshot_test.go b/service/servicediscovery/snapshot_test.go index 155a3a30e87..252b8145ddb 100644 --- a/service/servicediscovery/snapshot_test.go +++ b/service/servicediscovery/snapshot_test.go @@ -134,6 +134,18 @@ func TestCheckSnapshot_DeleteService(t *testing.T) { } } +func TestCheckSnapshot_DeleteServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeregisterInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DeregisterInstance(context.Background(), nil, func(o *Options) { @@ -230,6 +242,18 @@ func TestCheckSnapshot_GetService(t *testing.T) { } } +func TestCheckSnapshot_GetServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListInstances(t *testing.T) { svc := New(Options{}) _, err := svc.ListInstances(context.Background(), nil, func(o *Options) { @@ -385,6 +409,18 @@ func TestCheckSnapshot_UpdateService(t *testing.T) { t.Fatal(err) } } + +func TestCheckSnapshot_UpdateServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} func TestUpdateSnapshot_CreateHttpNamespace(t *testing.T) { svc := New(Options{}) _, err := svc.CreateHttpNamespace(context.Background(), nil, func(o *Options) { @@ -457,6 +493,18 @@ func TestUpdateSnapshot_DeleteService(t *testing.T) { } } +func TestUpdateSnapshot_DeleteServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeregisterInstance(t *testing.T) { svc := New(Options{}) _, err := svc.DeregisterInstance(context.Background(), nil, func(o *Options) { @@ -553,6 +601,18 @@ func TestUpdateSnapshot_GetService(t *testing.T) { } } +func TestUpdateSnapshot_GetServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListInstances(t *testing.T) { svc := New(Options{}) _, err := svc.ListInstances(context.Background(), nil, func(o *Options) { @@ -708,3 +768,15 @@ func TestUpdateSnapshot_UpdateService(t *testing.T) { t.Fatal(err) } } + +func TestUpdateSnapshot_UpdateServiceAttributes(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateServiceAttributes(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateServiceAttributes") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} diff --git a/service/servicediscovery/types/errors.go b/service/servicediscovery/types/errors.go index faeb64dd981..cb9d5ac3bea 100644 --- a/service/servicediscovery/types/errors.go +++ b/service/servicediscovery/types/errors.go @@ -337,6 +337,35 @@ func (e *ServiceAlreadyExists) ErrorCode() string { } func (e *ServiceAlreadyExists) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// The attribute can't be added to the service because you've exceeded the quota +// for the number of attributes you can add to a service. +type ServiceAttributesLimitExceededException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ServiceAttributesLimitExceededException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceAttributesLimitExceededException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceAttributesLimitExceededException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ServiceAttributesLimitExceededException" + } + return *e.ErrorCodeOverride +} +func (e *ServiceAttributesLimitExceededException) ErrorFault() smithy.ErrorFault { + return smithy.FaultClient +} + // No service exists with the specified ID. type ServiceNotFound struct { Message *string diff --git a/service/servicediscovery/types/types.go b/service/servicediscovery/types/types.go index f0921d6ceee..9a4b5375787 100644 --- a/service/servicediscovery/types/types.go +++ b/service/servicediscovery/types/types.go @@ -9,14 +9,15 @@ import ( // A complex type that contains information about the Amazon Route 53 DNS records // that you want Cloud Map to create when you register an instance. -// -// The record types of a service can only be changed by deleting the service and -// recreating it with a new Dnsconfig . type DnsConfig struct { // An array that contains one DnsRecord object for each Route 53 DNS record that // you want Cloud Map to create when you register an instance. // + // The record type of a service specified in a DnsRecord object can't be updated. + // To change a record type, you need to delete the service and recreate it with a + // new DnsConfig . + // // This member is required. DnsRecords []DnsRecord @@ -1057,6 +1058,26 @@ type Service struct { noSmithyDocumentSerde } +// A complex type that contains information about attributes associated with a +// specific service. +type ServiceAttributes struct { + + // A string map that contains the following information for the service that you + // specify in ServiceArn : + // + // - The attributes that apply to the service. + // + // - For each attribute, the applicable value. + // + // You can specify a total of 30 attributes. + Attributes map[string]string + + // The ARN of the service that the attributes are associated with. + ServiceArn *string + + noSmithyDocumentSerde +} + // A complex type that contains changes to an existing service. type ServiceChange struct { diff --git a/service/servicediscovery/validators.go b/service/servicediscovery/validators.go index 6b774a073d9..58a440ee103 100644 --- a/service/servicediscovery/validators.go +++ b/service/servicediscovery/validators.go @@ -110,6 +110,26 @@ func (m *validateOpDeleteNamespace) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpDeleteServiceAttributes struct { +} + +func (*validateOpDeleteServiceAttributes) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteServiceAttributes) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteServiceAttributesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteServiceAttributesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteService struct { } @@ -270,6 +290,26 @@ func (m *validateOpGetOperation) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpGetServiceAttributes struct { +} + +func (*validateOpGetServiceAttributes) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetServiceAttributes) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetServiceAttributesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetServiceAttributesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetService struct { } @@ -530,6 +570,26 @@ func (m *validateOpUpdatePublicDnsNamespace) HandleInitialize(ctx context.Contex return next.HandleInitialize(ctx, in) } +type validateOpUpdateServiceAttributes struct { +} + +func (*validateOpUpdateServiceAttributes) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateServiceAttributes) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateServiceAttributesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateServiceAttributesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateService struct { } @@ -570,6 +630,10 @@ func addOpDeleteNamespaceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteNamespace{}, middleware.After) } +func addOpDeleteServiceAttributesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteServiceAttributes{}, middleware.After) +} + func addOpDeleteServiceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteService{}, middleware.After) } @@ -602,6 +666,10 @@ func addOpGetOperationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetOperation{}, middleware.After) } +func addOpGetServiceAttributesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetServiceAttributes{}, middleware.After) +} + func addOpGetServiceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetService{}, middleware.After) } @@ -654,6 +722,10 @@ func addOpUpdatePublicDnsNamespaceValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpUpdatePublicDnsNamespace{}, middleware.After) } +func addOpUpdateServiceAttributesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateServiceAttributes{}, middleware.After) +} + func addOpUpdateServiceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateService{}, middleware.After) } @@ -1257,6 +1329,24 @@ func validateOpDeleteNamespaceInput(v *DeleteNamespaceInput) error { } } +func validateOpDeleteServiceAttributesInput(v *DeleteServiceAttributesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteServiceAttributesInput"} + if v.ServiceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ServiceId")) + } + if v.Attributes == nil { + invalidParams.Add(smithy.NewErrParamRequired("Attributes")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteServiceInput(v *DeleteServiceInput) error { if v == nil { return nil @@ -1389,6 +1479,21 @@ func validateOpGetOperationInput(v *GetOperationInput) error { } } +func validateOpGetServiceAttributesInput(v *GetServiceAttributesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetServiceAttributesInput"} + if v.ServiceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ServiceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetServiceInput(v *GetServiceInput) error { if v == nil { return nil @@ -1633,6 +1738,24 @@ func validateOpUpdatePublicDnsNamespaceInput(v *UpdatePublicDnsNamespaceInput) e } } +func validateOpUpdateServiceAttributesInput(v *UpdateServiceAttributesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateServiceAttributesInput"} + if v.ServiceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ServiceId")) + } + if v.Attributes == nil { + invalidParams.Add(smithy.NewErrParamRequired("Attributes")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateServiceInput(v *UpdateServiceInput) error { if v == nil { return nil diff --git a/service/trustedadvisor/internal/endpoints/endpoints.go b/service/trustedadvisor/internal/endpoints/endpoints.go index fde3fcbeb1f..c80f9ff85bc 100644 --- a/service/trustedadvisor/internal/endpoints/endpoints.go +++ b/service/trustedadvisor/internal/endpoints/endpoints.go @@ -138,6 +138,32 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "fips-us-east-1", + }: endpoints.Endpoint{ + Hostname: "trustedadvisor-fips.us-east-1.api.aws", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + }, + endpoints.EndpointKey{ + Region: "fips-us-east-2", + }: endpoints.Endpoint{ + Hostname: "trustedadvisor-fips.us-east-2.api.aws", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + }, + endpoints.EndpointKey{ + Region: "fips-us-west-2", + }: endpoints.Endpoint{ + Hostname: "trustedadvisor-fips.us-west-2.api.aws", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + }, + }, }, { ID: "aws-cn", From 25f6dc0f42d1ab5a6dd1615c6a71ae2d891d1ad5 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 13 Dec 2024 19:38:10 +0000 Subject: [PATCH 17/17] Release 2024-12-13 --- .changelog/2c30a371457d45e29137a0dbfa6efca9.json | 8 -------- .changelog/3550fde8f74240d8b0de0755ef513a48.json | 8 -------- .changelog/3708358d0f7f440abc9ed8242d480111.json | 8 -------- .changelog/3d1e692c20ca4d70be1444940d66761a.json | 8 -------- .changelog/68053e24d75a49fc8a15b173cf3e95bf.json | 8 -------- .changelog/95130284cce24dd29c1e24172d993fd2.json | 8 -------- .changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json | 8 -------- CHANGELOG.md | 16 ++++++++++++++++ service/cloudhsmv2/CHANGELOG.md | 4 ++++ service/cloudhsmv2/go_module_metadata.go | 2 +- service/codebuild/CHANGELOG.md | 4 ++++ service/codebuild/go_module_metadata.go | 2 +- service/dlm/CHANGELOG.md | 4 ++++ service/dlm/go_module_metadata.go | 2 +- service/ec2/CHANGELOG.md | 4 ++++ service/ec2/go_module_metadata.go | 2 +- service/eks/CHANGELOG.md | 4 ++++ service/eks/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 6 +++--- service/mediaconnect/CHANGELOG.md | 4 ++++ service/mediaconnect/go_module_metadata.go | 2 +- service/networkmanager/CHANGELOG.md | 4 ++++ service/networkmanager/go_module_metadata.go | 2 +- service/scheduler/CHANGELOG.md | 4 ++++ service/scheduler/go_module_metadata.go | 2 +- service/servicediscovery/CHANGELOG.md | 4 ++++ service/servicediscovery/go_module_metadata.go | 2 +- service/trustedadvisor/CHANGELOG.md | 4 ++++ service/trustedadvisor/go_module_metadata.go | 2 +- 29 files changed, 69 insertions(+), 69 deletions(-) delete mode 100644 .changelog/2c30a371457d45e29137a0dbfa6efca9.json delete mode 100644 .changelog/3550fde8f74240d8b0de0755ef513a48.json delete mode 100644 .changelog/3708358d0f7f440abc9ed8242d480111.json delete mode 100644 .changelog/3d1e692c20ca4d70be1444940d66761a.json delete mode 100644 .changelog/68053e24d75a49fc8a15b173cf3e95bf.json delete mode 100644 .changelog/95130284cce24dd29c1e24172d993fd2.json delete mode 100644 .changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json diff --git a/.changelog/2c30a371457d45e29137a0dbfa6efca9.json b/.changelog/2c30a371457d45e29137a0dbfa6efca9.json deleted file mode 100644 index 512dd1527e6..00000000000 --- a/.changelog/2c30a371457d45e29137a0dbfa6efca9.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "2c30a371-457d-45e2-9137-a0dbfa6efca9", - "type": "feature", - "description": "This release adds GroupId to the response for DeleteSecurityGroup.", - "modules": [ - "service/ec2" - ] -} \ No newline at end of file diff --git a/.changelog/3550fde8f74240d8b0de0755ef513a48.json b/.changelog/3550fde8f74240d8b0de0755ef513a48.json deleted file mode 100644 index 2be3d794dc7..00000000000 --- a/.changelog/3550fde8f74240d8b0de0755ef513a48.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "3550fde8-f742-40d8-b0de-0755ef513a48", - "type": "feature", - "description": "Limit PutIntegration IntegrationName and ListIntegrations IntegrationNamePrefix parameters to 50 characters", - "modules": [ - "service/cloudwatchlogs" - ] -} \ No newline at end of file diff --git a/.changelog/3708358d0f7f440abc9ed8242d480111.json b/.changelog/3708358d0f7f440abc9ed8242d480111.json deleted file mode 100644 index 49053b45ba0..00000000000 --- a/.changelog/3708358d0f7f440abc9ed8242d480111.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "3708358d-0f7f-440a-bc9e-d8242d480111", - "type": "feature", - "description": "AWS Cloud Map now supports service-level attributes, allowing you to associate custom metadata directly with services. These attributes can be retrieved, updated, and deleted using the new GetServiceAttributes, UpdateServiceAttributes, and DeleteServiceAttributes API calls.", - "modules": [ - "service/servicediscovery" - ] -} \ No newline at end of file diff --git a/.changelog/3d1e692c20ca4d70be1444940d66761a.json b/.changelog/3d1e692c20ca4d70be1444940d66761a.json deleted file mode 100644 index ac4dc294abf..00000000000 --- a/.changelog/3d1e692c20ca4d70be1444940d66761a.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "3d1e692c-20ca-4d70-be14-44940d66761a", - "type": "feature", - "description": "Add NodeRepairConfig in CreateNodegroupRequest and UpdateNodegroupConfigRequest", - "modules": [ - "service/eks" - ] -} \ No newline at end of file diff --git a/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json b/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json deleted file mode 100644 index a6ff6bb142c..00000000000 --- a/.changelog/68053e24d75a49fc8a15b173cf3e95bf.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "68053e24-d75a-49fc-8a15-b173cf3e95bf", - "type": "feature", - "description": "AWS Elemental MediaConnect Gateway now supports Source Specific Multicast (SSM) for ingress bridges. This enables you to specify a source IP address in addition to a multicast IP when creating or updating an ingress bridge source.", - "modules": [ - "service/mediaconnect" - ] -} \ No newline at end of file diff --git a/.changelog/95130284cce24dd29c1e24172d993fd2.json b/.changelog/95130284cce24dd29c1e24172d993fd2.json deleted file mode 100644 index 6d0098b0420..00000000000 --- a/.changelog/95130284cce24dd29c1e24172d993fd2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "95130284-cce2-4dd2-9c1e-24172d993fd2", - "type": "documentation", - "description": "There was a sentence fragment in UpdateDirectConnectGatewayAttachment that was causing customer confusion as to whether it's an incomplete sentence or if it was a typo. Removed the fragment.", - "modules": [ - "service/networkmanager" - ] -} \ No newline at end of file diff --git a/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json b/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json deleted file mode 100644 index aec3a16ff6d..00000000000 --- a/.changelog/c4bc0b8974b74d7c9de9e2ec9cfe2754.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c4bc0b89-74b7-4d7c-9de9-e2ec9cfe2754", - "type": "feature", - "description": "Add support for Dual-Stack hsm2m.medium clusters. The customers will now be able to create hsm2m.medium clusters having both IPv4 and IPv6 connection capabilities by specifying a new param called NetworkType=DUALSTACK during cluster creation.", - "modules": [ - "service/cloudhsmv2" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 4666633119e..7780cc62862 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# Release (2024-12-13) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/cloudhsmv2`: [v1.28.0](service/cloudhsmv2/CHANGELOG.md#v1280-2024-12-13) + * **Feature**: Add support for Dual-Stack hsm2m.medium clusters. The customers will now be able to create hsm2m.medium clusters having both IPv4 and IPv6 connection capabilities by specifying a new param called NetworkType=DUALSTACK during cluster creation. +* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.197.0](service/ec2/CHANGELOG.md#v11970-2024-12-13) + * **Feature**: This release adds GroupId to the response for DeleteSecurityGroup. +* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.54.0](service/eks/CHANGELOG.md#v1540-2024-12-13) + * **Feature**: Add NodeRepairConfig in CreateNodegroupRequest and UpdateNodegroupConfigRequest +* `github.com/aws/aws-sdk-go-v2/service/mediaconnect`: [v1.36.0](service/mediaconnect/CHANGELOG.md#v1360-2024-12-13) + * **Feature**: AWS Elemental MediaConnect Gateway now supports Source Specific Multicast (SSM) for ingress bridges. This enables you to specify a source IP address in addition to a multicast IP when creating or updating an ingress bridge source. +* `github.com/aws/aws-sdk-go-v2/service/networkmanager`: [v1.32.2](service/networkmanager/CHANGELOG.md#v1322-2024-12-13) + * **Documentation**: There was a sentence fragment in UpdateDirectConnectGatewayAttachment that was causing customer confusion as to whether it's an incomplete sentence or if it was a typo. Removed the fragment. +* `github.com/aws/aws-sdk-go-v2/service/servicediscovery`: [v1.34.0](service/servicediscovery/CHANGELOG.md#v1340-2024-12-13) + * **Feature**: AWS Cloud Map now supports service-level attributes, allowing you to associate custom metadata directly with services. These attributes can be retrieved, updated, and deleted using the new GetServiceAttributes, UpdateServiceAttributes, and DeleteServiceAttributes API calls. + # Release (2024-12-12) ## Module Highlights diff --git a/service/cloudhsmv2/CHANGELOG.md b/service/cloudhsmv2/CHANGELOG.md index 3215d55117f..9e00c71d047 100644 --- a/service/cloudhsmv2/CHANGELOG.md +++ b/service/cloudhsmv2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.0 (2024-12-13) + +* **Feature**: Add support for Dual-Stack hsm2m.medium clusters. The customers will now be able to create hsm2m.medium clusters having both IPv4 and IPv6 connection capabilities by specifying a new param called NetworkType=DUALSTACK during cluster creation. + # v1.27.8 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/cloudhsmv2/go_module_metadata.go b/service/cloudhsmv2/go_module_metadata.go index a0604848452..15449a47ef6 100644 --- a/service/cloudhsmv2/go_module_metadata.go +++ b/service/cloudhsmv2/go_module_metadata.go @@ -3,4 +3,4 @@ package cloudhsmv2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.8" +const goModuleVersion = "1.28.0" diff --git a/service/codebuild/CHANGELOG.md b/service/codebuild/CHANGELOG.md index 9a9880222b5..6296767572b 100644 --- a/service/codebuild/CHANGELOG.md +++ b/service/codebuild/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.49.3 (2024-12-13) + +* No change notes available for this release. + # v1.49.2 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/codebuild/go_module_metadata.go b/service/codebuild/go_module_metadata.go index 6ffa1f47ce9..e85b7c381ac 100644 --- a/service/codebuild/go_module_metadata.go +++ b/service/codebuild/go_module_metadata.go @@ -3,4 +3,4 @@ package codebuild // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.49.2" +const goModuleVersion = "1.49.3" diff --git a/service/dlm/CHANGELOG.md b/service/dlm/CHANGELOG.md index 63b7e1618be..7639f11039a 100644 --- a/service/dlm/CHANGELOG.md +++ b/service/dlm/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.10 (2024-12-13) + +* No change notes available for this release. + # v1.28.9 (2024-12-11) * No change notes available for this release. diff --git a/service/dlm/go_module_metadata.go b/service/dlm/go_module_metadata.go index a5734242fa7..3aeb41fb40c 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.9" +const goModuleVersion = "1.28.10" diff --git a/service/ec2/CHANGELOG.md b/service/ec2/CHANGELOG.md index b2af84774c7..7b0285b62bc 100644 --- a/service/ec2/CHANGELOG.md +++ b/service/ec2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.197.0 (2024-12-13) + +* **Feature**: This release adds GroupId to the response for DeleteSecurityGroup. + # v1.196.0 (2024-12-09) * **Feature**: This release includes a new API for modifying instance network-performance-options after launch. diff --git a/service/ec2/go_module_metadata.go b/service/ec2/go_module_metadata.go index cf182b2779f..f99fd313021 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.196.0" +const goModuleVersion = "1.197.0" diff --git a/service/eks/CHANGELOG.md b/service/eks/CHANGELOG.md index 3f897d9cd32..3b554636980 100644 --- a/service/eks/CHANGELOG.md +++ b/service/eks/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.54.0 (2024-12-13) + +* **Feature**: Add NodeRepairConfig in CreateNodegroupRequest and UpdateNodegroupConfigRequest + # v1.53.0 (2024-12-02) * **Feature**: Added support for Auto Mode Clusters, Hybrid Nodes, and specifying computeTypes in the DescribeAddonVersions API. diff --git a/service/eks/go_module_metadata.go b/service/eks/go_module_metadata.go index e46793693d0..d2f5cf55396 100644 --- a/service/eks/go_module_metadata.go +++ b/service/eks/go_module_metadata.go @@ -3,4 +3,4 @@ package eks // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.53.0" +const goModuleVersion = "1.54.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 2432ee474d4..77a3f2fc925 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -13,10 +13,10 @@ require ( github.com/aws/aws-sdk-go-v2/service/batch v1.48.2 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/cloudhsmv2 v1.28.0 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/codebuild v1.49.3 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 @@ -29,7 +29,7 @@ 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.196.0 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.197.0 github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 diff --git a/service/mediaconnect/CHANGELOG.md b/service/mediaconnect/CHANGELOG.md index 9fd5e83a577..5f89a5c4d21 100644 --- a/service/mediaconnect/CHANGELOG.md +++ b/service/mediaconnect/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.36.0 (2024-12-13) + +* **Feature**: AWS Elemental MediaConnect Gateway now supports Source Specific Multicast (SSM) for ingress bridges. This enables you to specify a source IP address in addition to a multicast IP when creating or updating an ingress bridge source. + # v1.35.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/mediaconnect/go_module_metadata.go b/service/mediaconnect/go_module_metadata.go index 223013f930e..201886e77d0 100644 --- a/service/mediaconnect/go_module_metadata.go +++ b/service/mediaconnect/go_module_metadata.go @@ -3,4 +3,4 @@ package mediaconnect // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.35.7" +const goModuleVersion = "1.36.0" diff --git a/service/networkmanager/CHANGELOG.md b/service/networkmanager/CHANGELOG.md index 7c3d3fd89f8..4ff172ed79f 100644 --- a/service/networkmanager/CHANGELOG.md +++ b/service/networkmanager/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.32.2 (2024-12-13) + +* **Documentation**: There was a sentence fragment in UpdateDirectConnectGatewayAttachment that was causing customer confusion as to whether it's an incomplete sentence or if it was a typo. Removed the fragment. + # v1.32.1 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/networkmanager/go_module_metadata.go b/service/networkmanager/go_module_metadata.go index d33b7915f2a..86b0b2dd33b 100644 --- a/service/networkmanager/go_module_metadata.go +++ b/service/networkmanager/go_module_metadata.go @@ -3,4 +3,4 @@ package networkmanager // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.32.1" +const goModuleVersion = "1.32.2" diff --git a/service/scheduler/CHANGELOG.md b/service/scheduler/CHANGELOG.md index 8d738ff2e6a..8d5de165400 100644 --- a/service/scheduler/CHANGELOG.md +++ b/service/scheduler/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.12.8 (2024-12-13) + +* No change notes available for this release. + # v1.12.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/scheduler/go_module_metadata.go b/service/scheduler/go_module_metadata.go index 9d9cd6d942a..03f1f64dfc2 100644 --- a/service/scheduler/go_module_metadata.go +++ b/service/scheduler/go_module_metadata.go @@ -3,4 +3,4 @@ package scheduler // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.12.7" +const goModuleVersion = "1.12.8" diff --git a/service/servicediscovery/CHANGELOG.md b/service/servicediscovery/CHANGELOG.md index 16db72a9385..a4ed8cd5e23 100644 --- a/service/servicediscovery/CHANGELOG.md +++ b/service/servicediscovery/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.34.0 (2024-12-13) + +* **Feature**: AWS Cloud Map now supports service-level attributes, allowing you to associate custom metadata directly with services. These attributes can be retrieved, updated, and deleted using the new GetServiceAttributes, UpdateServiceAttributes, and DeleteServiceAttributes API calls. + # v1.33.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/servicediscovery/go_module_metadata.go b/service/servicediscovery/go_module_metadata.go index 125e383a275..2e66a5784bd 100644 --- a/service/servicediscovery/go_module_metadata.go +++ b/service/servicediscovery/go_module_metadata.go @@ -3,4 +3,4 @@ package servicediscovery // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.33.7" +const goModuleVersion = "1.34.0" diff --git a/service/trustedadvisor/CHANGELOG.md b/service/trustedadvisor/CHANGELOG.md index 73be8948b2e..b760a0b9333 100644 --- a/service/trustedadvisor/CHANGELOG.md +++ b/service/trustedadvisor/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.8.8 (2024-12-13) + +* No change notes available for this release. + # v1.8.7 (2024-12-02) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/trustedadvisor/go_module_metadata.go b/service/trustedadvisor/go_module_metadata.go index 884ea004b8c..4704ab69959 100644 --- a/service/trustedadvisor/go_module_metadata.go +++ b/service/trustedadvisor/go_module_metadata.go @@ -3,4 +3,4 @@ package trustedadvisor // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.8.7" +const goModuleVersion = "1.8.8"