diff --git a/.changelog/1aad37133b8b4501b0552c88059db93d.json b/.changelog/1aad37133b8b4501b0552c88059db93d.json new file mode 100644 index 00000000000..0212c92c243 --- /dev/null +++ b/.changelog/1aad37133b8b4501b0552c88059db93d.json @@ -0,0 +1,32 @@ +{ + "id": "1aad3713-3b8b-4501-b055-2c88059db93d", + "type": "feature", + "description": "Updated to latest API model.", + "modules": [ + "service/applicationinsights", + "service/configservice", + "service/connect", + "service/ec2", + "service/ec2instanceconnect", + "service/efs", + "service/fis", + "service/frauddetector", + "service/fsx", + "service/greengrass", + "service/greengrassv2", + "service/guardduty", + "service/honeycode", + "service/ivs", + "service/kafka", + "service/location", + "service/lookoutmetrics", + "service/macie2", + "service/mediaconvert", + "service/mediatailor", + "service/ram", + "service/sagemaker", + "service/securityhub", + "service/storagegateway", + "service/transcribe" + ] +} \ No newline at end of file diff --git a/.changelog/2431530f536f406f869a325ec51c4844.json b/.changelog/2431530f536f406f869a325ec51c4844.json new file mode 100644 index 00000000000..fc8b7282c00 --- /dev/null +++ b/.changelog/2431530f536f406f869a325ec51c4844.json @@ -0,0 +1,11 @@ +{ + "id": "2431530f-536f-406f-869a-325ec51c4844", + "type": "documentation", + "description": "Updated to latest API model.", + "modules": [ + "service/cloudtrail", + "service/codegurureviewer", + "service/ebs", + "service/route53recoveryreadiness" + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile index d463fbcc50d..1ee7dd56183 100644 --- a/Makefile +++ b/Makefile @@ -77,8 +77,8 @@ sync-api-models copy-attributevalue-feature min-go-version-% update-requires smi update-module-metadata download-modules-% generate: smithy-generate update-requires gen-repo-mod-replace update-module-metadata smithy-annotate-stable \ -gen-config-asserts copy-attributevalue-feature gen-mod-dropreplace-smithy min-go-version-. tidy-modules-. \ -add-module-license-files gen-aws-ptrs format +gen-config-asserts gen-internal-codegen copy-attributevalue-feature gen-mod-dropreplace-smithy min-go-version-. \ +tidy-modules-. add-module-license-files gen-aws-ptrs format smithy-generate: cd codegen && ./gradlew clean build -Plog-tests && ./gradlew clean @@ -116,6 +116,11 @@ gen-config-asserts: && go mod tidy \ && go generate +gen-internal-codegen: + @echo "Generating internal/codegen" + cd internal/codegen \ + && go generate + gen-repo-mod-replace: @echo "Generating go.mod replace for repo modules" go run ${REPOTOOLS_CMD_MAKE_RELATIVE} diff --git a/codegen/sdk-codegen/aws-models/applicationinsights.2018-11-25.json b/codegen/sdk-codegen/aws-models/applicationinsights.2018-11-25.json index 1bd7ba60c11..6a1f64bbd87 100644 --- a/codegen/sdk-codegen/aws-models/applicationinsights.2018-11-25.json +++ b/codegen/sdk-codegen/aws-models/applicationinsights.2018-11-25.json @@ -2838,6 +2838,14 @@ { "value": "SQL_SERVER_FAILOVER_CLUSTER_INSTANCE", "name": "SQL_SERVER_FAILOVER_CLUSTER_INSTANCE" + }, + { + "value": "SHAREPOINT", + "name": "SHAREPOINT" + }, + { + "value": "ACTIVE_DIRECTORY", + "name": "ACTIVE_DIRECTORY" } ], "smithy.api#length": { diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json index f6f90077c15..35d66717788 100644 --- a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json +++ b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json @@ -142,7 +142,7 @@ "Field": { "target": "com.amazonaws.cloudtrail#SelectorField", "traits": { - "smithy.api#documentation": "

\n A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, \n eventSource (for management events), eventName, resources.type, and resources.ARN.\n

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

\n A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, \n eventSource (for management events), eventName, resources.type, and resources.ARN.\n

\n ", "smithy.api#required": {} } }, @@ -935,7 +935,7 @@ "Type": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The resource type in which you want to log data events. You can specify\n the following basic event selector resource types:

\n \n

The following resource types are also availble through advanced event selectors.\n Basic event selector resource types are valid in advanced event selectors, but\n advanced event selector resource types are not valid in basic event selectors.\n For more information, see AdvancedFieldSelector$Field.

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

The resource type in which you want to log data events. You can specify\n the following basic event selector resource types:

\n \n\n

The following resource types are also availble through advanced event selectors.\n Basic event selector resource types are valid in advanced event selectors, but\n advanced event selector resource types are not valid in basic event selectors.\n For more information, see AdvancedFieldSelector$Field.

\n " } }, "Values": { @@ -999,7 +999,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables the event data store specified by EventDataStore, which accepts an event data store ARN. \n After you run DeleteEventDataStore, the event data store is automatically deleted after a wait period of \n seven days. TerminationProtectionEnabled must be set to False on the event data store; this \n operation cannot work if TerminationProtectionEnabled is True.

\n

After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, \n DescribeQuery, or GetQueryResults on queries that are using an event data store in a \n PENDING_DELETION state.

" + "smithy.api#documentation": "

Disables the event data store specified by EventDataStore, which accepts an event data store ARN. \n After you run DeleteEventDataStore, the event data store enters a PENDING_DELETION state, and is automatically deleted after a wait period of \n seven days. TerminationProtectionEnabled must be set to False on the event data store; this \n operation cannot work if TerminationProtectionEnabled is True.

\n

After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, \n DescribeQuery, or GetQueryResults on queries that are using an event data store in a \n PENDING_DELETION state. An event data store in the PENDING_DELETION state does not incur costs.

" } }, "com.amazonaws.cloudtrail#DeleteEventDataStoreRequest": { @@ -1547,7 +1547,7 @@ "ExcludeManagementEventSources": { "target": "com.amazonaws.cloudtrail#ExcludeManagementEventSources", "traits": { - "smithy.api#documentation": "

An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), \n or it can filter out Key Management Service or Amazon RDS Data API events by \n containing kms.amazonaws.com or rdsdata.amazonaws.com. By default, ExcludeManagementEventSources is empty, and KMS and \n Amazon RDS Data API events are logged to your trail.

" + "smithy.api#documentation": "

An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), \n or it can filter out Key Management Service or Amazon RDS Data API events by \n containing kms.amazonaws.com or rdsdata.amazonaws.com. By default, ExcludeManagementEventSources is empty, and KMS and \n Amazon RDS Data API events are logged to your trail. You can exclude management event sources only in regions that support the event source.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/codegurureviewer.2019-09-19.json b/codegen/sdk-codegen/aws-models/codegurureviewer.2019-09-19.json index 3791667bc30..e139a3f9ac0 100644 --- a/codegen/sdk-codegen/aws-models/codegurureviewer.2019-09-19.json +++ b/codegen/sdk-codegen/aws-models/codegurureviewer.2019-09-19.json @@ -31,6 +31,21 @@ "shapes": { "com.amazonaws.codegurureviewer#AWSGuruFrontendService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "CodeGuru Reviewer", + "arnNamespace": "codeguru-reviewer", + "cloudFormationName": "CodeGuruReviewer", + "cloudTrailEventSource": "codegurureviewer.amazonaws.com", + "endpointPrefix": "codeguru-reviewer" + }, + "aws.auth#sigv4": { + "name": "codeguru-reviewer" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service\n that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends\n fixes in your Java and Python code.

\n \n

By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer\n improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the \n \n Amazon CodeGuru Reviewer User Guide.\n

\n \n

\n To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by \n creating an interface VPC endpoint. For more information, see \n CodeGuru Reviewer and interface \n VPC endpoints (Amazon Web Services PrivateLink) in the Amazon CodeGuru Reviewer User Guide.\n

", + "smithy.api#title": "Amazon CodeGuru Reviewer" + }, "version": "2019-09-19", "operations": [ { @@ -75,22 +90,7 @@ { "target": "com.amazonaws.codegurureviewer#UntagResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "CodeGuru Reviewer", - "arnNamespace": "codeguru-reviewer", - "cloudFormationName": "CodeGuruReviewer", - "cloudTrailEventSource": "codegurureviewer.amazonaws.com", - "endpointPrefix": "codeguru-reviewer" - }, - "aws.auth#sigv4": { - "name": "codeguru-reviewer" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service\n that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends\n fixes in your Java and Python code.

\n \n

By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer\n improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the \n \n Amazon CodeGuru Reviewer User Guide.\n

\n \n

\n To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by \n creating an interface VPC endpoint. For more information, see \n CodeGuru Reviewer and interface \n VPC endpoints (Amazon Web Services PrivateLink) in the Amazon CodeGuru Reviewer User Guide.\n

", - "smithy.api#title": "Amazon CodeGuru Reviewer" - } + ] }, "com.amazonaws.codegurureviewer#AccessDeniedException": { "type": "structure", @@ -718,6 +718,16 @@ } } }, + { + "state": "failure", + "matcher": { + "output": { + "path": "CodeReview.State", + "expected": "Failed", + "comparator": "stringEquals" + } + } + }, { "state": "retry", "matcher": { @@ -877,6 +887,16 @@ } } }, + { + "state": "failure", + "matcher": { + "output": { + "path": "RepositoryAssociation.State", + "expected": "Failed", + "comparator": "stringEquals" + } + } + }, { "state": "retry", "matcher": { @@ -1394,6 +1414,16 @@ } } }, + "com.amazonaws.codegurureviewer#ListRecommendationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 300 + } + } + }, "com.amazonaws.codegurureviewer#ListRecommendationsRequest": { "type": "structure", "members": { @@ -1405,7 +1435,7 @@ } }, "MaxResults": { - "target": "com.amazonaws.codegurureviewer#MaxResults", + "target": "com.amazonaws.codegurureviewer#ListRecommendationsMaxResults", "traits": { "smithy.api#documentation": "

\n The maximum number of results that are returned per call. The default is 100.\n

", "smithy.api#httpQuery": "MaxResults" @@ -2729,7 +2759,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 2048 + "max": 5000 } } }, diff --git a/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json b/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json index 6b636c1dbad..2d3f33e3896 100644 --- a/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json +++ b/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json @@ -10319,6 +10319,30 @@ { "value": "AWS::OpenSearch::Domain", "name": "OpenSearchDomain" + }, + { + "value": "AWS::EC2::TransitGateway", + "name": "TransitGateway" + }, + { + "value": "AWS::Kinesis::Stream", + "name": "KinesisStream" + }, + { + "value": "AWS::Kinesis::StreamConsumer", + "name": "KinesisStreamConsumer" + }, + { + "value": "AWS::CodeDeploy::Application", + "name": "CodeDeployApplication" + }, + { + "value": "AWS::CodeDeploy::DeploymentConfig", + "name": "CodeDeployDeploymentConfig" + }, + { + "value": "AWS::CodeDeploy::DeploymentGroup", + "name": "CodeDeployDeploymentGroup" } ] } @@ -10766,6 +10790,24 @@ }, "com.amazonaws.configservice#StarlingDoveService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Config Service", + "arnNamespace": "config", + "cloudFormationName": "Config", + "cloudTrailEventSource": "configservice.amazonaws.com", + "endpointPrefix": "config" + }, + "aws.auth#sigv4": { + "name": "config" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Config\n\n\t\t

Config provides a way to keep track of the configurations\n\t\t\tof all the Amazon Web Services resources associated with your Amazon Web Services account. You can\n\t\t\tuse Config to get the current and historical configurations of\n\t\t\teach Amazon Web Services resource and also to get information about the relationship\n\t\t\tbetween the resources. An Amazon Web Services resource can be an Amazon Compute\n\t\t\tCloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an\n\t\t\telastic network Interface (ENI), or a security group. For a complete\n\t\t\tlist of resources currently supported by Config, see Supported Amazon Web Services resources.

\n\n\t\t

You can access and manage Config through the Amazon Web Services Management\n\t\t\tConsole, the Amazon Web Services Command Line Interface (Amazon Web Services CLI), the Config\n\t\t\tAPI, or the Amazon Web Services SDKs for Config. This reference guide contains\n\t\t\tdocumentation for the Config API and the Amazon Web Services CLI commands that\n\t\t\tyou can use to manage Config. The Config API uses the\n\t\t\tSignature Version 4 protocol for signing requests. For more\n\t\t\tinformation about how to sign a request with this protocol, see\n\t\t\t\tSignature\n\t\t\t\tVersion 4 Signing Process. For detailed information\n\t\t\tabout Config features and their associated actions or commands,\n\t\t\tas well as how to work with Amazon Web Services Management Console, see What Is Config in the Config Developer\n\t\t\t\tGuide.

", + "smithy.api#title": "AWS Config", + "smithy.api#xmlNamespace": { + "uri": "http://config.amazonaws.com/doc/2014-11-12/" + } + }, "version": "2014-11-12", "operations": [ { @@ -11026,25 +11068,7 @@ { "target": "com.amazonaws.configservice#UntagResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Config Service", - "arnNamespace": "config", - "cloudFormationName": "Config", - "cloudTrailEventSource": "configservice.amazonaws.com", - "endpointPrefix": "config" - }, - "aws.auth#sigv4": { - "name": "config" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Config\n\n\t\t

Config provides a way to keep track of the configurations\n\t\t\tof all the Amazon Web Services resources associated with your Amazon Web Services account. You can\n\t\t\tuse Config to get the current and historical configurations of\n\t\t\teach Amazon Web Services resource and also to get information about the relationship\n\t\t\tbetween the resources. An Amazon Web Services resource can be an Amazon Compute\n\t\t\tCloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an\n\t\t\telastic network Interface (ENI), or a security group. For a complete\n\t\t\tlist of resources currently supported by Config, see Supported Amazon Web Services resources.

\n\n\t\t

You can access and manage Config through the Amazon Web Services Management\n\t\t\tConsole, the Amazon Web Services Command Line Interface (Amazon Web Services CLI), the Config\n\t\t\tAPI, or the Amazon Web Services SDKs for Config. This reference guide contains\n\t\t\tdocumentation for the Config API and the Amazon Web Services CLI commands that\n\t\t\tyou can use to manage Config. The Config API uses the\n\t\t\tSignature Version 4 protocol for signing requests. For more\n\t\t\tinformation about how to sign a request with this protocol, see\n\t\t\t\tSignature\n\t\t\t\tVersion 4 Signing Process. For detailed information\n\t\t\tabout Config features and their associated actions or commands,\n\t\t\tas well as how to work with Amazon Web Services Management Console, see What Is Config in the Config Developer\n\t\t\t\tGuide.

", - "smithy.api#title": "AWS Config", - "smithy.api#xmlNamespace": { - "uri": "http://config.amazonaws.com/doc/2014-11-12/" - } - } + ] }, "com.amazonaws.configservice#StartConfigRulesEvaluation": { "type": "operation", diff --git a/codegen/sdk-codegen/aws-models/connect.2017-08-08.json b/codegen/sdk-codegen/aws-models/connect.2017-08-08.json index d34d161c75d..2a0ccbb5926 100644 --- a/codegen/sdk-codegen/aws-models/connect.2017-08-08.json +++ b/codegen/sdk-codegen/aws-models/connect.2017-08-08.json @@ -307,7 +307,7 @@ "name": "connect" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer\n contact center and provide reliable customer engagement at any scale.

\n

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing.\n You can also resolve customer issues more efficiently by getting customers in touch with the\n appropriate agents.

\n

There are limits to the number of Amazon Connect resources that you can create. There are also limits\n to the number of requests that you can make per second. For more information, see Amazon Connect\n Service Quotas in the Amazon Connect Administrator Guide.

\n

You can connect programmatically to an AWS service by using an endpoint. For a list of Amazon Connect\n endpoints, see Amazon Connect\n Endpoints.

\n \n

Working with contact flows? Check out the Amazon Connect Flow language.

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

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer\n contact center and provide reliable customer engagement at any scale.

\n

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing.\n You can also resolve customer issues more efficiently by getting customers in touch with the\n appropriate agents.

\n

There are limits to the number of Amazon Connect resources that you can create. There are also limits\n to the number of requests that you can make per second. For more information, see Amazon Connect\n Service Quotas in the Amazon Connect Administrator Guide.

\n

You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect\n endpoints, see Amazon Connect\n Endpoints.

\n \n

Working with contact flows? Check out the Amazon Connect Flow language.

\n
", "smithy.api#title": "Amazon Connect Service" }, "version": "2017-08-08", @@ -318,6 +318,9 @@ { "target": "com.amazonaws.connect#AssociateBot" }, + { + "target": "com.amazonaws.connect#AssociateDefaultVocabulary" + }, { "target": "com.amazonaws.connect#AssociateInstanceStorageConfig" }, @@ -375,6 +378,9 @@ { "target": "com.amazonaws.connect#CreateUserHierarchyGroup" }, + { + "target": "com.amazonaws.connect#CreateVocabulary" + }, { "target": "com.amazonaws.connect#DeleteContactFlow" }, @@ -405,6 +411,9 @@ { "target": "com.amazonaws.connect#DeleteUserHierarchyGroup" }, + { + "target": "com.amazonaws.connect#DeleteVocabulary" + }, { "target": "com.amazonaws.connect#DescribeAgentStatus" }, @@ -450,6 +459,9 @@ { "target": "com.amazonaws.connect#DescribeUserHierarchyStructure" }, + { + "target": "com.amazonaws.connect#DescribeVocabulary" + }, { "target": "com.amazonaws.connect#DisassociateApprovedOrigin" }, @@ -504,6 +516,9 @@ { "target": "com.amazonaws.connect#ListContactReferences" }, + { + "target": "com.amazonaws.connect#ListDefaultVocabularies" + }, { "target": "com.amazonaws.connect#ListHoursOfOperations" }, @@ -570,6 +585,9 @@ { "target": "com.amazonaws.connect#ResumeContactRecording" }, + { + "target": "com.amazonaws.connect#SearchVocabularies" + }, { "target": "com.amazonaws.connect#StartChatContact" }, @@ -834,6 +852,71 @@ } } }, + "com.amazonaws.connect#AssociateDefaultVocabulary": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#AssociateDefaultVocabularyRequest" + }, + "output": { + "target": "com.amazonaws.connect#AssociateDefaultVocabularyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates an existing vocabulary as the default. Contact Lens for Amazon Connect uses the vocabulary in post-call and real-time analysis sessions for the given language.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/default-vocabulary/{InstanceId}/{LanguageCode}", + "code": 200 + } + } + }, + "com.amazonaws.connect#AssociateDefaultVocabularyRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The identifier of the custom vocabulary. If this is empty, the default is set to none.

" + } + } + } + }, + "com.amazonaws.connect#AssociateDefaultVocabularyResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.connect#AssociateInstanceStorageConfig": { "type": "operation", "input": { @@ -1247,7 +1330,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the attachment reference if the referenceType is ATTACHMENT. Otherwise, null.

" + "smithy.api#documentation": "

Information about the attachment reference if the referenceType is\n ATTACHMENT. Otherwise, null.

" } }, "com.amazonaws.connect#Attribute": { @@ -1535,7 +1618,7 @@ "InitiationTimestamp": { "target": "com.amazonaws.connect#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time this contact was initiated, in UTC time. For INBOUND, this is when the\n contact arrived. For OUTBOUND, this is when the agent began dialing. For CALLBACK, this is when\n the callback contact was created. For TRANSFER and QUEUE_TRANSFER, this is when the transfer was\n initiated. For API, this is when the request arrived.

" + "smithy.api#documentation": "

The date and time this contact was initiated, in UTC time. For INBOUND, this is\n when the contact arrived. For OUTBOUND, this is when the agent began dialing. For\n CALLBACK, this is when the callback contact was created. For TRANSFER\n and QUEUE_TRANSFER, this is when the transfer was initiated. For API,\n this is when the request arrived.

" } }, "DisconnectTimestamp": { @@ -1553,7 +1636,7 @@ "ScheduledTimestamp": { "target": "com.amazonaws.connect#Timestamp", "traits": { - "smithy.api#documentation": "

The timestamp, in Unix epoch time format, at which to start running the inbound flow.

" + "smithy.api#documentation": "

The timestamp, in Unix epoch time format, at which to start running the inbound flow.\n

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

Creates an AWS resource association with an Amazon Connect instance.

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

Creates an Amazon Web Services resource association with an Amazon Connect instance.

", "smithy.api#http": { "method": "PUT", "uri": "/instance/{InstanceId}/integration-associations", @@ -2825,7 +2908,7 @@ "QuickConnectId": { "target": "com.amazonaws.connect#QuickConnectId", "traits": { - "smithy.api#documentation": "

The identifier for the quick connect. \n

" + "smithy.api#documentation": "

The identifier for the quick connect.

" } } } @@ -3223,6 +3306,12 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.connect#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } } } }, @@ -3331,6 +3420,119 @@ } } }, + "com.amazonaws.connect#CreateVocabulary": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#CreateVocabularyRequest" + }, + "output": { + "target": "com.amazonaws.connect#CreateVocabularyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceConflictException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a custom vocabulary associated with your Amazon Connect instance. You can set a custom\n vocabulary to be your default vocabulary for a given language. Contact Lens for Amazon Connect uses the default\n vocabulary in post-call and real-time contact analysis sessions for that language.

", + "smithy.api#http": { + "method": "POST", + "uri": "/vocabulary/{InstanceId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#CreateVocabularyRequest": { + "type": "structure", + "members": { + "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 a create request is received more than once with same client token,\n subsequent requests return the previous response without creating a vocabulary again.

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

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

A unique name of the custom vocabulary.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The content of the custom vocabulary in plain-text format with a table of values. Each row\n in the table represents a word or a phrase, described with Phrase, IPA,\n SoundsLike, and DisplayAs fields. Separate the fields with TAB\n characters. The size limit is 50KB. For more information, see Create a custom\n vocabulary using a table.

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

The tags used to organize, track, or control access for this resource.

" + } + } + } + }, + "com.amazonaws.connect#CreateVocabularyResponse": { + "type": "structure", + "members": { + "VocabularyArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom vocabulary.

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

The identifier of the custom vocabulary.

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

The current state of the custom vocabulary.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.connect#Credentials": { "type": "structure", "members": { @@ -3502,6 +3704,48 @@ "target": "com.amazonaws.connect#CurrentMetric" } }, + "com.amazonaws.connect#DefaultVocabulary": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The identifier of the custom vocabulary.

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

A unique name of the custom vocabulary.

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

Contains information about a default vocabulary.

" + } + }, + "com.amazonaws.connect#DefaultVocabularyList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#DefaultVocabulary" + } + }, "com.amazonaws.connect#Delay": { "type": "integer", "traits": { @@ -3738,7 +3982,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an AWS resource association from an Amazon Connect instance. The association must not have\n any use cases associated with it.

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

Deletes an Amazon Web Services resource association from an Amazon Connect instance. The association must not have\n any use cases associated with it.

", "smithy.api#http": { "method": "DELETE", "uri": "/instance/{InstanceId}/integration-associations/{IntegrationAssociationId}", @@ -4041,6 +4285,90 @@ } } }, + "com.amazonaws.connect#DeleteVocabulary": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DeleteVocabularyRequest" + }, + "output": { + "target": "com.amazonaws.connect#DeleteVocabularyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceInUseException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the vocabulary that has the given identifier.

", + "smithy.api#http": { + "method": "POST", + "uri": "/vocabulary-remove/{InstanceId}/{VocabularyId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DeleteVocabularyRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The identifier of the custom vocabulary.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.connect#DeleteVocabularyResponse": { + "type": "structure", + "members": { + "VocabularyArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom vocabulary.

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

The identifier of the custom vocabulary.

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

The current state of the custom vocabulary.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.connect#DescribeAgentStatus": { "type": "operation", "input": { @@ -5023,6 +5351,73 @@ } } }, + "com.amazonaws.connect#DescribeVocabulary": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DescribeVocabularyRequest" + }, + "output": { + "target": "com.amazonaws.connect#DescribeVocabularyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the specified vocabulary.

", + "smithy.api#http": { + "method": "GET", + "uri": "/vocabulary/{InstanceId}/{VocabularyId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DescribeVocabularyRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The identifier of the custom vocabulary.

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

A list of specific words that you want Contact Lens for Amazon Connect to recognize in your audio input. They\n are generally domain-specific words and phrases, words that Contact Lens is not recognizing, or\n proper nouns.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.connect#Description": { "type": "string", "traits": { @@ -5623,7 +6018,7 @@ "Queues": { "target": "com.amazonaws.connect#Queues", "traits": { - "smithy.api#documentation": "

The queues to use to filter the metrics. You can specify up to 100 queues per\n request.

" + "smithy.api#documentation": "

The queues to use to filter the metrics. You should specify at least one queue, and can specify up to 100 queues per\n request. The GetCurrentMetricsData API in particular requires a queue when you include a Filter in your request.

" } }, "Channels": { @@ -5778,7 +6173,7 @@ "CurrentMetrics": { "target": "com.amazonaws.connect#CurrentMetrics", "traits": { - "smithy.api#documentation": "

The metrics to retrieve. Specify the name and unit for each metric. The following metrics\n are available. For a description of all the metrics, see Real-time Metrics\n Definitions in the Amazon Connect Administrator Guide.

\n
\n
AGENTS_AFTER_CONTACT_WORK
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: ACW\n

\n\n
\n
AGENTS_AVAILABLE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Available\n

\n
\n
AGENTS_ERROR
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Error\n

\n
\n
AGENTS_NON_PRODUCTIVE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: NPT (Non-Productive Time)\n

\n
\n
AGENTS_ON_CALL
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: On\n contact\n

\n
\n
AGENTS_ON_CONTACT
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: On\n contact\n

\n
\n
AGENTS_ONLINE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Online\n

\n
\n
AGENTS_STAFFED
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Staffed\n

\n
\n
CONTACTS_IN_QUEUE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: In\n queue\n

\n
\n
CONTACTS_SCHEDULED
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Scheduled\n

\n
\n
OLDEST_CONTACT_AGE
\n
\n

Unit: SECONDS

\n

When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.

\n

When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For\n example, if you get a response like this:

\n

\n { \"Metric\": { \"Name\": \"OLDEST_CONTACT_AGE\", \"Unit\": \"SECONDS\" }, \"Value\": 24113.0\n }

\n

The actual OLDEST_CONTACT_AGE is 24 seconds.

\n\n

Name in real-time metrics report: Oldest\n

\n
\n
SLOTS_ACTIVE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Active\n

\n
\n
SLOTS_AVAILABLE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Availability\n

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

The metrics to retrieve. Specify the name and unit for each metric. The following metrics\n are available. For a description of all the metrics, see Real-time Metrics\n Definitions in the Amazon Connect Administrator Guide.

\n
\n
AGENTS_AFTER_CONTACT_WORK
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: ACW\n

\n\n
\n
AGENTS_AVAILABLE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Available\n

\n
\n
AGENTS_ERROR
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Error\n

\n
\n
AGENTS_NON_PRODUCTIVE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: NPT (Non-Productive Time)\n

\n
\n
AGENTS_ON_CALL
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: On\n contact\n

\n
\n
AGENTS_ON_CONTACT
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: On\n contact\n

\n
\n
AGENTS_ONLINE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Online\n

\n
\n
AGENTS_STAFFED
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Staffed\n

\n
\n
CONTACTS_IN_QUEUE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: In\n queue\n

\n
\n
CONTACTS_SCHEDULED
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Scheduled\n

\n
\n
OLDEST_CONTACT_AGE
\n
\n

Unit: SECONDS

\n

When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.

\n

When you do not use groupings, Unit says SECONDS but the Value is returned in\n MILLISECONDS. For example, if you get a response like this:

\n

\n { \"Metric\": { \"Name\": \"OLDEST_CONTACT_AGE\", \"Unit\": \"SECONDS\" }, \"Value\": 24113.0\n }

\n

The actual OLDEST_CONTACT_AGE is 24 seconds.

\n\n

Name in real-time metrics report: Oldest\n

\n
\n
SLOTS_ACTIVE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Active\n

\n
\n
SLOTS_AVAILABLE
\n
\n

Unit: COUNT

\n

Name in real-time metrics report: Availability\n

\n
\n
", "smithy.api#required": {} } }, @@ -6056,6 +6451,12 @@ "traits": { "smithy.api#documentation": "

Information about the levels in the hierarchy group.

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

The tags used to organize, track, or control access for this resource.

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

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

\n

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the\n instance.

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

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

\n

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently\n associated with the instance.

", "smithy.api#http": { "method": "GET", "uri": "/instance/{InstanceId}/bots", @@ -7893,6 +8294,92 @@ } } }, + "com.amazonaws.connect#ListDefaultVocabularies": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#ListDefaultVocabulariesRequest" + }, + "output": { + "target": "com.amazonaws.connect#ListDefaultVocabulariesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the default vocabularies for the specified Amazon Connect instance.

", + "smithy.api#http": { + "method": "POST", + "uri": "/default-vocabulary-summary/{InstanceId}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "DefaultVocabularyList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.connect#ListDefaultVocabulariesRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The maximum number of results to return per page.

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

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

" + } + } + } + }, + "com.amazonaws.connect#ListDefaultVocabulariesResponse": { + "type": "structure", + "members": { + "DefaultVocabularyList": { + "target": "com.amazonaws.connect#DefaultVocabularyList", + "traits": { + "smithy.api#documentation": "

A list of default vocabularies.

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

If there are additional results, this is the token for the next set of results.

" + } + } + } + }, "com.amazonaws.connect#ListHoursOfOperations": { "type": "operation", "input": { @@ -8246,7 +8733,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides summary information about the AWS resource associations for the specified Amazon Connect\n instance.

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

Provides summary information about the Amazon Web Services resource associations for the specified Amazon Connect\n instance.

", "smithy.api#http": { "method": "GET", "uri": "/instance/{InstanceId}/integration-associations", @@ -8459,7 +8946,7 @@ "target": "com.amazonaws.connect#MaxResult25", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

The maximum number of results to return per page. If no value is specified, the default is 10.

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

The maximum number of results to return per page. If no value is specified, the default is 10.\n

", "smithy.api#httpQuery": "maxResults" } } @@ -11553,14 +12040,14 @@ "Value": { "target": "com.amazonaws.connect#ReferenceValue", "traits": { - "smithy.api#documentation": "

A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).

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

A valid value for the reference. For example, for a URL reference, a formatted URL that is\n displayed to an agent in the Contact Control Panel (CCP).

", "smithy.api#required": {} } }, "Type": { "target": "com.amazonaws.connect#ReferenceType", "traits": { - "smithy.api#documentation": "

The type of the reference. Only URL type can be added or updated on a contact.

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

The type of the reference. Only URL type can be added or updated on a\n contact.

", "smithy.api#required": {} } } @@ -11605,12 +12092,12 @@ "Attachment": { "target": "com.amazonaws.connect#AttachmentReference", "traits": { - "smithy.api#documentation": "

Information about the attachment reference if the referenceType is ATTACHMENT. Otherwise, null.

" + "smithy.api#documentation": "

Information about the attachment reference if the referenceType is\n ATTACHMENT. Otherwise, null.

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

Contains summary information about a reference. ReferenceSummary contains only one non null field between the URL and attachment based on the reference type.

" + "smithy.api#documentation": "

Contains summary information about a reference. ReferenceSummary contains only\n one non null field between the URL and attachment based on the reference type.

" } }, "com.amazonaws.connect#ReferenceSummaryList": { @@ -12066,6 +12553,103 @@ "smithy.api#documentation": "

Information about the Amazon Simple Storage Service (Amazon S3) storage type.

" } }, + "com.amazonaws.connect#SearchVocabularies": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#SearchVocabulariesRequest" + }, + "output": { + "target": "com.amazonaws.connect#SearchVocabulariesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Searches for vocabularies within a specific Amazon Connect instance using State, NameStartsWith, and LanguageCode.

", + "smithy.api#http": { + "method": "POST", + "uri": "/vocabulary-summary/{InstanceId}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VocabularySummaryList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.connect#SearchVocabulariesRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

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

The maximum number of results to return per page.

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

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

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

The current state of the custom vocabulary.

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

The starting pattern of the name of the vocabulary.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

" + } + } + } + }, + "com.amazonaws.connect#SearchVocabulariesResponse": { + "type": "structure", + "members": { + "VocabularySummaryList": { + "target": "com.amazonaws.connect#VocabularySummaryList", + "traits": { + "smithy.api#documentation": "

The list of the available custom vocabularies.

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

If there are additional results, this is the token for the next set of results.

" + } + } + } + }, "com.amazonaws.connect#SecurityKey": { "type": "structure", "members": { @@ -12450,7 +13034,7 @@ } ], "traits": { - "smithy.api#documentation": "

Initiates real-time message streaming for a new chat contact.

\n

For more information about message streaming, see Enable real-time chat message\n streaming in the Amazon Connect Administrator Guide.

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

Initiates real-time message streaming for a new chat contact.

\n

For more information about message streaming, see Enable real-time chat message\n streaming in the Amazon Connect Administrator Guide.

", "smithy.api#http": { "method": "POST", "uri": "/contact/start-streaming", @@ -12536,7 +13120,7 @@ } ], "traits": { - "smithy.api#documentation": "

Places an outbound call to a contact, and then initiates the contact flow. It performs the\n actions in the contact flow that's specified (in ContactFlowId).

\n \n

Agents do not initiate the outbound API, which means that they do not dial the contact. If\n the contact flow places an outbound call to a contact, and then puts the contact in queue, the\n call is then routed to the agent, like any other inbound case.

\n\n

There is a 60-second dialing timeout for this operation. If the call is not connected after\n 60 seconds, it fails.

\n \n

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK\n mobile numbers, you must submit a service quota increase request. For more information, see\n Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

\n
\n \n

Campaign calls are not allowed by default. Before you can make a call with \n TrafficType = CAMPAIGN, you must submit a service quota increase request. For more information, see \n Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

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

Places an outbound call to a contact, and then initiates the contact flow. It performs the\n actions in the contact flow that's specified (in ContactFlowId).

\n\n

Agents do not initiate the outbound API, which means that they do not dial the contact. If\n the contact flow places an outbound call to a contact, and then puts the contact in queue, the\n call is then routed to the agent, like any other inbound case.

\n\n

There is a 60-second dialing timeout for this operation. If the call is not connected after\n 60 seconds, it fails.

\n \n

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK\n mobile numbers, you must submit a service quota increase request. For more information, see\n Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

\n
\n \n

Campaign calls are not allowed by default. Before you can make a call with\n TrafficType = CAMPAIGN, you must submit a service quota increase\n request. For more information, see Amazon Connect Service Quotas\n in the Amazon Connect Administrator Guide.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/contact/outbound-voice", @@ -12608,7 +13192,7 @@ "TrafficType": { "target": "com.amazonaws.connect#TrafficType", "traits": { - "smithy.api#documentation": "

Denotes the class of traffic. Calls with different traffic types are handled differently by\n Amazon Connect. The default value is GENERAL. Use CAMPAIGN if\n EnableAnswerMachineDetection is set to true. For all other cases, use\n GENERAL.

" + "smithy.api#documentation": "

Denotes the class of traffic. Calls with different traffic types are handled differently by\n Amazon Connect. The default value is GENERAL. Use CAMPAIGN if\n EnableAnswerMachineDetection is set to true. For all other cases, use\n GENERAL.

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

Adds the specified tags to the specified resource.

\n

The supported resource types are users, routing profiles, queues, quick connects, \n contact flows, agent status, and hours of operation.

\n

For sample policies that use tags, see Amazon Connect Identity-Based\n Policy Examples in the Amazon Connect Administrator Guide.

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

Adds the specified tags to the specified resource.

\n

The supported resource types are users, routing profiles, queues, quick connects, contact\n flows, agent status, and hours of operation.

\n

For sample policies that use tags, see Amazon Connect Identity-Based\n Policy Examples in the Amazon Connect Administrator Guide.

", "smithy.api#http": { "method": "POST", "uri": "/tags/{resourceArn}", @@ -13576,7 +14160,7 @@ "Name": { "target": "com.amazonaws.connect#ContactFlowName", "traits": { - "smithy.api#documentation": "

TThe name of the contact flow.

" + "smithy.api#documentation": "

The name of the contact flow.

" } }, "Description": { @@ -14055,7 +14639,7 @@ "AttributeType": { "target": "com.amazonaws.connect#InstanceAttributeType", "traits": { - "smithy.api#documentation": "

The type of attribute.

\n \n

Only allowlisted customers can consume USE_CUSTOM_TTS_VOICES. To access this feature, contact AWS Support for allowlisting.

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

The type of attribute.

\n \n

Only allowlisted customers can consume USE_CUSTOM_TTS_VOICES. To access this feature,\n contact Amazon Web Services Support for allowlisting.

\n
", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -15567,6 +16151,294 @@ "smithy.api#box": {} } }, + "com.amazonaws.connect#Vocabulary": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.connect#VocabularyName", + "traits": { + "smithy.api#documentation": "

A unique name of the custom vocabulary.

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

The identifier of the custom vocabulary.

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

The Amazon Resource Name (ARN) of the custom vocabulary.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The current state of the custom vocabulary.

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

The timestamp when the custom vocabulary was last modified.

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

The reason why the custom vocabulary was not created.

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

The content of the custom vocabulary in plain-text format with a table of values. Each row\n in the table represents a word or a phrase, described with Phrase, IPA,\n SoundsLike, and DisplayAs fields. Separate the fields with TAB\n characters. For more information, see Create a custom\n vocabulary using a table.

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

The tags used to organize, track, or control access for this resource.

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

Contains information about a custom vocabulary.

" + } + }, + "com.amazonaws.connect#VocabularyContent": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 60000 + } + } + }, + "com.amazonaws.connect#VocabularyFailureReason": { + "type": "string" + }, + "com.amazonaws.connect#VocabularyId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.connect#VocabularyLanguageCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ar-AE", + "name": "AR_AE" + }, + { + "value": "de-CH", + "name": "DE_CH" + }, + { + "value": "de-DE", + "name": "DE_DE" + }, + { + "value": "en-AB", + "name": "EN_AB" + }, + { + "value": "en-AU", + "name": "EN_AU" + }, + { + "value": "en-GB", + "name": "EN_GB" + }, + { + "value": "en-IE", + "name": "EN_IE" + }, + { + "value": "en-IN", + "name": "EN_IN" + }, + { + "value": "en-US", + "name": "EN_US" + }, + { + "value": "en-WL", + "name": "EN_WL" + }, + { + "value": "es-ES", + "name": "ES_ES" + }, + { + "value": "es-US", + "name": "ES_US" + }, + { + "value": "fr-CA", + "name": "FR_CA" + }, + { + "value": "fr-FR", + "name": "FR_FR" + }, + { + "value": "hi-IN", + "name": "HI_IN" + }, + { + "value": "it-IT", + "name": "IT_IT" + }, + { + "value": "ja-JP", + "name": "JA_JP" + }, + { + "value": "ko-KR", + "name": "KO_KR" + }, + { + "value": "pt-BR", + "name": "PT_BR" + }, + { + "value": "pt-PT", + "name": "PT_PT" + }, + { + "value": "zh-CN", + "name": "ZH_CN" + } + ] + } + }, + "com.amazonaws.connect#VocabularyLastModifiedTime": { + "type": "timestamp" + }, + "com.amazonaws.connect#VocabularyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 140 + }, + "smithy.api#pattern": "^[0-9a-zA-Z._-]+$" + } + }, + "com.amazonaws.connect#VocabularyNextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 131070 + }, + "smithy.api#pattern": "\\S" + } + }, + "com.amazonaws.connect#VocabularyState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATION_IN_PROGRESS", + "name": "CREATION_IN_PROGRESS" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "CREATION_FAILED", + "name": "CREATION_FAILED" + }, + { + "value": "DELETE_IN_PROGRESS", + "name": "DELETE_IN_PROGRESS" + } + ] + } + }, + "com.amazonaws.connect#VocabularySummary": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.connect#VocabularyName", + "traits": { + "smithy.api#documentation": "

A unique name of the custom vocabulary.

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

The identifier of the custom vocabulary.

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

The Amazon Resource Name (ARN) of the custom vocabulary.

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

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see \nWhat is Amazon Transcribe?\n

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

The current state of the custom vocabulary.

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

The timestamp when the custom vocabulary was last modified.

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

The reason why the custom vocabulary was not created.

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

Contains summary information about the custom vocabulary.

" + } + }, + "com.amazonaws.connect#VocabularySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#VocabularySummary" + } + }, "com.amazonaws.connect#VoiceRecordingConfiguration": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json b/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json index 9c85fc54da5..bd027211410 100644 --- a/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json +++ b/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json @@ -349,6 +349,21 @@ }, "com.amazonaws.ebs#Ebs": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "EBS", + "arnNamespace": "ebs", + "cloudFormationName": "EBS", + "cloudTrailEventSource": "ebs.amazonaws.com", + "endpointPrefix": "ebs" + }, + "aws.auth#sigv4": { + "name": "ebs" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create Amazon EBS snapshots, write data directly to \n \t\tyour snapshots, read data on your snapshots, and identify the differences or changes between \n \t\ttwo snapshots. If you’re an independent software vendor (ISV) who offers backup services for \n \t\tAmazon EBS, the EBS direct APIs make it more efficient and cost-effective to track incremental changes on \n \t\tyour Amazon EBS volumes through snapshots. This can be done without having to create new volumes \n \t\tfrom snapshots, and then use Amazon Elastic Compute Cloud (Amazon EC2) instances to compare the differences.

\n \t\t\n \t

You can create incremental snapshots directly from data on-premises into volumes and the \n \t\tcloud to use for quick disaster recovery. With the ability to write and read snapshots, you can \n \t\twrite your on-premises data to an snapshot during a disaster. Then after recovery, you can \n \t\trestore it back to Amazon Web Services or on-premises from the snapshot. You no longer need to build and \n \t\tmaintain complex mechanisms to copy data to and from Amazon EBS.

\n\n\n

This API reference provides detailed information about the actions, data types,\n parameters, and errors of the EBS direct APIs. For more information about the elements that\n make up the EBS direct APIs, and examples of how to use them effectively, see Accessing the Contents of an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User\n Guide. For more information about the supported Amazon Web Services Regions, endpoints,\n and service quotas for the EBS direct APIs, see Amazon Elastic Block Store Endpoints and Quotas in\n the Amazon Web Services General Reference.

", + "smithy.api#title": "Amazon Elastic Block Store" + }, "version": "2019-11-02", "operations": [ { @@ -369,22 +384,7 @@ { "target": "com.amazonaws.ebs#StartSnapshot" } - ], - "traits": { - "aws.api#service": { - "sdkId": "EBS", - "arnNamespace": "ebs", - "cloudFormationName": "EBS", - "cloudTrailEventSource": "ebs.amazonaws.com", - "endpointPrefix": "ebs" - }, - "aws.auth#sigv4": { - "name": "ebs" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create Amazon EBS snapshots, write data directly to \n \t\tyour snapshots, read data on your snapshots, and identify the differences or changes between \n \t\ttwo snapshots. If you’re an independent software vendor (ISV) who offers backup services for \n \t\tAmazon EBS, the EBS direct APIs make it more efficient and cost-effective to track incremental changes on \n \t\tyour Amazon EBS volumes through snapshots. This can be done without having to create new volumes \n \t\tfrom snapshots, and then use Amazon Elastic Compute Cloud (Amazon EC2) instances to compare the differences.

\n \t\t\n \t

You can create incremental snapshots directly from data on-premises into volumes and the \n \t\tcloud to use for quick disaster recovery. With the ability to write and read snapshots, you can \n \t\twrite your on-premises data to an snapshot during a disaster. Then after recovery, you can \n \t\trestore it back to Amazon Web Services or on-premises from the snapshot. You no longer need to build and \n \t\tmaintain complex mechanisms to copy data to and from Amazon EBS.

\n\n\n

This API reference provides detailed information about the actions, data types,\n parameters, and errors of the EBS direct APIs. For more information about the elements that\n make up the EBS direct APIs, and examples of how to use them effectively, see Accessing the Contents of an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User\n Guide. For more information about the supported Amazon Web Services Regions, endpoints,\n and service quotas for the EBS direct APIs, see Amazon Elastic Block Store Endpoints and Quotas in\n the Amazon Web Services General Reference.

", - "smithy.api#title": "Amazon Elastic Block Store" - } + ] }, "com.amazonaws.ebs#ErrorMessage": { "type": "string", @@ -591,21 +591,21 @@ "NextToken": { "target": "com.amazonaws.ebs#PageToken", "traits": { - "smithy.api#documentation": "

The token to request the next page of results.

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

The token to request the next page of results.

\n

If you specify NextToken, then \n StartingBlockIndex is ignored.

", "smithy.api#httpQuery": "pageToken" } }, "MaxResults": { "target": "com.amazonaws.ebs#MaxResults", "traits": { - "smithy.api#documentation": "

The number of results to return.

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

The maximum number of blocks to be returned by the request.

\n

Even if additional blocks can be retrieved from the snapshot, the request can \n return less blocks than MaxResults or an empty \n array of blocks.

\n

To retrieve the next set of blocks from the snapshot, make another request with \n the returned NextToken value. The value of \n NextToken is null when there are no \n more blocks to return.

", "smithy.api#httpQuery": "maxResults" } }, "StartingBlockIndex": { "target": "com.amazonaws.ebs#BlockIndex", "traits": { - "smithy.api#documentation": "

The block index from which the comparison should start.

\n

The list in the response will start from this block index or the next valid block\n index in the snapshots.

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

The block index from which the comparison should start.

\n

The list in the response will start from this block index or the next valid block\n index in the snapshots.

\n

If you specify NextToken, then \n StartingBlockIndex is ignored.

", "smithy.api#httpQuery": "startingBlockIndex" } } @@ -702,21 +702,21 @@ "NextToken": { "target": "com.amazonaws.ebs#PageToken", "traits": { - "smithy.api#documentation": "

The token to request the next page of results.

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

The token to request the next page of results.

\n

If you specify NextToken, then \n StartingBlockIndex is ignored.

", "smithy.api#httpQuery": "pageToken" } }, "MaxResults": { "target": "com.amazonaws.ebs#MaxResults", "traits": { - "smithy.api#documentation": "

The number of results to return.

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

The maximum number of blocks to be returned by the request.

\n

Even if additional blocks can be retrieved from the snapshot, the request can \n return less blocks than MaxResults or an empty \n array of blocks.

\n

To retrieve the next set of blocks from the snapshot, make another request with \n the returned NextToken value. The value of \n NextToken is null when there are no \n more blocks to return.

", "smithy.api#httpQuery": "maxResults" } }, "StartingBlockIndex": { "target": "com.amazonaws.ebs#BlockIndex", "traits": { - "smithy.api#documentation": "

The block index from which the list should start. The list in the response will start\n from this block index or the next valid block index in the snapshot.

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

The block index from which the list should start. The list in the response will start\n from this block index or the next valid block index in the snapshot.

\n

If you specify NextToken, then \n StartingBlockIndex is ignored.

", "smithy.api#httpQuery": "startingBlockIndex" } } diff --git a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json index bcb123aa5ec..1ce9a49fc6a 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -8195,6 +8195,36 @@ "smithy.api#documentation": "

Describes the client-specific data.

" } }, + "com.amazonaws.ec2#ClientLoginBannerOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean" + }, + "BannerText": { + "target": "com.amazonaws.ec2#String" + } + } + }, + "com.amazonaws.ec2#ClientLoginBannerResponseOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#xmlName": "enabled" + } + }, + "BannerText": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BannerText", + "smithy.api#xmlName": "bannerText" + } + } + } + }, "com.amazonaws.ec2#ClientVpnAssociationId": { "type": "string" }, @@ -8700,6 +8730,20 @@ "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

", "smithy.api#xmlName": "clientConnectOptions" } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SessionTimeoutHours", + "smithy.api#xmlName": "sessionTimeoutHours" + } + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "ClientLoginBannerOptions", + "smithy.api#xmlName": "clientLoginBannerOptions" + } } }, "traits": { @@ -10260,6 +10304,12 @@ "traits": { "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer" + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerOptions" } } }, @@ -45355,6 +45405,10 @@ "value": "c6i.32xlarge", "name": "c6i_32xlarge" }, + { + "value": "c6i.metal", + "name": "c6i_metal" + }, { "value": "cc1.4xlarge", "name": "cc1_4xlarge" @@ -46191,6 +46245,10 @@ "value": "m6i.32xlarge", "name": "m6i_32xlarge" }, + { + "value": "m6i.metal", + "name": "m6i_metal" + }, { "value": "mac1.metal", "name": "mac1_metal" @@ -46587,6 +46645,46 @@ "value": "r6gd.metal", "name": "r6gd_metal" }, + { + "value": "r6i.large", + "name": "r6i_large" + }, + { + "value": "r6i.xlarge", + "name": "r6i_xlarge" + }, + { + "value": "r6i.2xlarge", + "name": "r6i_2xlarge" + }, + { + "value": "r6i.4xlarge", + "name": "r6i_4xlarge" + }, + { + "value": "r6i.8xlarge", + "name": "r6i_8xlarge" + }, + { + "value": "r6i.12xlarge", + "name": "r6i_12xlarge" + }, + { + "value": "r6i.16xlarge", + "name": "r6i_16xlarge" + }, + { + "value": "r6i.24xlarge", + "name": "r6i_24xlarge" + }, + { + "value": "r6i.32xlarge", + "name": "r6i_32xlarge" + }, + { + "value": "r6i.metal", + "name": "r6i_metal" + }, { "value": "t1.micro", "name": "t1_micro" @@ -52864,6 +52962,12 @@ "traits": { "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer" + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerOptions" } } }, diff --git a/codegen/sdk-codegen/aws-models/ec2instanceconnect.2018-04-02.json b/codegen/sdk-codegen/aws-models/ec2instanceconnect.2018-04-02.json index 15fc1a54a92..85bf0fd145a 100644 --- a/codegen/sdk-codegen/aws-models/ec2instanceconnect.2018-04-02.json +++ b/codegen/sdk-codegen/aws-models/ec2instanceconnect.2018-04-02.json @@ -31,15 +31,6 @@ "shapes": { "com.amazonaws.ec2instanceconnect#AWSEC2InstanceConnectService": { "type": "service", - "version": "2018-04-02", - "operations": [ - { - "target": "com.amazonaws.ec2instanceconnect#SendSerialConsoleSSHPublicKey" - }, - { - "target": "com.amazonaws.ec2instanceconnect#SendSSHPublicKey" - } - ], "traits": { "aws.api#service": { "sdkId": "EC2 Instance Connect", @@ -54,7 +45,16 @@ "aws.protocols#awsJson1_1": {}, "smithy.api#documentation": "

Amazon EC2 Instance Connect enables system administrators to publish one-time use SSH\n public keys to EC2, providing users a simple and secure way to connect to their\n instances.

", "smithy.api#title": "AWS EC2 Instance Connect" - } + }, + "version": "2018-04-02", + "operations": [ + { + "target": "com.amazonaws.ec2instanceconnect#SendSerialConsoleSSHPublicKey" + }, + { + "target": "com.amazonaws.ec2instanceconnect#SendSSHPublicKey" + } + ] }, "com.amazonaws.ec2instanceconnect#AuthException": { "type": "structure", @@ -64,6 +64,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "Forbidden", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

Either your AWS credentials are not valid or you do not have access to the EC2 instance.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -87,11 +91,32 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "EC2InstanceNotFound", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

The specified instance was not found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } }, + "com.amazonaws.ec2instanceconnect#EC2InstanceStateInvalidException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2instanceconnect#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "EC2InstanceStateInvalid", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Unable to connect because the instance is not in a valid state. \n Connecting to a stopped or terminated instance is not supported. If the instance is stopped, \n start your instance, and try to connect again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.ec2instanceconnect#EC2InstanceTypeInvalidException": { "type": "structure", "members": { @@ -100,6 +125,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "EC2InstanceTypeInvalid", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The instance type is not supported for connecting via the serial console. Only Nitro\n instance types are currently supported.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -133,6 +162,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidArguments", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

One of the parameters is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -145,7 +178,7 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 256, + "min": 80, "max": 4096 } } @@ -165,6 +198,9 @@ { "target": "com.amazonaws.ec2instanceconnect#EC2InstanceNotFoundException" }, + { + "target": "com.amazonaws.ec2instanceconnect#EC2InstanceStateInvalidException" + }, { "target": "com.amazonaws.ec2instanceconnect#InvalidArgsException" }, @@ -206,8 +242,7 @@ "AvailabilityZone": { "target": "com.amazonaws.ec2instanceconnect#AvailabilityZone", "traits": { - "smithy.api#documentation": "

The Availability Zone in which the EC2 instance was launched.

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

The Availability Zone in which the EC2 instance was launched.

" } } } @@ -244,6 +279,9 @@ { "target": "com.amazonaws.ec2instanceconnect#EC2InstanceNotFoundException" }, + { + "target": "com.amazonaws.ec2instanceconnect#EC2InstanceStateInvalidException" + }, { "target": "com.amazonaws.ec2instanceconnect#EC2InstanceTypeInvalidException" }, @@ -320,6 +358,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "SerialConsoleAccessDisabled", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

Your account is not authorized to use the EC2 Serial Console. To authorize your\n account, run the EnableSerialConsoleAccess API. For more information, see\n EnableSerialConsoleAccess in the Amazon EC2 API Reference.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -333,6 +375,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "SerialConsoleSessionLimitExceeded", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The instance currently has 1 active serial console session. Only 1 session is supported at a time.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -346,6 +392,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "SerialConsoleSessionUnavailable", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

Unable to start a serial console session. Please try again.

", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -368,6 +418,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InternalServerError", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

The service encountered an error. Follow the instructions in the error message and try again.

", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -387,6 +441,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TooManyRequests", + "httpResponseCode": 429 + }, "smithy.api#documentation": "

The requests were made too frequently and have been throttled. Wait a while and try again. \n To increase the limit on your request frequency, contact AWS Support.

", "smithy.api#error": "client", "smithy.api#httpError": 429 diff --git a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json index a92be2db5a4..d83dfbeff4a 100644 --- a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json +++ b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json @@ -424,13 +424,13 @@ "Encrypted": { "target": "com.amazonaws.efs#Encrypted", "traits": { - "smithy.api#documentation": "

A Boolean value that, if true, creates an encrypted file system. When creating an\n encrypted file system, you have the option of specifying CreateFileSystemRequest$KmsKeyId for an existing Key Management Service (KMS\n customer master key (CMK). If you don't specify a CMK, then the default CMK for\n Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.\n

" + "smithy.api#documentation": "

A Boolean value that, if true, creates an encrypted file system. When creating an\n encrypted file system, you have the option of specifying an existing Key Management Service key (KMS key).\n If you don't specify a KMS key, then the default KMS key for\n Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.\n

" } }, "KmsKeyId": { "target": "com.amazonaws.efs#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of the KMS CMK that you want to use to protect the encrypted file system. This\n parameter is only required if you want to use a non-default KMS key. If this parameter is not\n specified, the default CMK for Amazon EFS is used. This ID can be in one of the following\n formats:

\n \n

If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

\n \n

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with EFS file systems.

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

The ID of the KMS key that you want to use to protect the encrypted file system. This\n parameter is only required if you want to use a non-default KMS key. If this parameter is not\n specified, the default KMS key for Amazon EFS is used. You can specify a KMS key \n ID using the following formats:

\n \n

If you use KmsKeyId, you must set the CreateFileSystemRequest$Encrypted \n parameter to true.

\n \n

EFS accepts only symmetric KMS keys. You cannot use asymmetric \n KMS keys with Amazon EFS file systems.

\n
" } }, "ThroughputMode": { @@ -454,7 +454,7 @@ "Backup": { "target": "com.amazonaws.efs#Backup", "traits": { - "smithy.api#documentation": "

Specifies whether automatic backups are enabled on the file system that you are creating.\n Set the value to true to enable automatic backups. If you are creating a file\n system that uses One Zone storage classes, automatic backups are enabled by default. For more\n information, see Automatic backups in the\n Amazon EFS User Guide.

\n

Default is false. However, if you specify an AvailabilityZoneName, \n the default is true.

\n \n

Backup is not available in all Amazon Web Services Regionswhere Amazon EFS is available.

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

Specifies whether automatic backups are enabled on the file system that you are creating.\n Set the value to true to enable automatic backups. If you are creating a file\n system that uses One Zone storage classes, automatic backups are enabled by default. For more\n information, see Automatic backups in the\n Amazon EFS User Guide.

\n

Default is false. However, if you specify an AvailabilityZoneName, \n the default is true.

\n \n

Backup is not available in all Amazon Web Services Regions where Amazon EFS is available.

\n
" } }, "Tags": { @@ -557,6 +557,75 @@ "smithy.api#documentation": "

" } }, + "com.amazonaws.efs#CreateReplicationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.efs#CreateReplicationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.efs#ReplicationConfigurationDescription" + }, + "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, + { + "target": "com.amazonaws.efs#FileSystemLimitExceeded" + }, + { + "target": "com.amazonaws.efs#FileSystemNotFound" + }, + { + "target": "com.amazonaws.efs#IncorrectFileSystemLifeCycleState" + }, + { + "target": "com.amazonaws.efs#InsufficientThroughputCapacity" + }, + { + "target": "com.amazonaws.efs#InternalServerError" + }, + { + "target": "com.amazonaws.efs#ReplicationNotFound" + }, + { + "target": "com.amazonaws.efs#ThroughputLimitExceeded" + }, + { + "target": "com.amazonaws.efs#UnsupportedAvailabilityZone" + }, + { + "target": "com.amazonaws.efs#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a replication configuration that replicates an existing EFS file \n system to a new, read-only file system. For more information, see \n Amazon EFS replication. \n The replication configuration specifies the following:

\n \n \n

The following properties are set by default:

\n \n \n

The following properties are turned off by default:

\n \n \n

For more information, see Amazon EFS replication.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration", + "code": 200 + } + } + }, + "com.amazonaws.efs#CreateReplicationConfigurationRequest": { + "type": "structure", + "members": { + "SourceFileSystemId": { + "target": "com.amazonaws.efs#FileSystemId", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EFS file system that you want to replicate. This file system cannot already be \n a source or destination file system in another replication configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Destinations": { + "target": "com.amazonaws.efs#DestinationsToCreate", + "traits": { + "smithy.api#documentation": "

An array of destination configuration objects. Only one destination configuration object is supported.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.efs#CreateTags": { "type": "operation", "input": { @@ -719,6 +788,9 @@ "target": "com.amazonaws.efs#DeleteFileSystemPolicyRequest" }, "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, { "target": "com.amazonaws.efs#FileSystemNotFound" }, @@ -811,6 +883,47 @@ "smithy.api#documentation": "

" } }, + "com.amazonaws.efs#DeleteReplicationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.efs#DeleteReplicationConfigurationRequest" + }, + "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, + { + "target": "com.amazonaws.efs#FileSystemNotFound" + }, + { + "target": "com.amazonaws.efs#InternalServerError" + }, + { + "target": "com.amazonaws.efs#ReplicationNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an existing replication configuration. To delete a replication \n configuration, you must make the request from the Amazon Web Services Region \n in which the destination file system is located. Deleting a replication \n configuration ends the replication process. You can write to the destination file \n system once it's status becomes Writeable.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration", + "code": 204 + } + } + }, + "com.amazonaws.efs#DeleteReplicationConfigurationRequest": { + "type": "structure", + "members": { + "SourceFileSystemId": { + "target": "com.amazonaws.efs#FileSystemId", + "traits": { + "smithy.api#documentation": "

The ID of the source file system in the replication configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.efs#DeleteTags": { "type": "operation", "input": { @@ -930,7 +1043,7 @@ "NextToken": { "target": "com.amazonaws.efs#Token", "traits": { - "smithy.api#documentation": "

\n NextToken is present if the response is paginated. You can use NextMarker in the subsequent request to fetch the next page of access point descriptions.

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

\n NextToken is present if the response is paginated. You can use \n NextMarker in the subsequent request to fetch the next page of access point descriptions.

", "smithy.api#httpQuery": "NextToken" } }, @@ -1079,6 +1192,9 @@ "target": "com.amazonaws.efs#FileSystemPolicyDescription" }, "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, { "target": "com.amazonaws.efs#FileSystemNotFound" }, @@ -1406,6 +1522,83 @@ "smithy.api#documentation": "

" } }, + "com.amazonaws.efs#DescribeReplicationConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.efs#DescribeReplicationConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.efs#DescribeReplicationConfigurationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, + { + "target": "com.amazonaws.efs#FileSystemNotFound" + }, + { + "target": "com.amazonaws.efs#InternalServerError" + }, + { + "target": "com.amazonaws.efs#ReplicationNotFound" + }, + { + "target": "com.amazonaws.efs#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the replication configurations for either a specific file system, or all configurations for the \n Amazon Web Services account in an Amazon Web Services Region if a file system is not specified.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2015-02-01/file-systems/replication-configurations", + "code": 200 + } + } + }, + "com.amazonaws.efs#DescribeReplicationConfigurationsRequest": { + "type": "structure", + "members": { + "FileSystemId": { + "target": "com.amazonaws.efs#FileSystemId", + "traits": { + "smithy.api#documentation": "

You can retrieve replication configurations for a specific file system by providing a file system ID.

", + "smithy.api#httpQuery": "FileSystemId" + } + }, + "NextToken": { + "target": "com.amazonaws.efs#Token", + "traits": { + "smithy.api#documentation": "

\n NextToken is present if the response is paginated. You can use \n NextMarker in a subsequent request to fetch the next page of output.

", + "smithy.api#httpQuery": "NextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.efs#MaxResults", + "traits": { + "smithy.api#documentation": "

(Optional) You can optionally specify the MaxItems parameter \n to limit the number of objects returned in a response. The default value is 100.

", + "smithy.api#httpQuery": "MaxResults" + } + } + } + }, + "com.amazonaws.efs#DescribeReplicationConfigurationsResponse": { + "type": "structure", + "members": { + "Replications": { + "target": "com.amazonaws.efs#ReplicationConfigurationDescriptions", + "traits": { + "smithy.api#documentation": "

The collection of replication configurations returned.

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

You can use the NextToken from the previous response in a subsequent \n request to fetch the additional descriptions.

" + } + } + } + }, "com.amazonaws.efs#DescribeTags": { "type": "operation", "input": { @@ -1499,6 +1692,79 @@ "smithy.api#documentation": "

" } }, + "com.amazonaws.efs#Destination": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.efs#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

Describes the status of the destination Amazon EFS file system.

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

The ID of the destination Amazon EFS file system.

", + "smithy.api#required": {} + } + }, + "Region": { + "target": "com.amazonaws.efs#RegionName", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region in which the destination file system is located.

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

The time when the most recent sync successfully completed on the destination file system. \n Any changes to data on the source file system that occurred prior to this time were successfully \n replicated to the destination file system. Any changes that occurred after this time might not be \n fully replicated.

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

Describes the destination file system in the replication configuration.

" + } + }, + "com.amazonaws.efs#DestinationToCreate": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.efs#RegionName", + "traits": { + "smithy.api#documentation": "

To create a file system that uses regional storage, specify the Amazon Web Services Region\n in which to create the destination file system.

" + } + }, + "AvailabilityZoneName": { + "target": "com.amazonaws.efs#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

To create a file system that uses One Zone storage, specify the name of the \n Availability Zone in which to create the destination file system.

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

Specifies the KMS key you want to use to encrypt the destination file system. If you do not \n specify a KMS key, EFS uses your default KMS key for Amazon EFS, \n /aws/elasticfilesystem. This ID can be in one of the following\n formats:

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

Describes the destination file system to create in the replication configuration.

" + } + }, + "com.amazonaws.efs#Destinations": { + "type": "list", + "member": { + "target": "com.amazonaws.efs#Destination" + } + }, + "com.amazonaws.efs#DestinationsToCreate": { + "type": "list", + "member": { + "target": "com.amazonaws.efs#DestinationToCreate" + } + }, "com.amazonaws.efs#Encrypted": { "type": "boolean", "traits": { @@ -1508,13 +1774,17 @@ "com.amazonaws.efs#ErrorCode": { "type": "string", "traits": { + "smithy.api#documentation": "

The error code is a string that uniquely identifies an error condition. \n It is meant to be read and understood by programs that detect and handle errors by type.

", "smithy.api#length": { "min": 1 } } }, "com.amazonaws.efs#ErrorMessage": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#documentation": "

The error message contains a generic description of the error \n condition in English. It is intended for a human audience. Simple programs display the message directly \n to the end user if they encounter an error condition they don't know how or don't care to handle. \n Sophisticated programs with more exhaustive error handling and proper internationalization are \n more likely to ignore the error message.

" + } }, "com.amazonaws.efs#FileSystemAlreadyExists": { "type": "structure", @@ -1624,7 +1894,7 @@ "KmsKeyId": { "target": "com.amazonaws.efs#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of an Key Management Service customer master key (CMK) that was\n used to protect the encrypted file system.

" + "smithy.api#documentation": "

The ID of an KMS key used to protect the encrypted file system.

" } }, "ThroughputMode": { @@ -2100,6 +2370,21 @@ }, "com.amazonaws.efs#MagnolioAPIService_v20150201": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "EFS", + "arnNamespace": "elasticfilesystem", + "cloudFormationName": "EFS", + "cloudTrailEventSource": "efs.amazonaws.com", + "endpointPrefix": "elasticfilesystem" + }, + "aws.auth#sigv4": { + "name": "elasticfilesystem" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "Amazon Elastic File System\n

Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use\n with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic,\n growing and shrinking automatically as you add and remove files, so your applications have the\n storage they need, when they need it. For more information, see the Amazon Elastic File System API Reference and the Amazon Elastic File System User Guide.

", + "smithy.api#title": "Amazon Elastic File System" + }, "version": "2015-02-01", "operations": [ { @@ -2111,6 +2396,9 @@ { "target": "com.amazonaws.efs#CreateMountTarget" }, + { + "target": "com.amazonaws.efs#CreateReplicationConfiguration" + }, { "target": "com.amazonaws.efs#CreateTags" }, @@ -2126,6 +2414,9 @@ { "target": "com.amazonaws.efs#DeleteMountTarget" }, + { + "target": "com.amazonaws.efs#DeleteReplicationConfiguration" + }, { "target": "com.amazonaws.efs#DeleteTags" }, @@ -2153,6 +2444,9 @@ { "target": "com.amazonaws.efs#DescribeMountTargetSecurityGroups" }, + { + "target": "com.amazonaws.efs#DescribeReplicationConfigurations" + }, { "target": "com.amazonaws.efs#DescribeTags" }, @@ -2183,22 +2477,7 @@ { "target": "com.amazonaws.efs#UpdateFileSystem" } - ], - "traits": { - "aws.api#service": { - "sdkId": "EFS", - "arnNamespace": "elasticfilesystem", - "cloudFormationName": "EFS", - "cloudTrailEventSource": "efs.amazonaws.com", - "endpointPrefix": "elasticfilesystem" - }, - "aws.auth#sigv4": { - "name": "elasticfilesystem" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "Amazon Elastic File System\n

Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use\n with Amazon EC2 instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic,\n growing and shrinking automatically as you add and remove files, so your applications have the\n storage they need, when they need it. For more information, see the Amazon Elastic File System API Reference and the Amazon Elastic File System User Guide.

", - "smithy.api#title": "Amazon Elastic File System" - } + ] }, "com.amazonaws.efs#Marker": { "type": "string", @@ -2598,7 +2877,7 @@ } ], "traits": { - "smithy.api#documentation": "

Use this operation to set the account preference in the current Amazon Web Services Region to use long 17 character (63 bit) or short 8 character (32 bit) resource IDs for \n new EFS file system and mount target resources. All existing resource IDs are not affected by any changes you make. You can set the ID preference during the\n opt-in period as EFS transitions to long resource IDs. For more information, \n see Managing Amazon EFS resource IDs.

\n \n

Starting in October, 2021, you will receive an error if you try to set the account preference to use the short 8 character format resource ID. \n Contact Amazon Web Services support if you receive an error and need to use short IDs for file system and mount target resources.

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

Use this operation to set the account preference in the current Amazon Web Services Region \n to use long 17 character (63 bit) or short 8 character (32 bit) resource IDs for \n new EFS file system and mount target resources. All existing resource IDs are not affected \n by any changes you make. You can set the ID preference during the\n opt-in period as EFS transitions to long resource IDs. For more information, \n see Managing Amazon EFS resource IDs.

\n \n

Starting in October, 2021, you will receive an error if you try to set the account preference to use the short 8 character format resource ID. \n Contact Amazon Web Services support if you receive an error and need to use short IDs for file system and mount target resources.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/2015-02-01/account-preferences", @@ -2612,7 +2891,7 @@ "ResourceIdType": { "target": "com.amazonaws.efs#ResourceIdType", "traits": { - "smithy.api#documentation": "

Specifies the EFS resource ID preference to set for the user's Amazon Web Services account, in the current Amazon Web Services Region, \n either LONG_ID (17 characters), or SHORT_ID (8 characters).

\n \n

Starting in October, 2021, you will receive an error when setting the account preference to SHORT_ID. \n Contact Amazon Web Services support if you receive an error and need to use short IDs for file system and mount target resources.

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

Specifies the EFS resource ID preference to set for the user's Amazon Web Services account, \n in the current Amazon Web Services Region, either LONG_ID (17 characters), or \n SHORT_ID (8 characters).

\n \n

Starting in October, 2021, you will receive an error when setting the account \n preference to SHORT_ID. Contact Amazon Web Services support if you receive an \n error and need to use short IDs for file system and mount target resources.

\n
", "smithy.api#required": {} } } @@ -2689,6 +2968,9 @@ "target": "com.amazonaws.efs#FileSystemPolicyDescription" }, "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, { "target": "com.amazonaws.efs#FileSystemNotFound" }, @@ -2788,6 +3070,111 @@ } } }, + "com.amazonaws.efs#RegionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-{0,1}[0-9]{0,1}$" + } + }, + "com.amazonaws.efs#ReplicationConfigurationDescription": { + "type": "structure", + "members": { + "SourceFileSystemId": { + "target": "com.amazonaws.efs#FileSystemId", + "traits": { + "smithy.api#documentation": "

The ID of the source Amazon EFS file system that is being replicated.

", + "smithy.api#required": {} + } + }, + "SourceFileSystemRegion": { + "target": "com.amazonaws.efs#RegionName", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region in which the source Amazon EFS file system is located.

", + "smithy.api#required": {} + } + }, + "SourceFileSystemArn": { + "target": "com.amazonaws.efs#FileSystemArn", + "traits": { + "smithy.api#documentation": "

The ARN of the current source file system in the replication configuration.

", + "smithy.api#required": {} + } + }, + "OriginalSourceFileSystemArn": { + "target": "com.amazonaws.efs#FileSystemArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the original source Amazon EFS file system in the replication configuration.

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

Describes when the replication configuration was created.

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

Array of destination objects. Only one destination object is supported.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.efs#ReplicationConfigurationDescriptions": { + "type": "list", + "member": { + "target": "com.amazonaws.efs#ReplicationConfigurationDescription" + } + }, + "com.amazonaws.efs#ReplicationNotFound": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.efs#ErrorCode", + "traits": { + "smithy.api#documentation": "

ReplicationNotFound

" + } + }, + "Message": { + "target": "com.amazonaws.efs#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Returned if the specified file system did not have a replication configuration.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.efs#ReplicationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "ENABLING", + "name": "ENABLING" + }, + { + "value": "DELETING", + "name": "DELETING" + }, + { + "value": "ERROR", + "name": "ERROR" + } + ] + } + }, "com.amazonaws.efs#Resource": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/fis.2020-12-01.json b/codegen/sdk-codegen/aws-models/fis.2020-12-01.json index ec586f0c57f..d919933d410 100644 --- a/codegen/sdk-codegen/aws-models/fis.2020-12-01.json +++ b/codegen/sdk-codegen/aws-models/fis.2020-12-01.json @@ -64,7 +64,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an action. For more information, see AWS FIS actions \n in the AWS Fault Injection Simulator User Guide.

" + "smithy.api#documentation": "

Describes an action. For more information, see FIS actions \n in the Fault Injection Simulator User Guide.

" } }, "com.amazonaws.fis#ActionDescription": { @@ -74,7 +74,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ActionId": { @@ -84,7 +84,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ActionParameter": { @@ -115,7 +115,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ActionParameterMap": { @@ -134,7 +134,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ActionParameterRequired": { @@ -208,7 +208,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ClientToken": { @@ -218,7 +218,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ConflictException": { @@ -229,6 +229,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictException", + "httpResponseCode": 409 + }, "smithy.api#documentation": "

The request could not be processed because of a conflict.

", "smithy.api#error": "client", "smithy.api#httpError": 409 @@ -257,7 +261,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an experiment template.

\n

To create a template, specify the following information:

\n \n

For more information, see the AWS Fault Injection Simulator User Guide.

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

Creates an experiment template.

\n

An experiment template includes the following components:

\n \n

For more information, see Experiment templates\n in the Fault Injection Simulator User Guide.

", "smithy.api#http": { "method": "POST", "uri": "/experimentTemplates", @@ -271,7 +275,7 @@ "actionId": { "target": "com.amazonaws.fis#ActionId", "traits": { - "smithy.api#documentation": "

The ID of the action.

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

The ID of the action. The format of the action ID is: aws:service-name:action-type.

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

Specifies an action for an experiment template.

" + "smithy.api#documentation": "

Specifies an action for an experiment template.

\n

For more information, see Actions\n in the Fault Injection Simulator User Guide.

" } }, "com.amazonaws.fis#CreateExperimentTemplateActionInputMap": { @@ -327,7 +331,7 @@ "description": { "target": "com.amazonaws.fis#ExperimentTemplateDescription", "traits": { - "smithy.api#documentation": "

A description for the experiment template. Can contain up to 64 letters (A-Z and a-z).

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

A description for the experiment template.

", "smithy.api#required": {} } }, @@ -354,7 +358,7 @@ "roleArn": { "target": "com.amazonaws.fis#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

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

The Amazon Resource Name (ARN) of an IAM role that grants the FIS service permission to perform service actions on your behalf.

", "smithy.api#required": {} } }, @@ -410,7 +414,7 @@ "resourceType": { "target": "com.amazonaws.fis#ResourceType", "traits": { - "smithy.api#documentation": "

The AWS resource type. The resource type must be supported for the specified action.

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

The Amazon Web Services resource type. The resource type must be supported for the specified action.

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

Specifies a target for an experiment. You must specify at least one Amazon Resource Name (ARN) or \n at least one resource tag. You cannot specify both ARNs and tags.

" + "smithy.api#documentation": "

Specifies a target for an experiment. You must specify at least one Amazon Resource Name (ARN) or \n at least one resource tag. You cannot specify both ARNs and tags.

\n

For more information, see Targets\n in the Fault Injection Simulator User Guide.

" } }, "com.amazonaws.fis#CreateExperimentTemplateTargetInputMap": { @@ -512,7 +516,7 @@ "min": 0, "max": 1024 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#Experiment": { @@ -533,7 +537,7 @@ "roleArn": { "target": "com.amazonaws.fis#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that grants the FIS service permission to perform service actions on your behalf.

" } }, "state": { @@ -563,13 +567,13 @@ "creationTime": { "target": "com.amazonaws.fis#CreationTime", "traits": { - "smithy.api#documentation": "

The time the experiment was created.

" + "smithy.api#documentation": "

The time that the experiment was created.

" } }, "startTime": { "target": "com.amazonaws.fis#ExperimentStartTime", "traits": { - "smithy.api#documentation": "

The time that the experiment was started.

" + "smithy.api#documentation": "

The time that the experiment started.

" } }, "endTime": { @@ -627,6 +631,18 @@ "traits": { "smithy.api#documentation": "

The state of the action.

" } + }, + "startTime": { + "target": "com.amazonaws.fis#ExperimentActionStartTime", + "traits": { + "smithy.api#documentation": "

The time that the action started.

" + } + }, + "endTime": { + "target": "com.amazonaws.fis#ExperimentActionEndTime", + "traits": { + "smithy.api#documentation": "

The time that the action ended.

" + } } }, "traits": { @@ -640,9 +656,12 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, + "com.amazonaws.fis#ExperimentActionEndTime": { + "type": "timestamp" + }, "com.amazonaws.fis#ExperimentActionMap": { "type": "map", "key": { @@ -659,7 +678,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentActionParameter": { @@ -669,7 +688,7 @@ "min": 0, "max": 1024 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentActionParameterMap": { @@ -688,7 +707,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentActionStartAfter": { @@ -698,7 +717,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentActionStartAfterList": { @@ -707,6 +726,9 @@ "target": "com.amazonaws.fis#ExperimentActionStartAfter" } }, + "com.amazonaws.fis#ExperimentActionStartTime": { + "type": "timestamp" + }, "com.amazonaws.fis#ExperimentActionState": { "type": "structure", "members": { @@ -773,7 +795,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ExperimentActionTargetMap": { @@ -792,7 +814,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentEndTime": { @@ -805,7 +827,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentStartTime": { @@ -873,7 +895,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ExperimentStopCondition": { @@ -1017,7 +1039,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTargetFilterValue": { @@ -1027,7 +1049,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTargetFilterValues": { @@ -1052,7 +1074,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTargetSelectionMode": { @@ -1062,7 +1084,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplate": { @@ -1172,7 +1194,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateActionMap": { @@ -1191,7 +1213,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateActionParameter": { @@ -1201,7 +1223,7 @@ "min": 0, "max": 1024 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateActionParameterMap": { @@ -1220,7 +1242,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateActionStartAfter": { @@ -1230,7 +1252,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateActionStartAfterList": { @@ -1255,7 +1277,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateDescription": { @@ -1265,7 +1287,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateId": { @@ -1275,7 +1297,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateStopCondition": { @@ -1425,7 +1447,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateTargetFilterValue": { @@ -1435,7 +1457,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateTargetFilterValues": { @@ -1463,7 +1485,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes a filter used for the target resource input in an experiment template.

" + "smithy.api#documentation": "

Specifies a filter used for the target resource input in an experiment template.

\n

For more information, see Resource filters\n in the Fault Injection Simulator User Guide.

" } }, "com.amazonaws.fis#ExperimentTemplateTargetMap": { @@ -1482,7 +1504,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ExperimentTemplateTargetSelectionMode": { @@ -1492,11 +1514,26 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#FaultInjectionSimulator": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "fis", + "arnNamespace": "fis", + "cloudFormationName": "Fis", + "cloudTrailEventSource": "fis.amazonaws.com", + "endpointPrefix": "fis" + }, + "aws.auth#sigv4": { + "name": "fis" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Fault Injection Simulator is a managed service that enables you to perform fault injection \n experiments on your Amazon Web Services workloads. For more information, see the Fault Injection Simulator User Guide.

", + "smithy.api#title": "AWS Fault Injection Simulator" + }, "version": "2020-12-01", "operations": [ { @@ -1541,22 +1578,7 @@ { "target": "com.amazonaws.fis#UpdateExperimentTemplate" } - ], - "traits": { - "aws.api#service": { - "sdkId": "fis", - "arnNamespace": "fis", - "cloudFormationName": "Fis", - "cloudTrailEventSource": "fis.amazonaws.com", - "endpointPrefix": "fis" - }, - "aws.auth#sigv4": { - "name": "fis" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

AWS Fault Injection Simulator is a managed service that enables you to perform fault injection \n experiments on your AWS workloads. For more information, see the AWS Fault Injection Simulator User Guide.

", - "smithy.api#title": "AWS Fault Injection Simulator" - } + ] }, "com.amazonaws.fis#GetAction": { "type": "operation", @@ -1575,7 +1597,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified AWS FIS action.

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

Gets information about the specified FIS action.

", "smithy.api#http": { "method": "GET", "uri": "/actions/{id}", @@ -1722,7 +1744,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the available AWS FIS actions.

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

Lists the available FIS actions.

", "smithy.api#http": { "method": "GET", "uri": "/actions", @@ -1975,7 +1997,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ResourceArn": { @@ -1985,7 +2007,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ResourceArnList": { @@ -2008,6 +2030,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceNotFoundException", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

The specified resource cannot be found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2020,7 +2046,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#RoleArn": { @@ -2030,7 +2056,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#ServiceQuotaExceededException": { @@ -2041,6 +2067,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ServiceQuotaExceededException", + "httpResponseCode": 402 + }, "smithy.api#documentation": "

You have exceeded your service quota.

", "smithy.api#error": "client", "smithy.api#httpError": 402 @@ -2121,7 +2151,7 @@ "min": 0, "max": 64 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#StopConditionValue": { @@ -2131,7 +2161,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#StopExperiment": { @@ -2190,7 +2220,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.fis#TagKeyList": { @@ -2262,7 +2292,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "[\\s\\S]*" + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.fis#TargetResourceType": { @@ -2272,7 +2302,7 @@ "min": 0, "max": 128 }, - "smithy.api#pattern": "[\\S]+" + "smithy.api#pattern": "^[\\S]+$" } }, "com.amazonaws.fis#UntagResource": { @@ -2429,7 +2459,7 @@ "roleArn": { "target": "com.amazonaws.fis#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that grants the FIS service permission to perform service actions on your behalf.

" } } } @@ -2478,7 +2508,7 @@ "resourceType": { "target": "com.amazonaws.fis#ResourceType", "traits": { - "smithy.api#documentation": "

The AWS resource type. The resource type must be supported for the specified action.

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

The Amazon Web Services resource type. The resource type must be supported for the specified action.

", "smithy.api#required": {} } }, @@ -2529,6 +2559,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ValidationException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The specified input is not valid, or fails to satisfy the constraints for the request.

", "smithy.api#error": "client", "smithy.api#httpError": 400 diff --git a/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json b/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json index 26909067ac9..734b75af62b 100644 --- a/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json +++ b/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.frauddetector#AWSHawksNestServiceFacade": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "FraudDetector", + "arnNamespace": "frauddetector", + "cloudFormationName": "FraudDetector", + "cloudTrailEventSource": "frauddetector.amazonaws.com", + "endpointPrefix": "frauddetector" + }, + "aws.auth#sigv4": { + "name": "frauddetector" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

This is the Amazon Fraud Detector API Reference. This guide is for developers who need\n detailed information about Amazon Fraud Detector API actions, data types, and errors. For\n more information about Amazon Fraud Detector features, see the Amazon Fraud Detector User Guide.

", + "smithy.api#title": "Amazon Fraud Detector", + "smithy.api#xmlNamespace": { + "uri": "http://hawksnest.amazonaws.com/doc/2019-11-15" + } + }, "version": "2019-11-15", "operations": [ { @@ -141,6 +159,9 @@ { "target": "com.amazonaws.frauddetector#GetEventPrediction" }, + { + "target": "com.amazonaws.frauddetector#GetEventPredictionMetadata" + }, { "target": "com.amazonaws.frauddetector#GetEventTypes" }, @@ -168,6 +189,9 @@ { "target": "com.amazonaws.frauddetector#GetVariables" }, + { + "target": "com.amazonaws.frauddetector#ListEventPredictions" + }, { "target": "com.amazonaws.frauddetector#ListTagsForResource" }, @@ -231,25 +255,7 @@ { "target": "com.amazonaws.frauddetector#UpdateVariable" } - ], - "traits": { - "aws.api#service": { - "sdkId": "FraudDetector", - "arnNamespace": "frauddetector", - "cloudFormationName": "FraudDetector", - "cloudTrailEventSource": "frauddetector.amazonaws.com", - "endpointPrefix": "frauddetector" - }, - "aws.auth#sigv4": { - "name": "frauddetector" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

This is the Amazon Fraud Detector API Reference. This guide is for developers who need\n detailed information about Amazon Fraud Detector API actions, data types, and errors. For\n more information about Amazon Fraud Detector features, see the Amazon Fraud Detector User Guide.

", - "smithy.api#title": "Amazon Fraud Detector", - "smithy.api#xmlNamespace": { - "uri": "http://hawksnest.amazonaws.com/doc/2019-11-15" - } - } + ] }, "com.amazonaws.frauddetector#AccessDeniedException": { "type": "structure", @@ -668,6 +674,12 @@ "target": "com.amazonaws.frauddetector#BatchPrediction" } }, + "com.amazonaws.frauddetector#Boolean": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.frauddetector#CancelBatchImportJob": { "type": "operation", "input": { @@ -2548,6 +2560,126 @@ "smithy.api#documentation": "

The entity type details.

" } }, + "com.amazonaws.frauddetector#EvaluatedExternalModel": { + "type": "structure", + "members": { + "modelEndpoint": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe endpoint of the external (Amazon Sagemaker) model.\n

" + } + }, + "useEventVariables": { + "target": "com.amazonaws.frauddetector#Boolean", + "traits": { + "smithy.api#documentation": "

\nIndicates whether event variables were used to generate predictions.\n

" + } + }, + "inputVariables": { + "target": "com.amazonaws.frauddetector#MapOfStrings", + "traits": { + "smithy.api#documentation": "

\nInput variables use for generating predictions.\n

" + } + }, + "outputVariables": { + "target": "com.amazonaws.frauddetector#MapOfStrings", + "traits": { + "smithy.api#documentation": "

\nOutput variables.\n

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

\nThe details of the external (Amazon Sagemaker) model evaluated for generating predictions.\n

" + } + }, + "com.amazonaws.frauddetector#EvaluatedModelVersion": { + "type": "structure", + "members": { + "modelId": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe model ID.\n

" + } + }, + "modelVersion": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe model version.\n

" + } + }, + "modelType": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The model type.

\n

Valid values: ONLINE_FRAUD_INSIGHTS | TRANSACTION_FRAUD_INSIGHTS\n

" + } + }, + "evaluations": { + "target": "com.amazonaws.frauddetector#ListOfModelVersionEvaluations", + "traits": { + "smithy.api#documentation": "

\nEvaluations generated for the model version.\n

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

\nThe model version evaluated for generating prediction.\n

" + } + }, + "com.amazonaws.frauddetector#EvaluatedRule": { + "type": "structure", + "members": { + "ruleId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe rule ID.\n

" + } + }, + "ruleVersion": { + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", + "traits": { + "smithy.api#documentation": "

\nThe rule version.\n

" + } + }, + "expression": { + "target": "com.amazonaws.frauddetector#sensitiveString", + "traits": { + "smithy.api#documentation": "

\nThe rule expression.\n

" + } + }, + "expressionWithValues": { + "target": "com.amazonaws.frauddetector#sensitiveString", + "traits": { + "smithy.api#documentation": "

\nThe rule expression value.\n

" + } + }, + "outcomes": { + "target": "com.amazonaws.frauddetector#ListOfStrings", + "traits": { + "smithy.api#documentation": "

\nThe rule outcome.\n

" + } + }, + "evaluated": { + "target": "com.amazonaws.frauddetector#Boolean", + "traits": { + "smithy.api#documentation": "

\nIndicates whether the rule was evaluated.\n

" + } + }, + "matched": { + "target": "com.amazonaws.frauddetector#Boolean", + "traits": { + "smithy.api#documentation": "

\nIndicates whether the rule matched.\n

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

\nThe details of the rule used for evaluating variable values.\n

" + } + }, + "com.amazonaws.frauddetector#EvaluatedRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#EvaluatedRule" + } + }, "com.amazonaws.frauddetector#Event": { "type": "structure", "members": { @@ -2622,6 +2754,60 @@ ] } }, + "com.amazonaws.frauddetector#EventPredictionSummary": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event ID.\n

" + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event type.\n

" + } + }, + "eventTimestamp": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe timestamp of the event.\n

" + } + }, + "predictionTimestamp": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe timestamp when the prediction was generated.\n

" + } + }, + "detectorId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe detector ID.\n

" + } + }, + "detectorVersionId": { + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", + "traits": { + "smithy.api#documentation": "

\nThe detector version ID.\n

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

\nInformation about the summary of an event prediction.\n

" + } + }, + "com.amazonaws.frauddetector#EventPredictionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 50, + "max": 100 + } + } + }, "com.amazonaws.frauddetector#EventType": { "type": "structure", "members": { @@ -2705,6 +2891,32 @@ } } }, + "com.amazonaws.frauddetector#EventVariableSummary": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.frauddetector#sensitiveString", + "traits": { + "smithy.api#documentation": "

\nThe event variable name.\n

" + } + }, + "value": { + "target": "com.amazonaws.frauddetector#sensitiveString", + "traits": { + "smithy.api#documentation": "

\nThe value of the event variable.\n

" + } + }, + "source": { + "target": "com.amazonaws.frauddetector#sensitiveString", + "traits": { + "smithy.api#documentation": "

\nThe event variable source. \n

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

\nInformation about the summary of an event variable that was evaluated for generating prediction.\n

" + } + }, "com.amazonaws.frauddetector#ExternalEventsDetail": { "type": "structure", "members": { @@ -2930,6 +3142,20 @@ "smithy.api#documentation": "

The message details.

" } }, + "com.amazonaws.frauddetector#FilterCondition": { + "type": "structure", + "members": { + "value": { + "target": "com.amazonaws.frauddetector#filterString", + "traits": { + "smithy.api#documentation": "

\nA statement containing a resource property and a value to specify filter condition. \n

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

\nA conditional statement for filtering a list of past predictions. \n

" + } + }, "com.amazonaws.frauddetector#GetBatchImportJobs": { "type": "operation", "input": { @@ -3467,6 +3693,170 @@ "smithy.api#documentation": "

Evaluates an event against a detector version. If a version ID is not provided, the detector’s (ACTIVE) version is used.

" } }, + "com.amazonaws.frauddetector#GetEventPredictionMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#GetEventPredictionMetadataRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#GetEventPredictionMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nGets details of the past fraud predictions for the specified event ID, event type, detector ID, and detector version ID that was generated in the specified time period.\n

" + } + }, + "com.amazonaws.frauddetector#GetEventPredictionMetadataRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event ID.\n

", + "smithy.api#required": {} + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event type associated with the detector specified for the prediction.\n

", + "smithy.api#required": {} + } + }, + "detectorId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe detector ID.\n

", + "smithy.api#required": {} + } + }, + "detectorVersionId": { + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", + "traits": { + "smithy.api#documentation": "

\nThe detector version ID.\n

", + "smithy.api#required": {} + } + }, + "predictionTimestamp": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe timestamp that defines when the prediction was generated. \n

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#GetEventPredictionMetadataResult": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event ID.\n

" + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe event type associated with the detector specified for this prediction.\n

" + } + }, + "entityId": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe entity ID.\n

" + } + }, + "entityType": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe entity type.\n

" + } + }, + "eventTimestamp": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe timestamp for when the prediction was generated for the associated event ID.\n

" + } + }, + "detectorId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

\nThe detector ID.\n

" + } + }, + "detectorVersionId": { + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", + "traits": { + "smithy.api#documentation": "

\nThe detector version ID.\n

" + } + }, + "detectorVersionStatus": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe status of the detector version.\n

" + } + }, + "eventVariables": { + "target": "com.amazonaws.frauddetector#ListOfEventVariableSummaries", + "traits": { + "smithy.api#documentation": "

\nA list of event variables that influenced the prediction scores.\n

" + } + }, + "rules": { + "target": "com.amazonaws.frauddetector#EvaluatedRuleList", + "traits": { + "smithy.api#documentation": "

\nList of rules associated with the detector version that were used for evaluating variable values.\n

" + } + }, + "ruleExecutionMode": { + "target": "com.amazonaws.frauddetector#RuleExecutionMode", + "traits": { + "smithy.api#documentation": "

\nThe execution mode of the rule used for evaluating variable values.\n

" + } + }, + "outcomes": { + "target": "com.amazonaws.frauddetector#ListOfStrings", + "traits": { + "smithy.api#documentation": "

\nThe outcomes of the matched rule, based on the rule execution mode.\n

" + } + }, + "evaluatedModelVersions": { + "target": "com.amazonaws.frauddetector#ListOfEvaluatedModelVersions", + "traits": { + "smithy.api#documentation": "

\nModel versions that were evaluated for generating predictions.\n

" + } + }, + "evaluatedExternalModels": { + "target": "com.amazonaws.frauddetector#ListOfEvaluatedExternalModels", + "traits": { + "smithy.api#documentation": "

\nExternal (Amazon SageMaker) models that were evaluated for generating predictions.\n

" + } + }, + "predictionTimestamp": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

The timestamp that defines when the prediction was generated.\n

" + } + } + } + }, "com.amazonaws.frauddetector#GetEventPredictionRequest": { "type": "structure", "members": { @@ -4467,6 +4857,125 @@ ] } }, + "com.amazonaws.frauddetector#ListEventPredictions": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#ListEventPredictionsRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#ListEventPredictionsResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of past predictions. The list can be filtered by detector ID, detector version ID, event ID, event type, or by specifying a time period. \n If filter is not specified, the most recent prediction is returned.

\n\n

For example, the following filter lists all past predictions for xyz event type -\n { \n \"eventType\":{\n \"value\": \"xyz\" }” \n } \n

\n\n

This is a paginated API. If you provide a null maxResults, this action will retrieve a maximum of 10 records per page. \n If you provide a maxResults, the value must be between 50 and 100. To get the next page results, provide \n the nextToken from the response as part of your request. A null nextToken fetches the records from the beginning. \n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.frauddetector#ListEventPredictionsRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#FilterCondition", + "traits": { + "smithy.api#documentation": "

\nThe event ID.\n

" + } + }, + "eventType": { + "target": "com.amazonaws.frauddetector#FilterCondition", + "traits": { + "smithy.api#documentation": "

\nThe event type associated with the detector.\n

" + } + }, + "detectorId": { + "target": "com.amazonaws.frauddetector#FilterCondition", + "traits": { + "smithy.api#documentation": "

\nThe detector ID.\n

" + } + }, + "detectorVersionId": { + "target": "com.amazonaws.frauddetector#FilterCondition", + "traits": { + "smithy.api#documentation": "

\nThe detector version ID.\n

" + } + }, + "predictionTimeRange": { + "target": "com.amazonaws.frauddetector#PredictionTimeRange", + "traits": { + "smithy.api#documentation": "

\nThe time period for when the predictions were generated.\n

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

\nIdentifies the next page of results to return. Use the token to make the call again to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.\n

" + } + }, + "maxResults": { + "target": "com.amazonaws.frauddetector#EventPredictionsMaxResults", + "traits": { + "smithy.api#documentation": "

\nThe maximum number of predictions to return for the request.\n

" + } + } + } + }, + "com.amazonaws.frauddetector#ListEventPredictionsResult": { + "type": "structure", + "members": { + "eventPredictionSummaries": { + "target": "com.amazonaws.frauddetector#ListOfEventPredictionSummaries", + "traits": { + "smithy.api#documentation": "

\nThe summary of the past predictions.\n

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

\nIdentifies the next page of results to return. Use the token to make the call again to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.\n

" + } + } + } + }, + "com.amazonaws.frauddetector#ListOfEvaluatedExternalModels": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#EvaluatedExternalModel" + } + }, + "com.amazonaws.frauddetector#ListOfEvaluatedModelVersions": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#EvaluatedModelVersion" + } + }, + "com.amazonaws.frauddetector#ListOfEventPredictionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#EventPredictionSummary" + } + }, + "com.amazonaws.frauddetector#ListOfEventVariableSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#EventVariableSummary" + } + }, "com.amazonaws.frauddetector#ListOfExternalModelOutputs": { "type": "list", "member": { @@ -4485,6 +4994,12 @@ "target": "com.amazonaws.frauddetector#ModelScores" } }, + "com.amazonaws.frauddetector#ListOfModelVersionEvaluations": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#ModelVersionEvaluation" + } + }, "com.amazonaws.frauddetector#ListOfModelVersions": { "type": "list", "member": { @@ -4610,6 +5125,18 @@ "smithy.api#box": {} } }, + "com.amazonaws.frauddetector#MapOfStrings": { + "type": "map", + "key": { + "target": "com.amazonaws.frauddetector#string" + }, + "value": { + "target": "com.amazonaws.frauddetector#string" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.frauddetector#MetricDataPoint": { "type": "structure", "members": { @@ -4993,6 +5520,32 @@ "smithy.api#documentation": "

The details of the model version.

" } }, + "com.amazonaws.frauddetector#ModelVersionEvaluation": { + "type": "structure", + "members": { + "outputVariableName": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe output variable name.\n

" + } + }, + "evaluationScore": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe evaluation score generated for the model version.\n

" + } + }, + "predictionExplanations": { + "target": "com.amazonaws.frauddetector#PredictionExplanations", + "traits": { + "smithy.api#documentation": "

\nThe prediction explanations generated for the model version.\n

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

\nThe model version evalutions.\n

" + } + }, "com.amazonaws.frauddetector#ModelVersionStatus": { "type": "string", "traits": { @@ -5089,6 +5642,42 @@ } } }, + "com.amazonaws.frauddetector#PredictionExplanations": { + "type": "structure", + "members": { + "variableImpactExplanations": { + "target": "com.amazonaws.frauddetector#listOfVariableImpactExplanations", + "traits": { + "smithy.api#documentation": "

\nThe details of the event variable's impact on the prediction score.\n

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

\nThe prediction explanations that provide insight into how each event variable impacted the model version's fraud prediction score. \n

" + } + }, + "com.amazonaws.frauddetector#PredictionTimeRange": { + "type": "structure", + "members": { + "startTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe start time of the time period for when the predictions were generated.\n

", + "smithy.api#required": {} + } + }, + "endTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

\nThe end time of the time period for when the predictions were generated.\n

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

\nThe time period for when the predictions were generated.\n

" + } + }, "com.amazonaws.frauddetector#PutDetector": { "type": "operation", "input": { @@ -6920,6 +7509,32 @@ } } }, + "com.amazonaws.frauddetector#VariableImpactExplanation": { + "type": "structure", + "members": { + "eventVariableName": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\nThe event variable name.\n

" + } + }, + "relativeImpact": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

\n The event variable's relative impact in terms of magnitude on the prediction scores. \n The relative impact values consist of a numerical rating (0-5, 5 being the highest) and direction (increased/decreased) impact of the fraud risk.\n

" + } + }, + "logOddsImpact": { + "target": "com.amazonaws.frauddetector#float", + "traits": { + "smithy.api#documentation": "

\n The raw, uninterpreted value represented as log-odds of the fraud. These values are usually between -10 to +10, but range from - infinity to + infinity.

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

\nThe details of the event variable's impact on the prediction score.\n

" + } + }, "com.amazonaws.frauddetector#VariableImportanceMetrics": { "type": "structure", "members": { @@ -7064,6 +7679,16 @@ "target": "com.amazonaws.frauddetector#FileValidationMessage" } }, + "com.amazonaws.frauddetector#filterString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[0-9A-Za-z_-]+$" + } + }, "com.amazonaws.frauddetector#float": { "type": "float", "traits": { @@ -7141,6 +7766,12 @@ "target": "com.amazonaws.frauddetector#Entity" } }, + "com.amazonaws.frauddetector#listOfVariableImpactExplanations": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#VariableImpactExplanation" + } + }, "com.amazonaws.frauddetector#metricDataPointsList": { "type": "list", "member": { @@ -7218,6 +7849,12 @@ "smithy.api#pattern": "^[0-9A-Za-z_-]+$" } }, + "com.amazonaws.frauddetector#sensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.frauddetector#string": { "type": "string" }, diff --git a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json index 566abe519b8..e720d004d0c 100644 --- a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json +++ b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json @@ -326,7 +326,7 @@ "com.amazonaws.fsx#AdministrativeActionType": { "type": "string", "traits": { - "smithy.api#documentation": "

Describes the type of administrative action, as follows:

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

Describes the type of administrative action, as follows:

\n ", "smithy.api#enum": [ { "value": "FILE_SYSTEM_UPDATE", @@ -1387,7 +1387,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new, empty Amazon FSx file system. You can create the following supported \n Amazon FSx file systems using the CreateFileSystem API operation:

\n \n

This operation requires a client request token in the request that Amazon FSx uses\n to ensure idempotent creation. This means that calling the operation multiple times with\n the same client request token has no effect. By using the idempotent operation, you can\n retry a CreateFileSystem operation without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives success as long as the\n parameters are the same.

\n

If a file system with the specified client request token exists and the parameters\n match, CreateFileSystem returns the description of the existing file\n system. If a file system with the specified client request token exists and the\n parameters don't match, this call returns IncompatibleParameterError. If a\n file system with the specified client request token doesn't exist,\n CreateFileSystem does the following:

\n \n\n

This operation requires a client request token in the request that Amazon FSx\n uses to ensure idempotent creation. This means that calling the operation multiple times\n with the same client request token has no effect. By using the idempotent operation, you\n can retry a CreateFileSystem operation without the risk of creating an\n extra file system. This approach can be useful when an initial call fails in a way that\n makes it unclear whether a file system was created. Examples are if a transport-level\n timeout occurred, or your connection was reset. If you use the same client request token\n and the initial call created a file system, the client receives a success message as\n long as the parameters are the same.

\n \n

The CreateFileSystem call returns while the file system's lifecycle\n state is still CREATING. You can check the file-system creation status\n by calling the DescribeFileSystems operation, which returns the file system state\n along with other information.

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

Creates a new, empty Amazon FSx file system. You can create the following supported \n Amazon FSx file systems using the CreateFileSystem API operation:

\n \n

This operation requires a client request token in the request that Amazon FSx uses\n to ensure idempotent creation. This means that calling the operation multiple times with\n the same client request token has no effect. By using the idempotent operation, you can\n retry a CreateFileSystem operation without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives success as long as the\n parameters are the same.

\n

If a file system with the specified client request token exists and the parameters\n match, CreateFileSystem returns the description of the existing file\n system. If a file system with the specified client request token exists and the\n parameters don't match, this call returns IncompatibleParameterError. If a\n file system with the specified client request token doesn't exist,\n CreateFileSystem does the following:

\n \n\n

This operation requires a client request token in the request that Amazon FSx\n uses to ensure idempotent creation. This means that calling the operation multiple times\n with the same client request token has no effect. By using the idempotent operation, you\n can retry a CreateFileSystem operation without the risk of creating an\n extra file system. This approach can be useful when an initial call fails in a way that\n makes it unclear whether a file system was created. Examples are if a transport-level\n timeout occurred, or your connection was reset. If you use the same client request token\n and the initial call created a file system, the client receives a success message as\n long as the parameters are the same.

\n \n

The CreateFileSystem call returns while the file system's lifecycle\n state is still CREATING. You can check the file-system creation status\n by calling the DescribeFileSystems operation, which returns the file system state\n along with other information.

\n
" } }, "com.amazonaws.fsx#CreateFileSystemFromBackup": { @@ -1545,7 +1545,7 @@ "DeploymentType": { "target": "com.amazonaws.fsx#LustreDeploymentType", "traits": { - "smithy.api#documentation": "

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment \n types when you need temporary storage and shorter-term processing of data. \n The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst \n throughput capacity than SCRATCH_1.

\n

Choose PERSISTENT_1 for longer-term storage and for throughput-focused \n workloads that aren’t latency-sensitive. a. \n PERSISTENT_1 supports encryption of data in transit, and is available in all \n Amazon Web Services Regions in which FSx for Lustre is available.

\n

Choose PERSISTENT_2 for longer-term storage and for latency-sensitive workloads \n that require the highest levels of IOPS/throughput. PERSISTENT_2 supports \n SSD storage, and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB). PERSISTENT_2 \n is available in a limited number of Amazon Web Services Regions. \n For more information, and an up-to-date list of Amazon Web Services Regions in which \n PERSISTENT_2 is available, see \n File \n system deployment options for FSx for Lustre in the Amazon FSx for Lustre User Guide.

\n \n

If you choose PERSISTENT_2, and you set FileSystemTypeVersion to\n 2.10, the CreateFileSystem operation fails.

\n
\n \n

Encryption of data in transit is automatically turned on when you access\n SCRATCH_2, PERSISTENT_1 and PERSISTENT_2 file\n systems from Amazon EC2 instances that support\n automatic encryption in the Amazon Web Services Regions where they are\n available. For more information about encryption in transit for FSx for Lustre\n file systems, see Encrypting data in\n transit in the Amazon FSx for Lustre User Guide.

\n

(Default = SCRATCH_1)

" + "smithy.api#documentation": "

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment \n types when you need temporary storage and shorter-term processing of data. \n The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst \n throughput capacity than SCRATCH_1.

\n

Choose PERSISTENT_1 for longer-term storage and for throughput-focused \n workloads that aren’t latency-sensitive.\n PERSISTENT_1 supports encryption of data in transit, and is available in all \n Amazon Web Services Regions in which FSx for Lustre is available.

\n

Choose PERSISTENT_2 for longer-term storage and for latency-sensitive workloads \n that require the highest levels of IOPS/throughput. PERSISTENT_2 supports \n SSD storage, and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB). PERSISTENT_2 \n is available in a limited number of Amazon Web Services Regions. \n For more information, and an up-to-date list of Amazon Web Services Regions in which \n PERSISTENT_2 is available, see \n File \n system deployment options for FSx for Lustre in the Amazon FSx for Lustre User Guide.

\n \n

If you choose PERSISTENT_2, and you set FileSystemTypeVersion to\n 2.10, the CreateFileSystem operation fails.

\n
\n \n

Encryption of data in transit is automatically turned on when you access\n SCRATCH_2, PERSISTENT_1 and PERSISTENT_2 file\n systems from Amazon EC2 instances that support\n automatic encryption in the Amazon Web Services Regions where they are\n available. For more information about encryption in transit for FSx for Lustre\n file systems, see Encrypting data in\n transit in the Amazon FSx for Lustre User Guide.

\n

(Default = SCRATCH_1)

" } }, "AutoImportPolicy": { @@ -1644,7 +1644,7 @@ "ThroughputCapacity": { "target": "com.amazonaws.fsx#MegabytesPerSecond", "traits": { - "smithy.api#documentation": "

Sets the throughput capacity for the file system that you're creating. \n Valid values are 512, 1024, and 2048 MBps.

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

Sets the throughput capacity for the file system that you're creating. \n Valid values are 128, 256, 512, 1024, and 2048 MBps.

", "smithy.api#required": {} } }, @@ -1735,7 +1735,7 @@ "StorageType": { "target": "com.amazonaws.fsx#StorageType", "traits": { - "smithy.api#documentation": "

Sets the storage type for the file system that you're creating. Valid values are\n SSD and HDD.

\n \n

Default value is SSD. For more information, see Storage\n type options in the FSx for Windows File Server User\n Guide and Multiple storage\n options in the FSx for Lustre User\n Guide.

" + "smithy.api#documentation": "

Sets the storage type for the file system that you're creating. Valid values are\n SSD and HDD.

\n \n

Default value is SSD. For more information, see Storage\n type options in the FSx for Windows File Server User\n Guide and Multiple storage\n options in the FSx for Lustre User\n Guide.

" } }, "SubnetIds": { @@ -3474,7 +3474,7 @@ "Options": { "target": "com.amazonaws.fsx#DeleteOpenZFSVolumeOptions", "traits": { - "smithy.api#documentation": "

To delete the volume's children and snapshots, use the string\n DELETE_CHILD_VOLUMES_AND_SNAPSHOTS.

" + "smithy.api#documentation": "

To delete the volume's child volumes, snapshots, and clones, use the string\n DELETE_CHILD_VOLUMES_AND_SNAPSHOTS.

" } } }, @@ -4433,7 +4433,7 @@ "FileSystemTypeVersion": { "target": "com.amazonaws.fsx#FileSystemTypeVersion", "traits": { - "smithy.api#documentation": "

The Lustre version of the Amazon FSx for Lustrefile system, either\n 2.10 or 2.12.

" + "smithy.api#documentation": "

The Lustre version of the Amazon FSx for Lustre file system, either\n 2.10 or 2.12.

" } }, "OpenZFSConfiguration": { @@ -7285,7 +7285,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx for ONTAP's intelligent\n tiering automatically transitions a volume's data between the file system's primary storage and capacity\n pool storage based on your access patterns.

" + "smithy.api#documentation": "

Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx for ONTAP's intelligent\n tiering automatically transitions a volume's data between the file system's primary storage and capacity\n pool storage based on your access patterns.

\n

Valid tiering policies are the following:

\n \n \n \n " } }, "com.amazonaws.fsx#TieringPolicyName": { @@ -7501,7 +7501,7 @@ } ], "traits": { - "smithy.api#documentation": "

Use this operation to update the configuration of an existing Amazon FSx file\n system. You can update multiple properties in a single request.

\n

For Amazon FSx for Windows File Server file systems, you can update the following\n properties:

\n \n

For FSx for Lustre file systems, you can update the following\n properties:

\n \n

For FSx for ONTAP file systems, you can update the following\n properties:

\n \n

For the Amazon FSx for OpenZFS file systems, you can update the following\n properties:

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

Use this operation to update the configuration of an existing Amazon FSx file\n system. You can update multiple properties in a single request.

\n

For Amazon FSx for Windows File Server file systems, you can update the following\n properties:

\n \n

For Amazon FSx for Lustre file systems, you can update the following\n properties:

\n \n

For Amazon FSx for NetApp ONTAP file systems, you can update the following\n properties:

\n \n

For the Amazon FSx for OpenZFS file systems, you can update the following\n properties:

\n " } }, "com.amazonaws.fsx#UpdateFileSystemLustreConfiguration": { @@ -7559,6 +7559,12 @@ }, "WeeklyMaintenanceStartTime": { "target": "com.amazonaws.fsx#WeeklyTime" + }, + "DiskIopsConfiguration": { + "target": "com.amazonaws.fsx#DiskIopsConfiguration", + "traits": { + "smithy.api#documentation": "

The SSD IOPS (input/output operations per second) configuration for an Amazon FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of storage capacity,\n but you can provision additional IOPS per GB of storage. The configuration consists\n of an IOPS mode (AUTOMATIC or USER_PROVISIONED), and in\n the case of USER_PROVISIONED IOPS, the total number of SSD IOPS provisioned.

" + } } }, "traits": { @@ -7589,7 +7595,7 @@ "ThroughputCapacity": { "target": "com.amazonaws.fsx#MegabytesPerSecond", "traits": { - "smithy.api#documentation": "

The throughput of an Amazon FSx file system, measured in megabytes per second\n (MBps), in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

" + "smithy.api#documentation": "

The throughput of an Amazon FSx file system, measured in megabytes per second\n (MBps), in 2 to the nth increments, between 2^3 (8) and 2^12 (4096).

" } }, "WeeklyMaintenanceStartTime": { @@ -7623,7 +7629,7 @@ "StorageCapacity": { "target": "com.amazonaws.fsx#StorageCapacity", "traits": { - "smithy.api#documentation": "

Use this parameter to increase the storage capacity of an Amazon FSx for Windows\n File Server or Amazon FSx for Lustre file system. Specifies the storage capacity\n target value, in GiB, to increase the storage capacity for the file system that you're\n updating.

\n \n

You can't make a storage capacity increase request if there is an existing storage\n capacity increase request in progress.

\n
\n

For Windows file systems, the storage capacity target value must be at least 10 percent\n greater than the current storage capacity value. To increase storage capacity, the file system\n must have at least 16 MBps of throughput capacity.

\n

For Lustre file systems, the storage capacity target value can be the following:

\n \n

For OpenZFS file systems, the input/output operations per second (IOPS) automatically\n scale with increases to the storage capacity if IOPS is configured for automatic scaling. If\n the storage capacity increase would result in less than 3 IOPS per GiB of storage, this\n operation returns an error.

\n

For more information, see Managing storage\n capacity in the Amazon FSx for Windows File Server User\n Guide, Managing storage and throughput\n capacity in the Amazon FSx for Lustre User Guide, and\n Managing storage capacity in the Amazon FSx for OpenZFS User\n Guide.

" + "smithy.api#documentation": "

Use this parameter to increase the storage capacity of an Amazon FSx for Windows\n File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp ONTAP file system.\n Specifies the storage capacity target value, in GiB, to increase the storage capacity for\n the file system that you're updating.

\n \n

You can't make a storage capacity increase request if there is an existing storage\n capacity increase request in progress.

\n
\n

For Windows file systems, the storage capacity target value must be at least 10 percent\n greater than the current storage capacity value. To increase storage capacity, the file system\n must have at least 16 MBps of throughput capacity. For more information, see Managing storage\n capacity in the Amazon FSx for Windows File Server User\n Guide.

\n

For Lustre file systems, the storage capacity target value can be the following:

\n \n

For more information, see Managing storage and throughput\n capacity in the Amazon FSx for Lustre User Guide.

\n

For ONTAP file systems, the storage capacity target value must be at least 10 percent\n greater than the current storage capacity value. For more information, see\n Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User\n Guide.

" } }, "WindowsConfiguration": { diff --git a/codegen/sdk-codegen/aws-models/guardduty.2017-11-28.json b/codegen/sdk-codegen/aws-models/guardduty.2017-11-28.json index 58c34147eee..58456f7ffd9 100644 --- a/codegen/sdk-codegen/aws-models/guardduty.2017-11-28.json +++ b/codegen/sdk-codegen/aws-models/guardduty.2017-11-28.json @@ -255,6 +255,13 @@ "smithy.api#documentation": "

Information about the PORT_PROBE action described in this finding.

", "smithy.api#jsonName": "portProbeAction" } + }, + "KubernetesApiCallAction": { + "target": "com.amazonaws.guardduty#KubernetesApiCallAction", + "traits": { + "smithy.api#documentation": "

Information about the Kubernetes API call action described in this finding.

", + "smithy.api#jsonName": "kubernetesApiCallAction" + } } }, "traits": { @@ -267,7 +274,7 @@ "AdminAccountId": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS account ID for the account.

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

The Amazon Web Services account ID for the account.

", "smithy.api#jsonName": "adminAccountId" } }, @@ -371,44 +378,57 @@ "Api": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS API name.

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

The Amazon Web Services API name.

", "smithy.api#jsonName": "api" } }, "CallerType": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS API caller type.

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

The Amazon Web Services API caller type.

", "smithy.api#jsonName": "callerType" } }, "DomainDetails": { "target": "com.amazonaws.guardduty#DomainDetails", "traits": { - "smithy.api#documentation": "

The domain information for the AWS API call.

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

The domain information for the Amazon Web Services API call.

", "smithy.api#jsonName": "domainDetails" } }, "ErrorCode": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The error code of the failed AWS API action.

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

The error code of the failed Amazon Web Services API action.

", "smithy.api#jsonName": "errorCode" } }, + "UserAgent": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#jsonName": "userAgent" + } + }, "RemoteIpDetails": { "target": "com.amazonaws.guardduty#RemoteIpDetails", "traits": { - "smithy.api#documentation": "

The remote IP information of the connection that initiated the AWS API call.

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

The remote IP information of the connection that initiated the Amazon Web Services API call.

", "smithy.api#jsonName": "remoteIpDetails" } }, "ServiceName": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS service name whose API was invoked.

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

The Amazon Web Services service name whose API was invoked.

", "smithy.api#jsonName": "serviceName" } + }, + "RemoteAccountDetails": { + "target": "com.amazonaws.guardduty#RemoteAccountDetails", + "traits": { + "smithy.api#documentation": "

The details of the Amazon Web Services account that made the API call. This field appears if the call was made from outside your account.

", + "smithy.api#jsonName": "remoteAccountDetails" + } } }, "traits": { @@ -667,6 +687,69 @@ "smithy.api#documentation": "

Contains information about the condition.

" } }, + "com.amazonaws.guardduty#Container": { + "type": "structure", + "members": { + "ContainerRuntime": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The container runtime (such as, Docker or containerd) used to run the container.

", + "smithy.api#jsonName": "containerRuntime" + } + }, + "Id": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Container ID.

", + "smithy.api#jsonName": "id" + } + }, + "Name": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Container name.

", + "smithy.api#jsonName": "name" + } + }, + "Image": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Container image.

", + "smithy.api#jsonName": "image" + } + }, + "ImagePrefix": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Part of the image name before the last slash. For example, imagePrefix for public.ecr.aws/amazonlinux/amazonlinux:latest would be public.ecr.aws/amazonlinux. If the image name is relative and does not have a slash, this field is empty.

", + "smithy.api#jsonName": "imagePrefix" + } + }, + "VolumeMounts": { + "target": "com.amazonaws.guardduty#VolumeMounts", + "traits": { + "smithy.api#documentation": "

Container volume mounts.

", + "smithy.api#jsonName": "volumeMounts" + } + }, + "SecurityContext": { + "target": "com.amazonaws.guardduty#SecurityContext", + "traits": { + "smithy.api#documentation": "

Container security context.

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

Details of a container.

" + } + }, + "com.amazonaws.guardduty#Containers": { + "type": "list", + "member": { + "target": "com.amazonaws.guardduty#Container" + } + }, "com.amazonaws.guardduty#CountBySeverity": { "type": "map", "key": { @@ -846,7 +929,7 @@ "FindingCriteria": { "target": "com.amazonaws.guardduty#FindingCriteria", "traits": { - "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 ", + "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 ", "smithy.api#jsonName": "findingCriteria", "smithy.api#required": {} } @@ -898,7 +981,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new IPSet, which is called a trusted IP list in the console user interface. An\n IPSet is a list of IP addresses that are trusted for secure communication with AWS\n infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are\n included in IPSets. Only users from the administrator account can use this operation.

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

Creates a new IPSet, which is called a trusted IP list in the console user interface. An\n IPSet is a list of IP addresses that are trusted for secure communication with Amazon Web Services\n infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are\n included in IPSets. Only users from the administrator account can use this operation.

", "smithy.api#http": { "method": "POST", "uri": "/detector/{DetectorId}/ipset", @@ -937,7 +1020,7 @@ "Location": { "target": "com.amazonaws.guardduty#Location", "traits": { - "smithy.api#documentation": "

The URI of the file that contains the IPSet. For example:\n https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.

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

The URI of the file that contains the IPSet.

", "smithy.api#jsonName": "location", "smithy.api#required": {} } @@ -997,7 +1080,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates member accounts of the current AWS account by specifying a list of AWS account\n IDs. This step is a prerequisite for managing the associated member accounts either by\n invitation or through an organization.

\n

When using Create Members as an organizations delegated administrator this\n action will enable GuardDuty in the added member accounts, with the exception of the\n organization delegated administrator account, which must enable GuardDuty prior to being added as a\n member.

\n

If you are adding accounts by invitation use this action after GuardDuty has been enabled\n in potential member accounts and before using \n Invite\n Members\n .

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

Creates member accounts of the current Amazon Web Services account by specifying a list of Amazon Web Services account\n IDs. This step is a prerequisite for managing the associated member accounts either by\n invitation or through an organization.

\n

When using Create Members as an organizations delegated administrator this\n action will enable GuardDuty in the added member accounts, with the exception of the\n organization delegated administrator account, which must enable GuardDuty prior to being added as a\n member.

\n

If you are adding accounts by invitation use this action after GuardDuty has been enabled\n in potential member accounts and before using \n Invite\n Members\n .

", "smithy.api#http": { "method": "POST", "uri": "/detector/{DetectorId}/member", @@ -1222,7 +1305,7 @@ "Location": { "target": "com.amazonaws.guardduty#Location", "traits": { - "smithy.api#documentation": "

The URI of the file that contains the ThreatIntelSet. For example:\n https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.

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

The URI of the file that contains the ThreatIntelSet.

", "smithy.api#jsonName": "location", "smithy.api#required": {} } @@ -1309,6 +1392,10 @@ { "value": "S3_LOGS", "name": "S3_LOGS" + }, + { + "value": "KUBERNETES_AUDIT_LOGS", + "name": "KUBERNETES_AUDIT_LOGS" } ] } @@ -1322,6 +1409,13 @@ "smithy.api#documentation": "

Describes whether S3 data event logs are enabled as a data source.

", "smithy.api#jsonName": "s3Logs" } + }, + "Kubernetes": { + "target": "com.amazonaws.guardduty#KubernetesConfiguration", + "traits": { + "smithy.api#documentation": "

Describes whether any Kubernetes logs are enabled as data sources.

", + "smithy.api#jsonName": "kubernetes" + } } }, "traits": { @@ -1362,6 +1456,13 @@ "smithy.api#jsonName": "s3Logs", "smithy.api#required": {} } + }, + "Kubernetes": { + "target": "com.amazonaws.guardduty#KubernetesConfigurationResult", + "traits": { + "smithy.api#documentation": "

An object that contains information on the status of all Kubernetes data sources.

", + "smithy.api#jsonName": "kubernetes" + } } }, "traits": { @@ -1410,7 +1511,7 @@ } ], "traits": { - "smithy.api#documentation": "

Declines invitations sent to the current member account by AWS accounts specified by their\n account IDs.

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

Declines invitations sent to the current member account by Amazon Web Services accounts specified by their\n account IDs.

", "smithy.api#http": { "method": "POST", "uri": "/invitation/decline", @@ -1424,7 +1525,7 @@ "AccountIds": { "target": "com.amazonaws.guardduty#AccountIds", "traits": { - "smithy.api#documentation": "

A list of account IDs of the AWS accounts that sent invitations to the current member\n account that you want to decline invitations from.

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

A list of account IDs of the Amazon Web Services accounts that sent invitations to the current member\n account that you want to decline invitations from.

", "smithy.api#jsonName": "accountIds", "smithy.api#required": {} } @@ -1630,7 +1731,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes invitations sent to the current member account by AWS accounts specified by their\n account IDs.

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

Deletes invitations sent to the current member account by Amazon Web Services accounts specified by their\n account IDs.

", "smithy.api#http": { "method": "POST", "uri": "/invitation/delete", @@ -1644,7 +1745,7 @@ "AccountIds": { "target": "com.amazonaws.guardduty#AccountIds", "traits": { - "smithy.api#documentation": "

A list of account IDs of the AWS accounts that sent invitations to the current member\n account that you want to delete invitations from.

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

A list of account IDs of the Amazon Web Services accounts that sent invitations to the current member\n account that you want to delete invitations from.

", "smithy.api#jsonName": "accountIds", "smithy.api#required": {} } @@ -2026,7 +2127,7 @@ "DestinationArn": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The ARN of the resource to publish to.

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

The ARN of the resource to publish to.

\n

To specify an S3 bucket folder use the following format:\n arn:aws:s3:::DOC-EXAMPLE-BUCKET/myFolder/\n

", "smithy.api#jsonName": "destinationArn" } }, @@ -2120,7 +2221,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables an AWS account within the Organization as the GuardDuty delegated\n administrator.

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

Disables an Amazon Web Services account within the Organization as the GuardDuty delegated\n administrator.

", "smithy.api#http": { "method": "POST", "uri": "/admin/disable", @@ -2134,7 +2235,7 @@ "AdminAccountId": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS Account ID for the organizations account to be disabled as a GuardDuty delegated\n administrator.

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

The Amazon Web Services Account ID for the organizations account to be disabled as a GuardDuty delegated\n administrator.

", "smithy.api#jsonName": "adminAccountId", "smithy.api#required": {} } @@ -2269,7 +2370,7 @@ "Domain": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The domain information for the AWS API call.

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

The domain information for the Amazon Web Services API call.

", "smithy.api#jsonName": "domain" } } @@ -2281,6 +2382,56 @@ "com.amazonaws.guardduty#Double": { "type": "double" }, + "com.amazonaws.guardduty#EksClusterDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

EKS cluster name.

", + "smithy.api#jsonName": "name" + } + }, + "Arn": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

EKS cluster ARN.

", + "smithy.api#jsonName": "arn" + } + }, + "VpcId": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The VPC ID to which the EKS cluster is attached.

", + "smithy.api#jsonName": "vpcId" + } + }, + "Status": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The EKS cluster status.

", + "smithy.api#jsonName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.guardduty#Tags", + "traits": { + "smithy.api#documentation": "

The EKS cluster tags.

", + "smithy.api#jsonName": "tags" + } + }, + "CreatedAt": { + "target": "com.amazonaws.guardduty#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the EKS cluster was created.

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

Details about the EKS cluster involved in a Kubernetes finding.

" + } + }, "com.amazonaws.guardduty#Email": { "type": "string", "traits": { @@ -2307,7 +2458,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables an AWS account within the organization as the GuardDuty delegated\n administrator.

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

Enables an Amazon Web Services account within the organization as the GuardDuty delegated\n administrator.

", "smithy.api#http": { "method": "POST", "uri": "/admin/enable", @@ -2321,7 +2472,7 @@ "AdminAccountId": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS Account ID for the organization account to be enabled as a GuardDuty delegated\n administrator.

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

The Amazon Web Services Account ID for the organization account to be enabled as a GuardDuty delegated\n administrator.

", "smithy.api#jsonName": "adminAccountId", "smithy.api#required": {} } @@ -3114,7 +3265,7 @@ "Location": { "target": "com.amazonaws.guardduty#Location", "traits": { - "smithy.api#documentation": "

The URI of the file that contains the IPSet. For example:\n https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.

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

The URI of the file that contains the IPSet.

", "smithy.api#jsonName": "location", "smithy.api#required": {} } @@ -3435,7 +3586,7 @@ "Location": { "target": "com.amazonaws.guardduty#Location", "traits": { - "smithy.api#documentation": "

The URI of the file that contains the ThreatIntelSet. For example:\n https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.

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

The URI of the file that contains the ThreatIntelSet.

", "smithy.api#jsonName": "location", "smithy.api#required": {} } @@ -3557,8 +3708,29 @@ } } }, + "com.amazonaws.guardduty#Groups": { + "type": "list", + "member": { + "target": "com.amazonaws.guardduty#String" + } + }, "com.amazonaws.guardduty#GuardDutyAPIService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "GuardDuty", + "arnNamespace": "guardduty", + "cloudFormationName": "GuardDuty", + "cloudTrailEventSource": "guardduty.amazonaws.com", + "endpointPrefix": "guardduty" + }, + "aws.auth#sigv4": { + "name": "guardduty" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes\n the following data sources: VPC Flow Logs, Amazon Web Services CloudTrail event logs, and DNS logs. It uses\n threat intelligence feeds (such as lists of malicious IPs and domains) and machine learning to\n identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services\n environment. This can include issues like escalations of privileges, uses of exposed\n credentials, or communication with malicious IPs, URLs, or domains. For example, GuardDuty can\n detect compromised EC2 instances that serve malware or mine bitcoin.

\n

GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise. Some examples\n of this are unauthorized infrastructure deployments such as EC2 instances deployed in a Region\n that has never been used, or unusual API calls like a password policy change to reduce\n password strength.

\n

GuardDuty informs you of the status of your Amazon Web Services environment by producing security findings\n that you can view in the GuardDuty console or through Amazon CloudWatch events. For more\n information, see the \n Amazon\n GuardDuty User Guide\n .

", + "smithy.api#title": "Amazon GuardDuty" + }, "version": "2017-11-28", "operations": [ { @@ -3735,22 +3907,7 @@ { "target": "com.amazonaws.guardduty#UpdateThreatIntelSet" } - ], - "traits": { - "aws.api#service": { - "sdkId": "GuardDuty", - "arnNamespace": "guardduty", - "cloudFormationName": "GuardDuty", - "cloudTrailEventSource": "guardduty.amazonaws.com", - "endpointPrefix": "guardduty" - }, - "aws.auth#sigv4": { - "name": "guardduty" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes\n the following data sources: VPC Flow Logs, AWS CloudTrail event logs, and DNS logs. It uses\n threat intelligence feeds (such as lists of malicious IPs and domains) and machine learning to\n identify unexpected, potentially unauthorized, and malicious activity within your AWS\n environment. This can include issues like escalations of privileges, uses of exposed\n credentials, or communication with malicious IPs, URLs, or domains. For example, GuardDuty can\n detect compromised EC2 instances that serve malware or mine bitcoin.

\n

GuardDuty also monitors AWS account access behavior for signs of compromise. Some examples\n of this are unauthorized infrastructure deployments such as EC2 instances deployed in a Region\n that has never been used, or unusual API calls like a password policy change to reduce\n password strength.

\n

GuardDuty informs you of the status of your AWS environment by producing security findings\n that you can view in the GuardDuty console or through Amazon CloudWatch events. For more\n information, see the \n Amazon\n GuardDuty User Guide\n .

", - "smithy.api#title": "Amazon GuardDuty" - } + ] }, "com.amazonaws.guardduty#GuardDutyArn": { "type": "string", @@ -3758,6 +3915,21 @@ "smithy.api#pattern": "^arn:[A-Za-z_.-]{1,20}:guardduty:[A-Za-z0-9_/.-]{0,63}:\\d+:detector/[A-Za-z0-9_/.-]{32,264}$" } }, + "com.amazonaws.guardduty#HostPath": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Path of the file or directory on the host that the volume maps to.

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

Represents a pre-existing file or directory on the host machine that the volume maps to.

" + } + }, "com.amazonaws.guardduty#IamInstanceProfile": { "type": "structure", "members": { @@ -3835,7 +4007,7 @@ "OutpostArn": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Outpost. Only applicable to AWS Outposts\n instances.

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

The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only applicable to Amazon Web Services Outposts\n instances.

", "smithy.api#jsonName": "outpostArn" } }, @@ -3971,7 +4143,7 @@ } ], "traits": { - "smithy.api#documentation": "

Invites other AWS accounts (created as members of the current AWS account by\n CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these\n accounts' findings on their behalf as the GuardDuty administrator account.

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

Invites other Amazon Web Services accounts (created as members of the current Amazon Web Services account by\n CreateMembers) to enable GuardDuty, and allow the current Amazon Web Services account to view and manage these\n accounts' findings on their behalf as the GuardDuty administrator account.

", "smithy.api#http": { "method": "POST", "uri": "/detector/{DetectorId}/member/invite", @@ -4120,6 +4292,234 @@ "target": "com.amazonaws.guardduty#String" } }, + "com.amazonaws.guardduty#KubernetesApiCallAction": { + "type": "structure", + "members": { + "RequestUri": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The Kubernetes API request URI.

", + "smithy.api#jsonName": "requestUri" + } + }, + "Verb": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The Kubernetes API request HTTP verb.

", + "smithy.api#jsonName": "verb" + } + }, + "SourceIps": { + "target": "com.amazonaws.guardduty#SourceIps", + "traits": { + "smithy.api#documentation": "

The IP of the Kubernetes API caller and the IPs of any proxies or load balancers between the caller and the API endpoint.

", + "smithy.api#jsonName": "sourceIps" + } + }, + "UserAgent": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The user agent of the caller of the Kubernetes API.

", + "smithy.api#jsonName": "userAgent" + } + }, + "RemoteIpDetails": { + "target": "com.amazonaws.guardduty#RemoteIpDetails", + "traits": { + "smithy.api#jsonName": "remoteIpDetails" + } + }, + "StatusCode": { + "target": "com.amazonaws.guardduty#Integer", + "traits": { + "smithy.api#documentation": "

The resulting HTTP response code of the Kubernetes API call action.

", + "smithy.api#jsonName": "statusCode" + } + }, + "Parameters": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Parameters related to the Kubernetes API call action.

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

Information about the Kubernetes API call action described in this finding.

" + } + }, + "com.amazonaws.guardduty#KubernetesAuditLogsConfiguration": { + "type": "structure", + "members": { + "Enable": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

The status of Kubernetes audit logs as a data source.

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

Describes whether Kubernetes audit logs are enabled as a data source.

" + } + }, + "com.amazonaws.guardduty#KubernetesAuditLogsConfigurationResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.guardduty#DataSourceStatus", + "traits": { + "smithy.api#documentation": "

A value that describes whether Kubernetes audit logs are enabled as a data source.

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

Describes whether Kubernetes audit logs are enabled as a data source.

" + } + }, + "com.amazonaws.guardduty#KubernetesConfiguration": { + "type": "structure", + "members": { + "AuditLogs": { + "target": "com.amazonaws.guardduty#KubernetesAuditLogsConfiguration", + "traits": { + "smithy.api#documentation": "

The status of Kubernetes audit logs as a data source.

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

Describes whether any Kubernetes data sources are enabled.

" + } + }, + "com.amazonaws.guardduty#KubernetesConfigurationResult": { + "type": "structure", + "members": { + "AuditLogs": { + "target": "com.amazonaws.guardduty#KubernetesAuditLogsConfigurationResult", + "traits": { + "smithy.api#documentation": "

Describes whether Kubernetes audit logs are enabled as a data source.

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

Describes whether any Kubernetes logs will be enabled as a data source.

" + } + }, + "com.amazonaws.guardduty#KubernetesDetails": { + "type": "structure", + "members": { + "KubernetesUserDetails": { + "target": "com.amazonaws.guardduty#KubernetesUserDetails", + "traits": { + "smithy.api#documentation": "

Details about the Kubernetes user involved in a Kubernetes finding.

", + "smithy.api#jsonName": "kubernetesUserDetails" + } + }, + "KubernetesWorkloadDetails": { + "target": "com.amazonaws.guardduty#KubernetesWorkloadDetails", + "traits": { + "smithy.api#documentation": "

Details about the Kubernetes workload involved in a Kubernetes finding.

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

Details about Kubernetes resources such as a Kubernetes user or workload resource involved in a Kubernetes finding.

" + } + }, + "com.amazonaws.guardduty#KubernetesUserDetails": { + "type": "structure", + "members": { + "Username": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The username of the user who called the Kubernetes API.

", + "smithy.api#jsonName": "username" + } + }, + "Uid": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The user ID of the user who called the Kubernetes API.

", + "smithy.api#jsonName": "uid" + } + }, + "Groups": { + "target": "com.amazonaws.guardduty#Groups", + "traits": { + "smithy.api#documentation": "

The groups that include the user who called the Kubernetes API.

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

Details about the Kubernetes user involved in a Kubernetes finding.

" + } + }, + "com.amazonaws.guardduty#KubernetesWorkloadDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Kubernetes workload name.

", + "smithy.api#jsonName": "name" + } + }, + "Type": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Kubernetes workload type (e.g. Pod, Deployment, etc.).

", + "smithy.api#jsonName": "type" + } + }, + "Uid": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Kubernetes workload ID.

", + "smithy.api#jsonName": "uid" + } + }, + "Namespace": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Kubernetes namespace that the workload is part of.

", + "smithy.api#jsonName": "namespace" + } + }, + "HostNetwork": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the hostNetwork flag is enabled for the pods included in the workload.

", + "smithy.api#jsonName": "hostNetwork" + } + }, + "Containers": { + "target": "com.amazonaws.guardduty#Containers", + "traits": { + "smithy.api#documentation": "

Containers running as part of the Kubernetes workload.

", + "smithy.api#jsonName": "containers" + } + }, + "Volumes": { + "target": "com.amazonaws.guardduty#Volumes", + "traits": { + "smithy.api#documentation": "

Volumes used by the Kubernetes workload.

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

Details about the Kubernetes workload involved in a Kubernetes finding.

" + } + }, "com.amazonaws.guardduty#ListDetectors": { "type": "operation", "input": { @@ -4316,7 +4716,7 @@ "FindingCriteria": { "target": "com.amazonaws.guardduty#FindingCriteria", "traits": { - "smithy.api#documentation": "

Represents the criteria used for querying findings. Valid values include:

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

Represents the criteria used for querying findings. Valid values include:

\n ", "smithy.api#jsonName": "findingCriteria" } }, @@ -4460,7 +4860,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all GuardDuty membership invitations that were sent to the current AWS\n account.

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

Lists all GuardDuty membership invitations that were sent to the current Amazon Web Services\n account.

", "smithy.api#http": { "method": "GET", "uri": "/invitation", @@ -4687,7 +5087,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of publishing destinations associated with the specified\n dectectorId.

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

Returns a list of publishing destinations associated with the specified\n detectorId.

", "smithy.api#http": { "method": "GET", "uri": "/detector/{DetectorId}/publishingDestination", @@ -5307,6 +5707,13 @@ "smithy.api#documentation": "

Describes whether S3 data event logs are enabled for new members of the\n organization.

", "smithy.api#jsonName": "s3Logs" } + }, + "Kubernetes": { + "target": "com.amazonaws.guardduty#OrganizationKubernetesConfiguration", + "traits": { + "smithy.api#documentation": "

Describes the configuration of Kubernetes data sources for new members of the organization.

", + "smithy.api#jsonName": "kubernetes" + } } }, "traits": { @@ -5323,12 +5730,83 @@ "smithy.api#jsonName": "s3Logs", "smithy.api#required": {} } + }, + "Kubernetes": { + "target": "com.amazonaws.guardduty#OrganizationKubernetesConfigurationResult", + "traits": { + "smithy.api#documentation": "

Describes the configuration of Kubernetes data sources.

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

An object that contains information on which data sources are automatically enabled for\n new members within the organization.

" } }, + "com.amazonaws.guardduty#OrganizationKubernetesAuditLogsConfiguration": { + "type": "structure", + "members": { + "AutoEnable": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

A value that contains information on whether Kubernetes audit logs should be enabled\n automatically as a data source for the organization.

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

Organization-wide Kubernetes audit logs configuration.

" + } + }, + "com.amazonaws.guardduty#OrganizationKubernetesAuditLogsConfigurationResult": { + "type": "structure", + "members": { + "AutoEnable": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

Whether Kubernetes audit logs data source should be auto-enabled for new members joining the organization.

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

The current configuration of Kubernetes audit logs as a data source for the organization.

" + } + }, + "com.amazonaws.guardduty#OrganizationKubernetesConfiguration": { + "type": "structure", + "members": { + "AuditLogs": { + "target": "com.amazonaws.guardduty#OrganizationKubernetesAuditLogsConfiguration", + "traits": { + "smithy.api#documentation": "

Whether Kubernetes audit logs data source should be auto-enabled for new members joining the organization.

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

Organization-wide Kubernetes data sources configurations.

" + } + }, + "com.amazonaws.guardduty#OrganizationKubernetesConfigurationResult": { + "type": "structure", + "members": { + "AuditLogs": { + "target": "com.amazonaws.guardduty#OrganizationKubernetesAuditLogsConfigurationResult", + "traits": { + "smithy.api#documentation": "

The current configuration of Kubernetes audit logs as a data source for the organization.

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

The current configuration of all Kubernetes data sources for the organization.

" + } + }, "com.amazonaws.guardduty#OrganizationS3LogsConfiguration": { "type": "structure", "members": { @@ -5560,6 +6038,28 @@ } } }, + "com.amazonaws.guardduty#RemoteAccountDetails": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the remote API caller.

", + "smithy.api#jsonName": "accountId" + } + }, + "Affiliated": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

Details on whether the Amazon Web Services account of the remote API caller is related to your GuardDuty environment. If this value is True the API caller is affiliated to your account in some way. If it is False the API caller is from outside your environment.

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

Contains details about the remote Amazon Web Services account that made the API call.

" + } + }, "com.amazonaws.guardduty#RemoteIpDetails": { "type": "structure", "members": { @@ -5649,16 +6149,30 @@ "smithy.api#jsonName": "instanceDetails" } }, + "EksClusterDetails": { + "target": "com.amazonaws.guardduty#EksClusterDetails", + "traits": { + "smithy.api#documentation": "

Details about the EKS cluster involved in a Kubernetes finding.

", + "smithy.api#jsonName": "eksClusterDetails" + } + }, + "KubernetesDetails": { + "target": "com.amazonaws.guardduty#KubernetesDetails", + "traits": { + "smithy.api#documentation": "

Details about the Kubernetes user and workload involved in a Kubernetes finding.

", + "smithy.api#jsonName": "kubernetesDetails" + } + }, "ResourceType": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The type of AWS resource.

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

The type of Amazon Web Services resource.

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

Contains information about the AWS resource associated with the activity that prompted\n GuardDuty to generate a finding.

" + "smithy.api#documentation": "

Contains information about the Amazon Web Services resource associated with the activity that prompted\n GuardDuty to generate a finding.

" } }, "com.amazonaws.guardduty#ResourceList": { @@ -5769,6 +6283,21 @@ "smithy.api#documentation": "

Describes whether S3 data event logs will be enabled as a data source.

" } }, + "com.amazonaws.guardduty#SecurityContext": { + "type": "structure", + "members": { + "Privileged": { + "target": "com.amazonaws.guardduty#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the container is privileged.

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

Container security context.

" + } + }, "com.amazonaws.guardduty#SecurityGroup": { "type": "structure", "members": { @@ -5859,7 +6388,7 @@ "ServiceName": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The name of the AWS service (GuardDuty) that generated a finding.

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

The name of the Amazon Web Services service (GuardDuty) that generated a finding.

", "smithy.api#jsonName": "serviceName" } }, @@ -5897,6 +6426,12 @@ "smithy.api#documentation": "

Contains information about the criteria used for sorting findings.

" } }, + "com.amazonaws.guardduty#SourceIps": { + "type": "list", + "member": { + "target": "com.amazonaws.guardduty#String" + } + }, "com.amazonaws.guardduty#StartMonitoringMembers": { "type": "operation", "input": { @@ -6347,7 +6882,7 @@ "AccountId": { "target": "com.amazonaws.guardduty#AccountId", "traits": { - "smithy.api#documentation": "

The AWS account ID.

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

The Amazon Web Services account ID.

", "smithy.api#jsonName": "accountId", "smithy.api#required": {} } @@ -6704,7 +7239,7 @@ "Location": { "target": "com.amazonaws.guardduty#Location", "traits": { - "smithy.api#documentation": "

The updated URI of the file that contains the IPSet. For example:\n https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.

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

The updated URI of the file that contains the IPSet.

", "smithy.api#jsonName": "location" } }, @@ -7070,7 +7605,7 @@ "Resource": { "target": "com.amazonaws.guardduty#String", "traits": { - "smithy.api#documentation": "

The AWS resource that generated usage.

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

The Amazon Web Services resource that generated usage.

", "smithy.api#jsonName": "resource" } }, @@ -7083,7 +7618,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information on the sum of usage based on an AWS resource.

" + "smithy.api#documentation": "

Contains information on the sum of usage based on an Amazon Web Services resource.

" } }, "com.amazonaws.guardduty#UsageResourceResultList": { @@ -7150,6 +7685,62 @@ "traits": { "smithy.api#documentation": "

Contains the result of GuardDuty usage. If a UsageStatisticType is provided the result for\n other types will be null.

" } + }, + "com.amazonaws.guardduty#Volume": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Volume name.

", + "smithy.api#jsonName": "name" + } + }, + "HostPath": { + "target": "com.amazonaws.guardduty#HostPath", + "traits": { + "smithy.api#documentation": "

Represents a pre-existing file or directory on the host machine that the volume maps to.

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

Volume used by the Kubernetes workload.

" + } + }, + "com.amazonaws.guardduty#VolumeMount": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Volume mount name.

", + "smithy.api#jsonName": "name" + } + }, + "MountPath": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#documentation": "

Volume mount path.

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

Container volume mount.

" + } + }, + "com.amazonaws.guardduty#VolumeMounts": { + "type": "list", + "member": { + "target": "com.amazonaws.guardduty#VolumeMount" + } + }, + "com.amazonaws.guardduty#Volumes": { + "type": "list", + "member": { + "target": "com.amazonaws.guardduty#Volume" + } } } } diff --git a/codegen/sdk-codegen/aws-models/honeycode.2020-03-01.json b/codegen/sdk-codegen/aws-models/honeycode.2020-03-01.json index 538dbe1960f..70cd344aac7 100644 --- a/codegen/sdk-codegen/aws-models/honeycode.2020-03-01.json +++ b/codegen/sdk-codegen/aws-models/honeycode.2020-03-01.json @@ -499,7 +499,7 @@ "rawValue": { "target": "com.amazonaws.honeycode#RawValue", "traits": { - "smithy.api#documentation": "

\n The raw value of the data contained in the cell. The raw value depends on the format of the data in the\n cell. However the attribute in the API return value is always a string containing the raw value.\n

\n

\n Cells with format DATE, DATE_TIME or TIME have the raw value as a floating point\n number where the whole number represents the number of days since 1/1/1900 and the fractional part\n represents the fraction of the day since midnight. For example, a cell with date 11/3/2020 has the raw value\n \"44138\". A cell with the time 9:00 AM has the raw value \"0.375\" and a cell with date/time value of\n 11/3/2020 9:00 AM has the raw value \"44138.375\". Notice that even though the raw value is a number in all\n three cases, it is still represented as a string.\n

\n

\n Cells with format NUMBER, CURRENCY, PERCENTAGE and ACCOUNTING have the raw value of the data as the number\n representing the data being displayed. For example, the number 1.325 with two decimal places in the format\n will have it's raw value as \"1.325\" and formatted value as \"1.33\". A currency value for\n $10 will have the raw value as \"10\" and formatted value as \"$10.00\". A value representing 20% with two\n decimal places in the format will have its raw value as \"0.2\" and the formatted value as \"20.00%\". An\n accounting value of -$25 will have \"-25\" as the raw value and \"$ (25.00)\" as the formatted value.\n

\n

\n Cells with format TEXT will have the raw text as the raw value. For example, a cell with text \"John Smith\"\n will have \"John Smith\" as both the raw value and the formatted value.\n

\n

\n Cells with format CONTACT will have the name of the contact as a formatted value and the email address of\n the contact as the raw value. For example, a contact for John Smith will have \"John Smith\" as the\n formatted value and \"john.smith@example.com\" as the raw value.\n

\n

\n Cells with format ROWLINK (aka picklist) will have the first column of the linked row as the formatted value\n and the row id of the linked row as the raw value. For example, a cell containing a picklist to a table\n that displays task status might have \"Completed\" as the formatted value and\n \"row:dfcefaee-5b37-4355-8f28-40c3e4ff5dd4/ca432b2f-b8eb-431d-9fb5-cbe0342f9f03\" as the raw value.\n

\n

\n Cells with format AUTO or cells without any format that are auto-detected as one of the formats above will\n contain the raw and formatted values as mentioned above, based on the auto-detected formats. If there is no\n auto-detected format, the raw and formatted values will be the same as the data in the cell.\n

" + "smithy.api#documentation": "

\n The raw value of the data contained in the cell. The raw value depends on the format of the data in the\n cell. However the attribute in the API return value is always a string containing the raw value.\n

\n

\n Cells with format DATE, DATE_TIME or TIME have the raw value as a floating point\n number where the whole number represents the number of days since 1/1/1900 and the fractional part\n represents the fraction of the day since midnight. For example, a cell with date 11/3/2020 has the raw value\n \"44138\". A cell with the time 9:00 AM has the raw value \"0.375\" and a cell with date/time value of\n 11/3/2020 9:00 AM has the raw value \"44138.375\". Notice that even though the raw value is a number in all\n three cases, it is still represented as a string.\n

\n

\n Cells with format NUMBER, CURRENCY, PERCENTAGE and ACCOUNTING have the raw value of the data as the number\n representing the data being displayed. For example, the number 1.325 with two decimal places in the format\n will have it's raw value as \"1.325\" and formatted value as \"1.33\". A currency value for\n $10 will have the raw value as \"10\" and formatted value as \"$10.00\". A value representing 20% with two\n decimal places in the format will have its raw value as \"0.2\" and the formatted value as \"20.00%\". An\n accounting value of -$25 will have \"-25\" as the raw value and \"$ (25.00)\" as the formatted value.\n

\n

\n Cells with format TEXT will have the raw text as the raw value. For example, a cell with text \"John Smith\"\n will have \"John Smith\" as both the raw value and the formatted value.\n

\n

\n Cells with format CONTACT will have the name of the contact as a formatted value and the email address of\n the contact as the raw value. For example, a contact for John Smith will have \"John Smith\" as the\n formatted value and \"john.smith@example.com\" as the raw value.\n

\n

\n Cells with format ROWLINK (aka picklist) will have the first column of the linked row as the formatted value\n and the row id of the linked row as the raw value. For example, a cell containing a picklist to a table\n that displays task status might have \"Completed\" as the formatted value and\n \"row:dfcefaee-5b37-4355-8f28-40c3e4ff5dd4/ca432b2f-b8eb-431d-9fb5-cbe0342f9f03\" as the raw value.\n

\n

\n Cells with format ROWSET (aka multi-select or multi-record picklist) will by default have the first column\n of each of the linked rows as the formatted value in the list, and the rowset id of the linked rows as the\n raw value. For example, a cell containing a multi-select picklist to a table that contains items might have\n \"Item A\", \"Item B\" in the formatted value list and \"rows:b742c1f4-6cb0-4650-a845-35eb86fcc2bb/\n [fdea123b-8f68-474a-aa8a-5ff87aa333af,6daf41f0-a138-4eee-89da-123086d36ecf]\" as the raw value.\n

\n

\n Cells with format ATTACHMENT will have the name of the attachment as the formatted value and the attachment\n id as the raw value. For example, a cell containing an attachment named \"image.jpeg\" will have\n \"image.jpeg\" as the formatted value and \"attachment:ca432b2f-b8eb-431d-9fb5-cbe0342f9f03\" as the raw value.\n

\n

\n Cells with format AUTO or cells without any format that are auto-detected as one of the formats above will\n contain the raw and formatted values as mentioned above, based on the auto-detected formats. If there is no\n auto-detected format, the raw and formatted values will be the same as the data in the cell.\n

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

\n The formatted value of the cell. This is the value that you see displayed in the cell in the UI.\n

\n

\n Note that the formatted value of a cell is always represented as a string irrespective of the data that is\n stored in the cell. For example, if a cell contains a date, the formatted value of the cell is the string\n representation of the formatted date being shown in the cell in the UI. See details in the rawValue field\n below for how cells of different formats will have different raw and formatted values.\n

" } + }, + "formattedValues": { + "target": "com.amazonaws.honeycode#FormattedValuesList", + "traits": { + "smithy.api#documentation": "

\n A list of formatted values of the cell. This field is only returned when the cell is ROWSET format\n (aka multi-select or multi-record picklist). Values in the list are always represented as strings.\n The formattedValue field will be empty if this field is returned.\n

" + } } }, "traits": { @@ -522,10 +528,16 @@ "traits": { "smithy.api#documentation": "

\n Fact represents the data that is entered into a cell. This data can be free text or a formula. Formulas need\n to start with the equals (=) sign.\n

" } + }, + "facts": { + "target": "com.amazonaws.honeycode#FactList", + "traits": { + "smithy.api#documentation": "

\n A list representing the values that are entered into a ROWSET cell. Facts list can have either only values\n or rowIDs, and rowIDs should from the same table.\n

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

\n CellInput object contains the data needed to create or update cells in a table.\n

" + "smithy.api#documentation": "

\n CellInput object contains the data needed to create or update cells in a table.\n

\n \n

\n CellInput object has only a facts field or a fact field, but not both. A 400 bad request will be\n thrown if both fact and facts field are present.\n

\n
" } }, "com.amazonaws.honeycode#Cells": { @@ -700,6 +712,9 @@ { "target": "com.amazonaws.honeycode#InternalServerException" }, + { + "target": "com.amazonaws.honeycode#RequestTimeoutException" + }, { "target": "com.amazonaws.honeycode#ResourceNotFoundException" }, @@ -774,6 +789,12 @@ "smithy.api#documentation": "

\n The metadata about the job that was submitted for import.\n

", "smithy.api#required": {} } + }, + "errorCode": { + "target": "com.amazonaws.honeycode#ErrorCode", + "traits": { + "smithy.api#documentation": "

\n If job status is failed, error code to understand reason for the failure.\n

" + } } } }, @@ -802,6 +823,69 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.honeycode#ErrorCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACCESS_DENIED", + "name": "AccessDenied" + }, + { + "value": "INVALID_URL_ERROR", + "name": "InvalidUrlError" + }, + { + "value": "INVALID_IMPORT_OPTIONS_ERROR", + "name": "InvalidImportOptionsError" + }, + { + "value": "INVALID_TABLE_ID_ERROR", + "name": "InvalidTableIdError" + }, + { + "value": "INVALID_TABLE_COLUMN_ID_ERROR", + "name": "InvalidTableColumnIdError" + }, + { + "value": "TABLE_NOT_FOUND_ERROR", + "name": "TableNotFoundError" + }, + { + "value": "FILE_EMPTY_ERROR", + "name": "FileEmptyError" + }, + { + "value": "INVALID_FILE_TYPE_ERROR", + "name": "InvalidFileTypeError" + }, + { + "value": "FILE_PARSING_ERROR", + "name": "FileParsingError" + }, + { + "value": "FILE_SIZE_LIMIT_ERROR", + "name": "FileSizeLimitError" + }, + { + "value": "FILE_NOT_FOUND_ERROR", + "name": "FileNotFoundError" + }, + { + "value": "UNKNOWN_ERROR", + "name": "UnknownError" + }, + { + "value": "RESOURCE_NOT_FOUND_ERROR", + "name": "ResourceNotFoundError" + }, + { + "value": "SYSTEM_LIMIT_ERROR", + "name": "SystemLimitError" + } + ] + } + }, "com.amazonaws.honeycode#ErrorMessage": { "type": "string" }, @@ -816,6 +900,18 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.honeycode#FactList": { + "type": "list", + "member": { + "target": "com.amazonaws.honeycode#Fact" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 220 + } + } + }, "com.amazonaws.honeycode#FailedBatchItem": { "type": "structure", "members": { @@ -918,6 +1014,10 @@ { "value": "ROWLINK", "name": "Rowlink" + }, + { + "value": "ROWSET", + "name": "Rowset" } ] } @@ -932,6 +1032,18 @@ "smithy.api#pattern": "^[\\s\\S]*$" } }, + "com.amazonaws.honeycode#FormattedValuesList": { + "type": "list", + "member": { + "target": "com.amazonaws.honeycode#FormattedValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 220 + } + } + }, "com.amazonaws.honeycode#Formula": { "type": "string", "traits": { @@ -1224,6 +1336,9 @@ { "target": "com.amazonaws.honeycode#ResourceNotFoundException" }, + { + "target": "com.amazonaws.honeycode#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.honeycode#ServiceUnavailableException" }, @@ -2017,7 +2132,8 @@ "min": 1, "max": 8000 }, - "smithy.api#pattern": "^https:\\/\\/[^\\n\\r\\x00\\x08\\x0B\\x0C\\x0E\\x1F]*$" + "smithy.api#pattern": "^https:\\/\\/[^\\n\\r\\x00\\x08\\x0B\\x0C\\x0E\\x1F]*$", + "smithy.api#sensitive": {} } }, "com.amazonaws.honeycode#ServiceQuotaExceededException": { @@ -2152,9 +2268,15 @@ { "target": "com.amazonaws.honeycode#InternalServerException" }, + { + "target": "com.amazonaws.honeycode#RequestTimeoutException" + }, { "target": "com.amazonaws.honeycode#ResourceNotFoundException" }, + { + "target": "com.amazonaws.honeycode#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.honeycode#ServiceUnavailableException" }, @@ -2724,6 +2846,10 @@ "com.amazonaws.honeycode#VariableName": { "type": "string", "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, "smithy.api#pattern": "^(?!\\s*$).+$", "smithy.api#sensitive": {} } diff --git a/codegen/sdk-codegen/aws-models/ivs.2020-07-14.json b/codegen/sdk-codegen/aws-models/ivs.2020-07-14.json index 5f54c2e3c25..b537481d645 100644 --- a/codegen/sdk-codegen/aws-models/ivs.2020-07-14.json +++ b/codegen/sdk-codegen/aws-models/ivs.2020-07-14.json @@ -673,6 +673,12 @@ "traits": { "smithy.api#documentation": "

Array of 1-50 maps, each of the form string:string (key:value).

" } + }, + "thumbnailConfiguration": { + "target": "com.amazonaws.ivs#ThumbnailConfiguration", + "traits": { + "smithy.api#documentation": "

A complex type that allows you to enable/disable the recording of thumbnails for a live\n session and modify the interval at which thumbnails are generated for the live session.

" + } } } }, @@ -1731,7 +1737,7 @@ "streamSessions": { "target": "com.amazonaws.ivs#StreamSessionList", "traits": { - "smithy.api#documentation": "

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

List of stream sessions.

", "smithy.api#required": {} } }, @@ -1754,6 +1760,9 @@ "errors": [ { "target": "com.amazonaws.ivs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ivs#ValidationException" } ], "traits": { @@ -2114,6 +2123,12 @@ "traits": { "smithy.api#documentation": "

Array of 1-50 maps, each of the form string:string (key:value).

" } + }, + "thumbnailConfiguration": { + "target": "com.amazonaws.ivs#ThumbnailConfiguration", + "traits": { + "smithy.api#documentation": "

A complex type that allows you to enable/disable the recording of thumbnails for a live\n session and modify the interval at which thumbnails are generated for the live session.

" + } } }, "traits": { @@ -2206,6 +2221,21 @@ "smithy.api#documentation": "

Summary information about a RecordingConfiguration.

" } }, + "com.amazonaws.ivs#RecordingMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "Disabled" + }, + { + "value": "INTERVAL", + "name": "Interval" + } + ] + } + }, "com.amazonaws.ivs#ResourceArn": { "type": "string", "traits": { @@ -2837,6 +2867,15 @@ } } }, + "com.amazonaws.ivs#TargetIntervalSeconds": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 60 + } + } + }, "com.amazonaws.ivs#ThrottlingException": { "type": "structure", "members": { @@ -2853,6 +2892,26 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.ivs#ThumbnailConfiguration": { + "type": "structure", + "members": { + "recordingMode": { + "target": "com.amazonaws.ivs#RecordingMode", + "traits": { + "smithy.api#documentation": "

Thumbnail recording mode. Default: INTERVAL.

" + } + }, + "targetIntervalSeconds": { + "target": "com.amazonaws.ivs#TargetIntervalSeconds", + "traits": { + "smithy.api#documentation": "

The targeted thumbnail-generation interval in seconds. This is configurable (and required)\n only if recordingMode is INTERVAL. Default: 60.

\n

\n Important: Setting a value for targetIntervalSeconds does not guarantee that thumbnails\n are generated at the specified interval. For thumbnails to be generated at the\n targetIntervalSeconds interval, the IDR/Keyframe value for the input video must be less than\n the targetIntervalSeconds value. See Amazon IVS Streaming Configuration for information on\n setting IDR/Keyframe to the recommended value in video-encoder settings.

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

An object representing a configuration of thumbnails for recorded video.

" + } + }, "com.amazonaws.ivs#Time": { "type": "timestamp", "traits": { diff --git a/codegen/sdk-codegen/aws-models/location.2020-11-19.json b/codegen/sdk-codegen/aws-models/location.2020-11-19.json index ed9ad3d1199..830bb3d4445 100644 --- a/codegen/sdk-codegen/aws-models/location.2020-11-19.json +++ b/codegen/sdk-codegen/aws-models/location.2020-11-19.json @@ -894,7 +894,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Calculates a route given the following required parameters:\n DeparturePostiton and DestinationPosition. Requires that\n you first create a\n route calculator resource.

\n

By default, a request that doesn't specify a departure time uses the best time of day\n to travel with the best traffic conditions when calculating the route.

\n

Additional options include:

\n \n

\n

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

\n Calculates a route given the following required parameters:\n DeparturePosition and DestinationPosition. Requires that\n you first create a\n route calculator resource.

\n

By default, a request that doesn't specify a departure time uses the best time of day\n to travel with the best traffic conditions when calculating the route.

\n

Additional options include:

\n ", "smithy.api#endpoint": { "hostPrefix": "routes." }, @@ -926,6 +926,201 @@ "smithy.api#documentation": "

Contains details about additional route preferences for requests that specify\n TravelMode as Car.

" } }, + "com.amazonaws.location#CalculateRouteMatrix": { + "type": "operation", + "input": { + "target": "com.amazonaws.location#CalculateRouteMatrixRequest" + }, + "output": { + "target": "com.amazonaws.location#CalculateRouteMatrixResponse" + }, + "errors": [ + { + "target": "com.amazonaws.location#AccessDeniedException" + }, + { + "target": "com.amazonaws.location#InternalServerException" + }, + { + "target": "com.amazonaws.location#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.location#ThrottlingException" + }, + { + "target": "com.amazonaws.location#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Calculates a\n route matrix given the following required parameters:\n DeparturePositions and DestinationPositions.\n CalculateRouteMatrix calculates routes and returns the travel time and \n travel distance from each departure position to each destination position in the \n request. For example, given departure positions A and B, and destination positions \n X and Y, CalculateRouteMatrix will return time and distance for routes \n from A to X, A to Y, B to X, and B to Y (in that order). The number of results returned \n (and routes calculated) will be the number of DeparturePositions \n times the number of DestinationPositions.

\n \n

Your account is charged for each route calculated, not the number of requests.

\n
\n

Requires that you first create a\n route calculator resource.

\n

By default, a request that doesn't specify a departure time uses the best time of day\n to travel with the best traffic conditions when calculating routes.

\n

Additional options include:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "routes." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/routes/v0/calculators/{CalculatorName}/calculate/route-matrix", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.location#CalculateRouteMatrixRequest": { + "type": "structure", + "members": { + "CalculatorName": { + "target": "com.amazonaws.location#ResourceName", + "traits": { + "smithy.api#documentation": "

The name of the route calculator resource that you want to use to calculate the route matrix.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DeparturePositions": { + "target": "com.amazonaws.location#PositionList", + "traits": { + "smithy.api#documentation": "

The list of departure (origin) positions for the route matrix. An array of points,\n each of which is itself a 2-value array defined in WGS 84 format:\n [longitude, latitude]. For example, [-123.115,\n 49.285].

\n \n

Depending on the data provider selected in the route calculator resource there may be additional\n restrictions on the inputs you can choose. See \n Position restrictions in the Amazon Location Service Developer Guide.

\n
\n \n

For route calculators that use Esri as the data provider, if you specify a \n departure that's not located on a road, Amazon Location moves the position \n to the nearest road. The snapped value is available in the result in \n SnappedDeparturePositions.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", + "smithy.api#length": { + "min": 1, + "max": 350 + }, + "smithy.api#required": {} + } + }, + "DestinationPositions": { + "target": "com.amazonaws.location#PositionList", + "traits": { + "smithy.api#documentation": "

The list of destination positions for the route matrix. An array of points, each of\n which is itself a 2-value array defined in WGS 84 format:\n [longitude, latitude]. For example, [-122.339,\n 47.615]\n

\n \n

Depending on the data provider selected in the route calculator resource there may be additional\n restrictions on the inputs you can choose. See \n Position restrictions in the Amazon Location Service Developer Guide.

\n
\n \n

For route calculators that use Esri as the data provider, if you specify a \n destination that's not located on a road, Amazon Location moves the position \n to the nearest road. The snapped value is available in the result in \n SnappedDestinationPositions.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", + "smithy.api#length": { + "min": 1, + "max": 350 + }, + "smithy.api#required": {} + } + }, + "TravelMode": { + "target": "com.amazonaws.location#TravelMode", + "traits": { + "smithy.api#documentation": "

Specifies the mode of transport when calculating a route. Used in estimating the speed\n of travel and road compatibility.

\n

The TravelMode you specify also determines how you specify route\n preferences:

\n \n

Default Value: Car\n

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

Specifies the desired time of departure. Uses the given time to calculate the route\n matrix. You can't set both DepartureTime and DepartNow. If\n neither is set, the best time of day to travel with the best traffic conditions is used\n to calculate the route matrix.

\n \n

Setting a departure time in the past returns a 400\n ValidationException error.

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

Sets the time of departure as the current time. Uses the current time to calculate the\n route matrix. You can't set both DepartureTime and DepartNow.\n If neither is set, the best time of day to travel with the best traffic conditions is\n used to calculate the route matrix.

\n

Default Value: false\n

\n

Valid Values: false | true\n

" + } + }, + "DistanceUnit": { + "target": "com.amazonaws.location#DistanceUnit", + "traits": { + "smithy.api#documentation": "

Set the unit system to specify the distance.

\n

Default Value: Kilometers\n

" + } + }, + "CarModeOptions": { + "target": "com.amazonaws.location#CalculateRouteCarModeOptions", + "traits": { + "smithy.api#documentation": "

Specifies route preferences when traveling by Car, such as avoiding\n routes that use ferries or tolls.

\n

Requirements: TravelMode must be specified as Car.

" + } + }, + "TruckModeOptions": { + "target": "com.amazonaws.location#CalculateRouteTruckModeOptions", + "traits": { + "smithy.api#documentation": "

Specifies route preferences when traveling by Truck, such as avoiding\n routes that use ferries or tolls, and truck specifications to consider when choosing an\n optimal road.

\n

Requirements: TravelMode must be specified as Truck.

" + } + } + } + }, + "com.amazonaws.location#CalculateRouteMatrixResponse": { + "type": "structure", + "members": { + "RouteMatrix": { + "target": "com.amazonaws.location#RouteMatrix", + "traits": { + "smithy.api#documentation": "

The calculated route matrix containing the results for all pairs of \n DeparturePositions to DestinationPositions. \n Each row corresponds to one entry in DeparturePositions. Each\n entry in the row corresponds to the route from that entry in\n DeparturePositions to an entry in DestinationPositions. \n

", + "smithy.api#required": {} + } + }, + "SnappedDeparturePositions": { + "target": "com.amazonaws.location#PositionList", + "traits": { + "smithy.api#documentation": "

For routes calculated using an Esri route calculator resource, departure positions \n are snapped to the closest road. For Esri route calculator resources, this returns \n the list of departure/origin positions used for calculation of the \n RouteMatrix.

", + "smithy.api#length": { + "min": 1, + "max": 350 + } + } + }, + "SnappedDestinationPositions": { + "target": "com.amazonaws.location#PositionList", + "traits": { + "smithy.api#documentation": "

The list of destination positions for the route matrix used for calculation of the RouteMatrix.

", + "smithy.api#length": { + "min": 1, + "max": 350 + } + } + }, + "Summary": { + "target": "com.amazonaws.location#CalculateRouteMatrixSummary", + "traits": { + "smithy.api#documentation": "

Contains information about the route matrix, DataSource,\n DistanceUnit, RouteCount and ErrorCount.

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

Returns the result of the route matrix calculation.

" + } + }, + "com.amazonaws.location#CalculateRouteMatrixSummary": { + "type": "structure", + "members": { + "DataSource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The data provider of traffic and road network data used to calculate the routes.\n Indicates one of the available providers:

\n \n

For more information about data providers, see Amazon Location Service data providers.

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

The count of cells in the route matrix. Equal to the number of DeparturePositions\n multiplied by the number of DestinationPositions.

", + "smithy.api#range": { + "min": 1, + "max": 160000 + }, + "smithy.api#required": {} + } + }, + "ErrorCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The count of error results in the route matrix. If this number is 0, all routes were calculated successfully.

", + "smithy.api#range": { + "min": 1, + "max": 160000 + }, + "smithy.api#required": {} + } + }, + "DistanceUnit": { + "target": "com.amazonaws.location#DistanceUnit", + "traits": { + "smithy.api#documentation": "

The unit of measurement for route distances.

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

A summary of the calculated route matrix.

" + } + }, "com.amazonaws.location#CalculateRouteRequest": { "type": "structure", "members": { @@ -940,21 +1135,21 @@ "DeparturePosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

The start position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a departure that's not located on a road, Amazon Location moves the\n position to the nearest road. If Esri is the provider for your route calculator, \n specifying a route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

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

The start position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a departure that's not located on a road, Amazon Location moves the\n position to the nearest road. If Esri is the provider for your route calculator, \n specifying a route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", "smithy.api#required": {} } }, "DestinationPosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

The finish position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a destination that's not located on a road, Amazon Location moves the position to the nearest road.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

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

The finish position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a destination that's not located on a road, Amazon Location moves the position to the nearest road.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", "smithy.api#required": {} } }, "WaypointPositions": { "target": "com.amazonaws.location#WaypointPositionList", "traits": { - "smithy.api#documentation": "

Specifies an ordered list of up to 23 intermediate positions to include along a route\n between the departure position and destination position.

\n \n \n

If you specify a waypoint position that's not located on a road, Amazon Location moves the position to the nearest road.

\n

Specifying more than 23 waypoints returns a 400 ValidationException\n error.

\n

If Esri is the provider for your route calculator, specifying a \n route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

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

Specifies an ordered list of up to 23 intermediate positions to include along a route\n between the departure position and destination position.

\n \n \n

If you specify a waypoint position that's not located on a road, Amazon Location moves the position to the nearest road.

\n

Specifying more than 23 waypoints returns a 400 ValidationException\n error.

\n

If Esri is the provider for your route calculator, specifying a \n route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", "smithy.api#length": { "max": 23 } @@ -963,7 +1158,7 @@ "TravelMode": { "target": "com.amazonaws.location#TravelMode", "traits": { - "smithy.api#documentation": "

Specifies the mode of transport when calculating a route. Used in estimating the speed\n of travel and road compatibility.

\n

The TravelMode you specify determines how you specify route preferences:

\n \n

Default Value: Car\n

" + "smithy.api#documentation": "

Specifies the mode of transport when calculating a route. Used in estimating the speed\n of travel and road compatibility.

\n

The TravelMode you specify also determines how you specify route\n preferences:

\n \n

Default Value: Car\n

" } }, "DepartureTime": { @@ -1010,7 +1205,7 @@ "Legs": { "target": "com.amazonaws.location#LegList", "traits": { - "smithy.api#documentation": "

Contains details about each path between a pair of positions included along a route\n such as: StartPosition, EndPosition, Distance,\n DurationSeconds, Geometry, and Steps. The\n number of legs returned corresponds to one fewer than the total number of positions in\n the request.

\n

For example, a route with a departure position and destination position returns one\n leg with the positions snapped to a nearby road:

\n \n

A route with a waypoint between the departure and destination position returns two\n legs with the positions snapped to a nearby road:

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

Contains details about each path between a pair of positions included along a route\n such as: StartPosition, EndPosition, Distance,\n DurationSeconds, Geometry, and Steps. The\n number of legs returned corresponds to one fewer than the total number of positions in\n the request.

\n

For example, a route with a departure position and destination position returns one\n leg with the positions snapped to a nearby road:

\n \n

A route with a waypoint between the departure and destination position returns two\n legs with the positions snapped to a nearby road:

\n ", "smithy.api#required": {} } }, @@ -1193,13 +1388,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Optionally specifies the pricing plan for the geofence collection. Defaults to\n RequestBasedUsage.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

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

Specifies the data provider for the geofence collection.

\n \n

For more information about Data Providers, and Pricing plans, see the Amazon Location\n Service product page.

\n\t \n\t

Amazon Location Service only uses PricingPlanDataSource to calculate billing for\n your geofence collection. Your data won't be shared with the data provider, and will\n remain in your AWS account or Region unless you move it.

\n\t
\n

Valid Values: Esri | Here\n

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. No longer allowed." + }, + "smithy.api#documentation": "

This parameter is no longer used.

" } }, "Description": { @@ -1274,7 +1477,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a map resource in your AWS account, which provides map tiles of different\n styles sourced from global location data providers.

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

Creates a map resource in your AWS account, which provides map tiles of different\n styles sourced from global location data providers.

\n \n

If your application is tracking or routing assets you use in your business, such \n as delivery vehicles or employees, you may only use HERE as your geolocation \n provider. See section 82 of the AWS\n service terms for more details.

\n
", "smithy.api#endpoint": { "hostPrefix": "maps." }, @@ -1306,7 +1509,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Optionally specifies the pricing plan for the map resource. Defaults to\n RequestBasedUsage.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -1375,7 +1582,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a place index resource in your AWS account. Use a place index resource to\n geocode addresses and other text queries by using the SearchPlaceIndexForText operation,\n and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and\n enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

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

Creates a place index resource in your AWS account. Use a place index resource to\n geocode addresses and other text queries by using the SearchPlaceIndexForText operation,\n and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and\n enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

\n \n

If your application is tracking or routing assets you use in your business, such \n as delivery vehicles or employees, you may only use HERE as your geolocation \n provider. See section 82 of the AWS\n service terms for more details.

\n
", "smithy.api#endpoint": { "hostPrefix": "places." }, @@ -1407,7 +1614,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Optionally specifies the pricing plan for the place index resource. Defaults to\n RequestBasedUsage.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -1482,7 +1693,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a route calculator resource in your AWS account.

\n

You can send requests to a route calculator resource to estimate travel time,\n distance, and get directions. A route calculator sources traffic and road network data\n from your chosen data provider.

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

Creates a route calculator resource in your AWS account.

\n

You can send requests to a route calculator resource to estimate travel time,\n distance, and get directions. A route calculator sources traffic and road network data\n from your chosen data provider.

\n \n

If your application is tracking or routing assets you use in your business, such \n as delivery vehicles or employees, you may only use HERE as your geolocation \n provider. See section 82 of the AWS\n service terms for more details.

\n
", "smithy.api#endpoint": { "hostPrefix": "routes." }, @@ -1514,7 +1725,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Optionally specifies the pricing plan for the route calculator resource. Defaults to\n RequestBasedUsage.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -1608,7 +1823,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Optionally specifies the pricing plan for the tracker resource. Defaults to\n RequestBasedUsage.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "KmsKeyId": { @@ -1620,7 +1839,11 @@ "PricingPlanDataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specifies the data provider for the tracker resource.

\n \n

For more information about Data Providers, and Pricing plans, see the Amazon Location\n Service product page.

\n\t \n\t

Amazon Location Service only uses PricingPlanDataSource to calculate billing for your tracker resource. Your data will not be shared with the data provider, and will remain in your AWS account or Region unless you move it.

\n\t
\n

Valid values: Esri | Here\n

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. No longer allowed." + }, + "smithy.api#documentation": "

This parameter is no longer used.

" } }, "Description": { @@ -2036,14 +2259,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified geofence collection.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

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

The specified data provider for the geofence collection.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Unused." + }, + "smithy.api#documentation": "

No longer used. Always returns an empty string.

" } }, "KmsKeyId": { @@ -2145,8 +2375,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified map resource.

\n\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

" } }, "DataSource": { @@ -2263,8 +2496,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

" } }, "Description": { @@ -2381,8 +2617,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified route calculator resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

Always returns RequestBasedUsage.

" } }, "Description": { @@ -2499,14 +2738,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

Always returns RequestBasedUsage.

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

The specified data provider for the tracker resource.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Unused." + }, + "smithy.api#documentation": "

No longer used. Always returns an empty string.

" } }, "Tags": { @@ -3541,14 +3787,14 @@ "StartPosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

The starting position of the leg. Follows the format\n [longitude,latitude].

\n \n

If the StartPosition isn't located on a road, it's snapped to a nearby road.

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

The starting position of the leg. Follows the format\n [longitude,latitude].

\n \n

If the StartPosition isn't located on a road, it's snapped to a nearby road.

\n
", "smithy.api#required": {} } }, "EndPosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

The terminating position of the leg. Follows the format\n [longitude,latitude].

\n \n

If the EndPosition isn't located on a road, it's snapped to a nearby road.

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

The terminating position of the leg. Follows the format\n [longitude,latitude].

\n \n

If the EndPosition isn't located on a road, it's snapped to a nearby road.

\n
", "smithy.api#required": {} } }, @@ -3587,7 +3833,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains the calculated route's details for each path between a pair of positions. The\n number of legs returned corresponds to one fewer than the total number of positions in\n the request.

\n

For example, a route with a departure position and destination position returns one\n leg with the positions snapped to a nearby road:

\n \n

A route with a waypoint between the departure and destination position returns two\n legs with the positions snapped to a nearby road:

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

Contains the calculated route's details for each path between a pair of positions. The\n number of legs returned corresponds to one fewer than the total number of positions in\n the request.

\n

For example, a route with a departure position and destination position returns one\n leg with the positions snapped to a nearby road:

\n \n

A route with a waypoint between the departure and destination position returns two\n legs with the positions snapped to a nearby road:

\n " } }, "com.amazonaws.location#LegGeometry": { @@ -3884,14 +4130,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified geofence collection.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

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

The specified data provider for the geofence collection.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Unused." + }, + "smithy.api#documentation": "

No longer used. Always returns an empty string.

" } }, "CreateTime": { @@ -4155,8 +4408,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified map resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

" } }, "CreateTime": { @@ -4291,8 +4547,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. Always returns RequestBasedUsage.

" } }, "CreateTime": { @@ -4427,8 +4686,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified route calculator resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

Always returns RequestBasedUsage.

" } }, "CreateTime": { @@ -4709,14 +4971,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Always returns RequestBasedUsage." + }, + "smithy.api#documentation": "

Always returns RequestBasedUsage.

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

The specified data provider for the tracker resource.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. Unused." + }, + "smithy.api#documentation": "

No longer used. Always returns an empty string.

" } }, "CreateTime": { @@ -5035,6 +5304,12 @@ ] } }, + "com.amazonaws.location#PositionList": { + "type": "list", + "member": { + "target": "com.amazonaws.location#Position" + } + }, "com.amazonaws.location#PositionalAccuracy": { "type": "structure", "members": { @@ -5256,6 +5531,9 @@ "operations": [ { "target": "com.amazonaws.location#CalculateRoute" + }, + { + "target": "com.amazonaws.location#CalculateRouteMatrix" } ], "traits": { @@ -5268,6 +5546,96 @@ "aws.iam#disableConditionKeyInference": {} } }, + "com.amazonaws.location#RouteMatrix": { + "type": "list", + "member": { + "target": "com.amazonaws.location#RouteMatrixRow" + } + }, + "com.amazonaws.location#RouteMatrixEntry": { + "type": "structure", + "members": { + "Distance": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The total distance of travel for the route.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "DurationSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The expected duration of travel for the route.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Error": { + "target": "com.amazonaws.location#RouteMatrixEntryError", + "traits": { + "smithy.api#documentation": "

An error corresponding to the calculation of a route between the \n DeparturePosition and DestinationPosition.

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

The result for one SnappedDeparturePosition \n SnappedDestinationPosition pair.

" + } + }, + "com.amazonaws.location#RouteMatrixEntryError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.location#RouteMatrixErrorCode", + "traits": { + "smithy.api#documentation": "

The type of error which occurred for the route calculation.

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

A message about the error that occurred for the route calculation.

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

An error corresponding to the calculation of a route between the\n DeparturePosition and DestinationPosition.

\n

The error code can be one of the following:

\n \n \n \n \n \n " + } + }, + "com.amazonaws.location#RouteMatrixErrorCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "RouteNotFound" + }, + { + "value": "RouteTooLong" + }, + { + "value": "PositionsNotFound" + }, + { + "value": "DestinationPositionNotFound" + }, + { + "value": "DeparturePositionNotFound" + }, + { + "value": "OtherValidationError" + } + ] + } + }, + "com.amazonaws.location#RouteMatrixRow": { + "type": "list", + "member": { + "target": "com.amazonaws.location#RouteMatrixEntry" + } + }, "com.amazonaws.location#SearchForPositionResult": { "type": "structure", "members": { @@ -6318,13 +6686,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Updates the pricing plan for the geofence collection.

\n

For more information about each pricing plan option restrictions, see Amazon Location Service\n pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

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

Updates the data provider for the geofence collection.

\n

A required value for the following pricing plans: MobileAssetTracking|\n MobileAssetManagement\n

\n

For more information about data providers and\n pricing plans, see the\n Amazon Location Service product page.

\n \n

This can only be updated when updating the PricingPlan in the same\n request.

\n

Amazon Location Service uses PricingPlanDataSource to calculate\n billing for your geofence collection. Your data won't be shared with the data\n provider, and will remain in your AWS account and Region unless you move it.

\n
" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. No longer allowed." + }, + "smithy.api#documentation": "

This parameter is no longer used.

" } }, "Description": { @@ -6413,7 +6789,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Updates the pricing plan for the map resource.

\n

For more information about each pricing plan option restrictions, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -6502,7 +6882,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Updates the pricing plan for the place index resource.

\n

For more information about each pricing plan option restrictions, see Amazon Location Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -6597,7 +6981,11 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Updates the pricing plan for the route calculator resource.

\n

For more information about each pricing plan option restrictions, see Amazon Location\n Service pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

" } }, "Description": { @@ -6686,13 +7074,21 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Updates the pricing plan for the tracker resource.

\n

For more information about each pricing plan option restrictions, see Amazon Location Service\n pricing.

" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. If included, the only allowed value is RequestBasedUsage." + }, + "smithy.api#documentation": "

No longer used. If included, the only allowed value is \n RequestBasedUsage.

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

Updates the data provider for the tracker resource.

\n

A required value for the following pricing plans: MobileAssetTracking| MobileAssetManagement\n

\n

For more information about data providers and pricing plans, see the Amazon Location Service product\n page

\n \n

This can only be updated when updating the PricingPlan in the same\n request.

\n

Amazon Location Service uses PricingPlanDataSource to calculate\n billing for your tracker resource. Your data won't be shared with the data provider,\n and will remain in your AWS account and Region unless you move it.

\n
" + "smithy.api#deprecated": { + "since": "2022-02-01", + "message": "Deprecated. No longer allowed." + }, + "smithy.api#documentation": "

This parameter is no longer used.

" } }, "Description": { diff --git a/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json b/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json index 24e38ef4626..f16c167faf2 100644 --- a/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json +++ b/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json @@ -409,6 +409,10 @@ { "value": "DELETION_FAILURE", "name": "DELETION_FAILURE" + }, + { + "value": "DEACTIVATION_FAILURE", + "name": "DEACTIVATION_FAILURE" } ] } @@ -462,6 +466,14 @@ { "value": "BACK_TEST_COMPLETE", "name": "BACK_TEST_COMPLETE" + }, + { + "value": "DEACTIVATED", + "name": "DEACTIVATED" + }, + { + "value": "DEACTIVATING", + "name": "DEACTIVATING" } ] } @@ -1247,6 +1259,59 @@ "smithy.api#pattern": "\\S" } }, + "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetector": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetectorRequest" + }, + "output": { + "target": "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetectorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutmetrics#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ConflictException" + }, + { + "target": "com.amazonaws.lookoutmetrics#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutmetrics#TooManyRequestsException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deactivates an anomaly detector.

", + "smithy.api#http": { + "method": "POST", + "uri": "/DeactivateAnomalyDetector", + "code": 200 + } + } + }, + "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetectorRequest": { + "type": "structure", + "members": { + "AnomalyDetectorArn": { + "target": "com.amazonaws.lookoutmetrics#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the anomaly detector.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetectorResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.lookoutmetrics#DeleteAlert": { "type": "operation", "input": { @@ -2960,6 +3025,9 @@ { "target": "com.amazonaws.lookoutmetrics#CreateMetricSet" }, + { + "target": "com.amazonaws.lookoutmetrics#DeactivateAnomalyDetector" + }, { "target": "com.amazonaws.lookoutmetrics#DeleteAlert" }, diff --git a/codegen/sdk-codegen/aws-models/macie2.2020-01-01.json b/codegen/sdk-codegen/aws-models/macie2.2020-01-01.json index 1259896679e..a5804c15f64 100644 --- a/codegen/sdk-codegen/aws-models/macie2.2020-01-01.json +++ b/codegen/sdk-codegen/aws-models/macie2.2020-01-01.json @@ -1462,14 +1462,16 @@ "target": "com.amazonaws.macie2#__string", "traits": { "smithy.api#documentation": "

A custom name for the custom data identifier. The name can contain as many as 128 characters.

We strongly recommend that you avoid including any sensitive data in the name of a custom data identifier. Other users of your account might be able to see this name, depending on the actions that they're allowed to perform in Amazon Macie.

", - "smithy.api#jsonName": "name" + "smithy.api#jsonName": "name", + "smithy.api#required": {} } }, "regex": { "target": "com.amazonaws.macie2#__string", "traits": { "smithy.api#documentation": "

The regular expression (regex) that defines the pattern to match. The expression can contain as many as 512 characters.

", - "smithy.api#jsonName": "regex" + "smithy.api#jsonName": "regex", + "smithy.api#required": {} } }, "severityLevels": { diff --git a/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json b/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json index 5a745df5e73..8698fea9ffe 100644 --- a/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json +++ b/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json @@ -1421,6 +1421,22 @@ ] } }, + "com.amazonaws.mediaconvert#Av1BitDepth": { + "type": "string", + "traits": { + "smithy.api#documentation": "Specify the Bit depth (Av1BitDepth). You can choose 8-bit (BIT_8) or 10-bit (BIT_10).", + "smithy.api#enum": [ + { + "value": "BIT_8", + "name": "BIT_8" + }, + { + "value": "BIT_10", + "name": "BIT_10" + } + ] + } + }, "com.amazonaws.mediaconvert#Av1FramerateControl": { "type": "string", "traits": { @@ -1501,6 +1517,13 @@ "smithy.api#jsonName": "adaptiveQuantization" } }, + "BitDepth": { + "target": "com.amazonaws.mediaconvert#Av1BitDepth", + "traits": { + "smithy.api#documentation": "Specify the Bit depth (Av1BitDepth). You can choose 8-bit (BIT_8) or 10-bit (BIT_10).", + "smithy.api#jsonName": "bitDepth" + } + }, "FramerateControl": { "target": "com.amazonaws.mediaconvert#Av1FramerateControl", "traits": { @@ -3491,12 +3514,35 @@ "smithy.api#documentation": "Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough (PASSTHROUGH) if you want SCTE-35 markers that appear in your input to also appear in this output. Choose None (NONE) if you don't want those SCTE-35 markers in this output.", "smithy.api#jsonName": "scte35Source" } + }, + "TimedMetadata": { + "target": "com.amazonaws.mediaconvert#CmfcTimedMetadata", + "traits": { + "smithy.api#documentation": "Applies to CMAF outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#jsonName": "timedMetadata" + } } }, "traits": { "smithy.api#documentation": "These settings relate to the fragmented MP4 container for the segments in your CMAF outputs." } }, + "com.amazonaws.mediaconvert#CmfcTimedMetadata": { + "type": "string", + "traits": { + "smithy.api#documentation": "Applies to CMAF outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#enum": [ + { + "value": "PASSTHROUGH", + "name": "PASSTHROUGH" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, "com.amazonaws.mediaconvert#ColorCorrector": { "type": "structure", "members": { @@ -8127,7 +8173,7 @@ "com.amazonaws.mediaconvert#H265AdaptiveQuantization": { "type": "string", "traits": { - "smithy.api#documentation": "Specify the strength of any adaptive quantization filters that you enable. The value that you choose here applies to the following settings: Flicker adaptive quantization (flickerAdaptiveQuantization), Spatial adaptive quantization (spatialAdaptiveQuantization), and Temporal adaptive quantization (temporalAdaptiveQuantization).", + "smithy.api#documentation": "When you set Adaptive Quantization (H265AdaptiveQuantization) to Auto (AUTO), or leave blank, MediaConvert automatically applies quantization to improve the video quality of your output. Set Adaptive Quantization to Low (LOW), Medium (MEDIUM), High (HIGH), Higher (HIGHER), or Max (MAX) to manually control the strength of the quantization filter. When you do, you can specify a value for Spatial Adaptive Quantization (H265SpatialAdaptiveQuantization), Temporal Adaptive Quantization (H265TemporalAdaptiveQuantization), and Flicker Adaptive Quantization (H265FlickerAdaptiveQuantization), to further control the quantization filter. Set Adaptive Quantization to Off (OFF) to apply no quantization to your output.", "smithy.api#enum": [ { "value": "OFF", @@ -8152,6 +8198,10 @@ { "value": "MAX", "name": "MAX" + }, + { + "value": "AUTO", + "name": "AUTO" } ] } @@ -8555,7 +8605,7 @@ "AdaptiveQuantization": { "target": "com.amazonaws.mediaconvert#H265AdaptiveQuantization", "traits": { - "smithy.api#documentation": "Specify the strength of any adaptive quantization filters that you enable. The value that you choose here applies to the following settings: Flicker adaptive quantization (flickerAdaptiveQuantization), Spatial adaptive quantization (spatialAdaptiveQuantization), and Temporal adaptive quantization (temporalAdaptiveQuantization).", + "smithy.api#documentation": "When you set Adaptive Quantization (H265AdaptiveQuantization) to Auto (AUTO), or leave blank, MediaConvert automatically applies quantization to improve the video quality of your output. Set Adaptive Quantization to Low (LOW), Medium (MEDIUM), High (HIGH), Higher (HIGHER), or Max (MAX) to manually control the strength of the quantization filter. When you do, you can specify a value for Spatial Adaptive Quantization (H265SpatialAdaptiveQuantization), Temporal Adaptive Quantization (H265TemporalAdaptiveQuantization), and Flicker Adaptive Quantization (H265FlickerAdaptiveQuantization), to further control the quantization filter. Set Adaptive Quantization to Off (OFF) to apply no quantization to your output.", "smithy.api#jsonName": "adaptiveQuantization" } }, @@ -10041,9 +10091,32 @@ "smithy.api#documentation": "Use the image inserter feature to include a graphic overlay on your video. Enable or disable this feature for each input or output individually. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/graphic-overlay.html. This setting is disabled by default." } }, + "com.amazonaws.mediaconvert#ImscAccessibilitySubs": { + "type": "string", + "traits": { + "smithy.api#documentation": "Specify whether to flag this caption track as accessibility in your HLS/CMAF parent manifest. When you choose ENABLED, MediaConvert includes the parameters CHARACTERISTICS=\"public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound\" and AUTOSELECT=\"YES\" in the EXT-X-MEDIA entry for this track. When you keep the default choice, DISABLED, MediaConvert leaves this parameter out.", + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "DISABLED" + }, + { + "value": "ENABLED", + "name": "ENABLED" + } + ] + } + }, "com.amazonaws.mediaconvert#ImscDestinationSettings": { "type": "structure", "members": { + "Accessibility": { + "target": "com.amazonaws.mediaconvert#ImscAccessibilitySubs", + "traits": { + "smithy.api#documentation": "Specify whether to flag this caption track as accessibility in your HLS/CMAF parent manifest. When you choose ENABLED, MediaConvert includes the parameters CHARACTERISTICS=\"public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound\" and AUTOSELECT=\"YES\" in the EXT-X-MEDIA entry for this track. When you keep the default choice, DISABLED, MediaConvert leaves this parameter out.", + "smithy.api#jsonName": "accessibility" + } + }, "StylePassthrough": { "target": "com.amazonaws.mediaconvert#ImscStylePassthrough", "traits": { @@ -10124,6 +10197,13 @@ "smithy.api#jsonName": "denoiseFilter" } }, + "DolbyVisionMetadataXml": { + "target": "com.amazonaws.mediaconvert#__stringMin14PatternS3XmlXMLHttpsXmlXML", + "traits": { + "smithy.api#documentation": "Use this setting only when your video source has Dolby Vision studio mastering metadata that is carried in a separate XML file. Specify the Amazon S3 location for the metadata XML file. MediaConvert uses this file to provide global and frame-level metadata for Dolby Vision preprocessing. When you specify a file here and your input also has interleaved global and frame level metadata, MediaConvert ignores the interleaved metadata and uses only the the metadata from this external XML file. Note that your IAM service role must grant MediaConvert read permissions to this file. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.", + "smithy.api#jsonName": "dolbyVisionMetadataXml" + } + }, "FileInput": { "target": "com.amazonaws.mediaconvert#__stringPatternS3MM2PPMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSSHttpsMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSS", "traits": { @@ -10471,6 +10551,13 @@ "smithy.api#jsonName": "denoiseFilter" } }, + "DolbyVisionMetadataXml": { + "target": "com.amazonaws.mediaconvert#__stringMin14PatternS3XmlXMLHttpsXmlXML", + "traits": { + "smithy.api#documentation": "Use this setting only when your video source has Dolby Vision studio mastering metadata that is carried in a separate XML file. Specify the Amazon S3 location for the metadata XML file. MediaConvert uses this file to provide global and frame-level metadata for Dolby Vision preprocessing. When you specify a file here and your input also has interleaved global and frame level metadata, MediaConvert ignores the interleaved metadata and uses only the the metadata from this external XML file. Note that your IAM service role must grant MediaConvert read permissions to this file. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.", + "smithy.api#jsonName": "dolbyVisionMetadataXml" + } + }, "FilterEnable": { "target": "com.amazonaws.mediaconvert#InputFilterEnable", "traits": { @@ -12101,6 +12188,10 @@ { "value": "TNG", "name": "TNG" + }, + { + "value": "SRP", + "name": "SRP" } ] } @@ -13288,7 +13379,7 @@ "TimedMetadata": { "target": "com.amazonaws.mediaconvert#TimedMetadata", "traits": { - "smithy.api#documentation": "Applies only to HLS outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#documentation": "Applies to HLS outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", "smithy.api#jsonName": "timedMetadata" } }, @@ -13975,12 +14066,35 @@ "smithy.api#documentation": "Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough (PASSTHROUGH) if you want SCTE-35 markers that appear in your input to also appear in this output. Choose None (NONE) if you don't want those SCTE-35 markers in this output.", "smithy.api#jsonName": "scte35Source" } + }, + "TimedMetadata": { + "target": "com.amazonaws.mediaconvert#MpdTimedMetadata", + "traits": { + "smithy.api#documentation": "Applies to DASH outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#jsonName": "timedMetadata" + } } }, "traits": { "smithy.api#documentation": "These settings relate to the fragmented MP4 container for the segments in your DASH outputs." } }, + "com.amazonaws.mediaconvert#MpdTimedMetadata": { + "type": "string", + "traits": { + "smithy.api#documentation": "Applies to DASH outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#enum": [ + { + "value": "PASSTHROUGH", + "name": "PASSTHROUGH" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, "com.amazonaws.mediaconvert#Mpeg2AdaptiveQuantization": { "type": "string", "traits": { @@ -16509,7 +16623,7 @@ } }, "KmsKeyArn": { - "target": "com.amazonaws.mediaconvert#__stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912", + "target": "com.amazonaws.mediaconvert#__stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912MrkAFAF0932", "traits": { "smithy.api#documentation": "Optionally, specify the customer master key (CMK) that you want to use to encrypt the data key that AWS uses to encrypt your output content. Enter the Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set Server-side encryption (S3ServerSideEncryptionType) to AWS KMS (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon S3.", "smithy.api#jsonName": "kmsKeyArn" @@ -17124,7 +17238,7 @@ "com.amazonaws.mediaconvert#TimedMetadata": { "type": "string", "traits": { - "smithy.api#documentation": "Applies only to HLS outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", + "smithy.api#documentation": "Applies to HLS outputs. Use this setting to specify whether the service inserts the ID3 timed metadata from the input in this output.", "smithy.api#enum": [ { "value": "PASSTHROUGH", @@ -18700,9 +18814,32 @@ "smithy.api#documentation": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value WAV." } }, + "com.amazonaws.mediaconvert#WebvttAccessibilitySubs": { + "type": "string", + "traits": { + "smithy.api#documentation": "Specify whether to flag this caption track as accessibility in your HLS/CMAF parent manifest. When you choose ENABLED, MediaConvert includes the parameters CHARACTERISTICS=\"public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound\" and AUTOSELECT=\"YES\" in the EXT-X-MEDIA entry for this track. When you keep the default choice, DISABLED, MediaConvert leaves this parameter out.", + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "DISABLED" + }, + { + "value": "ENABLED", + "name": "ENABLED" + } + ] + } + }, "com.amazonaws.mediaconvert#WebvttDestinationSettings": { "type": "structure", "members": { + "Accessibility": { + "target": "com.amazonaws.mediaconvert#WebvttAccessibilitySubs", + "traits": { + "smithy.api#documentation": "Specify whether to flag this caption track as accessibility in your HLS/CMAF parent manifest. When you choose ENABLED, MediaConvert includes the parameters CHARACTERISTICS=\"public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound\" and AUTOSELECT=\"YES\" in the EXT-X-MEDIA entry for this track. When you keep the default choice, DISABLED, MediaConvert leaves this parameter out.", + "smithy.api#jsonName": "accessibility" + } + }, "StylePassthrough": { "target": "com.amazonaws.mediaconvert#WebvttStylePassthrough", "traits": { @@ -20632,6 +20769,15 @@ "smithy.api#pattern": "^((s3://(.*?)\\.(scc|SCC|ttml|TTML|dfxp|DFXP|stl|STL|srt|SRT|xml|XML|smi|SMI|vtt|VTT|webvtt|WEBVTT))|(https?://(.*?)\\.(scc|SCC|ttml|TTML|dfxp|DFXP|stl|STL|srt|SRT|xml|XML|smi|SMI|vtt|VTT|webvtt|WEBVTT)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$" } }, + "com.amazonaws.mediaconvert#__stringMin14PatternS3XmlXMLHttpsXmlXML": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 14 + }, + "smithy.api#pattern": "^((s3://(.*?)\\.(xml|XML))|(https?://(.*?)\\.(xml|XML)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$" + } + }, "com.amazonaws.mediaconvert#__stringMin16Max24PatternAZaZ0922AZaZ0916": { "type": "string", "traits": { @@ -20828,10 +20974,10 @@ "smithy.api#pattern": "^arn:aws(-us-gov)?:acm:$" } }, - "com.amazonaws.mediaconvert#__stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912": { + "com.amazonaws.mediaconvert#__stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912MrkAFAF0932": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:aws(-us-gov|-cn)?:kms:[a-z-]{2,6}-(east|west|central|((north|south)(east|west)?))-[1-9]{1,2}:\\d{12}:key/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + "smithy.api#pattern": "^arn:aws(-us-gov|-cn)?:kms:[a-z-]{2,6}-(east|west|central|((north|south)(east|west)?))-[1-9]{1,2}:\\d{12}:key/([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}|mrk-[a-fA-F0-9]{32})$" } }, "com.amazonaws.mediaconvert#__stringPatternDD": { diff --git a/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json b/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json index b182713bd0d..48783982f23 100644 --- a/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json +++ b/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json @@ -796,6 +796,9 @@ "smithy.api#required": {} } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -852,6 +855,9 @@ "smithy.api#documentation": "

The timestamp that indicates when the source location was last modified.

" } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -1571,6 +1577,9 @@ "smithy.api#documentation": "

The timestamp that indicates when the source location was last modified.

" } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -3537,6 +3546,17 @@ "smithy.api#documentation": "

AWS Secrets Manager access token configuration parameters. For information about Secrets Manager access token authentication, see Working with AWS Secrets Manager access token authentication.

" } }, + "com.amazonaws.mediatailor#SegmentDeliveryConfiguration": { + "type": "structure", + "members": { + "BaseUrl": { + "target": "com.amazonaws.mediatailor#__string" + }, + "Name": { + "target": "com.amazonaws.mediatailor#__string" + } + } + }, "com.amazonaws.mediatailor#SlateSource": { "type": "structure", "members": { @@ -3598,6 +3618,9 @@ "smithy.api#documentation": "

The timestamp that indicates when the source location was last modified.

" } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -3988,6 +4011,9 @@ "smithy.api#required": {} } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -4037,6 +4063,9 @@ "smithy.api#documentation": "

The timestamp that indicates when the source location was last modified.

" } }, + "SegmentDeliveryConfigurations": { + "target": "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration" + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -4271,6 +4300,12 @@ "target": "com.amazonaws.mediatailor#ScheduleEntry" } }, + "com.amazonaws.mediatailor#__listOfSegmentDeliveryConfiguration": { + "type": "list", + "member": { + "target": "com.amazonaws.mediatailor#SegmentDeliveryConfiguration" + } + }, "com.amazonaws.mediatailor#__listOfSourceLocation": { "type": "list", "member": { diff --git a/codegen/sdk-codegen/aws-models/ram.2018-01-04.json b/codegen/sdk-codegen/aws-models/ram.2018-01-04.json index 2282a20f921..5668067ebe4 100644 --- a/codegen/sdk-codegen/aws-models/ram.2018-01-04.json +++ b/codegen/sdk-codegen/aws-models/ram.2018-01-04.json @@ -177,6 +177,9 @@ { "target": "com.amazonaws.ram#ListPermissions" }, + { + "target": "com.amazonaws.ram#ListPermissionVersions" + }, { "target": "com.amazonaws.ram#ListPrincipals" }, @@ -330,7 +333,7 @@ "permissionVersion": { "target": "com.amazonaws.ram#Integer", "traits": { - "smithy.api#documentation": "

Specifies the version of the RAM permission to associate with the resource share. If you don't\n specify this parameter, the operation uses the version designated as the default.

" + "smithy.api#documentation": "

Specifies the version of the RAM permission to associate with the resource share. If you don't\n specify this parameter, the operation uses the version designated as the default. You\n can use the ListPermissionVersions operation to discover the available\n versions of a permission.

" } } } @@ -1550,6 +1553,92 @@ } } }, + "com.amazonaws.ram#ListPermissionVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ram#ListPermissionVersionsRequest" + }, + "output": { + "target": "com.amazonaws.ram#ListPermissionVersionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ram#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.ram#InvalidParameterException" + }, + { + "target": "com.amazonaws.ram#MalformedArnException" + }, + { + "target": "com.amazonaws.ram#OperationNotPermittedException" + }, + { + "target": "com.amazonaws.ram#ServerInternalException" + }, + { + "target": "com.amazonaws.ram#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.ram#UnknownResourceException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the available versions of the specified RAM permission.

", + "smithy.api#http": { + "method": "POST", + "uri": "/listpermissionversions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.ram#ListPermissionVersionsRequest": { + "type": "structure", + "members": { + "permissionArn": { + "target": "com.amazonaws.ram#String", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resoure Name (ARN) of the RAM permission whose versions you want to list. You\n can use the permissionVersion parameter on the AssociateResourceSharePermission operation to specify a non-default\n version to attach.

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

Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

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

Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

" + } + } + } + }, + "com.amazonaws.ram#ListPermissionVersionsResponse": { + "type": "structure", + "members": { + "permissions": { + "target": "com.amazonaws.ram#ResourceSharePermissionList", + "traits": { + "smithy.api#documentation": "

An array of objects that contain details for each of the available versions.

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

If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

" + } + } + } + }, "com.amazonaws.ram#ListPermissions": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/route53recoveryreadiness.2019-12-02.json b/codegen/sdk-codegen/aws-models/route53recoveryreadiness.2019-12-02.json index 8cb4c8acee3..c1bd57cb4d5 100644 --- a/codegen/sdk-codegen/aws-models/route53recoveryreadiness.2019-12-02.json +++ b/codegen/sdk-codegen/aws-models/route53recoveryreadiness.2019-12-02.json @@ -51,7 +51,7 @@ "CellArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the Cell", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the cell.

", "smithy.api#jsonName": "cellArn", "smithy.api#required": {} } @@ -59,7 +59,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the Cell", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#jsonName": "cellName", "smithy.api#required": {} } @@ -67,7 +67,7 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of cell ARNs.

", "smithy.api#jsonName": "cells", "smithy.api#required": {} } @@ -75,7 +75,7 @@ "ParentReadinessScopes": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell ARNs and/or RecoveryGroup ARNs", + "smithy.api#documentation": "

The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) or a recovery group ARN. This is a list but currently can have only one element.

", "smithy.api#jsonName": "parentReadinessScopes", "smithy.api#required": {} } @@ -83,12 +83,13 @@ "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

Tags on the resources.

", "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "A Cell and its properties" + "smithy.api#documentation": "

Information about a cell.

" } }, "com.amazonaws.route53recoveryreadiness#ConflictException": { @@ -133,7 +134,7 @@ } ], "traits": { - "smithy.api#documentation": "Creates a new Cell.", + "smithy.api#documentation": "

Creates a cell in an account.

", "smithy.api#http": { "method": "POST", "uri": "/cells", @@ -147,7 +148,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the Cell to create", + "smithy.api#documentation": "

The name of the cell to create.

", "smithy.api#jsonName": "cellName", "smithy.api#required": {} } @@ -155,7 +156,7 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns contained within this Cell (for use in nested Cells, e.g. regions within which AZs)", + "smithy.api#documentation": "

A list of cell Amazon Resource Names (ARNs) contained within this cell, for use in nested cells. For example, Availability Zones within specific Amazon Web Services Regions.

", "smithy.api#jsonName": "cells" } }, @@ -165,9 +166,6 @@ "smithy.api#jsonName": "tags" } } - }, - "traits": { - "smithy.api#documentation": "The Cell to create" } }, "com.amazonaws.route53recoveryreadiness#CreateCellResponse": { @@ -176,34 +174,35 @@ "CellArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the Cell", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the cell.

", "smithy.api#jsonName": "cellArn" } }, "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the Cell", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#jsonName": "cellName" } }, "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of cell ARNs.

", "smithy.api#jsonName": "cells" } }, "ParentReadinessScopes": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell ARNs and/or RecoveryGroup ARNs", + "smithy.api#documentation": "

The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) or a recovery group ARN. This is a list but currently can have only one element.

", "smithy.api#jsonName": "parentReadinessScopes" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

Tags on the resources.

", "smithy.api#jsonName": "tags" } } @@ -235,7 +234,7 @@ } ], "traits": { - "smithy.api#documentation": "Create a new cross account readiness authorization.", + "smithy.api#documentation": "

Creates a cross-account readiness authorization. This lets you authorize another account to work with Route 53 Application Recovery Controller, for example, to check the readiness status of resources in a separate account.

", "smithy.api#http": { "method": "POST", "uri": "/crossaccountauthorizations", @@ -249,14 +248,11 @@ "CrossAccountAuthorization": { "target": "com.amazonaws.route53recoveryreadiness#CrossAccountAuthorization", "traits": { - "smithy.api#documentation": "The cross account authorization", + "smithy.api#documentation": "

The cross-account authorization.

", "smithy.api#jsonName": "crossAccountAuthorization", "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "The cross account authorization" } }, "com.amazonaws.route53recoveryreadiness#CreateCrossAccountAuthorizationResponse": { @@ -265,7 +261,7 @@ "CrossAccountAuthorization": { "target": "com.amazonaws.route53recoveryreadiness#CrossAccountAuthorization", "traits": { - "smithy.api#documentation": "The cross account authorization", + "smithy.api#documentation": "

The cross-account authorization.

", "smithy.api#jsonName": "crossAccountAuthorization" } } @@ -297,7 +293,7 @@ } ], "traits": { - "smithy.api#documentation": "Creates a new Readiness Check.", + "smithy.api#documentation": "

Creates a readiness check in an account. A readiness check monitors a resource set in your application, such as a set of Amazon Aurora instances, that Application Recovery Controller is auditing recovery readiness for. The audits run once every minute on every resource that's associated with a readiness check.

", "smithy.api#http": { "method": "POST", "uri": "/readinesschecks", @@ -311,7 +307,7 @@ "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the ReadinessCheck to create", + "smithy.api#documentation": "

The name of the readiness check to create.

", "smithy.api#jsonName": "readinessCheckName", "smithy.api#required": {} } @@ -319,7 +315,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the ResourceSet to check", + "smithy.api#documentation": "

The name of the resource set to check.

", "smithy.api#jsonName": "resourceSetName", "smithy.api#required": {} } @@ -330,9 +326,6 @@ "smithy.api#jsonName": "tags" } } - }, - "traits": { - "smithy.api#documentation": "The ReadinessCheck to create" } }, "com.amazonaws.route53recoveryreadiness#CreateReadinessCheckResponse": { @@ -341,21 +334,21 @@ "ReadinessCheckArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "Arn associated with ReadinessCheck", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with a readiness check.

", "smithy.api#jsonName": "readinessCheckArn" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name for a ReadinessCheck", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#jsonName": "readinessCheckName" } }, "ResourceSet": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name of the ResourceSet to be checked", + "smithy.api#documentation": "

Name of the resource set to be checked.

", "smithy.api#jsonName": "resourceSet" } }, @@ -393,7 +386,7 @@ } ], "traits": { - "smithy.api#documentation": "Creates a new Recovery Group.", + "smithy.api#documentation": "

Creates a recovery group in an account. A recovery group corresponds to an application and includes a list of the cells that make up the application.

", "smithy.api#http": { "method": "POST", "uri": "/recoverygroups", @@ -407,14 +400,14 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of the cell Amazon Resource Names (ARNs) in the recovery group.

", "smithy.api#jsonName": "cells" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup to create", + "smithy.api#documentation": "

The name of the recovery group to create.

", "smithy.api#jsonName": "recoveryGroupName", "smithy.api#required": {} } @@ -425,9 +418,6 @@ "smithy.api#jsonName": "tags" } } - }, - "traits": { - "smithy.api#documentation": "The RecoveryGroup to create" } }, "com.amazonaws.route53recoveryreadiness#CreateRecoveryGroupResponse": { @@ -436,27 +426,28 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of a cell's Amazon Resource Names (ARNs).

", "smithy.api#jsonName": "cells" } }, "RecoveryGroupArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the RecoveryGroup", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the recovery group.

", "smithy.api#jsonName": "recoveryGroupArn" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup", + "smithy.api#documentation": "

The name of the recovery group.

", "smithy.api#jsonName": "recoveryGroupName" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

The tags associated with the recovery group.

", "smithy.api#jsonName": "tags" } } @@ -488,7 +479,7 @@ } ], "traits": { - "smithy.api#documentation": "Creates a new Resource Set.", + "smithy.api#documentation": "

Creates a resource set. A resource set is a set of resources of one type that span multiple cells. You can associate a resource set with a readiness check to monitor the resources for failover readiness.

", "smithy.api#http": { "method": "POST", "uri": "/resourcesets", @@ -502,7 +493,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the ResourceSet to create", + "smithy.api#documentation": "

The name of the resource set to create.

", "smithy.api#jsonName": "resourceSetName", "smithy.api#required": {} } @@ -510,7 +501,7 @@ "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType", "smithy.api#required": {} } @@ -518,7 +509,7 @@ "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects in the resource set.

", "smithy.api#jsonName": "resources", "smithy.api#required": {} } @@ -526,12 +517,10 @@ "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

A tag to associate with the parameters for a resource set.

", "smithy.api#jsonName": "tags" } } - }, - "traits": { - "smithy.api#documentation": "The ResourceSet to create" } }, "com.amazonaws.route53recoveryreadiness#CreateResourceSetResponse": { @@ -540,28 +529,28 @@ "ResourceSetArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the ResourceSet", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource set.

", "smithy.api#jsonName": "resourceSetArn" } }, "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the ResourceSet", + "smithy.api#documentation": "

The name of the resource set.

", "smithy.api#jsonName": "resourceSetName" } }, "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource Type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType" } }, "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects.

", "smithy.api#jsonName": "resources" } }, @@ -576,7 +565,7 @@ "com.amazonaws.route53recoveryreadiness#CrossAccountAuthorization": { "type": "string", "traits": { - "smithy.api#documentation": "A cross-account authorization, e.g. arn:aws:iam::123456789012:root" + "smithy.api#documentation": "

CrossAccountAuthorization

" } }, "com.amazonaws.route53recoveryreadiness#DNSTargetResource": { @@ -585,40 +574,41 @@ "DomainName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The DNS Name that acts as ingress point to a portion of application", + "smithy.api#documentation": "

The domain name that acts as an ingress point to a portion of the customer application.

", "smithy.api#jsonName": "domainName" } }, "HostedZoneArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Hosted Zone ARN that contains the DNS record with the provided name of target resource.", + "smithy.api#documentation": "

The hosted zone Amazon Resource Name (ARN) that contains the DNS record with the provided name of the target resource.

", "smithy.api#jsonName": "hostedZoneArn" } }, "RecordSetId": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The R53 Set Id to uniquely identify a record given a Name and a Type", + "smithy.api#documentation": "

The Route 53 record set ID that uniquely identifies a DNS record, given a name and a type.

", "smithy.api#jsonName": "recordSetId" } }, "RecordType": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Type of DNS Record of target resource", + "smithy.api#documentation": "

The type of DNS record of the target resource.

", "smithy.api#jsonName": "recordType" } }, "TargetResource": { "target": "com.amazonaws.route53recoveryreadiness#TargetResource", "traits": { + "smithy.api#documentation": "

The target resource of the DNS target resource.

", "smithy.api#jsonName": "targetResource" } } }, "traits": { - "smithy.api#documentation": "A component for DNS/Routing Control Readiness Checks" + "smithy.api#documentation": "

A component for DNS/routing control readiness checks and architecture checks.

" } }, "com.amazonaws.route53recoveryreadiness#DeleteCell": { @@ -644,7 +634,7 @@ } ], "traits": { - "smithy.api#documentation": "Deletes an existing Cell.", + "smithy.api#documentation": "

Delete a cell. When successful, the response code is 204, with no response body.

", "smithy.api#http": { "method": "DELETE", "uri": "/cells/{CellName}", @@ -658,7 +648,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Cell to delete", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -688,7 +678,7 @@ } ], "traits": { - "smithy.api#documentation": "Delete cross account readiness authorization", + "smithy.api#documentation": "

Deletes cross account readiness authorization.

", "smithy.api#http": { "method": "DELETE", "uri": "/crossaccountauthorizations/{CrossAccountAuthorization}", @@ -702,7 +692,7 @@ "CrossAccountAuthorization": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The cross account authorization", + "smithy.api#documentation": "

The cross-account authorization.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -736,7 +726,7 @@ } ], "traits": { - "smithy.api#documentation": "Deletes an existing Readiness Check.", + "smithy.api#documentation": "

Deletes a readiness check.

", "smithy.api#http": { "method": "DELETE", "uri": "/readinesschecks/{ReadinessCheckName}", @@ -750,7 +740,7 @@ "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ReadinessCheck to delete", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -780,7 +770,7 @@ } ], "traits": { - "smithy.api#documentation": "Deletes an existing Recovery Group.", + "smithy.api#documentation": "

Deletes a recovery group.

", "smithy.api#http": { "method": "DELETE", "uri": "/recoverygroups/{RecoveryGroupName}", @@ -794,7 +784,7 @@ "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The RecoveryGroup to delete", + "smithy.api#documentation": "

The name of a recovery group.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -824,7 +814,7 @@ } ], "traits": { - "smithy.api#documentation": "Deletes an existing Resource Set.", + "smithy.api#documentation": "

Deletes a resource set.

", "smithy.api#http": { "method": "DELETE", "uri": "/resourcesets/{ResourceSetName}", @@ -838,7 +828,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ResourceSet to delete", + "smithy.api#documentation": "

Name of a resource set.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -871,7 +861,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of recommendations to improve resilliance and readiness check quality for a Recovery Group.", + "smithy.api#documentation": "

Gets recommendations about architecture designs for improving resiliency for an application, based on a recovery group.

", "smithy.api#http": { "method": "GET", "uri": "/recoverygroups/{RecoveryGroupName}/architectureRecommendations", @@ -885,21 +875,21 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "Name of RecoveryGroup (top level resource) to be analyzed.", + "smithy.api#documentation": "

The name of a recovery group.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -912,21 +902,21 @@ "LastAuditTimestamp": { "target": "com.amazonaws.route53recoveryreadiness#LastAuditTimestamp", "traits": { - "smithy.api#documentation": "The time a Recovery Group was last assessed for recommendations in UTC ISO-8601 format.", + "smithy.api#documentation": "

The time that a recovery group was last assessed for recommendations, in UTC ISO-8601 format.

", "smithy.api#jsonName": "lastAuditTimestamp" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Recommendations": { "target": "com.amazonaws.route53recoveryreadiness#__listOfRecommendation", "traits": { - "smithy.api#documentation": "A list of recommendations for the customer's application", + "smithy.api#documentation": "

A list of the recommendations for the customer's application.

", "smithy.api#jsonName": "recommendations" } } @@ -958,7 +948,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about a Cell.", + "smithy.api#documentation": "

Gets information about a cell including cell name, cell Amazon Resource Name (ARN), ARNs of nested cells for this cell, and a list of those cell ARNs with their associated recovery group ARNs.

", "smithy.api#http": { "method": "GET", "uri": "/cells/{CellName}", @@ -992,7 +982,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about readiness of a Cell.", + "smithy.api#documentation": "

Gets readiness for a cell. Aggregates the readiness of all the resources that are associated with the cell into a single value.

", "smithy.api#http": { "method": "GET", "uri": "/cellreadiness/{CellName}", @@ -1012,7 +1002,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the Cell", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1020,14 +1010,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -1039,21 +1029,21 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness at Cell level.", + "smithy.api#documentation": "

The readiness at a cell level.

", "smithy.api#jsonName": "readiness" } }, "ReadinessChecks": { "target": "com.amazonaws.route53recoveryreadiness#__listOfReadinessCheckSummary", "traits": { - "smithy.api#documentation": "Summaries for the ReadinessChecks making up the Cell", + "smithy.api#documentation": "

Summaries for the readiness checks that make up the cell.

", "smithy.api#jsonName": "readinessChecks" } } @@ -1065,7 +1055,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Cell to get", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1078,34 +1068,35 @@ "CellArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the Cell", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the cell.

", "smithy.api#jsonName": "cellArn" } }, "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the Cell", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#jsonName": "cellName" } }, "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of cell ARNs.

", "smithy.api#jsonName": "cells" } }, "ParentReadinessScopes": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell ARNs and/or RecoveryGroup ARNs", + "smithy.api#documentation": "

The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) or a recovery group ARN. This is a list but currently can have only one element.

", "smithy.api#jsonName": "parentReadinessScopes" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

Tags on the resources.

", "smithy.api#jsonName": "tags" } } @@ -1137,7 +1128,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about a ReadinessCheck.", + "smithy.api#documentation": "

Gets details about a readiness check.

", "smithy.api#http": { "method": "GET", "uri": "/readinesschecks/{ReadinessCheckName}", @@ -1151,7 +1142,7 @@ "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ReadinessCheck to get", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1184,7 +1175,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns detailed information about the status of an individual resource within a Readiness Check's Resource Set.", + "smithy.api#documentation": "

Gets individual readiness status for a readiness check. To see the overall readiness status for a recovery group, that considers the readiness status for all the readiness checks in the recovery group, use GetRecoveryGroupReadinessSummary.

", "smithy.api#http": { "method": "GET", "uri": "/readinesschecks/{ReadinessCheckName}/resource/{ResourceIdentifier}/status", @@ -1204,21 +1195,21 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ReadinessCheck to get", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1226,7 +1217,7 @@ "ResourceIdentifier": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The resource ARN or component Id to get", + "smithy.api#documentation": "

The resource identifier, which is the Amazon Resource Name (ARN) or the identifier generated for the resource by Application Recovery Controller (for example, for a DNS target resource).

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1239,21 +1230,21 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness at rule level.", + "smithy.api#documentation": "

The readiness at a rule level.

", "smithy.api#jsonName": "readiness" } }, "Rules": { "target": "com.amazonaws.route53recoveryreadiness#__listOfRuleResult", "traits": { - "smithy.api#documentation": "Details of the rules's results", + "smithy.api#documentation": "

Details of the rule's results.

", "smithy.api#jsonName": "rules" } } @@ -1265,21 +1256,21 @@ "ReadinessCheckArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "Arn associated with ReadinessCheck", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with a readiness check.

", "smithy.api#jsonName": "readinessCheckArn" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name for a ReadinessCheck", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#jsonName": "readinessCheckName" } }, "ResourceSet": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name of the ResourceSet to be checked", + "smithy.api#documentation": "

Name of the resource set to be checked.

", "smithy.api#jsonName": "resourceSet" } }, @@ -1317,7 +1308,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about the status of a Readiness Check.", + "smithy.api#documentation": "

Gets the readiness status for an individual readiness check. To see the overall readiness status for a recovery group, that considers the readiness status for all the readiness checks in a recovery group, use GetRecoveryGroupReadinessSummary.

", "smithy.api#http": { "method": "GET", "uri": "/readinesschecks/{ReadinessCheckName}/status", @@ -1337,21 +1328,21 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ReadinessCheck to get", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1364,28 +1355,28 @@ "Messages": { "target": "com.amazonaws.route53recoveryreadiness#__listOfMessage", "traits": { - "smithy.api#documentation": "Top level messages for readiness check status", + "smithy.api#documentation": "

Top level messages for readiness check status

", "smithy.api#jsonName": "messages" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness at rule level.", + "smithy.api#documentation": "

The readiness at rule level.

", "smithy.api#jsonName": "readiness" } }, "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResourceResult", "traits": { - "smithy.api#documentation": "Summary of resources's readiness", + "smithy.api#documentation": "

Summary of the readiness of resources.

", "smithy.api#jsonName": "resources" } } @@ -1417,7 +1408,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about a Recovery Group.", + "smithy.api#documentation": "

Gets details about a recovery group, including a list of the cells that are included in it.

", "smithy.api#http": { "method": "GET", "uri": "/recoverygroups/{RecoveryGroupName}", @@ -1451,7 +1442,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about a Recovery Group.", + "smithy.api#documentation": "

Displays a summary of information about a recovery group's readiness status. Includes the readiness checks for resources in the recovery group and the readiness status of each one.

", "smithy.api#http": { "method": "GET", "uri": "/recoverygroupreadiness/{RecoveryGroupName}", @@ -1471,21 +1462,21 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup", + "smithy.api#documentation": "

The name of a recovery group.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1498,21 +1489,21 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness at RecoveryGroup level.", + "smithy.api#documentation": "

The readiness status at a recovery group level.

", "smithy.api#jsonName": "readiness" } }, "ReadinessChecks": { "target": "com.amazonaws.route53recoveryreadiness#__listOfReadinessCheckSummary", "traits": { - "smithy.api#documentation": "Summaries for the ReadinessChecks making up the RecoveryGroup", + "smithy.api#documentation": "

Summaries of the readiness checks for the recovery group.

", "smithy.api#jsonName": "readinessChecks" } } @@ -1524,7 +1515,7 @@ "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The RecoveryGroup to get", + "smithy.api#documentation": "

The name of a recovery group.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1537,27 +1528,28 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of a cell's Amazon Resource Names (ARNs).

", "smithy.api#jsonName": "cells" } }, "RecoveryGroupArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the RecoveryGroup", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the recovery group.

", "smithy.api#jsonName": "recoveryGroupArn" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup", + "smithy.api#documentation": "

The name of the recovery group.

", "smithy.api#jsonName": "recoveryGroupName" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

The tags associated with the recovery group.

", "smithy.api#jsonName": "tags" } } @@ -1589,7 +1581,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns information about a Resource Set.", + "smithy.api#documentation": "

Displays the details about a resource set, including a list of the resources in the set.

", "smithy.api#http": { "method": "GET", "uri": "/resourcesets/{ResourceSetName}", @@ -1603,7 +1595,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ResourceSet to get", + "smithy.api#documentation": "

Name of a resource set.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1616,28 +1608,28 @@ "ResourceSetArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the ResourceSet", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource set.

", "smithy.api#jsonName": "resourceSetArn" } }, "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the ResourceSet", + "smithy.api#documentation": "

The name of the resource set.

", "smithy.api#jsonName": "resourceSetName" } }, "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource Type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType" } }, "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects.

", "smithy.api#jsonName": "resources" } }, @@ -1668,7 +1660,7 @@ "com.amazonaws.route53recoveryreadiness#LastAuditTimestamp": { "type": "timestamp", "traits": { - "smithy.api#documentation": "The time a Recovery Group was last assessed for recommendations in UTC ISO-8601 format", + "smithy.api#documentation": "

The time that a recovery group was last assessed for recommendations, in UTC ISO-8601 format.

", "smithy.api#timestampFormat": "date-time" } }, @@ -1695,7 +1687,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of Cells.", + "smithy.api#documentation": "

Lists the cells for an account.

", "smithy.api#http": { "method": "GET", "uri": "/cells", @@ -1715,14 +1707,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -1734,14 +1726,14 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOfCellOutput", "traits": { - "smithy.api#documentation": "A list of Cells", + "smithy.api#documentation": "

A list of cells.

", "smithy.api#jsonName": "cells" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } } @@ -1770,7 +1762,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of cross account readiness authorizations.", + "smithy.api#documentation": "

Lists the cross-account readiness authorizations that are in place for an account.

", "smithy.api#http": { "method": "GET", "uri": "/crossaccountauthorizations", @@ -1790,14 +1782,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -1809,14 +1801,14 @@ "CrossAccountAuthorizations": { "target": "com.amazonaws.route53recoveryreadiness#__listOfCrossAccountAuthorization", "traits": { - "smithy.api#documentation": "A list of CrossAccountAuthorizations", + "smithy.api#documentation": "

A list of cross-account authorizations.

", "smithy.api#jsonName": "crossAccountAuthorizations" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } } @@ -1845,7 +1837,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of Readiness Checks.", + "smithy.api#documentation": "

Lists the readiness checks for an account.

", "smithy.api#http": { "method": "GET", "uri": "/readinesschecks", @@ -1865,14 +1857,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -1884,14 +1876,14 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "ReadinessChecks": { "target": "com.amazonaws.route53recoveryreadiness#__listOfReadinessCheckOutput", "traits": { - "smithy.api#documentation": "A list of ReadinessCheck associated with the account", + "smithy.api#documentation": "

A list of readiness checks associated with the account.

", "smithy.api#jsonName": "readinessChecks" } } @@ -1920,7 +1912,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of Recovery Groups.", + "smithy.api#documentation": "

Lists the recovery groups in an account.

", "smithy.api#http": { "method": "GET", "uri": "/recoverygroups", @@ -1940,14 +1932,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -1959,14 +1951,14 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "RecoveryGroups": { "target": "com.amazonaws.route53recoveryreadiness#__listOfRecoveryGroupOutput", "traits": { - "smithy.api#documentation": "A list of RecoveryGroups", + "smithy.api#documentation": "

A list of recovery groups.

", "smithy.api#jsonName": "recoveryGroups" } } @@ -1995,7 +1987,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of Resource Sets.", + "smithy.api#documentation": "

Lists the resource sets in an account.

", "smithy.api#http": { "method": "GET", "uri": "/resourcesets", @@ -2015,14 +2007,14 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } } @@ -2034,14 +2026,14 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "ResourceSets": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResourceSetOutput", "traits": { - "smithy.api#documentation": "A list of ResourceSets associated with the account", + "smithy.api#documentation": "

A list of resource sets associated with the account.

", "smithy.api#jsonName": "resourceSets" } } @@ -2070,7 +2062,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a collection of rules that are applied as part of Readiness Checks.", + "smithy.api#documentation": "

Lists all readiness rules, or lists the readiness rules for a specific resource type.

", "smithy.api#http": { "method": "GET", "uri": "/rules", @@ -2090,7 +2082,7 @@ "ResourceType": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64", "traits": { - "smithy.api#documentation": "The resource type the rule applies to.", + "smithy.api#documentation": "

The resource type that the readiness rule applies to.

", "smithy.api#jsonName": "resourceType", "smithy.api#required": {} } @@ -2098,7 +2090,7 @@ "RuleDescription": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "A description of the rule", + "smithy.api#documentation": "

The description of a readiness rule.

", "smithy.api#jsonName": "ruleDescription", "smithy.api#required": {} } @@ -2106,14 +2098,14 @@ "RuleId": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64", "traits": { - "smithy.api#documentation": "The Rule's ID.", + "smithy.api#documentation": "

The ID for the readiness rule.

", "smithy.api#jsonName": "ruleId", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "A collection of rules used in a readiness check" + "smithy.api#documentation": "

Readiness rule information, including the resource type, rule ID, and rule description.

" } }, "com.amazonaws.route53recoveryreadiness#ListRulesRequest": { @@ -2122,21 +2114,21 @@ "MaxResults": { "target": "com.amazonaws.route53recoveryreadiness#MaxResults", "traits": { - "smithy.api#documentation": "Upper bound on number of records to return.", + "smithy.api#documentation": "

The number of objects that you want to return with this call.

", "smithy.api#httpQuery": "maxResults" } }, "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token used to resume pagination from the end of a previous request.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#httpQuery": "nextToken" } }, "ResourceType": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "Filter parameter which specifies the rules to return given a resource type.", + "smithy.api#documentation": "

The resource type that a readiness rule applies to.

", "smithy.api#httpQuery": "resourceType" } } @@ -2148,14 +2140,14 @@ "NextToken": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "A token that can be used to resume pagination from the end of the collection.", + "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

", "smithy.api#jsonName": "nextToken" } }, "Rules": { "target": "com.amazonaws.route53recoveryreadiness#__listOfListRulesOutput", "traits": { - "smithy.api#documentation": "A list of rules", + "smithy.api#documentation": "

A list of readiness rules for a specific resource type.

", "smithy.api#jsonName": "rules" } } @@ -2181,7 +2173,7 @@ } ], "traits": { - "smithy.api#documentation": "Returns a list of the tags assigned to the specified resource.", + "smithy.api#documentation": "

Lists the tags for a resource.

", "smithy.api#http": { "method": "GET", "uri": "/tags/{ResourceArn}", @@ -2195,7 +2187,7 @@ "ResourceArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2208,6 +2200,7 @@ "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

", "smithy.api#jsonName": "tags" } } @@ -2228,13 +2221,13 @@ "MessageText": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The text of a readiness check message", + "smithy.api#documentation": "

The text of a readiness check message.

", "smithy.api#jsonName": "messageText" } } }, "traits": { - "smithy.api#documentation": "Information relating to readiness check status" + "smithy.api#documentation": "

Information relating to readiness check status.

" } }, "com.amazonaws.route53recoveryreadiness#NLBResource": { @@ -2243,13 +2236,13 @@ "Arn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "An NLB resource arn", + "smithy.api#documentation": "

The Network Load Balancer resource Amazon Resource Name (ARN).

", "smithy.api#jsonName": "arn" } } }, "traits": { - "smithy.api#documentation": "The NLB resource a DNS Target Resource points to" + "smithy.api#documentation": "

The Network Load Balancer resource that a DNS target resource points to.

" } }, "com.amazonaws.route53recoveryreadiness#R53ResourceRecord": { @@ -2258,26 +2251,26 @@ "DomainName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The DNS target name", + "smithy.api#documentation": "

The DNS target domain name.

", "smithy.api#jsonName": "domainName" } }, "RecordSetId": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Resource Record set id", + "smithy.api#documentation": "

The Route 53 Resource Record Set ID.

", "smithy.api#jsonName": "recordSetId" } } }, "traits": { - "smithy.api#documentation": "The Route 53 resource a DNS Target Resource record points to" + "smithy.api#documentation": "

The Route 53 resource that a DNS target resource record points to.

" } }, "com.amazonaws.route53recoveryreadiness#Readiness": { "type": "string", "traits": { - "smithy.api#documentation": "The readiness of an entire ReadinessCheck or an individual resource ARN.", + "smithy.api#documentation": "

The readiness status.

", "smithy.api#enum": [ { "value": "READY", @@ -2304,7 +2297,7 @@ "ReadinessCheckArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "Arn associated with ReadinessCheck", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with a readiness check.

", "smithy.api#jsonName": "readinessCheckArn", "smithy.api#required": {} } @@ -2312,14 +2305,14 @@ "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name for a ReadinessCheck", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#jsonName": "readinessCheckName" } }, "ResourceSet": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name of the ResourceSet to be checked", + "smithy.api#documentation": "

Name of the resource set to be checked.

", "smithy.api#jsonName": "resourceSet", "smithy.api#required": {} } @@ -2332,7 +2325,7 @@ } }, "traits": { - "smithy.api#documentation": "A resource used for checking the readiness of a Resource Set" + "smithy.api#documentation": "

A readiness check.

" } }, "com.amazonaws.route53recoveryreadiness#ReadinessCheckSummary": { @@ -2341,26 +2334,26 @@ "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness of this ReadinessCheck", + "smithy.api#documentation": "

The readiness status of this readiness check.

", "smithy.api#jsonName": "readiness" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of a ReadinessCheck which is part of the given RecoveryGroup or Cell", + "smithy.api#documentation": "

The name of a readiness check.

", "smithy.api#jsonName": "readinessCheckName" } } }, "traits": { - "smithy.api#documentation": "Summary of ReadinessCheck status, paginated in GetRecoveryGroupReadinessSummary and GetCellReadinessSummary" + "smithy.api#documentation": "

Summary of all readiness check statuses in a recovery group, paginated in GetRecoveryGroupReadinessSummary and GetCellReadinessSummary.

" } }, "com.amazonaws.route53recoveryreadiness#ReadinessCheckTimestamp": { "type": "timestamp", "traits": { - "smithy.api#documentation": "The time the Cell was last checked for readiness, in ISO-8601 format, UTC.", + "smithy.api#documentation": "

The time (UTC) that the cell was last checked for readiness, in ISO-8601 format.

", "smithy.api#timestampFormat": "date-time" } }, @@ -2370,14 +2363,14 @@ "RecommendationText": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "Guidance text for recommendation", + "smithy.api#documentation": "

Text of the recommendations that are provided to make an application more recovery resilient.

", "smithy.api#jsonName": "recommendationText", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Guidance for improving Recovery Group resilliancy" + "smithy.api#documentation": "

Recommendations that are provided to make an application more recovery resilient.

" } }, "com.amazonaws.route53recoveryreadiness#RecoveryGroupOutput": { @@ -2386,7 +2379,7 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of a cell's Amazon Resource Names (ARNs).

", "smithy.api#jsonName": "cells", "smithy.api#required": {} } @@ -2394,7 +2387,7 @@ "RecoveryGroupArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the RecoveryGroup", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the recovery group.

", "smithy.api#jsonName": "recoveryGroupArn", "smithy.api#required": {} } @@ -2402,7 +2395,7 @@ "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup", + "smithy.api#documentation": "

The name of the recovery group.

", "smithy.api#jsonName": "recoveryGroupName", "smithy.api#required": {} } @@ -2410,12 +2403,13 @@ "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

The tags associated with the recovery group.

", "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "A Recovery Group generally containing multiple Cells" + "smithy.api#documentation": "

A representation of the application, typically containing multiple cells.

" } }, "com.amazonaws.route53recoveryreadiness#Resource": { @@ -2424,33 +2418,34 @@ "ComponentId": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The component id of the resource, generated by the service when dnsTargetResource is used", + "smithy.api#documentation": "

The component identifier of the resource, generated when DNS target resource is used.

", "smithy.api#jsonName": "componentId" } }, "DnsTargetResource": { "target": "com.amazonaws.route53recoveryreadiness#DNSTargetResource", "traits": { + "smithy.api#documentation": "

The DNS target resource.

", "smithy.api#jsonName": "dnsTargetResource" } }, "ReadinessScopes": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of RecoveryGroup ARNs and/or Cell ARNs that this resource is contained within.", + "smithy.api#documentation": "

A list of recovery group Amazon Resource Names (ARNs) and cell ARNs that this resource is contained within.

", "smithy.api#jsonName": "readinessScopes" } }, "ResourceArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ARN of the AWS resource, can be skipped if dnsTargetResource is used", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services resource.

", "smithy.api#jsonName": "resourceArn" } } }, "traits": { - "smithy.api#documentation": "The resource element of a ResourceSet" + "smithy.api#documentation": "

The resource element of a resource set.

" } }, "com.amazonaws.route53recoveryreadiness#ResourceNotFoundException": { @@ -2475,14 +2470,14 @@ "ComponentId": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The component id of the resource", + "smithy.api#documentation": "

The component id of the resource.

", "smithy.api#jsonName": "componentId" } }, "LastCheckedTimestamp": { "target": "com.amazonaws.route53recoveryreadiness#ReadinessCheckTimestamp", "traits": { - "smithy.api#documentation": "The time the resource was last checked for readiness, in ISO-8601 format, UTC.", + "smithy.api#documentation": "

The time (UTC) that the resource was last checked for readiness, in ISO-8601 format.

", "smithy.api#jsonName": "lastCheckedTimestamp", "smithy.api#required": {} } @@ -2490,7 +2485,7 @@ "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness of the resource.", + "smithy.api#documentation": "

The readiness of a resource.

", "smithy.api#jsonName": "readiness", "smithy.api#required": {} } @@ -2498,13 +2493,13 @@ "ResourceArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ARN of the resource", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", "smithy.api#jsonName": "resourceArn" } } }, "traits": { - "smithy.api#documentation": "Result with status for an individual resource." + "smithy.api#documentation": "

The result of a successful Resource request, with status for an individual resource.

" } }, "com.amazonaws.route53recoveryreadiness#ResourceSetOutput": { @@ -2513,7 +2508,7 @@ "ResourceSetArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the ResourceSet", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource set.

", "smithy.api#jsonName": "resourceSetArn", "smithy.api#required": {} } @@ -2521,7 +2516,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the ResourceSet", + "smithy.api#documentation": "

The name of the resource set.

", "smithy.api#jsonName": "resourceSetName", "smithy.api#required": {} } @@ -2529,7 +2524,7 @@ "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource Type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType", "smithy.api#required": {} } @@ -2537,7 +2532,7 @@ "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects.

", "smithy.api#jsonName": "resources", "smithy.api#required": {} } @@ -2550,11 +2545,26 @@ } }, "traits": { - "smithy.api#documentation": "A collection of resources of the same type" + "smithy.api#documentation": "

A collection of resources of the same type.

" } }, "com.amazonaws.route53recoveryreadiness#Route53RecoveryReadiness": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route53 Recovery Readiness", + "arnNamespace": "route53-recovery-readiness", + "cloudFormationName": "Route53RecoveryReadiness", + "cloudTrailEventSource": "route53recoveryreadiness.amazonaws.com", + "endpointPrefix": "route53-recovery-readiness" + }, + "aws.auth#sigv4": { + "name": "route53-recovery-readiness" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Recovery readiness

", + "smithy.api#title": "AWS Route53 Recovery Readiness" + }, "version": "2019-12-02", "operations": [ { @@ -2653,22 +2663,7 @@ { "target": "com.amazonaws.route53recoveryreadiness#UpdateResourceSet" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route53 Recovery Readiness", - "arnNamespace": "route53-recovery-readiness", - "cloudFormationName": "Route53RecoveryReadiness", - "cloudTrailEventSource": "route53recoveryreadiness.amazonaws.com", - "endpointPrefix": "route53-recovery-readiness" - }, - "aws.auth#sigv4": { - "name": "route53-recovery-readiness" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "AWS Route53 Recovery Readiness", - "smithy.api#title": "AWS Route53 Recovery Readiness" - } + ] }, "com.amazonaws.route53recoveryreadiness#RuleResult": { "type": "structure", @@ -2676,7 +2671,7 @@ "LastCheckedTimestamp": { "target": "com.amazonaws.route53recoveryreadiness#ReadinessCheckTimestamp", "traits": { - "smithy.api#documentation": "The time the resource was last checked for readiness, in ISO-8601 format, UTC.", + "smithy.api#documentation": "

The time the resource was last checked for readiness, in ISO-8601 format, UTC.

", "smithy.api#jsonName": "lastCheckedTimestamp", "smithy.api#required": {} } @@ -2684,7 +2679,7 @@ "Messages": { "target": "com.amazonaws.route53recoveryreadiness#__listOfMessage", "traits": { - "smithy.api#documentation": "Details about the resource's readiness", + "smithy.api#documentation": "

Details about the resource's readiness.

", "smithy.api#jsonName": "messages", "smithy.api#required": {} } @@ -2692,7 +2687,7 @@ "Readiness": { "target": "com.amazonaws.route53recoveryreadiness#Readiness", "traits": { - "smithy.api#documentation": "The readiness at rule level.", + "smithy.api#documentation": "

The readiness at rule level.

", "smithy.api#jsonName": "readiness", "smithy.api#required": {} } @@ -2700,14 +2695,14 @@ "RuleId": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The identifier of the rule.", + "smithy.api#documentation": "

The identifier of the rule.

", "smithy.api#jsonName": "ruleId", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Result with status for an individual rule.." + "smithy.api#documentation": "

The result of a successful Rule request, with status for an individual rule.

" } }, "com.amazonaws.route53recoveryreadiness#TagResource": { @@ -2730,7 +2725,7 @@ } ], "traits": { - "smithy.api#documentation": "Adds tags to the specified resource. You can specify one or more tags to add.", + "smithy.api#documentation": "

Adds a tag to a resource.

", "smithy.api#http": { "method": "POST", "uri": "/tags/{ResourceArn}", @@ -2744,7 +2739,7 @@ "ResourceArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2752,6 +2747,7 @@ "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

", "smithy.api#jsonName": "tags", "smithy.api#required": {} } @@ -2771,7 +2767,7 @@ "target": "com.amazonaws.route53recoveryreadiness#__string" }, "traits": { - "smithy.api#documentation": "A collection of tags associated with a resource" + "smithy.api#documentation": "

A collection of tags associated with a resource.

" } }, "com.amazonaws.route53recoveryreadiness#TargetResource": { @@ -2780,18 +2776,20 @@ "NLBResource": { "target": "com.amazonaws.route53recoveryreadiness#NLBResource", "traits": { + "smithy.api#documentation": "

The Network Load Balancer Resource.

", "smithy.api#jsonName": "nLBResource" } }, "R53Resource": { "target": "com.amazonaws.route53recoveryreadiness#R53ResourceRecord", "traits": { + "smithy.api#documentation": "

The Route 53 resource.

", "smithy.api#jsonName": "r53Resource" } } }, "traits": { - "smithy.api#documentation": "The target resource the R53 record points to" + "smithy.api#documentation": "

The target resource that the Route 53 record points to.

" } }, "com.amazonaws.route53recoveryreadiness#ThrottlingException": { @@ -2827,7 +2825,7 @@ } ], "traits": { - "smithy.api#documentation": "Removes tags from the specified resource. You can specify one or more tags to remove.", + "smithy.api#documentation": "

Removes a tag from a resource.

", "smithy.api#http": { "method": "DELETE", "uri": "/tags/{ResourceArn}", @@ -2841,7 +2839,7 @@ "ResourceArn": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2849,7 +2847,7 @@ "TagKeys": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A comma-separated list of the tag keys to remove from the resource.", + "smithy.api#documentation": "

The keys for tags you add to resources.

", "smithy.api#httpQuery": "tagKeys", "smithy.api#required": {} } @@ -2882,7 +2880,7 @@ } ], "traits": { - "smithy.api#documentation": "Updates an existing Cell.", + "smithy.api#documentation": "

Updates a cell to replace the list of nested cells with a new list of nested cells.

", "smithy.api#http": { "method": "PUT", "uri": "/cells/{CellName}", @@ -2896,7 +2894,7 @@ "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The Cell to update", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2904,14 +2902,11 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns, completely replaces previous list", + "smithy.api#documentation": "

A list of cell Amazon Resource Names (ARNs), which completely replaces the previous list.

", "smithy.api#jsonName": "cells", "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "Parameters to update for the Cell" } }, "com.amazonaws.route53recoveryreadiness#UpdateCellResponse": { @@ -2920,34 +2915,35 @@ "CellArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the Cell", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the cell.

", "smithy.api#jsonName": "cellArn" } }, "CellName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the Cell", + "smithy.api#documentation": "

The name of the cell.

", "smithy.api#jsonName": "cellName" } }, "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of cell ARNs.

", "smithy.api#jsonName": "cells" } }, "ParentReadinessScopes": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell ARNs and/or RecoveryGroup ARNs", + "smithy.api#documentation": "

The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) or a recovery group ARN. This is a list but currently can have only one element.

", "smithy.api#jsonName": "parentReadinessScopes" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

Tags on the resources.

", "smithy.api#jsonName": "tags" } } @@ -2979,7 +2975,7 @@ } ], "traits": { - "smithy.api#documentation": "Updates an exisiting Readiness Check.", + "smithy.api#documentation": "

Updates a readiness check.

", "smithy.api#http": { "method": "PUT", "uri": "/readinesschecks/{ReadinessCheckName}", @@ -2993,7 +2989,7 @@ "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ReadinessCheck to update", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3001,14 +2997,14 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The name of the ResourceSet to check", + "smithy.api#documentation": "

The name of the resource set to be checked.

", "smithy.api#jsonName": "resourceSetName", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "The new Readiness Check values" + "smithy.api#documentation": "

Name of a readiness check to describe.

" } }, "com.amazonaws.route53recoveryreadiness#UpdateReadinessCheckResponse": { @@ -3017,21 +3013,21 @@ "ReadinessCheckArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "Arn associated with ReadinessCheck", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with a readiness check.

", "smithy.api#jsonName": "readinessCheckArn" } }, "ReadinessCheckName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name for a ReadinessCheck", + "smithy.api#documentation": "

Name of a readiness check.

", "smithy.api#jsonName": "readinessCheckName" } }, "ResourceSet": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "Name of the ResourceSet to be checked", + "smithy.api#documentation": "

Name of the resource set to be checked.

", "smithy.api#jsonName": "resourceSet" } }, @@ -3069,7 +3065,7 @@ } ], "traits": { - "smithy.api#documentation": "Updates an existing Recovery Group.", + "smithy.api#documentation": "

Updates a recovery group.

", "smithy.api#http": { "method": "PUT", "uri": "/recoverygroups/{RecoveryGroupName}", @@ -3083,7 +3079,7 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns, completely replaces previous list", + "smithy.api#documentation": "

A list of cell Amazon Resource Names (ARNs). This list completely replaces the previous list.

", "smithy.api#jsonName": "cells", "smithy.api#required": {} } @@ -3091,14 +3087,14 @@ "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The RecoveryGroup to update", + "smithy.api#documentation": "

The name of a recovery group.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Parameters to update for the RecoveryGroup" + "smithy.api#documentation": "

Name of a recovery group.

" } }, "com.amazonaws.route53recoveryreadiness#UpdateRecoveryGroupResponse": { @@ -3107,27 +3103,28 @@ "Cells": { "target": "com.amazonaws.route53recoveryreadiness#__listOf__string", "traits": { - "smithy.api#documentation": "A list of Cell arns", + "smithy.api#documentation": "

A list of a cell's Amazon Resource Names (ARNs).

", "smithy.api#jsonName": "cells" } }, "RecoveryGroupArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the RecoveryGroup", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the recovery group.

", "smithy.api#jsonName": "recoveryGroupArn" } }, "RecoveryGroupName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the RecoveryGroup", + "smithy.api#documentation": "

The name of the recovery group.

", "smithy.api#jsonName": "recoveryGroupName" } }, "Tags": { "target": "com.amazonaws.route53recoveryreadiness#Tags", "traits": { + "smithy.api#documentation": "

The tags associated with the recovery group.

", "smithy.api#jsonName": "tags" } } @@ -3159,7 +3156,7 @@ } ], "traits": { - "smithy.api#documentation": "Updates an existing Resource Set.", + "smithy.api#documentation": "

Updates a resource set.

", "smithy.api#http": { "method": "PUT", "uri": "/resourcesets/{ResourceSetName}", @@ -3173,7 +3170,7 @@ "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__string", "traits": { - "smithy.api#documentation": "The ResourceSet to update", + "smithy.api#documentation": "

Name of a resource set.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3181,7 +3178,7 @@ "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource Type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType", "smithy.api#required": {} } @@ -3189,14 +3186,14 @@ "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects.

", "smithy.api#jsonName": "resources", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "configuration for the desired" + "smithy.api#documentation": "

Name of a resource set.

" } }, "com.amazonaws.route53recoveryreadiness#UpdateResourceSetResponse": { @@ -3205,28 +3202,28 @@ "ResourceSetArn": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax256", "traits": { - "smithy.api#documentation": "The arn for the ResourceSet", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource set.

", "smithy.api#jsonName": "resourceSetArn" } }, "ResourceSetName": { "target": "com.amazonaws.route53recoveryreadiness#__stringMax64PatternAAZAZ09Z", "traits": { - "smithy.api#documentation": "The name of the ResourceSet", + "smithy.api#documentation": "

The name of the resource set.

", "smithy.api#jsonName": "resourceSetName" } }, "ResourceSetType": { "target": "com.amazonaws.route53recoveryreadiness#__stringPatternAWSAZaZ09AZaZ09", "traits": { - "smithy.api#documentation": "AWS Resource Type of the resources in the ResourceSet", + "smithy.api#documentation": "

The resource type of the resources in the resource set. Enter one of the following values for resource type:

AWS::ApiGateway::Stage, AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource

", "smithy.api#jsonName": "resourceSetType" } }, "Resources": { "target": "com.amazonaws.route53recoveryreadiness#__listOfResource", "traits": { - "smithy.api#documentation": "A list of Resource objects", + "smithy.api#documentation": "

A list of resource objects.

", "smithy.api#jsonName": "resources" } }, diff --git a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json index 5c323ace03d..8f56290a728 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json @@ -5323,7 +5323,7 @@ "AsyncInferenceConfig": { "target": "com.amazonaws.sagemaker#AsyncInferenceConfig", "traits": { - "smithy.api#documentation": "

Specifies configuration for how an endpoint performs asynchronous inference. \n This is a required field in order for your Endpoint to be invoked using \n \n InvokeEndpointAsync\n .

" + "smithy.api#documentation": "

Specifies configuration for how an endpoint performs asynchronous inference. \n This is a required field in order for your Endpoint to be invoked using\n InvokeEndpointAsync.

" } } } @@ -17425,6 +17425,20 @@ } } }, + "com.amazonaws.sagemaker#FailStepMetadata": { + "type": "structure", + "members": { + "ErrorMessage": { + "target": "com.amazonaws.sagemaker#String3072", + "traits": { + "smithy.api#documentation": "

A message that you define and then is processed and rendered by \n the Fail step when the error occurs.

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

The container for the metadata for Fail step.

" + } + }, "com.amazonaws.sagemaker#FailureReason": { "type": "string", "traits": { @@ -24434,7 +24448,7 @@ "ModelPackageType": { "target": "com.amazonaws.sagemaker#ModelPackageType", "traits": { - "smithy.api#documentation": "

A filter that returns onlyl the model packages of the specified type. This can be one\n of the following values.

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

A filter that returns only the model packages of the specified type. This can be one\n of the following values.

\n " } }, "NextToken": { @@ -30911,7 +30925,7 @@ "AttemptCount": { "target": "com.amazonaws.sagemaker#IntegerValue", "traits": { - "smithy.api#documentation": "

The current attempt of the execution step. For more information, see Retry Policy for Amazon SageMaker Pipelines steps.

" + "smithy.api#documentation": "

The current attempt of the execution step. For more information, see Retry Policy for SageMaker Pipelines steps.

" } }, "FailureReason": { @@ -31017,6 +31031,12 @@ "traits": { "smithy.api#documentation": "

The configurations and outcomes of an EMR step execution.

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

The configurations and outcomes of a Fail step execution.

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

The display name of the pipeline execution.

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

A message generated by SageMaker Pipelines describing why the pipeline execution failed.

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

Stops a pipeline execution.

\n\n

\n Callback Step\n

\n

A pipeline execution won't stop while a callback step is running.\n When you call StopPipelineExecution\n on a pipeline execution with a running callback step, Amazon SageMaker Pipelines sends an\n additional Amazon SQS message to the specified SQS queue. The body of the SQS message\n contains a \"Status\" field which is set to \"Stopping\".

\n

You should add logic to your Amazon SQS message consumer to take any needed action (for\n example, resource cleanup) upon receipt of the message followed by a call to\n SendPipelineExecutionStepSuccess or\n SendPipelineExecutionStepFailure.

\n

Only when Amazon SageMaker Pipelines receives one of these calls will it stop the pipeline execution.

\n\n

\n Lambda Step\n

\n

A pipeline execution can't be stopped while a lambda step is running because the Lambda\n function invoked by the lambda step can't be stopped. If you attempt to stop the execution\n while the Lambda function is running, the pipeline waits for the Lambda function to finish\n or until the timeout is hit, whichever occurs first, and then stops. If the Lambda function\n finishes, the pipeline execution status is Stopped. If the timeout is hit\n the pipeline execution status is Failed.

" + "smithy.api#documentation": "

Stops a pipeline execution.

\n\n

\n Callback Step\n

\n

A pipeline execution won't stop while a callback step is running.\n When you call StopPipelineExecution\n on a pipeline execution with a running callback step, SageMaker Pipelines sends an\n additional Amazon SQS message to the specified SQS queue. The body of the SQS message\n contains a \"Status\" field which is set to \"Stopping\".

\n

You should add logic to your Amazon SQS message consumer to take any needed action (for\n example, resource cleanup) upon receipt of the message followed by a call to\n SendPipelineExecutionStepSuccess or\n SendPipelineExecutionStepFailure.

\n

Only when SageMaker Pipelines receives one of these calls will it stop the pipeline execution.

\n\n

\n Lambda Step\n

\n

A pipeline execution can't be stopped while a lambda step is running because the Lambda\n function invoked by the lambda step can't be stopped. If you attempt to stop the execution\n while the Lambda function is running, the pipeline waits for the Lambda function to finish\n or until the timeout is hit, whichever occurs first, and then stops. If the Lambda function\n finishes, the pipeline execution status is Stopped. If the timeout is hit\n the pipeline execution status is Failed.

" } }, "com.amazonaws.sagemaker#StopPipelineExecutionRequest": { @@ -37091,6 +37117,15 @@ } } }, + "com.amazonaws.sagemaker#String3072": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3072 + } + } + }, "com.amazonaws.sagemaker#String40": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json index 4ce4744a5fe..8fc568427ad 100644 --- a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json +++ b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json @@ -12338,6 +12338,12 @@ "traits": { "smithy.api#documentation": "

In a BatchImportFindings request, finding providers use FindingProviderFields to provide and update their own values for confidence, criticality, related findings, severity, and types.

" } + }, + "Sample": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the finding is a sample finding.

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

One or more finding types that the finding provider assigned to the finding. Uses the format of namespace/category/classifier\n that classify a finding.

\n

Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual\n Behaviors | Sensitive Data Identifications

" } + }, + "Sample": { + "target": "com.amazonaws.securityhub#BooleanFilterList", + "traits": { + "smithy.api#documentation": "

Indicates whether or not sample findings are included in the filter results.

" + } } }, "traits": { @@ -13795,6 +13807,26 @@ "com.amazonaws.securityhub#Boolean": { "type": "boolean" }, + "com.amazonaws.securityhub#BooleanFilter": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

The value of the boolean.

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

Boolean filter for querying findings.

" + } + }, + "com.amazonaws.securityhub#BooleanFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#BooleanFilter" + } + }, "com.amazonaws.securityhub#CategoryList": { "type": "list", "member": { diff --git a/codegen/sdk-codegen/aws-models/storagegateway.2013-06-30.json b/codegen/sdk-codegen/aws-models/storagegateway.2013-06-30.json index 3b198e6a0f8..2d6e6163f7c 100644 --- a/codegen/sdk-codegen/aws-models/storagegateway.2013-06-30.json +++ b/codegen/sdk-codegen/aws-models/storagegateway.2013-06-30.json @@ -2213,7 +2213,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the bandwidth rate limits of a gateway. You can delete either the upload and\n download bandwidth rate limit, or you can delete both. If you delete only one of the\n limits, the other limit remains unchanged. To specify which gateway to work with, use the\n Amazon Resource Name (ARN) of the gateway in your request. This operation is supported for\n the stored volume, cached volume and tape gateway types.

" + "smithy.api#documentation": "

Deletes the bandwidth rate limits of a gateway. You can delete either the upload and\n download bandwidth rate limit, or you can delete both. If you delete only one of the\n limits, the other limit remains unchanged. To specify which gateway to work with, use the\n Amazon Resource Name (ARN) of the gateway in your request. This operation is supported only\n for the stored volume, cached volume, and tape gateway types.

" } }, "com.amazonaws.storagegateway#DeleteBandwidthRateLimitInput": { @@ -2739,7 +2739,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the bandwidth rate limits of a gateway. By default, these limits are not set,\n which means no bandwidth rate limiting is in effect. This operation is supported for the\n stored volume, cached volume, and tape gateway types.

\n\n

This operation only returns a value for a bandwidth rate limit only if the limit is set.\n If no limits are set for the gateway, then this operation returns only the gateway ARN in\n the response body. To specify which gateway to describe, use the Amazon Resource Name (ARN)\n of the gateway in your request.

" + "smithy.api#documentation": "

Returns the bandwidth rate limits of a gateway. By default, these limits are not set,\n which means no bandwidth rate limiting is in effect. This operation is supported only for\n the stored volume, cached volume, and tape gateway types. To describe bandwidth rate limits\n for S3 file gateways, use DescribeBandwidthRateLimitSchedule.

\n\n

This operation returns a value for a bandwidth rate limit only if the limit is set. If\n no limits are set for the gateway, then this operation returns only the gateway ARN in the\n response body. To specify which gateway to describe, use the Amazon Resource Name (ARN) of\n the gateway in your request.

" } }, "com.amazonaws.storagegateway#DescribeBandwidthRateLimitInput": { @@ -2796,7 +2796,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about the bandwidth rate limit schedule of a gateway. By default,\n gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting\n is in effect. This operation is supported only in the volume and tape gateway types.

\n\n

This operation returns information about a gateway's bandwidth rate limit schedule. A\n bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A\n bandwidth rate limit interval defines a period of time on one or more days of the week,\n during which bandwidth rate limits are specified for uploading, downloading, or both.

\n\n

A bandwidth rate limit interval consists of one or more days of the week, a start hour\n and minute, an ending hour and minute, and bandwidth rate limits for uploading and\n downloading

\n\n

If no bandwidth rate limit schedule intervals are set for the gateway, this operation\n returns an empty response. To specify which gateway to describe, use the Amazon Resource\n Name (ARN) of the gateway in your request.

" + "smithy.api#documentation": "

Returns information about the bandwidth rate limit schedule of a gateway. By default,\n gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting\n is in effect. This operation is supported only for volume, tape and S3 file gateways. FSx\n file gateways do not support bandwidth rate limits.

\n\n

This operation returns information about a gateway's bandwidth rate limit schedule. A\n bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A\n bandwidth rate limit interval defines a period of time on one or more days of the week,\n during which bandwidth rate limits are specified for uploading, downloading, or both.

\n\n

A bandwidth rate limit interval consists of one or more days of the week, a start hour\n and minute, an ending hour and minute, and bandwidth rate limits for uploading and\n downloading

\n\n

If no bandwidth rate limit schedule intervals are set for the gateway, this operation\n returns an empty response. To specify which gateway to describe, use the Amazon Resource\n Name (ARN) of the gateway in your request.

" } }, "com.amazonaws.storagegateway#DescribeBandwidthRateLimitScheduleInput": { @@ -8305,7 +8305,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the bandwidth rate limits of a gateway. You can update both the upload and\n download bandwidth rate limit or specify only one of the two. If you don't set a\n bandwidth rate limit, the existing rate limit remains. This operation is supported for the\n stored volume, cached volume, and tape gateway types.

\n\n

By default, a gateway's bandwidth rate limits are not set. If you don't set\n any limit, the gateway does not have any limitations on its bandwidth usage and could\n potentially use the maximum available bandwidth.

\n\n

To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in\n your request.

" + "smithy.api#documentation": "

Updates the bandwidth rate limits of a gateway. You can update both the upload and\n download bandwidth rate limit or specify only one of the two. If you don't set a\n bandwidth rate limit, the existing rate limit remains. This operation is supported only for\n the stored volume, cached volume, and tape gateway types. To update bandwidth rate limits\n for S3 file gateways, use UpdateBandwidthRateLimitSchedule.

\n\n

By default, a gateway's bandwidth rate limits are not set. If you don't set\n any limit, the gateway does not have any limitations on its bandwidth usage and could\n potentially use the maximum available bandwidth.

\n\n

To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in\n your request.

" } }, "com.amazonaws.storagegateway#UpdateBandwidthRateLimitInput": { @@ -8362,7 +8362,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways\n do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in\n effect. Use this to initiate or update a gateway's bandwidth rate limit schedule. This\n operation is supported in the volume and tape gateway types.

" + "smithy.api#documentation": "

Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways\n do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in\n effect. Use this to initiate or update a gateway's bandwidth rate limit schedule. This\n operation is supported only for volume, tape and S3 file gateways. FSx file gateways do not\n support bandwidth rate limits.

" } }, "com.amazonaws.storagegateway#UpdateBandwidthRateLimitScheduleInput": { diff --git a/codegen/sdk-codegen/aws-models/transcribe.2017-10-26.json b/codegen/sdk-codegen/aws-models/transcribe.2017-10-26.json index e93cfe23c1a..c2137684d6c 100644 --- a/codegen/sdk-codegen/aws-models/transcribe.2017-10-26.json +++ b/codegen/sdk-codegen/aws-models/transcribe.2017-10-26.json @@ -468,6 +468,12 @@ "smithy.api#documentation": "

The output transcript file stored in either the default S3 bucket or in a bucket you\n specify.

\n

When you choose redacted Amazon Transcribe outputs only the redacted \n transcript.

\n

When you choose redacted_and_unredacted Amazon Transcribe outputs both the \n redacted and unredacted transcripts.

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

The types of personally identifiable information (PII) you want to redact in your\n transcript.

" + } } }, "traits": { @@ -3494,6 +3500,73 @@ "target": "com.amazonaws.transcribe#Phrase" } }, + "com.amazonaws.transcribe#PiiEntityType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "BANK_ACCOUNT_NUMBER", + "name": "BANK_ACCOUNT_NUMBER" + }, + { + "value": "BANK_ROUTING", + "name": "BANK_ROUTING" + }, + { + "value": "CREDIT_DEBIT_NUMBER", + "name": "CREDIT_DEBIT_NUMBER" + }, + { + "value": "CREDIT_DEBIT_CVV", + "name": "CREDIT_DEBIT_CVV" + }, + { + "value": "CREDIT_DEBIT_EXPIRY", + "name": "CREDIT_DEBIT_EXPIRY" + }, + { + "value": "PIN", + "name": "PIN" + }, + { + "value": "EMAIL", + "name": "EMAIL" + }, + { + "value": "ADDRESS", + "name": "ADDRESS" + }, + { + "value": "NAME", + "name": "NAME" + }, + { + "value": "PHONE", + "name": "PHONE" + }, + { + "value": "SSN", + "name": "SSN" + }, + { + "value": "ALL", + "name": "ALL" + } + ] + } + }, + "com.amazonaws.transcribe#PiiEntityTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.transcribe#PiiEntityType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 11 + } + } + }, "com.amazonaws.transcribe#RedactionOutput": { "type": "string", "traits": { 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 5d41d51888c..9193a46138c 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 @@ -5638,6 +5638,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, @@ -6329,9 +6330,11 @@ }, "kafka" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -11421,6 +11424,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com", diff --git a/internal/codegen/go_module_metadata.go b/internal/codegen/go_module_metadata.go index ad9ca67fa97..a6f21dd14e8 100644 --- a/internal/codegen/go_module_metadata.go +++ b/internal/codegen/go_module_metadata.go @@ -3,4 +3,4 @@ package codegen // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.0.0-preview" +const goModuleVersion = "tip" diff --git a/modman.toml b/modman.toml index 851c6d8df48..d94b1a9865e 100644 --- a/modman.toml +++ b/modman.toml @@ -19,6 +19,9 @@ [modules."feature/ec2/imds/internal/configtesting"] no_tag = true + [modules."internal/codegen"] + no_tag = true + [modules."internal/configsources/configtesting"] no_tag = true diff --git a/service/applicationinsights/types/enums.go b/service/applicationinsights/types/enums.go index 860cee7f500..aadfcbf403e 100644 --- a/service/applicationinsights/types/enums.go +++ b/service/applicationinsights/types/enums.go @@ -221,6 +221,8 @@ const ( TierSapHanaSingleNode Tier = "SAP_HANA_SINGLE_NODE" TierSapHanaHighAvailability Tier = "SAP_HANA_HIGH_AVAILABILITY" TierSqlServerFailoverClusterInstance Tier = "SQL_SERVER_FAILOVER_CLUSTER_INSTANCE" + TierSharepoint Tier = "SHAREPOINT" + TierActiveDirectory Tier = "ACTIVE_DIRECTORY" ) // Values returns all known values for Tier. Note that this can be expanded in the @@ -244,5 +246,7 @@ func (Tier) Values() []Tier { "SAP_HANA_SINGLE_NODE", "SAP_HANA_HIGH_AVAILABILITY", "SQL_SERVER_FAILOVER_CLUSTER_INSTANCE", + "SHAREPOINT", + "ACTIVE_DIRECTORY", } } diff --git a/service/cloudtrail/api_op_DeleteEventDataStore.go b/service/cloudtrail/api_op_DeleteEventDataStore.go index c15d6c2f14b..c083719eeba 100644 --- a/service/cloudtrail/api_op_DeleteEventDataStore.go +++ b/service/cloudtrail/api_op_DeleteEventDataStore.go @@ -12,12 +12,13 @@ import ( // Disables the event data store specified by EventDataStore, which accepts an // event data store ARN. After you run DeleteEventDataStore, the event data store -// is automatically deleted after a wait period of seven days. -// TerminationProtectionEnabled must be set to False on the event data store; this -// operation cannot work if TerminationProtectionEnabled is True. After you run -// DeleteEventDataStore on an event data store, you cannot run ListQueries, -// DescribeQuery, or GetQueryResults on queries that are using an event data store -// in a PENDING_DELETION state. +// enters a PENDING_DELETION state, and is automatically deleted after a wait +// period of seven days. TerminationProtectionEnabled must be set to False on the +// event data store; this operation cannot work if TerminationProtectionEnabled is +// True. After you run DeleteEventDataStore on an event data store, you cannot run +// ListQueries, DescribeQuery, or GetQueryResults on queries that are using an +// event data store in a PENDING_DELETION state. An event data store in the +// PENDING_DELETION state does not incur costs. func (c *Client) DeleteEventDataStore(ctx context.Context, params *DeleteEventDataStoreInput, optFns ...func(*Options)) (*DeleteEventDataStoreOutput, error) { if params == nil { params = &DeleteEventDataStoreInput{} diff --git a/service/cloudtrail/types/types.go b/service/cloudtrail/types/types.go index 423deda4dbc..a4fa57311af 100644 --- a/service/cloudtrail/types/types.go +++ b/service/cloudtrail/types/types.go @@ -51,30 +51,31 @@ type AdvancedFieldSelector struct { // eventName, resources.type, and resources.ARN. // // * readOnly - Optional. Can be set - // to Equals a value of true or false. A value of false logs both read and write - // events. + // to Equals a value of true or false. If you do not add this field, CloudTrail + // logs both both read and write events. A value of true logs only read events. A + // value of false logs only write events. // - // * eventSource - For filtering management events only. This can be set - // only to NotEqualskms.amazonaws.com. + // * eventSource - For filtering management + // events only. This can be set only to NotEqualskms.amazonaws.com. // - // * eventName - Can use any operator. You can - // use it to filter in or filter out any data event logged to CloudTrail, such as - // PutBucket or GetSnapshotBlock. You can have multiple values for this field, - // separated by commas. + // * eventName - + // Can use any operator. You can use it to filter in or filter out any data event + // logged to CloudTrail, such as PutBucket or GetSnapshotBlock. You can have + // multiple values for this field, separated by commas. // - // * eventCategory - This is required. It must be set to - // Equals, and the value must be Management or Data. + // * eventCategory - This is + // required. It must be set to Equals, and the value must be Management or Data. // - // * resources.type - This field - // is required. resources.type can only use the Equals operator, and the value can - // be one of the following: + // * + // resources.type - This field is required. resources.type can only use the Equals + // operator, and the value can be one of the following: // // * AWS::S3::Object // - // * AWS::Lambda::Function - // // * - // AWS::DynamoDB::Table + // AWS::Lambda::Function + // + // * AWS::DynamoDB::Table // // * AWS::S3Outposts::Object // @@ -90,60 +91,63 @@ type AdvancedFieldSelector struct { // // * AWS::DynamoDB::Stream // - // You can - // have only one resources.type field per selector. To log data events on more than - // one resource type, add another selector. - // - // * resources.ARN - 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. For example, if resources.type equals - // AWS::S3::Object, the ARN must be in one of the following formats. 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. The trailing - // slash is intentional; do not exclude it. Replace the text between less than and - // greater than symbols (<>) with resource-specific information. + // * + // AWS::Glue::Table // - // * arn::s3:::/ + // You can have only one resources.type field per selector. To log + // data events on more than one resource type, add another selector. // // * - // arn::s3:::// - // - // When resources.type equals AWS::S3::AccessPoint, and the operator - // is set to Equals or NotEquals, the ARN must be in one of the following formats. - // To log events on all objects in an S3 access point, we recommend that you use - // only the access point ARN, don’t include the object path, and use the StartsWith - // or NotStartsWith operators. + // resources.ARN - 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. For + // example, if resources.type equals AWS::S3::Object, the ARN must be in one of the + // following formats. 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. The trailing slash is intentional; do not exclude it. Replace + // the text between less than and greater than symbols (<>) with resource-specific + // information. // - // * arn::s3:::accesspoint/ + // * arn::s3:::/ // - // * - // arn::s3:::accesspoint//object/ + // * arn::s3:::// // // When resources.type equals - // AWS::Lambda::Function, and the operator is set to Equals or NotEquals, the ARN - // must be in the following format: + // AWS::S3::AccessPoint, and the operator is set to Equals or NotEquals, the ARN + // must be in one of the following formats. To log events on all objects in an S3 + // access point, we recommend that you use only the access point ARN, don’t include + // the object path, and use the StartsWith or NotStartsWith operators. // - // * arn::lambda:::function: + // * + // arn::s3:::accesspoint/ + // + // * arn::s3:::accesspoint//object/ // // When resources.type - // equals AWS::DynamoDB::Table, and the operator is set to Equals or NotEquals, the - // ARN must be in the following format: + // equals AWS::Lambda::Function, and the operator is set to Equals or NotEquals, + // the ARN must be in the following format: // - // * arn::dynamodb:::table/ + // * arn::lambda:::function: // // When - // resources.type equals AWS::S3Outposts::Object, and the operator is set to Equals - // or NotEquals, the ARN must be in the following format: + // resources.type equals AWS::DynamoDB::Table, and the operator is set to Equals or + // NotEquals, the ARN must be in the following format: // // * - // arn::s3-outposts::: + // arn::dynamodb:::table/ // - // When resources.type equals AWS::ManagedBlockchain::Node, - // and the operator is set to Equals or NotEquals, the ARN must be in the following + // When resources.type equals AWS::S3Outposts::Object, and + // the operator is set to Equals or NotEquals, the ARN must be in the following // format: // - // * arn::managedblockchain:::nodes/ + // * arn::s3-outposts::: + // + // When resources.type equals + // AWS::ManagedBlockchain::Node, and the operator is set to Equals or NotEquals, + // the ARN must be in the following format: + // + // * + // arn::managedblockchain:::nodes/ // // When resources.type equals // AWS::S3ObjectLambda::AccessPoint, and the operator is set to Equals or @@ -164,6 +168,12 @@ type AdvancedFieldSelector struct { // // * arn::dynamodb:::table//stream/ // + // When + // resources.type equals AWS::Glue::Table, and the operator is set to Equals or + // NotEquals, the ARN must be in the following format: + // + // * arn::glue:::table// + // // This member is required. Field *string @@ -273,6 +283,9 @@ type DataResource struct { // * AWS::S3::AccessPoint // // * AWS::DynamoDB::Stream + // + // * + // AWS::Glue::Table Type *string // An array of Amazon Resource Name (ARN) strings or partial ARN strings for the @@ -424,7 +437,8 @@ type EventSelector struct { // (disables the filter), or it can filter out Key Management Service or Amazon RDS // Data API events by containing kms.amazonaws.com or rdsdata.amazonaws.com. By // default, ExcludeManagementEventSources is empty, and KMS and Amazon RDS Data API - // events are logged to your trail. + // events are logged to your trail. You can exclude management event sources only + // in regions that support the event source. ExcludeManagementEventSources []string // Specify if you want your event selector to include management events for your diff --git a/service/codegurureviewer/api_op_DescribeCodeReview.go b/service/codegurureviewer/api_op_DescribeCodeReview.go index 63c24e21780..9e2f3379730 100644 --- a/service/codegurureviewer/api_op_DescribeCodeReview.go +++ b/service/codegurureviewer/api_op_DescribeCodeReview.go @@ -284,6 +284,23 @@ func codeReviewCompletedStateRetryable(ctx context.Context, input *DescribeCodeR } } + if err == nil { + pathValue, err := jmespath.Search("CodeReview.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "Failed" + value, ok := pathValue.(types.JobState) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.JobState value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + if err == nil { pathValue, err := jmespath.Search("CodeReview.State", output) if err != nil { diff --git a/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go b/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go index 9ee29523c2f..7e4e05c5288 100644 --- a/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go +++ b/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go @@ -303,6 +303,23 @@ func repositoryAssociationSucceededStateRetryable(ctx context.Context, input *De } } + if err == nil { + pathValue, err := jmespath.Search("RepositoryAssociation.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "Failed" + value, ok := pathValue.(types.RepositoryAssociationState) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.RepositoryAssociationState value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + if err == nil { pathValue, err := jmespath.Search("RepositoryAssociation.State", output) if err != nil { diff --git a/service/configservice/types/enums.go b/service/configservice/types/enums.go index 80e6d361da8..31d4c41ecda 100644 --- a/service/configservice/types/enums.go +++ b/service/configservice/types/enums.go @@ -671,6 +671,12 @@ const ( ResourceTypeEFSFileSystem ResourceType = "AWS::EFS::FileSystem" ResourceTypeEKSCluster ResourceType = "AWS::EKS::Cluster" ResourceTypeOpenSearchDomain ResourceType = "AWS::OpenSearch::Domain" + ResourceTypeTransitGateway ResourceType = "AWS::EC2::TransitGateway" + ResourceTypeKinesisStream ResourceType = "AWS::Kinesis::Stream" + ResourceTypeKinesisStreamConsumer ResourceType = "AWS::Kinesis::StreamConsumer" + ResourceTypeCodeDeployApplication ResourceType = "AWS::CodeDeploy::Application" + ResourceTypeCodeDeployDeploymentConfig ResourceType = "AWS::CodeDeploy::DeploymentConfig" + ResourceTypeCodeDeployDeploymentGroup ResourceType = "AWS::CodeDeploy::DeploymentGroup" ) // Values returns all known values for ResourceType. Note that this can be expanded @@ -787,6 +793,12 @@ func (ResourceType) Values() []ResourceType { "AWS::EFS::FileSystem", "AWS::EKS::Cluster", "AWS::OpenSearch::Domain", + "AWS::EC2::TransitGateway", + "AWS::Kinesis::Stream", + "AWS::Kinesis::StreamConsumer", + "AWS::CodeDeploy::Application", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::CodeDeploy::DeploymentGroup", } } diff --git a/service/connect/api_op_AssociateDefaultVocabulary.go b/service/connect/api_op_AssociateDefaultVocabulary.go new file mode 100644 index 00000000000..538ce7c6e3f --- /dev/null +++ b/service/connect/api_op_AssociateDefaultVocabulary.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Associates an existing vocabulary as the default. Contact Lens for Amazon +// Connect uses the vocabulary in post-call and real-time analysis sessions for the +// given language. +func (c *Client) AssociateDefaultVocabulary(ctx context.Context, params *AssociateDefaultVocabularyInput, optFns ...func(*Options)) (*AssociateDefaultVocabularyOutput, error) { + if params == nil { + params = &AssociateDefaultVocabularyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateDefaultVocabulary", params, optFns, c.addOperationAssociateDefaultVocabularyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateDefaultVocabularyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateDefaultVocabularyInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + // + // This member is required. + LanguageCode types.VocabularyLanguageCode + + // The identifier of the custom vocabulary. If this is empty, the default is set to + // none. + VocabularyId *string + + noSmithyDocumentSerde +} + +type AssociateDefaultVocabularyOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateDefaultVocabularyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpAssociateDefaultVocabulary{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpAssociateDefaultVocabulary{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpAssociateDefaultVocabularyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateDefaultVocabulary(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssociateDefaultVocabulary(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "AssociateDefaultVocabulary", + } +} diff --git a/service/connect/api_op_CreateIntegrationAssociation.go b/service/connect/api_op_CreateIntegrationAssociation.go index fe981f2f98d..bff885a25cf 100644 --- a/service/connect/api_op_CreateIntegrationAssociation.go +++ b/service/connect/api_op_CreateIntegrationAssociation.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an AWS resource association with an Amazon Connect instance. +// Creates an Amazon Web Services resource association with an Amazon Connect +// instance. func (c *Client) CreateIntegrationAssociation(ctx context.Context, params *CreateIntegrationAssociationInput, optFns ...func(*Options)) (*CreateIntegrationAssociationOutput, error) { if params == nil { params = &CreateIntegrationAssociationInput{} diff --git a/service/connect/api_op_CreateUserHierarchyGroup.go b/service/connect/api_op_CreateUserHierarchyGroup.go index 37649ca96ed..24f4ef39f22 100644 --- a/service/connect/api_op_CreateUserHierarchyGroup.go +++ b/service/connect/api_op_CreateUserHierarchyGroup.go @@ -43,6 +43,9 @@ type CreateUserHierarchyGroupInput struct { // level one if the parent group ID is null. ParentGroupId *string + // The tags used to organize, track, or control access for this resource. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/connect/api_op_CreateVocabulary.go b/service/connect/api_op_CreateVocabulary.go new file mode 100644 index 00000000000..4660b5d6355 --- /dev/null +++ b/service/connect/api_op_CreateVocabulary.go @@ -0,0 +1,205 @@ +// 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/aws/signer/v4" + "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 a custom vocabulary associated with your Amazon Connect instance. You +// can set a custom vocabulary to be your default vocabulary for a given language. +// Contact Lens for Amazon Connect uses the default vocabulary in post-call and +// real-time contact analysis sessions for that language. +func (c *Client) CreateVocabulary(ctx context.Context, params *CreateVocabularyInput, optFns ...func(*Options)) (*CreateVocabularyOutput, error) { + if params == nil { + params = &CreateVocabularyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateVocabulary", params, optFns, c.addOperationCreateVocabularyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateVocabularyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateVocabularyInput struct { + + // The content of the custom vocabulary in plain-text format with a table of + // values. Each row in the table represents a word or a phrase, described with + // Phrase, IPA, SoundsLike, and DisplayAs fields. Separate the fields with TAB + // characters. The size limit is 50KB. For more information, see Create a custom + // vocabulary using a table + // (https://docs.aws.amazon.com/transcribe/latest/dg/custom-vocabulary.html#create-vocabulary-table). + // + // This member is required. + Content *string + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + // + // This member is required. + LanguageCode types.VocabularyLanguageCode + + // A unique name of the custom vocabulary. + // + // This member is required. + VocabularyName *string + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. If a create request is received more than once with same client + // token, subsequent requests return the previous response without creating a + // vocabulary again. + ClientToken *string + + // The tags used to organize, track, or control access for this resource. + Tags map[string]string + + noSmithyDocumentSerde +} + +type CreateVocabularyOutput struct { + + // The current state of the custom vocabulary. + // + // This member is required. + State types.VocabularyState + + // The Amazon Resource Name (ARN) of the custom vocabulary. + // + // This member is required. + VocabularyArn *string + + // The identifier of the custom vocabulary. + // + // This member is required. + VocabularyId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateVocabularyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateVocabulary{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateVocabulary{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateVocabularyMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateVocabularyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateVocabulary(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateVocabulary struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateVocabulary) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateVocabulary) 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.(*CreateVocabularyInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateVocabularyInput ") + } + + 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_opCreateVocabularyMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateVocabulary{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateVocabulary(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "CreateVocabulary", + } +} diff --git a/service/connect/api_op_DeleteIntegrationAssociation.go b/service/connect/api_op_DeleteIntegrationAssociation.go index bd1e8d30473..ac0dce09fa5 100644 --- a/service/connect/api_op_DeleteIntegrationAssociation.go +++ b/service/connect/api_op_DeleteIntegrationAssociation.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an AWS resource association from an Amazon Connect instance. The -// association must not have any use cases associated with it. +// Deletes an Amazon Web Services resource association from an Amazon Connect +// instance. The association must not have any use cases associated with it. func (c *Client) DeleteIntegrationAssociation(ctx context.Context, params *DeleteIntegrationAssociationInput, optFns ...func(*Options)) (*DeleteIntegrationAssociationOutput, error) { if params == nil { params = &DeleteIntegrationAssociationInput{} diff --git a/service/connect/api_op_DeleteVocabulary.go b/service/connect/api_op_DeleteVocabulary.go new file mode 100644 index 00000000000..271ba4ab0be --- /dev/null +++ b/service/connect/api_op_DeleteVocabulary.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes the vocabulary that has the given identifier. +func (c *Client) DeleteVocabulary(ctx context.Context, params *DeleteVocabularyInput, optFns ...func(*Options)) (*DeleteVocabularyOutput, error) { + if params == nil { + params = &DeleteVocabularyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteVocabulary", params, optFns, c.addOperationDeleteVocabularyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteVocabularyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteVocabularyInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The identifier of the custom vocabulary. + // + // This member is required. + VocabularyId *string + + noSmithyDocumentSerde +} + +type DeleteVocabularyOutput struct { + + // The current state of the custom vocabulary. + // + // This member is required. + State types.VocabularyState + + // The Amazon Resource Name (ARN) of the custom vocabulary. + // + // This member is required. + VocabularyArn *string + + // The identifier of the custom vocabulary. + // + // This member is required. + VocabularyId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteVocabularyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteVocabulary{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteVocabulary{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteVocabularyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteVocabulary(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteVocabulary(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "DeleteVocabulary", + } +} diff --git a/service/connect/api_op_DescribeVocabulary.go b/service/connect/api_op_DescribeVocabulary.go new file mode 100644 index 00000000000..e8f7fa13aa5 --- /dev/null +++ b/service/connect/api_op_DescribeVocabulary.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes the specified vocabulary. +func (c *Client) DescribeVocabulary(ctx context.Context, params *DescribeVocabularyInput, optFns ...func(*Options)) (*DescribeVocabularyOutput, error) { + if params == nil { + params = &DescribeVocabularyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeVocabulary", params, optFns, c.addOperationDescribeVocabularyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeVocabularyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeVocabularyInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The identifier of the custom vocabulary. + // + // This member is required. + VocabularyId *string + + noSmithyDocumentSerde +} + +type DescribeVocabularyOutput struct { + + // A list of specific words that you want Contact Lens for Amazon Connect to + // recognize in your audio input. They are generally domain-specific words and + // phrases, words that Contact Lens is not recognizing, or proper nouns. + // + // This member is required. + Vocabulary *types.Vocabulary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeVocabularyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeVocabulary{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeVocabulary{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeVocabularyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeVocabulary(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeVocabulary(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "DescribeVocabulary", + } +} diff --git a/service/connect/api_op_ListDefaultVocabularies.go b/service/connect/api_op_ListDefaultVocabularies.go new file mode 100644 index 00000000000..5bf05702e40 --- /dev/null +++ b/service/connect/api_op_ListDefaultVocabularies.go @@ -0,0 +1,228 @@ +// 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/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the default vocabularies for the specified Amazon Connect instance. +func (c *Client) ListDefaultVocabularies(ctx context.Context, params *ListDefaultVocabulariesInput, optFns ...func(*Options)) (*ListDefaultVocabulariesOutput, error) { + if params == nil { + params = &ListDefaultVocabulariesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListDefaultVocabularies", params, optFns, c.addOperationListDefaultVocabulariesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListDefaultVocabulariesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListDefaultVocabulariesInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + LanguageCode types.VocabularyLanguageCode + + // The maximum number of results to return per page. + 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 ListDefaultVocabulariesOutput struct { + + // A list of default vocabularies. + // + // This member is required. + DefaultVocabularyList []types.DefaultVocabulary + + // If there are additional results, this is the token for the next set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListDefaultVocabulariesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListDefaultVocabularies{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListDefaultVocabularies{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListDefaultVocabulariesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListDefaultVocabularies(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListDefaultVocabulariesAPIClient is a client that implements the +// ListDefaultVocabularies operation. +type ListDefaultVocabulariesAPIClient interface { + ListDefaultVocabularies(context.Context, *ListDefaultVocabulariesInput, ...func(*Options)) (*ListDefaultVocabulariesOutput, error) +} + +var _ ListDefaultVocabulariesAPIClient = (*Client)(nil) + +// ListDefaultVocabulariesPaginatorOptions is the paginator options for +// ListDefaultVocabularies +type ListDefaultVocabulariesPaginatorOptions struct { + // The maximum number of results to return per page. + 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 +} + +// ListDefaultVocabulariesPaginator is a paginator for ListDefaultVocabularies +type ListDefaultVocabulariesPaginator struct { + options ListDefaultVocabulariesPaginatorOptions + client ListDefaultVocabulariesAPIClient + params *ListDefaultVocabulariesInput + nextToken *string + firstPage bool +} + +// NewListDefaultVocabulariesPaginator returns a new +// ListDefaultVocabulariesPaginator +func NewListDefaultVocabulariesPaginator(client ListDefaultVocabulariesAPIClient, params *ListDefaultVocabulariesInput, optFns ...func(*ListDefaultVocabulariesPaginatorOptions)) *ListDefaultVocabulariesPaginator { + if params == nil { + params = &ListDefaultVocabulariesInput{} + } + + options := ListDefaultVocabulariesPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListDefaultVocabulariesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListDefaultVocabulariesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListDefaultVocabularies page. +func (p *ListDefaultVocabulariesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListDefaultVocabulariesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + params.MaxResults = p.options.Limit + + result, err := p.client.ListDefaultVocabularies(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListDefaultVocabularies(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "ListDefaultVocabularies", + } +} diff --git a/service/connect/api_op_ListIntegrationAssociations.go b/service/connect/api_op_ListIntegrationAssociations.go index 99c5918873b..aec06d7d15f 100644 --- a/service/connect/api_op_ListIntegrationAssociations.go +++ b/service/connect/api_op_ListIntegrationAssociations.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Provides summary information about the AWS resource associations for the -// specified Amazon Connect instance. +// Provides summary information about the Amazon Web Services resource associations +// for the specified Amazon Connect instance. func (c *Client) ListIntegrationAssociations(ctx context.Context, params *ListIntegrationAssociationsInput, optFns ...func(*Options)) (*ListIntegrationAssociationsOutput, error) { if params == nil { params = &ListIntegrationAssociationsInput{} diff --git a/service/connect/api_op_SearchVocabularies.go b/service/connect/api_op_SearchVocabularies.go new file mode 100644 index 00000000000..82c87e5bddc --- /dev/null +++ b/service/connect/api_op_SearchVocabularies.go @@ -0,0 +1,232 @@ +// 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/aws/signer/v4" + "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 for vocabularies within a specific Amazon Connect instance using State, +// NameStartsWith, and LanguageCode. +func (c *Client) SearchVocabularies(ctx context.Context, params *SearchVocabulariesInput, optFns ...func(*Options)) (*SearchVocabulariesOutput, error) { + if params == nil { + params = &SearchVocabulariesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SearchVocabularies", params, optFns, c.addOperationSearchVocabulariesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SearchVocabulariesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SearchVocabulariesInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + LanguageCode types.VocabularyLanguageCode + + // The maximum number of results to return per page. + MaxResults int32 + + // The starting pattern of the name of the vocabulary. + NameStartsWith *string + + // 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 + + // The current state of the custom vocabulary. + State types.VocabularyState + + noSmithyDocumentSerde +} + +type SearchVocabulariesOutput struct { + + // If there are additional results, this is the token for the next set of results. + NextToken *string + + // The list of the available custom vocabularies. + VocabularySummaryList []types.VocabularySummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSearchVocabulariesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpSearchVocabularies{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpSearchVocabularies{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpSearchVocabulariesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSearchVocabularies(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// SearchVocabulariesAPIClient is a client that implements the SearchVocabularies +// operation. +type SearchVocabulariesAPIClient interface { + SearchVocabularies(context.Context, *SearchVocabulariesInput, ...func(*Options)) (*SearchVocabulariesOutput, error) +} + +var _ SearchVocabulariesAPIClient = (*Client)(nil) + +// SearchVocabulariesPaginatorOptions is the paginator options for +// SearchVocabularies +type SearchVocabulariesPaginatorOptions struct { + // The maximum number of results to return per page. + 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 +} + +// SearchVocabulariesPaginator is a paginator for SearchVocabularies +type SearchVocabulariesPaginator struct { + options SearchVocabulariesPaginatorOptions + client SearchVocabulariesAPIClient + params *SearchVocabulariesInput + nextToken *string + firstPage bool +} + +// NewSearchVocabulariesPaginator returns a new SearchVocabulariesPaginator +func NewSearchVocabulariesPaginator(client SearchVocabulariesAPIClient, params *SearchVocabulariesInput, optFns ...func(*SearchVocabulariesPaginatorOptions)) *SearchVocabulariesPaginator { + if params == nil { + params = &SearchVocabulariesInput{} + } + + options := SearchVocabulariesPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &SearchVocabulariesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *SearchVocabulariesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next SearchVocabularies page. +func (p *SearchVocabulariesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*SearchVocabulariesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + params.MaxResults = p.options.Limit + + result, err := p.client.SearchVocabularies(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opSearchVocabularies(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "SearchVocabularies", + } +} diff --git a/service/connect/api_op_UpdateContactFlowMetadata.go b/service/connect/api_op_UpdateContactFlowMetadata.go index 6d30bb974e9..5a8178ac999 100644 --- a/service/connect/api_op_UpdateContactFlowMetadata.go +++ b/service/connect/api_op_UpdateContactFlowMetadata.go @@ -46,7 +46,7 @@ type UpdateContactFlowMetadataInput struct { // The description of the contact flow. Description *string - // TThe name of the contact flow. + // The name of the contact flow. Name *string noSmithyDocumentSerde diff --git a/service/connect/api_op_UpdateInstanceAttribute.go b/service/connect/api_op_UpdateInstanceAttribute.go index 4e3b2a34eda..6e7482af21c 100644 --- a/service/connect/api_op_UpdateInstanceAttribute.go +++ b/service/connect/api_op_UpdateInstanceAttribute.go @@ -31,8 +31,8 @@ func (c *Client) UpdateInstanceAttribute(ctx context.Context, params *UpdateInst type UpdateInstanceAttributeInput struct { // The type of attribute. Only allowlisted customers can consume - // USE_CUSTOM_TTS_VOICES. To access this feature, contact AWS Support for - // allowlisting. + // USE_CUSTOM_TTS_VOICES. To access this feature, contact Amazon Web Services + // Support for allowlisting. // // This member is required. AttributeType types.InstanceAttributeType diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 3fd5e98bac4..1eb5e4deb8b 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -235,6 +235,101 @@ func awsRestjson1_deserializeOpErrorAssociateBot(response *smithyhttp.Response, } } +type awsRestjson1_deserializeOpAssociateDefaultVocabulary struct { +} + +func (*awsRestjson1_deserializeOpAssociateDefaultVocabulary) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpAssociateDefaultVocabulary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorAssociateDefaultVocabulary(response, &metadata) + } + output := &AssociateDefaultVocabularyOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorAssociateDefaultVocabulary(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(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_deserializeOpAssociateInstanceStorageConfig struct { } @@ -3297,14 +3392,14 @@ func awsRestjson1_deserializeOpDocumentCreateUserHierarchyGroupOutput(v **Create return nil } -type awsRestjson1_deserializeOpDeleteContactFlow struct { +type awsRestjson1_deserializeOpCreateVocabulary struct { } -func (*awsRestjson1_deserializeOpDeleteContactFlow) ID() string { +func (*awsRestjson1_deserializeOpCreateVocabulary) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteContactFlow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateVocabulary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3318,21 +3413,43 @@ func (m *awsRestjson1_deserializeOpDeleteContactFlow) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteContactFlow(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateVocabulary(response, &metadata) } - output := &DeleteContactFlowOutput{} + output := &CreateVocabularyOutput{} 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) + + 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_deserializeOpDocumentCreateVocabularyOutput(&output, shape) + 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 with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), } } return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteContactFlow(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateVocabulary(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3379,15 +3496,18 @@ func awsRestjson1_deserializeOpErrorDeleteContactFlow(response *smithyhttp.Respo 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("ResourceConflictException", errorCode): + return awsRestjson1_deserializeErrorResourceConflictException(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) @@ -3401,14 +3521,72 @@ func awsRestjson1_deserializeOpErrorDeleteContactFlow(response *smithyhttp.Respo } } -type awsRestjson1_deserializeOpDeleteContactFlowModule struct { +func awsRestjson1_deserializeOpDocumentCreateVocabularyOutput(v **CreateVocabularyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateVocabularyOutput + if *v == nil { + sv = &CreateVocabularyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyState to be of type string, got %T instead", value) + } + sv.State = types.VocabularyState(jtv) + } + + case "VocabularyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.VocabularyArn = ptr.String(jtv) + } + + case "VocabularyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyId to be of type string, got %T instead", value) + } + sv.VocabularyId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func (*awsRestjson1_deserializeOpDeleteContactFlowModule) ID() string { +type awsRestjson1_deserializeOpDeleteContactFlow struct { +} + +func (*awsRestjson1_deserializeOpDeleteContactFlow) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteContactFlowModule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteContactFlow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3422,15 +3600,21 @@ func (m *awsRestjson1_deserializeOpDeleteContactFlowModule) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteContactFlowModule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteContactFlow(response, &metadata) } - output := &DeleteContactFlowModuleOutput{} + output := &DeleteContactFlowOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteContactFlowModule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteContactFlow(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3499,14 +3683,14 @@ func awsRestjson1_deserializeOpErrorDeleteContactFlowModule(response *smithyhttp } } -type awsRestjson1_deserializeOpDeleteHoursOfOperation struct { +type awsRestjson1_deserializeOpDeleteContactFlowModule struct { } -func (*awsRestjson1_deserializeOpDeleteHoursOfOperation) ID() string { +func (*awsRestjson1_deserializeOpDeleteContactFlowModule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteHoursOfOperation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteContactFlowModule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3520,21 +3704,15 @@ func (m *awsRestjson1_deserializeOpDeleteHoursOfOperation) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteContactFlowModule(response, &metadata) } - output := &DeleteHoursOfOperationOutput{} + output := &DeleteContactFlowModuleOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteContactFlowModule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3575,6 +3753,9 @@ func awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response *smithyhttp. } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) @@ -3600,14 +3781,14 @@ func awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response *smithyhttp. } } -type awsRestjson1_deserializeOpDeleteInstance struct { +type awsRestjson1_deserializeOpDeleteHoursOfOperation struct { } -func (*awsRestjson1_deserializeOpDeleteInstance) ID() string { +func (*awsRestjson1_deserializeOpDeleteHoursOfOperation) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteHoursOfOperation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3621,9 +3802,9 @@ func (m *awsRestjson1_deserializeOpDeleteInstance) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteInstance(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response, &metadata) } - output := &DeleteInstanceOutput{} + output := &DeleteHoursOfOperationOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -3635,7 +3816,7 @@ func (m *awsRestjson1_deserializeOpDeleteInstance) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteHoursOfOperation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3679,12 +3860,18 @@ func awsRestjson1_deserializeOpErrorDeleteInstance(response *smithyhttp.Response 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, @@ -3695,14 +3882,14 @@ func awsRestjson1_deserializeOpErrorDeleteInstance(response *smithyhttp.Response } } -type awsRestjson1_deserializeOpDeleteIntegrationAssociation struct { +type awsRestjson1_deserializeOpDeleteInstance struct { } -func (*awsRestjson1_deserializeOpDeleteIntegrationAssociation) ID() string { +func (*awsRestjson1_deserializeOpDeleteInstance) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteIntegrationAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3716,9 +3903,9 @@ func (m *awsRestjson1_deserializeOpDeleteIntegrationAssociation) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteInstance(response, &metadata) } - output := &DeleteIntegrationAssociationOutput{} + output := &DeleteInstanceOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -3730,7 +3917,7 @@ func (m *awsRestjson1_deserializeOpDeleteIntegrationAssociation) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3780,9 +3967,6 @@ func awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response *smith 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, @@ -3793,14 +3977,14 @@ func awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response *smith } } -type awsRestjson1_deserializeOpDeleteQuickConnect struct { +type awsRestjson1_deserializeOpDeleteIntegrationAssociation struct { } -func (*awsRestjson1_deserializeOpDeleteQuickConnect) ID() string { +func (*awsRestjson1_deserializeOpDeleteIntegrationAssociation) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteQuickConnect) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteIntegrationAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3814,7 +3998,105 @@ func (m *awsRestjson1_deserializeOpDeleteQuickConnect) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteQuickConnect(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response, &metadata) + } + output := &DeleteIntegrationAssociationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteIntegrationAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(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_deserializeOpDeleteQuickConnect struct { +} + +func (*awsRestjson1_deserializeOpDeleteQuickConnect) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteQuickConnect) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteQuickConnect(response, &metadata) } output := &DeleteQuickConnectOutput{} out.Result = output @@ -4304,6 +4586,190 @@ func awsRestjson1_deserializeOpErrorDeleteUserHierarchyGroup(response *smithyhtt } } +type awsRestjson1_deserializeOpDeleteVocabulary struct { +} + +func (*awsRestjson1_deserializeOpDeleteVocabulary) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteVocabulary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteVocabulary(response, &metadata) + } + output := &DeleteVocabularyOutput{} + 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_deserializeOpDocumentDeleteVocabularyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteVocabulary(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceInUseException", errorCode): + return awsRestjson1_deserializeErrorResourceInUseException(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_deserializeOpDocumentDeleteVocabularyOutput(v **DeleteVocabularyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteVocabularyOutput + if *v == nil { + sv = &DeleteVocabularyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyState to be of type string, got %T instead", value) + } + sv.State = types.VocabularyState(jtv) + } + + case "VocabularyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.VocabularyArn = ptr.String(jtv) + } + + case "VocabularyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyId to be of type string, got %T instead", value) + } + sv.VocabularyId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeAgentStatus struct { } @@ -6056,11 +6522,170 @@ func awsRestjson1_deserializeOpDocumentDescribeRoutingProfileOutput(v **Describe type awsRestjson1_deserializeOpDescribeSecurityProfile struct { } -func (*awsRestjson1_deserializeOpDescribeSecurityProfile) ID() string { +func (*awsRestjson1_deserializeOpDescribeSecurityProfile) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeSecurityProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeSecurityProfile(response, &metadata) + } + output := &DescribeSecurityProfileOutput{} + 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_deserializeOpDocumentDescribeSecurityProfileOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeSecurityProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("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_deserializeOpDocumentDescribeSecurityProfileOutput(v **DescribeSecurityProfileOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeSecurityProfileOutput + if *v == nil { + sv = &DescribeSecurityProfileOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SecurityProfile": + if err := awsRestjson1_deserializeDocumentSecurityProfile(&sv.SecurityProfile, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeUser struct { +} + +func (*awsRestjson1_deserializeOpDescribeUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeSecurityProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6074,9 +6699,9 @@ func (m *awsRestjson1_deserializeOpDescribeSecurityProfile) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeSecurityProfile(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeUser(response, &metadata) } - output := &DescribeSecurityProfileOutput{} + output := &DescribeUserOutput{} out.Result = output var buff [1024]byte @@ -6097,7 +6722,7 @@ func (m *awsRestjson1_deserializeOpDescribeSecurityProfile) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeSecurityProfileOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6110,7 +6735,7 @@ func (m *awsRestjson1_deserializeOpDescribeSecurityProfile) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeSecurityProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6176,7 +6801,7 @@ func awsRestjson1_deserializeOpErrorDescribeSecurityProfile(response *smithyhttp } } -func awsRestjson1_deserializeOpDocumentDescribeSecurityProfileOutput(v **DescribeSecurityProfileOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6189,17 +6814,17 @@ func awsRestjson1_deserializeOpDocumentDescribeSecurityProfileOutput(v **Describ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeSecurityProfileOutput + var sv *DescribeUserOutput if *v == nil { - sv = &DescribeSecurityProfileOutput{} + sv = &DescribeUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "SecurityProfile": - if err := awsRestjson1_deserializeDocumentSecurityProfile(&sv.SecurityProfile, value); err != nil { + case "User": + if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { return err } @@ -6212,14 +6837,14 @@ func awsRestjson1_deserializeOpDocumentDescribeSecurityProfileOutput(v **Describ return nil } -type awsRestjson1_deserializeOpDescribeUser struct { +type awsRestjson1_deserializeOpDescribeUserHierarchyGroup struct { } -func (*awsRestjson1_deserializeOpDescribeUser) ID() string { +func (*awsRestjson1_deserializeOpDescribeUserHierarchyGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeUserHierarchyGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6233,9 +6858,9 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeUserHierarchyGroup(response, &metadata) } - output := &DescribeUserOutput{} + output := &DescribeUserHierarchyGroupOutput{} out.Result = output var buff [1024]byte @@ -6256,7 +6881,7 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6269,7 +6894,7 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeUserHierarchyGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6335,7 +6960,7 @@ func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(v **DescribeUserHierarchyGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6348,17 +6973,17 @@ func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeUserOutput + var sv *DescribeUserHierarchyGroupOutput if *v == nil { - sv = &DescribeUserOutput{} + sv = &DescribeUserHierarchyGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "User": - if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { + case "HierarchyGroup": + if err := awsRestjson1_deserializeDocumentHierarchyGroup(&sv.HierarchyGroup, value); err != nil { return err } @@ -6371,14 +6996,14 @@ func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput return nil } -type awsRestjson1_deserializeOpDescribeUserHierarchyGroup struct { +type awsRestjson1_deserializeOpDescribeUserHierarchyStructure struct { } -func (*awsRestjson1_deserializeOpDescribeUserHierarchyGroup) ID() string { +func (*awsRestjson1_deserializeOpDescribeUserHierarchyStructure) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeUserHierarchyGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeUserHierarchyStructure) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6392,9 +7017,9 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyGroup) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeUserHierarchyGroup(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response, &metadata) } - output := &DescribeUserHierarchyGroupOutput{} + output := &DescribeUserHierarchyStructureOutput{} out.Result = output var buff [1024]byte @@ -6415,7 +7040,7 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyGroup) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeUserHierarchyStructureOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6428,7 +7053,7 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyGroup) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeUserHierarchyGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6494,7 +7119,7 @@ func awsRestjson1_deserializeOpErrorDescribeUserHierarchyGroup(response *smithyh } } -func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(v **DescribeUserHierarchyGroupOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyStructureOutput(v **DescribeUserHierarchyStructureOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6507,17 +7132,17 @@ func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(v **Desc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeUserHierarchyGroupOutput + var sv *DescribeUserHierarchyStructureOutput if *v == nil { - sv = &DescribeUserHierarchyGroupOutput{} + sv = &DescribeUserHierarchyStructureOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "HierarchyGroup": - if err := awsRestjson1_deserializeDocumentHierarchyGroup(&sv.HierarchyGroup, value); err != nil { + case "HierarchyStructure": + if err := awsRestjson1_deserializeDocumentHierarchyStructure(&sv.HierarchyStructure, value); err != nil { return err } @@ -6530,14 +7155,14 @@ func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyGroupOutput(v **Desc return nil } -type awsRestjson1_deserializeOpDescribeUserHierarchyStructure struct { +type awsRestjson1_deserializeOpDescribeVocabulary struct { } -func (*awsRestjson1_deserializeOpDescribeUserHierarchyStructure) ID() string { +func (*awsRestjson1_deserializeOpDescribeVocabulary) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeUserHierarchyStructure) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeVocabulary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6551,9 +7176,9 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyStructure) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeVocabulary(response, &metadata) } - output := &DescribeUserHierarchyStructureOutput{} + output := &DescribeVocabularyOutput{} out.Result = output var buff [1024]byte @@ -6574,7 +7199,7 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyStructure) HandleDeseria return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeUserHierarchyStructureOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeVocabularyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6587,7 +7212,7 @@ func (m *awsRestjson1_deserializeOpDescribeUserHierarchyStructure) HandleDeseria return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeVocabulary(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6628,12 +7253,12 @@ func awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response *smi } 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) @@ -6653,7 +7278,7 @@ func awsRestjson1_deserializeOpErrorDescribeUserHierarchyStructure(response *smi } } -func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyStructureOutput(v **DescribeUserHierarchyStructureOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeVocabularyOutput(v **DescribeVocabularyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6666,17 +7291,17 @@ func awsRestjson1_deserializeOpDocumentDescribeUserHierarchyStructureOutput(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeUserHierarchyStructureOutput + var sv *DescribeVocabularyOutput if *v == nil { - sv = &DescribeUserHierarchyStructureOutput{} + sv = &DescribeVocabularyOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "HierarchyStructure": - if err := awsRestjson1_deserializeDocumentHierarchyStructure(&sv.HierarchyStructure, value); err != nil { + case "Vocabulary": + if err := awsRestjson1_deserializeDocumentVocabulary(&sv.Vocabulary, value); err != nil { return err } @@ -9001,14 +9626,182 @@ func awsRestjson1_deserializeOpDocumentListContactFlowsOutput(v **ListContactFlo return nil } -type awsRestjson1_deserializeOpListContactReferences struct { +type awsRestjson1_deserializeOpListContactReferences struct { +} + +func (*awsRestjson1_deserializeOpListContactReferences) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListContactReferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListContactReferences(response, &metadata) + } + output := &ListContactReferencesOutput{} + 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_deserializeOpDocumentListContactReferencesOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListContactReferences(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("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_deserializeOpDocumentListContactReferencesOutput(v **ListContactReferencesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListContactReferencesOutput + if *v == nil { + sv = &ListContactReferencesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "ReferenceSummaryList": + if err := awsRestjson1_deserializeDocumentReferenceSummaryList(&sv.ReferenceSummaryList, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListDefaultVocabularies struct { } -func (*awsRestjson1_deserializeOpListContactReferences) ID() string { +func (*awsRestjson1_deserializeOpListDefaultVocabularies) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListContactReferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDefaultVocabularies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9022,9 +9815,9 @@ func (m *awsRestjson1_deserializeOpListContactReferences) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListContactReferences(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDefaultVocabularies(response, &metadata) } - output := &ListContactReferencesOutput{} + output := &ListDefaultVocabulariesOutput{} out.Result = output var buff [1024]byte @@ -9045,7 +9838,7 @@ func (m *awsRestjson1_deserializeOpListContactReferences) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListContactReferencesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDefaultVocabulariesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9058,7 +9851,7 @@ func (m *awsRestjson1_deserializeOpListContactReferences) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListContactReferences(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDefaultVocabularies(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9099,18 +9892,15 @@ func awsRestjson1_deserializeOpErrorListContactReferences(response *smithyhttp.R } 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) @@ -9124,7 +9914,7 @@ func awsRestjson1_deserializeOpErrorListContactReferences(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentListContactReferencesOutput(v **ListContactReferencesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDefaultVocabulariesOutput(v **ListDefaultVocabulariesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9137,29 +9927,29 @@ func awsRestjson1_deserializeOpDocumentListContactReferencesOutput(v **ListConta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListContactReferencesOutput + var sv *ListDefaultVocabulariesOutput if *v == nil { - sv = &ListContactReferencesOutput{} + sv = &ListDefaultVocabulariesOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "DefaultVocabularyList": + if err := awsRestjson1_deserializeDocumentDefaultVocabularyList(&sv.DefaultVocabularyList, 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) + return fmt.Errorf("expected VocabularyNextToken to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } - case "ReferenceSummaryList": - if err := awsRestjson1_deserializeDocumentReferenceSummaryList(&sv.ReferenceSummaryList, value); err != nil { - return err - } - default: _, _ = key, value @@ -12762,6 +13552,171 @@ func awsRestjson1_deserializeOpErrorResumeContactRecording(response *smithyhttp. } } +type awsRestjson1_deserializeOpSearchVocabularies struct { +} + +func (*awsRestjson1_deserializeOpSearchVocabularies) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpSearchVocabularies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorSearchVocabularies(response, &metadata) + } + output := &SearchVocabulariesOutput{} + 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_deserializeOpDocumentSearchVocabulariesOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorSearchVocabularies(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentSearchVocabulariesOutput(v **SearchVocabulariesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SearchVocabulariesOutput + if *v == nil { + sv = &SearchVocabulariesOutput{} + } 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 VocabularyNextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "VocabularySummaryList": + if err := awsRestjson1_deserializeDocumentVocabularySummaryList(&sv.VocabularySummaryList, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpStartChatContact struct { } @@ -19290,7 +20245,82 @@ func awsRestjson1_deserializeDocumentCurrentMetricDataCollections(v *[]types.Cur for _, value := range shape { var col types.CurrentMetricData destAddr := &col - if err := awsRestjson1_deserializeDocumentCurrentMetricData(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentCurrentMetricData(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentCurrentMetricResult(v **types.CurrentMetricResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CurrentMetricResult + if *v == nil { + sv = &types.CurrentMetricResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Collections": + if err := awsRestjson1_deserializeDocumentCurrentMetricDataCollections(&sv.Collections, value); err != nil { + return err + } + + case "Dimensions": + if err := awsRestjson1_deserializeDocumentDimensions(&sv.Dimensions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentCurrentMetricResults(v *[]types.CurrentMetricResult, 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.CurrentMetricResult + if *v == nil { + cv = []types.CurrentMetricResult{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.CurrentMetricResult + destAddr := &col + if err := awsRestjson1_deserializeDocumentCurrentMetricResult(&destAddr, value); err != nil { return err } col = *destAddr @@ -19301,7 +20331,7 @@ func awsRestjson1_deserializeDocumentCurrentMetricDataCollections(v *[]types.Cur return nil } -func awsRestjson1_deserializeDocumentCurrentMetricResult(v **types.CurrentMetricResult, value interface{}) error { +func awsRestjson1_deserializeDocumentDefaultVocabulary(v **types.DefaultVocabulary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19314,23 +20344,49 @@ func awsRestjson1_deserializeDocumentCurrentMetricResult(v **types.CurrentMetric return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.CurrentMetricResult + var sv *types.DefaultVocabulary if *v == nil { - sv = &types.CurrentMetricResult{} + sv = &types.DefaultVocabulary{} } else { sv = *v } for key, value := range shape { switch key { - case "Collections": - if err := awsRestjson1_deserializeDocumentCurrentMetricDataCollections(&sv.Collections, value); err != nil { - return err + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceId to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) } - case "Dimensions": - if err := awsRestjson1_deserializeDocumentDimensions(&sv.Dimensions, value); err != nil { - return err + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyLanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = types.VocabularyLanguageCode(jtv) + } + + case "VocabularyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyId to be of type string, got %T instead", value) + } + sv.VocabularyId = ptr.String(jtv) + } + + case "VocabularyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyName to be of type string, got %T instead", value) + } + sv.VocabularyName = ptr.String(jtv) } default: @@ -19342,7 +20398,7 @@ func awsRestjson1_deserializeDocumentCurrentMetricResult(v **types.CurrentMetric return nil } -func awsRestjson1_deserializeDocumentCurrentMetricResults(v *[]types.CurrentMetricResult, value interface{}) error { +func awsRestjson1_deserializeDocumentDefaultVocabularyList(v *[]types.DefaultVocabulary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19355,17 +20411,17 @@ func awsRestjson1_deserializeDocumentCurrentMetricResults(v *[]types.CurrentMetr return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.CurrentMetricResult + var cv []types.DefaultVocabulary if *v == nil { - cv = []types.CurrentMetricResult{} + cv = []types.DefaultVocabulary{} } else { cv = *v } for _, value := range shape { - var col types.CurrentMetricResult + var col types.DefaultVocabulary destAddr := &col - if err := awsRestjson1_deserializeDocumentCurrentMetricResult(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentDefaultVocabulary(&destAddr, value); err != nil { return err } col = *destAddr @@ -19649,6 +20705,11 @@ func awsRestjson1_deserializeDocumentHierarchyGroup(v **types.HierarchyGroup, va sv.Name = ptr.String(jtv) } + case "Tags": + if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { + return err + } + default: _, _ = key, value @@ -24456,3 +25517,253 @@ func awsRestjson1_deserializeDocumentUserSummaryList(v *[]types.UserSummary, val *v = cv return nil } + +func awsRestjson1_deserializeDocumentVocabulary(v **types.Vocabulary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Vocabulary + if *v == nil { + sv = &types.Vocabulary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "Content": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyContent to be of type string, got %T instead", value) + } + sv.Content = ptr.String(jtv) + } + + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyFailureReason to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyLanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = types.VocabularyLanguageCode(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 VocabularyLastModifiedTime to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyState to be of type string, got %T instead", value) + } + sv.State = types.VocabularyState(jtv) + } + + case "Tags": + if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVocabularySummary(v **types.VocabularySummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.VocabularySummary + if *v == nil { + sv = &types.VocabularySummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyFailureReason to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyLanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = types.VocabularyLanguageCode(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 VocabularyLastModifiedTime to be a JSON Number, got %T instead", value) + + } + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VocabularyState to be of type string, got %T instead", value) + } + sv.State = types.VocabularyState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVocabularySummaryList(v *[]types.VocabularySummary, 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.VocabularySummary + if *v == nil { + cv = []types.VocabularySummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VocabularySummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentVocabularySummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} diff --git a/service/connect/doc.go b/service/connect/doc.go index b113e6c31d7..1f94b81e2b9 100644 --- a/service/connect/doc.go +++ b/service/connect/doc.go @@ -13,8 +13,8 @@ // information, see Amazon Connect Service Quotas // (https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html) // in the Amazon Connect Administrator Guide. You can connect programmatically to -// an AWS service by using an endpoint. For a list of Amazon Connect endpoints, see -// Amazon Connect Endpoints +// an Amazon Web Services service by using an endpoint. For a list of Amazon +// Connect endpoints, see Amazon Connect Endpoints // (https://docs.aws.amazon.com/general/latest/gr/connect_region.html). Working // with contact flows? Check out the Amazon Connect Flow language // (https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html). diff --git a/service/connect/generated.json b/service/connect/generated.json index 7652943d858..010de985eaf 100644 --- a/service/connect/generated.json +++ b/service/connect/generated.json @@ -9,6 +9,7 @@ "api_client.go", "api_op_AssociateApprovedOrigin.go", "api_op_AssociateBot.go", + "api_op_AssociateDefaultVocabulary.go", "api_op_AssociateInstanceStorageConfig.go", "api_op_AssociateLambdaFunction.go", "api_op_AssociateLexBot.go", @@ -28,6 +29,7 @@ "api_op_CreateUseCase.go", "api_op_CreateUser.go", "api_op_CreateUserHierarchyGroup.go", + "api_op_CreateVocabulary.go", "api_op_DeleteContactFlow.go", "api_op_DeleteContactFlowModule.go", "api_op_DeleteHoursOfOperation.go", @@ -38,6 +40,7 @@ "api_op_DeleteUseCase.go", "api_op_DeleteUser.go", "api_op_DeleteUserHierarchyGroup.go", + "api_op_DeleteVocabulary.go", "api_op_DescribeAgentStatus.go", "api_op_DescribeContact.go", "api_op_DescribeContactFlow.go", @@ -53,6 +56,7 @@ "api_op_DescribeUser.go", "api_op_DescribeUserHierarchyGroup.go", "api_op_DescribeUserHierarchyStructure.go", + "api_op_DescribeVocabulary.go", "api_op_DisassociateApprovedOrigin.go", "api_op_DisassociateBot.go", "api_op_DisassociateInstanceStorageConfig.go", @@ -71,6 +75,7 @@ "api_op_ListContactFlowModules.go", "api_op_ListContactFlows.go", "api_op_ListContactReferences.go", + "api_op_ListDefaultVocabularies.go", "api_op_ListHoursOfOperations.go", "api_op_ListInstanceAttributes.go", "api_op_ListInstanceStorageConfigs.go", @@ -93,6 +98,7 @@ "api_op_ListUserHierarchyGroups.go", "api_op_ListUsers.go", "api_op_ResumeContactRecording.go", + "api_op_SearchVocabularies.go", "api_op_StartChatContact.go", "api_op_StartContactRecording.go", "api_op_StartContactStreaming.go", diff --git a/service/connect/serializers.go b/service/connect/serializers.go index d46bcfbd701..50a049575dd 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -187,6 +187,96 @@ func awsRestjson1_serializeOpDocumentAssociateBotInput(v *AssociateBotInput, val return nil } +type awsRestjson1_serializeOpAssociateDefaultVocabulary struct { +} + +func (*awsRestjson1_serializeOpAssociateDefaultVocabulary) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpAssociateDefaultVocabulary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssociateDefaultVocabularyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/default-vocabulary/{InstanceId}/{LanguageCode}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsAssociateDefaultVocabularyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentAssociateDefaultVocabularyInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsAssociateDefaultVocabularyInput(v *AssociateDefaultVocabularyInput, 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 + } + } + + if len(v.LanguageCode) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member LanguageCode must not be empty")} + } + if len(v.LanguageCode) > 0 { + if err := encoder.SetURI("LanguageCode").String(string(v.LanguageCode)); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentAssociateDefaultVocabularyInput(v *AssociateDefaultVocabularyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.VocabularyId != nil { + ok := object.Key("VocabularyId") + ok.String(*v.VocabularyId) + } + + return nil +} + type awsRestjson1_serializeOpAssociateInstanceStorageConfig struct { } @@ -2057,6 +2147,116 @@ func awsRestjson1_serializeOpDocumentCreateUserHierarchyGroupInput(v *CreateUser ok.String(*v.ParentGroupId) } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpCreateVocabulary struct { +} + +func (*awsRestjson1_serializeOpCreateVocabulary) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateVocabulary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateVocabularyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/vocabulary/{InstanceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCreateVocabularyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateVocabularyInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateVocabularyInput(v *CreateVocabularyInput, 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_serializeOpDocumentCreateVocabularyInput(v *CreateVocabularyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.Content != nil { + ok := object.Key("Content") + ok.String(*v.Content) + } + + if len(v.LanguageCode) > 0 { + ok := object.Key("LanguageCode") + ok.String(string(v.LanguageCode)) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil { + return err + } + } + + if v.VocabularyName != nil { + ok := object.Key("VocabularyName") + ok.String(*v.VocabularyName) + } + return nil } @@ -2730,6 +2930,73 @@ func awsRestjson1_serializeOpHttpBindingsDeleteUserHierarchyGroupInput(v *Delete return nil } +type awsRestjson1_serializeOpDeleteVocabulary struct { +} + +func (*awsRestjson1_serializeOpDeleteVocabulary) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteVocabulary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteVocabularyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/vocabulary-remove/{InstanceId}/{VocabularyId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteVocabularyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteVocabularyInput(v *DeleteVocabularyInput, 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 + } + } + + if v.VocabularyId == nil || len(*v.VocabularyId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member VocabularyId must not be empty")} + } + if v.VocabularyId != nil { + if err := encoder.SetURI("VocabularyId").String(*v.VocabularyId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDescribeAgentStatus struct { } @@ -3721,6 +3988,73 @@ func awsRestjson1_serializeOpHttpBindingsDescribeUserHierarchyStructureInput(v * return nil } +type awsRestjson1_serializeOpDescribeVocabulary struct { +} + +func (*awsRestjson1_serializeOpDescribeVocabulary) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeVocabulary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeVocabularyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/vocabulary/{InstanceId}/{VocabularyId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeVocabularyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDescribeVocabularyInput(v *DescribeVocabularyInput, 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 + } + } + + if v.VocabularyId == nil || len(*v.VocabularyId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member VocabularyId must not be empty")} + } + if v.VocabularyId != nil { + if err := encoder.SetURI("VocabularyId").String(*v.VocabularyId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDisassociateApprovedOrigin struct { } @@ -5099,6 +5433,97 @@ func awsRestjson1_serializeOpHttpBindingsListContactReferencesInput(v *ListConta return nil } +type awsRestjson1_serializeOpListDefaultVocabularies struct { +} + +func (*awsRestjson1_serializeOpListDefaultVocabularies) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListDefaultVocabularies) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListDefaultVocabulariesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/default-vocabulary-summary/{InstanceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListDefaultVocabulariesInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentListDefaultVocabulariesInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListDefaultVocabulariesInput(v *ListDefaultVocabulariesInput, 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_serializeOpDocumentListDefaultVocabulariesInput(v *ListDefaultVocabulariesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.LanguageCode) > 0 { + ok := object.Key("LanguageCode") + ok.String(string(v.LanguageCode)) + } + + if v.MaxResults != 0 { + ok := object.Key("MaxResults") + ok.Integer(v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListHoursOfOperations struct { } @@ -6614,6 +7039,107 @@ func awsRestjson1_serializeOpDocumentResumeContactRecordingInput(v *ResumeContac return nil } +type awsRestjson1_serializeOpSearchVocabularies struct { +} + +func (*awsRestjson1_serializeOpSearchVocabularies) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchVocabularies) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*SearchVocabulariesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/vocabulary-summary/{InstanceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsSearchVocabulariesInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchVocabulariesInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsSearchVocabulariesInput(v *SearchVocabulariesInput, 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_serializeOpDocumentSearchVocabulariesInput(v *SearchVocabulariesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.LanguageCode) > 0 { + ok := object.Key("LanguageCode") + ok.String(string(v.LanguageCode)) + } + + if v.MaxResults != 0 { + ok := object.Key("MaxResults") + ok.Integer(v.MaxResults) + } + + if v.NameStartsWith != nil { + ok := object.Key("NameStartsWith") + ok.String(*v.NameStartsWith) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if len(v.State) > 0 { + ok := object.Key("State") + ok.String(string(v.State)) + } + + return nil +} + type awsRestjson1_serializeOpStartChatContact struct { } diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 00046120a4b..edace432439 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -1250,6 +1250,84 @@ func (UseCaseType) Values() []UseCaseType { } } +type VocabularyLanguageCode string + +// Enum values for VocabularyLanguageCode +const ( + VocabularyLanguageCodeArAe VocabularyLanguageCode = "ar-AE" + VocabularyLanguageCodeDeCh VocabularyLanguageCode = "de-CH" + VocabularyLanguageCodeDeDe VocabularyLanguageCode = "de-DE" + VocabularyLanguageCodeEnAb VocabularyLanguageCode = "en-AB" + VocabularyLanguageCodeEnAu VocabularyLanguageCode = "en-AU" + VocabularyLanguageCodeEnGb VocabularyLanguageCode = "en-GB" + VocabularyLanguageCodeEnIe VocabularyLanguageCode = "en-IE" + VocabularyLanguageCodeEnIn VocabularyLanguageCode = "en-IN" + VocabularyLanguageCodeEnUs VocabularyLanguageCode = "en-US" + VocabularyLanguageCodeEnWl VocabularyLanguageCode = "en-WL" + VocabularyLanguageCodeEsEs VocabularyLanguageCode = "es-ES" + VocabularyLanguageCodeEsUs VocabularyLanguageCode = "es-US" + VocabularyLanguageCodeFrCa VocabularyLanguageCode = "fr-CA" + VocabularyLanguageCodeFrFr VocabularyLanguageCode = "fr-FR" + VocabularyLanguageCodeHiIn VocabularyLanguageCode = "hi-IN" + VocabularyLanguageCodeItIt VocabularyLanguageCode = "it-IT" + VocabularyLanguageCodeJaJp VocabularyLanguageCode = "ja-JP" + VocabularyLanguageCodeKoKr VocabularyLanguageCode = "ko-KR" + VocabularyLanguageCodePtBr VocabularyLanguageCode = "pt-BR" + VocabularyLanguageCodePtPt VocabularyLanguageCode = "pt-PT" + VocabularyLanguageCodeZhCn VocabularyLanguageCode = "zh-CN" +) + +// Values returns all known values for VocabularyLanguageCode. 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 (VocabularyLanguageCode) Values() []VocabularyLanguageCode { + return []VocabularyLanguageCode{ + "ar-AE", + "de-CH", + "de-DE", + "en-AB", + "en-AU", + "en-GB", + "en-IE", + "en-IN", + "en-US", + "en-WL", + "es-ES", + "es-US", + "fr-CA", + "fr-FR", + "hi-IN", + "it-IT", + "ja-JP", + "ko-KR", + "pt-BR", + "pt-PT", + "zh-CN", + } +} + +type VocabularyState string + +// Enum values for VocabularyState +const ( + VocabularyStateCreationInProgress VocabularyState = "CREATION_IN_PROGRESS" + VocabularyStateActive VocabularyState = "ACTIVE" + VocabularyStateCreationFailed VocabularyState = "CREATION_FAILED" + VocabularyStateDeleteInProgress VocabularyState = "DELETE_IN_PROGRESS" +) + +// Values returns all known values for VocabularyState. 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 (VocabularyState) Values() []VocabularyState { + return []VocabularyState{ + "CREATION_IN_PROGRESS", + "ACTIVE", + "CREATION_FAILED", + "DELETE_IN_PROGRESS", + } +} + type VoiceRecordingTrack string // Enum values for VoiceRecordingTrack diff --git a/service/connect/types/types.go b/service/connect/types/types.go index 98da535ac05..61d8722885c 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -354,6 +354,35 @@ type CurrentMetricResult struct { noSmithyDocumentSerde } +// Contains information about a default vocabulary. +type DefaultVocabulary struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + // + // This member is required. + InstanceId *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + // + // This member is required. + LanguageCode VocabularyLanguageCode + + // The identifier of the custom vocabulary. + // + // This member is required. + VocabularyId *string + + // A unique name of the custom vocabulary. + // + // This member is required. + VocabularyName *string + + noSmithyDocumentSerde +} + // Contains information about the dimensions for a set of metrics. type Dimensions struct { @@ -389,8 +418,9 @@ type Filters struct { // The channel to use to filter the metrics. Channels []Channel - // The queues to use to filter the metrics. You can specify up to 100 queues per - // request. + // The queues to use to filter the metrics. You should specify at least one queue, + // and can specify up to 100 queues per request. The GetCurrentMetricsData API in + // particular requires a queue when you include a Filter in your request. Queues []string noSmithyDocumentSerde @@ -414,6 +444,9 @@ type HierarchyGroup struct { // The name of the hierarchy group. Name *string + // The tags used to organize, track, or control access for this resource. + Tags map[string]string + noSmithyDocumentSerde } @@ -1524,6 +1557,98 @@ type UserSummary struct { noSmithyDocumentSerde } +// Contains information about a custom vocabulary. +type Vocabulary struct { + + // The Amazon Resource Name (ARN) of the custom vocabulary. + // + // This member is required. + Arn *string + + // The identifier of the custom vocabulary. + // + // This member is required. + Id *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + // + // This member is required. + LanguageCode VocabularyLanguageCode + + // The timestamp when the custom vocabulary was last modified. + // + // This member is required. + LastModifiedTime *time.Time + + // A unique name of the custom vocabulary. + // + // This member is required. + Name *string + + // The current state of the custom vocabulary. + // + // This member is required. + State VocabularyState + + // The content of the custom vocabulary in plain-text format with a table of + // values. Each row in the table represents a word or a phrase, described with + // Phrase, IPA, SoundsLike, and DisplayAs fields. Separate the fields with TAB + // characters. For more information, see Create a custom vocabulary using a table + // (https://docs.aws.amazon.com/transcribe/latest/dg/custom-vocabulary.html#create-vocabulary-table). + Content *string + + // The reason why the custom vocabulary was not created. + FailureReason *string + + // The tags used to organize, track, or control access for this resource. + Tags map[string]string + + noSmithyDocumentSerde +} + +// Contains summary information about the custom vocabulary. +type VocabularySummary struct { + + // The Amazon Resource Name (ARN) of the custom vocabulary. + // + // This member is required. + Arn *string + + // The identifier of the custom vocabulary. + // + // This member is required. + Id *string + + // The language code of the vocabulary entries. For a list of languages and their + // corresponding language codes, see What is Amazon Transcribe? + // (https://docs.aws.amazon.com/transcribe/latest/dg/transcribe-whatis.html) + // + // This member is required. + LanguageCode VocabularyLanguageCode + + // The timestamp when the custom vocabulary was last modified. + // + // This member is required. + LastModifiedTime *time.Time + + // A unique name of the custom vocabulary. + // + // This member is required. + Name *string + + // The current state of the custom vocabulary. + // + // This member is required. + State VocabularyState + + // The reason why the custom vocabulary was not created. + FailureReason *string + + noSmithyDocumentSerde +} + // Contains information about the recording configuration settings. type VoiceRecordingConfiguration struct { diff --git a/service/connect/validators.go b/service/connect/validators.go index 4b1dc6f2658..748a3f990a3 100644 --- a/service/connect/validators.go +++ b/service/connect/validators.go @@ -50,6 +50,26 @@ func (m *validateOpAssociateBot) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpAssociateDefaultVocabulary struct { +} + +func (*validateOpAssociateDefaultVocabulary) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateDefaultVocabulary) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateDefaultVocabularyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateDefaultVocabularyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpAssociateInstanceStorageConfig struct { } @@ -430,6 +450,26 @@ func (m *validateOpCreateUser) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpCreateVocabulary struct { +} + +func (*validateOpCreateVocabulary) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateVocabulary) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateVocabularyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateVocabularyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteContactFlow struct { } @@ -630,6 +670,26 @@ func (m *validateOpDeleteUser) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpDeleteVocabulary struct { +} + +func (*validateOpDeleteVocabulary) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteVocabulary) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteVocabularyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteVocabularyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeAgentStatus struct { } @@ -930,6 +990,26 @@ func (m *validateOpDescribeUser) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpDescribeVocabulary struct { +} + +func (*validateOpDescribeVocabulary) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeVocabulary) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeVocabularyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeVocabularyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDisassociateApprovedOrigin struct { } @@ -1290,6 +1370,26 @@ func (m *validateOpListContactReferences) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpListDefaultVocabularies struct { +} + +func (*validateOpListDefaultVocabularies) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListDefaultVocabularies) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListDefaultVocabulariesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListDefaultVocabulariesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListHoursOfOperations struct { } @@ -1710,6 +1810,26 @@ func (m *validateOpResumeContactRecording) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpSearchVocabularies struct { +} + +func (*validateOpSearchVocabularies) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSearchVocabularies) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SearchVocabulariesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSearchVocabulariesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStartChatContact struct { } @@ -2558,6 +2678,10 @@ func addOpAssociateBotValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAssociateBot{}, middleware.After) } +func addOpAssociateDefaultVocabularyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateDefaultVocabulary{}, middleware.After) +} + func addOpAssociateInstanceStorageConfigValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAssociateInstanceStorageConfig{}, middleware.After) } @@ -2634,6 +2758,10 @@ func addOpCreateUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateUser{}, middleware.After) } +func addOpCreateVocabularyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateVocabulary{}, middleware.After) +} + func addOpDeleteContactFlowValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteContactFlow{}, middleware.After) } @@ -2674,6 +2802,10 @@ func addOpDeleteUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteUser{}, middleware.After) } +func addOpDeleteVocabularyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteVocabulary{}, middleware.After) +} + func addOpDescribeAgentStatusValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeAgentStatus{}, middleware.After) } @@ -2734,6 +2866,10 @@ func addOpDescribeUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeUser{}, middleware.After) } +func addOpDescribeVocabularyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeVocabulary{}, middleware.After) +} + func addOpDisassociateApprovedOriginValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDisassociateApprovedOrigin{}, middleware.After) } @@ -2806,6 +2942,10 @@ func addOpListContactReferencesValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpListContactReferences{}, middleware.After) } +func addOpListDefaultVocabulariesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListDefaultVocabularies{}, middleware.After) +} + func addOpListHoursOfOperationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListHoursOfOperations{}, middleware.After) } @@ -2890,6 +3030,10 @@ func addOpResumeContactRecordingValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpResumeContactRecording{}, middleware.After) } +func addOpSearchVocabulariesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSearchVocabularies{}, middleware.After) +} + func addOpStartChatContactValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStartChatContact{}, middleware.After) } @@ -3612,6 +3756,24 @@ func validateOpAssociateBotInput(v *AssociateBotInput) error { } } +func validateOpAssociateDefaultVocabularyInput(v *AssociateDefaultVocabularyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateDefaultVocabularyInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if len(v.LanguageCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LanguageCode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpAssociateInstanceStorageConfigInput(v *AssociateInstanceStorageConfigInput) error { if v == nil { return nil @@ -4043,6 +4205,30 @@ func validateOpCreateUserInput(v *CreateUserInput) error { } } +func validateOpCreateVocabularyInput(v *CreateVocabularyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateVocabularyInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.VocabularyName == nil { + invalidParams.Add(smithy.NewErrParamRequired("VocabularyName")) + } + if len(v.LanguageCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LanguageCode")) + } + if v.Content == nil { + invalidParams.Add(smithy.NewErrParamRequired("Content")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteContactFlowInput(v *DeleteContactFlowInput) error { if v == nil { return nil @@ -4223,6 +4409,24 @@ func validateOpDeleteUserInput(v *DeleteUserInput) error { } } +func validateOpDeleteVocabularyInput(v *DeleteVocabularyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteVocabularyInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.VocabularyId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VocabularyId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeAgentStatusInput(v *DescribeAgentStatusInput) error { if v == nil { return nil @@ -4490,6 +4694,24 @@ func validateOpDescribeUserInput(v *DescribeUserInput) error { } } +func validateOpDescribeVocabularyInput(v *DescribeVocabularyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeVocabularyInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.VocabularyId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VocabularyId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDisassociateApprovedOriginInput(v *DisassociateApprovedOriginInput) error { if v == nil { return nil @@ -4827,6 +5049,21 @@ func validateOpListContactReferencesInput(v *ListContactReferencesInput) error { } } +func validateOpListDefaultVocabulariesInput(v *ListDefaultVocabulariesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListDefaultVocabulariesInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListHoursOfOperationsInput(v *ListHoursOfOperationsInput) error { if v == nil { return nil @@ -5163,6 +5400,21 @@ func validateOpResumeContactRecordingInput(v *ResumeContactRecordingInput) error } } +func validateOpSearchVocabulariesInput(v *SearchVocabulariesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SearchVocabulariesInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStartChatContactInput(v *StartChatContactInput) error { if v == nil { return nil diff --git a/service/ebs/api_op_ListChangedBlocks.go b/service/ebs/api_op_ListChangedBlocks.go index 3894240f7a2..a466f01fcac 100644 --- a/service/ebs/api_op_ListChangedBlocks.go +++ b/service/ebs/api_op_ListChangedBlocks.go @@ -44,14 +44,20 @@ type ListChangedBlocksInput struct { // error occurs. FirstSnapshotId *string - // The number of results to return. + // The maximum number of blocks to be returned by the request. Even if additional + // blocks can be retrieved from the snapshot, the request can return less blocks + // than MaxResults or an empty array of blocks. To retrieve the next set of blocks + // from the snapshot, make another request with the returned NextToken value. The + // value of NextToken is null when there are no more blocks to return. MaxResults *int32 - // The token to request the next page of results. + // The token to request the next page of results. If you specify NextToken, then + // StartingBlockIndex is ignored. NextToken *string // The block index from which the comparison should start. The list in the response // will start from this block index or the next valid block index in the snapshots. + // If you specify NextToken, then StartingBlockIndex is ignored. StartingBlockIndex *int32 noSmithyDocumentSerde @@ -154,7 +160,11 @@ var _ ListChangedBlocksAPIClient = (*Client)(nil) // ListChangedBlocksPaginatorOptions is the paginator options for ListChangedBlocks type ListChangedBlocksPaginatorOptions struct { - // The number of results to return. + // The maximum number of blocks to be returned by the request. Even if additional + // blocks can be retrieved from the snapshot, the request can return less blocks + // than MaxResults or an empty array of blocks. To retrieve the next set of blocks + // from the snapshot, make another request with the returned NextToken value. The + // value of NextToken is null when there are no more blocks to return. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ebs/api_op_ListSnapshotBlocks.go b/service/ebs/api_op_ListSnapshotBlocks.go index b95abcc0446..bb2ceb719d9 100644 --- a/service/ebs/api_op_ListSnapshotBlocks.go +++ b/service/ebs/api_op_ListSnapshotBlocks.go @@ -36,14 +36,20 @@ type ListSnapshotBlocksInput struct { // This member is required. SnapshotId *string - // The number of results to return. + // The maximum number of blocks to be returned by the request. Even if additional + // blocks can be retrieved from the snapshot, the request can return less blocks + // than MaxResults or an empty array of blocks. To retrieve the next set of blocks + // from the snapshot, make another request with the returned NextToken value. The + // value of NextToken is null when there are no more blocks to return. MaxResults *int32 - // The token to request the next page of results. + // The token to request the next page of results. If you specify NextToken, then + // StartingBlockIndex is ignored. NextToken *string // The block index from which the list should start. The list in the response will - // start from this block index or the next valid block index in the snapshot. + // start from this block index or the next valid block index in the snapshot. If + // you specify NextToken, then StartingBlockIndex is ignored. StartingBlockIndex *int32 noSmithyDocumentSerde @@ -147,7 +153,11 @@ var _ ListSnapshotBlocksAPIClient = (*Client)(nil) // ListSnapshotBlocksPaginatorOptions is the paginator options for // ListSnapshotBlocks type ListSnapshotBlocksPaginatorOptions struct { - // The number of results to return. + // The maximum number of blocks to be returned by the request. Even if additional + // blocks can be retrieved from the snapshot, the request can return less blocks + // than MaxResults or an empty array of blocks. To retrieve the next set of blocks + // from the snapshot, make another request with the returned NextToken value. The + // value of NextToken is null when there are no more blocks to return. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ec2/api_op_CreateClientVpnEndpoint.go b/service/ec2/api_op_CreateClientVpnEndpoint.go index 6494cdc7d0d..f205fe409c4 100644 --- a/service/ec2/api_op_CreateClientVpnEndpoint.go +++ b/service/ec2/api_op_CreateClientVpnEndpoint.go @@ -73,6 +73,8 @@ type CreateClientVpnEndpointInput struct { // The options for managing connection authorization for new client connections. ClientConnectOptions *types.ClientConnectOptions + ClientLoginBannerOptions *types.ClientLoginBannerOptions + // Unique, case-sensitive identifier that you provide to ensure the idempotency of // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). @@ -100,6 +102,8 @@ type CreateClientVpnEndpointInput struct { // Default Value: enabled SelfServicePortal types.SelfServicePortal + SessionTimeoutHours *int32 + // Indicates whether split-tunnel is enabled on the Client VPN endpoint. By // default, split-tunnel on a VPN endpoint is disabled. For information about // split-tunnel VPN endpoints, see Split-tunnel Client VPN endpoint diff --git a/service/ec2/api_op_ModifyClientVpnEndpoint.go b/service/ec2/api_op_ModifyClientVpnEndpoint.go index ab71ef2e772..17d2548787d 100644 --- a/service/ec2/api_op_ModifyClientVpnEndpoint.go +++ b/service/ec2/api_op_ModifyClientVpnEndpoint.go @@ -38,6 +38,8 @@ type ModifyClientVpnEndpointInput struct { // The options for managing connection authorization for new client connections. ClientConnectOptions *types.ClientConnectOptions + ClientLoginBannerOptions *types.ClientLoginBannerOptions + // Information about the client connection logging options. If you enable client // connection logging, data about client connections is sent to a Cloudwatch Logs // log stream. The following information is logged: @@ -77,6 +79,8 @@ type ModifyClientVpnEndpointInput struct { // provisioned in Certificate Manager (ACM). ServerCertificateArn *string + SessionTimeoutHours *int32 + // Indicates whether the VPN is split-tunnel. For information about split-tunnel // VPN endpoints, see Split-tunnel Client VPN endpoint // (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 58232ad94f6..21eee386135 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -53090,6 +53090,71 @@ func awsEc2query_deserializeDocumentClientConnectResponseOptions(v **types.Clien return nil } +func awsEc2query_deserializeDocumentClientLoginBannerResponseOptions(v **types.ClientLoginBannerResponseOptions, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.ClientLoginBannerResponseOptions + if *v == nil { + sv = &types.ClientLoginBannerResponseOptions{} + } 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("bannerText", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.BannerText = ptr.String(xtv) + } + + case strings.EqualFold("enabled", 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.Enabled = 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_deserializeDocumentClientVpnAuthentication(v **types.ClientVpnAuthentication, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -53674,6 +53739,12 @@ func awsEc2query_deserializeDocumentClientVpnEndpoint(v **types.ClientVpnEndpoin return err } + case strings.EqualFold("clientLoginBannerOptions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentClientLoginBannerResponseOptions(&sv.ClientLoginBannerOptions, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("clientVpnEndpointId", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -53783,6 +53854,23 @@ func awsEc2query_deserializeDocumentClientVpnEndpoint(v **types.ClientVpnEndpoin sv.ServerCertificateArn = ptr.String(xtv) } + case strings.EqualFold("sessionTimeoutHours", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.SessionTimeoutHours = ptr.Int32(int32(i64)) + } + case strings.EqualFold("splitTunnel", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index c7e3ef8137c..c6bfecaf366 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -33943,6 +33943,23 @@ func awsEc2query_serializeDocumentClientData(v *types.ClientData, value query.Va return nil } +func awsEc2query_serializeDocumentClientLoginBannerOptions(v *types.ClientLoginBannerOptions, value query.Value) error { + object := value.Object() + _ = object + + if v.BannerText != nil { + objectKey := object.Key("BannerText") + objectKey.String(*v.BannerText) + } + + if v.Enabled != nil { + objectKey := object.Key("Enabled") + objectKey.Boolean(*v.Enabled) + } + + return nil +} + func awsEc2query_serializeDocumentClientVpnAuthenticationRequest(v *types.ClientVpnAuthenticationRequest, value query.Value) error { object := value.Object() _ = object @@ -43504,6 +43521,13 @@ func awsEc2query_serializeOpDocumentCreateClientVpnEndpointInput(v *CreateClient } } + if v.ClientLoginBannerOptions != nil { + objectKey := object.Key("ClientLoginBannerOptions") + if err := awsEc2query_serializeDocumentClientLoginBannerOptions(v.ClientLoginBannerOptions, objectKey); err != nil { + return err + } + } + if v.ClientToken != nil { objectKey := object.Key("ClientToken") objectKey.String(*v.ClientToken) @@ -43550,6 +43574,11 @@ func awsEc2query_serializeOpDocumentCreateClientVpnEndpointInput(v *CreateClient objectKey.String(*v.ServerCertificateArn) } + if v.SessionTimeoutHours != nil { + objectKey := object.Key("SessionTimeoutHours") + objectKey.Integer(*v.SessionTimeoutHours) + } + if v.SplitTunnel != nil { objectKey := object.Key("SplitTunnel") objectKey.Boolean(*v.SplitTunnel) @@ -54382,6 +54411,13 @@ func awsEc2query_serializeOpDocumentModifyClientVpnEndpointInput(v *ModifyClient } } + if v.ClientLoginBannerOptions != nil { + objectKey := object.Key("ClientLoginBannerOptions") + if err := awsEc2query_serializeDocumentClientLoginBannerOptions(v.ClientLoginBannerOptions, objectKey); err != nil { + return err + } + } + if v.ClientVpnEndpointId != nil { objectKey := object.Key("ClientVpnEndpointId") objectKey.String(*v.ClientVpnEndpointId) @@ -54428,6 +54464,11 @@ func awsEc2query_serializeOpDocumentModifyClientVpnEndpointInput(v *ModifyClient objectKey.String(*v.ServerCertificateArn) } + if v.SessionTimeoutHours != nil { + objectKey := object.Key("SessionTimeoutHours") + objectKey.Integer(*v.SessionTimeoutHours) + } + if v.SplitTunnel != nil { objectKey := object.Key("SplitTunnel") objectKey.Boolean(*v.SplitTunnel) diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index 1f886ee7dbf..4f027eaed2f 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -2644,6 +2644,7 @@ const ( InstanceTypeC6i16xlarge InstanceType = "c6i.16xlarge" InstanceTypeC6i24xlarge InstanceType = "c6i.24xlarge" InstanceTypeC6i32xlarge InstanceType = "c6i.32xlarge" + InstanceTypeC6iMetal InstanceType = "c6i.metal" InstanceTypeCc14xlarge InstanceType = "cc1.4xlarge" InstanceTypeCc28xlarge InstanceType = "cc2.8xlarge" InstanceTypeCg14xlarge InstanceType = "cg1.4xlarge" @@ -2853,6 +2854,7 @@ const ( InstanceTypeM6i16xlarge InstanceType = "m6i.16xlarge" InstanceTypeM6i24xlarge InstanceType = "m6i.24xlarge" InstanceTypeM6i32xlarge InstanceType = "m6i.32xlarge" + InstanceTypeM6iMetal InstanceType = "m6i.metal" InstanceTypeMac1Metal InstanceType = "mac1.metal" InstanceTypeP2Xlarge InstanceType = "p2.xlarge" InstanceTypeP28xlarge InstanceType = "p2.8xlarge" @@ -2952,6 +2954,16 @@ const ( InstanceTypeR6gd12xlarge InstanceType = "r6gd.12xlarge" InstanceTypeR6gd16xlarge InstanceType = "r6gd.16xlarge" InstanceTypeR6gdMetal InstanceType = "r6gd.metal" + InstanceTypeR6iLarge InstanceType = "r6i.large" + InstanceTypeR6iXlarge InstanceType = "r6i.xlarge" + InstanceTypeR6i2xlarge InstanceType = "r6i.2xlarge" + InstanceTypeR6i4xlarge InstanceType = "r6i.4xlarge" + InstanceTypeR6i8xlarge InstanceType = "r6i.8xlarge" + InstanceTypeR6i12xlarge InstanceType = "r6i.12xlarge" + InstanceTypeR6i16xlarge InstanceType = "r6i.16xlarge" + InstanceTypeR6i24xlarge InstanceType = "r6i.24xlarge" + InstanceTypeR6i32xlarge InstanceType = "r6i.32xlarge" + InstanceTypeR6iMetal InstanceType = "r6i.metal" InstanceTypeT1Micro InstanceType = "t1.micro" InstanceTypeT2Nano InstanceType = "t2.nano" InstanceTypeT2Micro InstanceType = "t2.micro" @@ -3118,6 +3130,7 @@ func (InstanceType) Values() []InstanceType { "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", + "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", @@ -3327,6 +3340,7 @@ func (InstanceType) Values() []InstanceType { "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", + "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", @@ -3426,6 +3440,16 @@ func (InstanceType) Values() []InstanceType { "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", + "r6i.large", + "r6i.xlarge", + "r6i.2xlarge", + "r6i.4xlarge", + "r6i.8xlarge", + "r6i.12xlarge", + "r6i.16xlarge", + "r6i.24xlarge", + "r6i.32xlarge", + "r6i.metal", "t1.micro", "t2.nano", "t2.micro", diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index fdc612e045d..57c0904129e 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -1405,6 +1405,22 @@ type ClientData struct { noSmithyDocumentSerde } +type ClientLoginBannerOptions struct { + BannerText *string + + Enabled *bool + + noSmithyDocumentSerde +} + +type ClientLoginBannerResponseOptions struct { + BannerText *string + + Enabled *bool + + noSmithyDocumentSerde +} + // Describes the authentication methods used by a Client VPN endpoint. For more // information, see Authentication // (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html) @@ -1546,6 +1562,8 @@ type ClientVpnEndpoint struct { // The options for managing connection authorization for new client connections. ClientConnectOptions *ClientConnectResponseOptions + ClientLoginBannerOptions *ClientLoginBannerResponseOptions + // The ID of the Client VPN endpoint. ClientVpnEndpointId *string @@ -1577,6 +1595,8 @@ type ClientVpnEndpoint struct { // The ARN of the server certificate. ServerCertificateArn *string + SessionTimeoutHours *int32 + // Indicates whether split-tunnel is enabled in the Client VPN endpoint. For // information about split-tunnel VPN endpoints, see Split-Tunnel Client VPN // endpoint diff --git a/service/ec2instanceconnect/api_op_SendSSHPublicKey.go b/service/ec2instanceconnect/api_op_SendSSHPublicKey.go index 0239097edd3..64c719274b8 100644 --- a/service/ec2instanceconnect/api_op_SendSSHPublicKey.go +++ b/service/ec2instanceconnect/api_op_SendSSHPublicKey.go @@ -32,11 +32,6 @@ func (c *Client) SendSSHPublicKey(ctx context.Context, params *SendSSHPublicKeyI type SendSSHPublicKeyInput struct { - // The Availability Zone in which the EC2 instance was launched. - // - // This member is required. - AvailabilityZone *string - // The ID of the EC2 instance. // // This member is required. @@ -53,6 +48,9 @@ type SendSSHPublicKeyInput struct { // This member is required. SSHPublicKey *string + // The Availability Zone in which the EC2 instance was launched. + AvailabilityZone *string + noSmithyDocumentSerde } diff --git a/service/ec2instanceconnect/deserializers.go b/service/ec2instanceconnect/deserializers.go index f3cfc16ee8d..c8260e23fcb 100644 --- a/service/ec2instanceconnect/deserializers.go +++ b/service/ec2instanceconnect/deserializers.go @@ -122,6 +122,9 @@ func awsAwsjson11_deserializeOpErrorSendSerialConsoleSSHPublicKey(response *smit case strings.EqualFold("EC2InstanceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorEC2InstanceNotFoundException(response, errorBody) + case strings.EqualFold("EC2InstanceStateInvalidException", errorCode): + return awsAwsjson11_deserializeErrorEC2InstanceStateInvalidException(response, errorBody) + case strings.EqualFold("EC2InstanceTypeInvalidException", errorCode): return awsAwsjson11_deserializeErrorEC2InstanceTypeInvalidException(response, errorBody) @@ -257,6 +260,9 @@ func awsAwsjson11_deserializeOpErrorSendSSHPublicKey(response *smithyhttp.Respon case strings.EqualFold("EC2InstanceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorEC2InstanceNotFoundException(response, errorBody) + case strings.EqualFold("EC2InstanceStateInvalidException", errorCode): + return awsAwsjson11_deserializeErrorEC2InstanceStateInvalidException(response, errorBody) + case strings.EqualFold("InvalidArgsException", errorCode): return awsAwsjson11_deserializeErrorInvalidArgsException(response, errorBody) @@ -346,6 +352,41 @@ func awsAwsjson11_deserializeErrorEC2InstanceNotFoundException(response *smithyh return output } +func awsAwsjson11_deserializeErrorEC2InstanceStateInvalidException(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.EC2InstanceStateInvalidException{} + err := awsAwsjson11_deserializeDocumentEC2InstanceStateInvalidException(&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_deserializeErrorEC2InstanceTypeInvalidException(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -671,6 +712,46 @@ func awsAwsjson11_deserializeDocumentEC2InstanceNotFoundException(v **types.EC2I return nil } +func awsAwsjson11_deserializeDocumentEC2InstanceStateInvalidException(v **types.EC2InstanceStateInvalidException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EC2InstanceStateInvalidException + if *v == nil { + sv = &types.EC2InstanceStateInvalidException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentEC2InstanceTypeInvalidException(v **types.EC2InstanceTypeInvalidException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ec2instanceconnect/types/errors.go b/service/ec2instanceconnect/types/errors.go index 5a089309a09..d54317e884a 100644 --- a/service/ec2instanceconnect/types/errors.go +++ b/service/ec2instanceconnect/types/errors.go @@ -46,6 +46,29 @@ func (e *EC2InstanceNotFoundException) ErrorMessage() string { func (e *EC2InstanceNotFoundException) ErrorCode() string { return "EC2InstanceNotFoundException" } func (e *EC2InstanceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// Unable to connect because the instance is not in a valid state. Connecting to a +// stopped or terminated instance is not supported. If the instance is stopped, +// start your instance, and try to connect again. +type EC2InstanceStateInvalidException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *EC2InstanceStateInvalidException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *EC2InstanceStateInvalidException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *EC2InstanceStateInvalidException) ErrorCode() string { + return "EC2InstanceStateInvalidException" +} +func (e *EC2InstanceStateInvalidException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The instance type is not supported for connecting via the serial console. Only // Nitro instance types are currently supported. type EC2InstanceTypeInvalidException struct { diff --git a/service/ec2instanceconnect/validators.go b/service/ec2instanceconnect/validators.go index 72dbbfd6fa6..ea2117f4457 100644 --- a/service/ec2instanceconnect/validators.go +++ b/service/ec2instanceconnect/validators.go @@ -89,9 +89,6 @@ func validateOpSendSSHPublicKeyInput(v *SendSSHPublicKeyInput) error { if v.SSHPublicKey == nil { invalidParams.Add(smithy.NewErrParamRequired("SSHPublicKey")) } - if v.AvailabilityZone == nil { - invalidParams.Add(smithy.NewErrParamRequired("AvailabilityZone")) - } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/efs/api_op_CreateFileSystem.go b/service/efs/api_op_CreateFileSystem.go index 6258fd9282e..1a1f39c4e0d 100644 --- a/service/efs/api_op_CreateFileSystem.go +++ b/service/efs/api_op_CreateFileSystem.go @@ -96,27 +96,26 @@ type CreateFileSystemInput struct { // (https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html#automatic-backups) in // the Amazon EFS User Guide. Default is false. However, if you specify an // AvailabilityZoneName, the default is true. Backup is not available in all Amazon - // Web Services Regionswhere Amazon EFS is available. + // Web Services Regions where Amazon EFS is available. Backup *bool // A Boolean value that, if true, creates an encrypted file system. When creating - // an encrypted file system, you have the option of specifying - // CreateFileSystemRequest$KmsKeyId for an existing Key Management Service (KMS - // customer master key (CMK). If you don't specify a CMK, then the default CMK for - // Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file - // system. + // an encrypted file system, you have the option of specifying an existing Key + // Management Service key (KMS key). If you don't specify a KMS key, then the + // default KMS key for Amazon EFS, /aws/elasticfilesystem, is used to protect the + // encrypted file system. Encrypted *bool - // The ID of the KMS CMK that you want to use to protect the encrypted file system. + // The ID of the KMS key that you want to use to protect the encrypted file system. // This parameter is only required if you want to use a non-default KMS key. If - // this parameter is not specified, the default CMK for Amazon EFS is used. This ID - // can be in one of the following formats: + // this parameter is not specified, the default KMS key for Amazon EFS is used. You + // can specify a KMS key ID using the following formats: // - // * Key ID - A unique identifier of the - // key, for example 1234abcd-12ab-34cd-56ef-1234567890ab. + // * Key ID - A unique + // identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab. // - // * ARN - An Amazon - // Resource Name (ARN) for the key, for example + // * ARN + // - An Amazon Resource Name (ARN) for the key, for example // arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. // // * @@ -126,9 +125,9 @@ type CreateFileSystemInput struct { // * Key alias ARN - An ARN for a key alias, for example // arn:aws:kms:us-west-2:444455556666:alias/projectKey1. // - // If KmsKeyId is specified, - // the CreateFileSystemRequest$Encrypted parameter must be set to true. EFS accepts - // only symmetric KMS keys. You cannot use asymmetric KMS keys with EFS file + // If you use KmsKeyId, you + // must set the CreateFileSystemRequest$Encrypted parameter to true. EFS accepts + // only symmetric KMS keys. You cannot use asymmetric KMS keys with Amazon EFS file // systems. KmsKeyId *string @@ -253,8 +252,7 @@ type CreateFileSystemOutput struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an Key Management Service customer master key (CMK) that was used to - // protect the encrypted file system. + // The ID of an KMS key used to protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, diff --git a/service/efs/api_op_CreateReplicationConfiguration.go b/service/efs/api_op_CreateReplicationConfiguration.go new file mode 100644 index 00000000000..37741dc8959 --- /dev/null +++ b/service/efs/api_op_CreateReplicationConfiguration.go @@ -0,0 +1,218 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package efs + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/efs/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Creates a replication configuration that replicates an existing EFS file system +// to a new, read-only file system. For more information, see Amazon EFS +// replication (https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html). +// The replication configuration specifies the following: +// +// * Source file system - +// an existing EFS file system that you want replicated. The source file system +// cannot be a destination file system in an existing replication configuration. +// +// * +// Destination file system configuration - the configuration of the destination +// file system to which the source file system will be replicated. There can only +// be one destination file system in a replication configuration. +// +// * Amazon Web +// Services Region - The Amazon Web Services Region in which the destination file +// system is created. EFS Replication is available in all Amazon Web Services +// Region that Amazon EFS is available in, except the following regions: Asia +// Pacific (Hong Kong) Europe (Milan), Middle East (Bahrain), Africa (Cape Town), +// and Asia Pacific (Jakarta). +// +// * Availability zone - If you want the destination +// file system to use One Zone availability and durability, you must specify the +// Availability Zone to create the file system in. For more information about EFS +// storage classes, see Amazon EFS storage classes +// (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the Amazon +// EFS User Guide. +// +// * Encryption - All destination file systems are created with +// encryption at rest enabled. You can specify the KMS key that is used to encrypt +// the destination file system. Your service-managed KMS key for Amazon EFS is used +// if you don't specify a KMS key. You cannot change this after the file system is +// created. +// +// The following properties are set by default: +// +// * Performance mode - The +// destination file system's performance mode will match that of the source file +// system, unless the destination file system uses One Zone storage. In that case, +// the General Purpose performance mode is used. The Performance mode cannot be +// changed. +// +// * Throughput mode - The destination file system use the Bursting +// throughput mode by default. You can modify the throughput mode once the file +// system is created. +// +// The following properties are turned off by default: +// +// * +// Lifecycle management - EFS lifecycle management and intelligent tiering are not +// enabled on the destination file system. You can enable EFS lifecycle management +// and intelligent tiering after the destination file system is created. +// +// * +// Automatic backups - Automatic daily backups not enabled on the destination file +// system. You can change this setting after the file system is created. +// +// For more +// information, see Amazon EFS replication +// (https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html). +func (c *Client) CreateReplicationConfiguration(ctx context.Context, params *CreateReplicationConfigurationInput, optFns ...func(*Options)) (*CreateReplicationConfigurationOutput, error) { + if params == nil { + params = &CreateReplicationConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateReplicationConfiguration", params, optFns, c.addOperationCreateReplicationConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateReplicationConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateReplicationConfigurationInput struct { + + // An array of destination configuration objects. Only one destination + // configuration object is supported. + // + // This member is required. + Destinations []types.DestinationToCreate + + // Specifies the Amazon EFS file system that you want to replicate. This file + // system cannot already be a source or destination file system in another + // replication configuration. + // + // This member is required. + SourceFileSystemId *string + + noSmithyDocumentSerde +} + +type CreateReplicationConfigurationOutput struct { + + // Describes when the replication configuration was created. + // + // This member is required. + CreationTime *time.Time + + // Array of destination objects. Only one destination object is supported. + // + // This member is required. + Destinations []types.Destination + + // The Amazon Resource Name (ARN) of the original source Amazon EFS file system in + // the replication configuration. + // + // This member is required. + OriginalSourceFileSystemArn *string + + // The ARN of the current source file system in the replication configuration. + // + // This member is required. + SourceFileSystemArn *string + + // The ID of the source Amazon EFS file system that is being replicated. + // + // This member is required. + SourceFileSystemId *string + + // The Amazon Web Services Region in which the source Amazon EFS file system is + // located. + // + // This member is required. + SourceFileSystemRegion *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateReplicationConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateReplicationConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateReplicationConfiguration{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCreateReplicationConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateReplicationConfiguration(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateReplicationConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticfilesystem", + OperationName: "CreateReplicationConfiguration", + } +} diff --git a/service/efs/api_op_DeleteReplicationConfiguration.go b/service/efs/api_op_DeleteReplicationConfiguration.go new file mode 100644 index 00000000000..b5cc24f1159 --- /dev/null +++ b/service/efs/api_op_DeleteReplicationConfiguration.go @@ -0,0 +1,120 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package efs + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an existing replication configuration. To delete a replication +// configuration, you must make the request from the Amazon Web Services Region in +// which the destination file system is located. Deleting a replication +// configuration ends the replication process. You can write to the destination +// file system once it's status becomes Writeable. +func (c *Client) DeleteReplicationConfiguration(ctx context.Context, params *DeleteReplicationConfigurationInput, optFns ...func(*Options)) (*DeleteReplicationConfigurationOutput, error) { + if params == nil { + params = &DeleteReplicationConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteReplicationConfiguration", params, optFns, c.addOperationDeleteReplicationConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteReplicationConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteReplicationConfigurationInput struct { + + // The ID of the source file system in the replication configuration. + // + // This member is required. + SourceFileSystemId *string + + noSmithyDocumentSerde +} + +type DeleteReplicationConfigurationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteReplicationConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteReplicationConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteReplicationConfiguration{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteReplicationConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteReplicationConfiguration(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteReplicationConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticfilesystem", + OperationName: "DeleteReplicationConfiguration", + } +} diff --git a/service/efs/api_op_DescribeReplicationConfigurations.go b/service/efs/api_op_DescribeReplicationConfigurations.go new file mode 100644 index 00000000000..afd2f5d2726 --- /dev/null +++ b/service/efs/api_op_DescribeReplicationConfigurations.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package efs + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/efs/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves the replication configurations for either a specific file system, or +// all configurations for the Amazon Web Services account in an Amazon Web Services +// Region if a file system is not specified. +func (c *Client) DescribeReplicationConfigurations(ctx context.Context, params *DescribeReplicationConfigurationsInput, optFns ...func(*Options)) (*DescribeReplicationConfigurationsOutput, error) { + if params == nil { + params = &DescribeReplicationConfigurationsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeReplicationConfigurations", params, optFns, c.addOperationDescribeReplicationConfigurationsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeReplicationConfigurationsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeReplicationConfigurationsInput struct { + + // You can retrieve replication configurations for a specific file system by + // providing a file system ID. + FileSystemId *string + + // (Optional) You can optionally specify the MaxItems parameter to limit the number + // of objects returned in a response. The default value is 100. + MaxResults *int32 + + // NextToken is present if the response is paginated. You can use NextMarker in a + // subsequent request to fetch the next page of output. + NextToken *string + + noSmithyDocumentSerde +} + +type DescribeReplicationConfigurationsOutput struct { + + // You can use the NextToken from the previous response in a subsequent request to + // fetch the additional descriptions. + NextToken *string + + // The collection of replication configurations returned. + Replications []types.ReplicationConfigurationDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeReplicationConfigurationsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeReplicationConfigurations{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeReplicationConfigurations{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeReplicationConfigurations(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeReplicationConfigurations(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticfilesystem", + OperationName: "DescribeReplicationConfigurations", + } +} diff --git a/service/efs/api_op_UpdateFileSystem.go b/service/efs/api_op_UpdateFileSystem.go index d7ab85e48c0..1c4bc60af8b 100644 --- a/service/efs/api_op_UpdateFileSystem.go +++ b/service/efs/api_op_UpdateFileSystem.go @@ -133,8 +133,7 @@ type UpdateFileSystemOutput struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an Key Management Service customer master key (CMK) that was used to - // protect the encrypted file system. + // The ID of an KMS key used to protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, diff --git a/service/efs/deserializers.go b/service/efs/deserializers.go index 5d9781df929..48bdff68bec 100644 --- a/service/efs/deserializers.go +++ b/service/efs/deserializers.go @@ -865,6 +865,232 @@ func awsRestjson1_deserializeOpDocumentCreateMountTargetOutput(v **CreateMountTa return nil } +type awsRestjson1_deserializeOpCreateReplicationConfiguration struct { +} + +func (*awsRestjson1_deserializeOpCreateReplicationConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateReplicationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorCreateReplicationConfiguration(response, &metadata) + } + output := &CreateReplicationConfigurationOutput{} + 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_deserializeOpDocumentCreateReplicationConfigurationOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorCreateReplicationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("FileSystemLimitExceeded", errorCode): + return awsRestjson1_deserializeErrorFileSystemLimitExceeded(response, errorBody) + + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) + + case strings.EqualFold("IncorrectFileSystemLifeCycleState", errorCode): + return awsRestjson1_deserializeErrorIncorrectFileSystemLifeCycleState(response, errorBody) + + case strings.EqualFold("InsufficientThroughputCapacity", errorCode): + return awsRestjson1_deserializeErrorInsufficientThroughputCapacity(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsRestjson1_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("ReplicationNotFound", errorCode): + return awsRestjson1_deserializeErrorReplicationNotFound(response, errorBody) + + case strings.EqualFold("ThroughputLimitExceeded", errorCode): + return awsRestjson1_deserializeErrorThroughputLimitExceeded(response, errorBody) + + case strings.EqualFold("UnsupportedAvailabilityZone", errorCode): + return awsRestjson1_deserializeErrorUnsupportedAvailabilityZone(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreateReplicationConfigurationOutput(v **CreateReplicationConfigurationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateReplicationConfigurationOutput + if *v == nil { + sv = &CreateReplicationConfigurationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Destinations": + if err := awsRestjson1_deserializeDocumentDestinations(&sv.Destinations, value); err != nil { + return err + } + + case "OriginalSourceFileSystemArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemArn to be of type string, got %T instead", value) + } + sv.OriginalSourceFileSystemArn = ptr.String(jtv) + } + + case "SourceFileSystemArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemArn to be of type string, got %T instead", value) + } + sv.SourceFileSystemArn = ptr.String(jtv) + } + + case "SourceFileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.SourceFileSystemId = ptr.String(jtv) + } + + case "SourceFileSystemRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RegionName to be of type string, got %T instead", value) + } + sv.SourceFileSystemRegion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateTags struct { } @@ -1229,6 +1455,9 @@ func awsRestjson1_deserializeOpErrorDeleteFileSystemPolicy(response *smithyhttp. } switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) @@ -1346,6 +1575,104 @@ func awsRestjson1_deserializeOpErrorDeleteMountTarget(response *smithyhttp.Respo } } +type awsRestjson1_deserializeOpDeleteReplicationConfiguration struct { +} + +func (*awsRestjson1_deserializeOpDeleteReplicationConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteReplicationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteReplicationConfiguration(response, &metadata) + } + output := &DeleteReplicationConfigurationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteReplicationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsRestjson1_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("ReplicationNotFound", errorCode): + return awsRestjson1_deserializeErrorReplicationNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpDeleteTags struct { } @@ -2019,6 +2346,9 @@ func awsRestjson1_deserializeOpErrorDescribeFileSystemPolicy(response *smithyhtt } switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) @@ -2744,6 +3074,174 @@ func awsRestjson1_deserializeOpDocumentDescribeMountTargetSecurityGroupsOutput(v return nil } +type awsRestjson1_deserializeOpDescribeReplicationConfigurations struct { +} + +func (*awsRestjson1_deserializeOpDescribeReplicationConfigurations) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeReplicationConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeReplicationConfigurations(response, &metadata) + } + output := &DescribeReplicationConfigurationsOutput{} + 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_deserializeOpDocumentDescribeReplicationConfigurationsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeReplicationConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsRestjson1_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("ReplicationNotFound", errorCode): + return awsRestjson1_deserializeErrorReplicationNotFound(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeReplicationConfigurationsOutput(v **DescribeReplicationConfigurationsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeReplicationConfigurationsOutput + if *v == nil { + sv = &DescribeReplicationConfigurationsOutput{} + } 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 "Replications": + if err := awsRestjson1_deserializeDocumentReplicationConfigurationDescriptions(&sv.Replications, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeTags struct { } @@ -3591,6 +4089,9 @@ func awsRestjson1_deserializeOpErrorPutFileSystemPolicy(response *smithyhttp.Res } switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): return awsRestjson1_deserializeErrorFileSystemNotFound(response, errorBody) @@ -5022,7 +5523,43 @@ func awsRestjson1_deserializeErrorNetworkInterfaceLimitExceeded(response *smithy return err } - err := awsRestjson1_deserializeDocumentNetworkInterfaceLimitExceeded(&output, shape) + err := awsRestjson1_deserializeDocumentNetworkInterfaceLimitExceeded(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorNoFreeAddressesInSubnet(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.NoFreeAddressesInSubnet{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentNoFreeAddressesInSubnet(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -5039,8 +5576,8 @@ func awsRestjson1_deserializeErrorNetworkInterfaceLimitExceeded(response *smithy return output } -func awsRestjson1_deserializeErrorNoFreeAddressesInSubnet(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.NoFreeAddressesInSubnet{} +func awsRestjson1_deserializeErrorPolicyNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.PolicyNotFound{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -5058,7 +5595,7 @@ func awsRestjson1_deserializeErrorNoFreeAddressesInSubnet(response *smithyhttp.R return err } - err := awsRestjson1_deserializeDocumentNoFreeAddressesInSubnet(&output, shape) + err := awsRestjson1_deserializeDocumentPolicyNotFound(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -5075,8 +5612,8 @@ func awsRestjson1_deserializeErrorNoFreeAddressesInSubnet(response *smithyhttp.R return output } -func awsRestjson1_deserializeErrorPolicyNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.PolicyNotFound{} +func awsRestjson1_deserializeErrorReplicationNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ReplicationNotFound{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -5094,7 +5631,7 @@ func awsRestjson1_deserializeErrorPolicyNotFound(response *smithyhttp.Response, return err } - err := awsRestjson1_deserializeDocumentPolicyNotFound(&output, shape) + err := awsRestjson1_deserializeDocumentReplicationNotFound(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -5915,6 +6452,114 @@ func awsRestjson1_deserializeDocumentDependencyTimeout(v **types.DependencyTimeo return nil } +func awsRestjson1_deserializeDocumentDestination(v **types.Destination, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Destination + if *v == nil { + sv = &types.Destination{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "LastReplicatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastReplicatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Region": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RegionName to be of type string, got %T instead", value) + } + sv.Region = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReplicationStatus to be of type string, got %T instead", value) + } + sv.Status = types.ReplicationStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDestinations(v *[]types.Destination, 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.Destination + if *v == nil { + cv = []types.Destination{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Destination + destAddr := &col + if err := awsRestjson1_deserializeDocumentDestination(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentFileSystemAlreadyExists(v **types.FileSystemAlreadyExists, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7291,6 +7936,177 @@ func awsRestjson1_deserializeDocumentPosixUser(v **types.PosixUser, value interf return nil } +func awsRestjson1_deserializeDocumentReplicationConfigurationDescription(v **types.ReplicationConfigurationDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ReplicationConfigurationDescription + if *v == nil { + sv = &types.ReplicationConfigurationDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Destinations": + if err := awsRestjson1_deserializeDocumentDestinations(&sv.Destinations, value); err != nil { + return err + } + + case "OriginalSourceFileSystemArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemArn to be of type string, got %T instead", value) + } + sv.OriginalSourceFileSystemArn = ptr.String(jtv) + } + + case "SourceFileSystemArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemArn to be of type string, got %T instead", value) + } + sv.SourceFileSystemArn = ptr.String(jtv) + } + + case "SourceFileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.SourceFileSystemId = ptr.String(jtv) + } + + case "SourceFileSystemRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RegionName to be of type string, got %T instead", value) + } + sv.SourceFileSystemRegion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentReplicationConfigurationDescriptions(v *[]types.ReplicationConfigurationDescription, 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.ReplicationConfigurationDescription + if *v == nil { + cv = []types.ReplicationConfigurationDescription{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ReplicationConfigurationDescription + destAddr := &col + if err := awsRestjson1_deserializeDocumentReplicationConfigurationDescription(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentReplicationNotFound(v **types.ReplicationNotFound, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ReplicationNotFound + if *v == nil { + sv = &types.ReplicationNotFound{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ErrorCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value) + } + sv.ErrorCode_ = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentResourceIdPreference(v **types.ResourceIdPreference, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/efs/doc.go b/service/efs/doc.go index d0000fbf7fc..64f382993fd 100644 --- a/service/efs/doc.go +++ b/service/efs/doc.go @@ -4,11 +4,11 @@ // Elastic File System. // // Amazon Elastic File System Amazon Elastic File System (Amazon EFS) provides -// simple, scalable file storage for use with Amazon EC2 instances in the Amazon -// Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and -// shrinking automatically as you add and remove files, so your applications have -// the storage they need, when they need it. For more information, see the Amazon -// Elastic File System API Reference +// simple, scalable file storage for use with Amazon EC2 Linux and Mac instances in +// the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, +// growing and shrinking automatically as you add and remove files, so your +// applications have the storage they need, when they need it. For more +// information, see the Amazon Elastic File System API Reference // (https://docs.aws.amazon.com/efs/latest/ug/api-reference.html) and the Amazon // Elastic File System User Guide // (https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html). diff --git a/service/efs/generated.json b/service/efs/generated.json index 16106d24121..5ba47f7dafe 100644 --- a/service/efs/generated.json +++ b/service/efs/generated.json @@ -10,11 +10,13 @@ "api_op_CreateAccessPoint.go", "api_op_CreateFileSystem.go", "api_op_CreateMountTarget.go", + "api_op_CreateReplicationConfiguration.go", "api_op_CreateTags.go", "api_op_DeleteAccessPoint.go", "api_op_DeleteFileSystem.go", "api_op_DeleteFileSystemPolicy.go", "api_op_DeleteMountTarget.go", + "api_op_DeleteReplicationConfiguration.go", "api_op_DeleteTags.go", "api_op_DescribeAccessPoints.go", "api_op_DescribeAccountPreferences.go", @@ -24,6 +26,7 @@ "api_op_DescribeLifecycleConfiguration.go", "api_op_DescribeMountTargetSecurityGroups.go", "api_op_DescribeMountTargets.go", + "api_op_DescribeReplicationConfigurations.go", "api_op_DescribeTags.go", "api_op_ListTagsForResource.go", "api_op_ModifyMountTargetSecurityGroups.go", diff --git a/service/efs/serializers.go b/service/efs/serializers.go index 73c32c2b778..6b6a6c8fb7a 100644 --- a/service/efs/serializers.go +++ b/service/efs/serializers.go @@ -317,6 +317,89 @@ func awsRestjson1_serializeOpDocumentCreateMountTargetInput(v *CreateMountTarget return nil } +type awsRestjson1_serializeOpCreateReplicationConfiguration struct { +} + +func (*awsRestjson1_serializeOpCreateReplicationConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateReplicationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateReplicationConfigurationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCreateReplicationConfigurationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateReplicationConfigurationInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateReplicationConfigurationInput(v *CreateReplicationConfigurationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.SourceFileSystemId == nil || len(*v.SourceFileSystemId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member SourceFileSystemId must not be empty")} + } + if v.SourceFileSystemId != nil { + if err := encoder.SetURI("SourceFileSystemId").String(*v.SourceFileSystemId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateReplicationConfigurationInput(v *CreateReplicationConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Destinations != nil { + ok := object.Key("Destinations") + if err := awsRestjson1_serializeDocumentDestinationsToCreate(v.Destinations, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpCreateTags struct { } @@ -632,6 +715,64 @@ func awsRestjson1_serializeOpHttpBindingsDeleteMountTargetInput(v *DeleteMountTa return nil } +type awsRestjson1_serializeOpDeleteReplicationConfiguration struct { +} + +func (*awsRestjson1_serializeOpDeleteReplicationConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteReplicationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteReplicationConfigurationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteReplicationConfigurationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteReplicationConfigurationInput(v *DeleteReplicationConfigurationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.SourceFileSystemId == nil || len(*v.SourceFileSystemId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member SourceFileSystemId must not be empty")} + } + if v.SourceFileSystemId != nil { + if err := encoder.SetURI("SourceFileSystemId").String(*v.SourceFileSystemId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteTags struct { } @@ -1219,6 +1360,67 @@ func awsRestjson1_serializeOpHttpBindingsDescribeMountTargetSecurityGroupsInput( return nil } +type awsRestjson1_serializeOpDescribeReplicationConfigurations struct { +} + +func (*awsRestjson1_serializeOpDescribeReplicationConfigurations) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeReplicationConfigurations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeReplicationConfigurationsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2015-02-01/file-systems/replication-configurations") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeReplicationConfigurationsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDescribeReplicationConfigurationsInput(v *DescribeReplicationConfigurationsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.FileSystemId != nil { + encoder.SetQuery("FileSystemId").String(*v.FileSystemId) + } + + if v.MaxResults != nil { + encoder.SetQuery("MaxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("NextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpDescribeTags struct { } @@ -2034,6 +2236,41 @@ func awsRestjson1_serializeDocumentCreationInfo(v *types.CreationInfo, value smi return nil } +func awsRestjson1_serializeDocumentDestinationsToCreate(v []types.DestinationToCreate, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentDestinationToCreate(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentDestinationToCreate(v *types.DestinationToCreate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AvailabilityZoneName != nil { + ok := object.Key("AvailabilityZoneName") + ok.String(*v.AvailabilityZoneName) + } + + if v.KmsKeyId != nil { + ok := object.Key("KmsKeyId") + ok.String(*v.KmsKeyId) + } + + if v.Region != nil { + ok := object.Key("Region") + ok.String(*v.Region) + } + + return nil +} + func awsRestjson1_serializeDocumentLifecyclePolicies(v []types.LifecyclePolicy, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/efs/types/enums.go b/service/efs/types/enums.go index 51d3cb2a8d6..95670ecb896 100644 --- a/service/efs/types/enums.go +++ b/service/efs/types/enums.go @@ -46,6 +46,28 @@ func (PerformanceMode) Values() []PerformanceMode { } } +type ReplicationStatus string + +// Enum values for ReplicationStatus +const ( + ReplicationStatusEnabled ReplicationStatus = "ENABLED" + ReplicationStatusEnabling ReplicationStatus = "ENABLING" + ReplicationStatusDeleting ReplicationStatus = "DELETING" + ReplicationStatusError ReplicationStatus = "ERROR" +) + +// Values returns all known values for ReplicationStatus. 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 (ReplicationStatus) Values() []ReplicationStatus { + return []ReplicationStatus{ + "ENABLED", + "ENABLING", + "DELETING", + "ERROR", + } +} + type Resource string // Enum values for Resource diff --git a/service/efs/types/errors.go b/service/efs/types/errors.go index 880bdbb6a3e..27315b742a1 100644 --- a/service/efs/types/errors.go +++ b/service/efs/types/errors.go @@ -480,6 +480,27 @@ func (e *PolicyNotFound) ErrorMessage() string { func (e *PolicyNotFound) ErrorCode() string { return "PolicyNotFound" } func (e *PolicyNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// Returned if the specified file system did not have a replication configuration. +type ReplicationNotFound struct { + Message *string + + ErrorCode_ *string + + noSmithyDocumentSerde +} + +func (e *ReplicationNotFound) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ReplicationNotFound) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ReplicationNotFound) ErrorCode() string { return "ReplicationNotFound" } +func (e *ReplicationNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // Returned if the size of SecurityGroups specified in the request is greater than // five. type SecurityGroupLimitExceeded struct { diff --git a/service/efs/types/types.go b/service/efs/types/types.go index cd1fc94877a..a208b88bcaa 100644 --- a/service/efs/types/types.go +++ b/service/efs/types/types.go @@ -106,6 +106,68 @@ type CreationInfo struct { noSmithyDocumentSerde } +// Describes the destination file system in the replication configuration. +type Destination struct { + + // The ID of the destination Amazon EFS file system. + // + // This member is required. + FileSystemId *string + + // The Amazon Web Services Region in which the destination file system is located. + // + // This member is required. + Region *string + + // Describes the status of the destination Amazon EFS file system. + // + // This member is required. + Status ReplicationStatus + + // The time when the most recent sync successfully completed on the destination + // file system. Any changes to data on the source file system that occurred prior + // to this time were successfully replicated to the destination file system. Any + // changes that occurred after this time might not be fully replicated. + LastReplicatedTimestamp *time.Time + + noSmithyDocumentSerde +} + +// Describes the destination file system to create in the replication +// configuration. +type DestinationToCreate struct { + + // To create a file system that uses One Zone storage, specify the name of the + // Availability Zone in which to create the destination file system. + AvailabilityZoneName *string + + // Specifies the KMS key you want to use to encrypt the destination file system. If + // you do not specify a KMS key, EFS uses your default KMS key for Amazon EFS, + // /aws/elasticfilesystem. This ID can be in one of the following formats: + // + // * Key + // ID - A unique identifier of the key, for example + // 1234abcd-12ab-34cd-56ef-1234567890ab. + // + // * ARN - An Amazon Resource Name (ARN) for + // the key, for example + // arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + // + // * + // Key alias - A previously created display name for a key, for example + // alias/projectKey1. + // + // * Key alias ARN - An ARN for a key alias, for example + // arn:aws:kms:us-west-2:444455556666:alias/projectKey1. + KmsKeyId *string + + // To create a file system that uses regional storage, specify the Amazon Web + // Services Region in which to create the destination file system. + Region *string + + noSmithyDocumentSerde +} + // A description of the file system. type FileSystemDescription struct { @@ -188,8 +250,7 @@ type FileSystemDescription struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an Key Management Service customer master key (CMK) that was used to - // protect the encrypted file system. + // The ID of an KMS key used to protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, @@ -339,6 +400,43 @@ type PosixUser struct { noSmithyDocumentSerde } +type ReplicationConfigurationDescription struct { + + // Describes when the replication configuration was created. + // + // This member is required. + CreationTime *time.Time + + // Array of destination objects. Only one destination object is supported. + // + // This member is required. + Destinations []Destination + + // The Amazon Resource Name (ARN) of the original source Amazon EFS file system in + // the replication configuration. + // + // This member is required. + OriginalSourceFileSystemArn *string + + // The ARN of the current source file system in the replication configuration. + // + // This member is required. + SourceFileSystemArn *string + + // The ID of the source Amazon EFS file system that is being replicated. + // + // This member is required. + SourceFileSystemId *string + + // The Amazon Web Services Region in which the source Amazon EFS file system is + // located. + // + // This member is required. + SourceFileSystemRegion *string + + noSmithyDocumentSerde +} + // Describes the resource type and its ID preference for the user's Amazon Web // Services account, in the current Amazon Web Services Region. type ResourceIdPreference struct { diff --git a/service/efs/validators.go b/service/efs/validators.go index 084a196da27..bf22dc09981 100644 --- a/service/efs/validators.go +++ b/service/efs/validators.go @@ -70,6 +70,26 @@ func (m *validateOpCreateMountTarget) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpCreateReplicationConfiguration struct { +} + +func (*validateOpCreateReplicationConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateReplicationConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateReplicationConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateReplicationConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateTags struct { } @@ -170,6 +190,26 @@ func (m *validateOpDeleteMountTarget) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpDeleteReplicationConfiguration struct { +} + +func (*validateOpDeleteReplicationConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteReplicationConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteReplicationConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteReplicationConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteTags struct { } @@ -482,6 +522,10 @@ func addOpCreateMountTargetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateMountTarget{}, middleware.After) } +func addOpCreateReplicationConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateReplicationConfiguration{}, middleware.After) +} + func addOpCreateTagsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateTags{}, middleware.After) } @@ -502,6 +546,10 @@ func addOpDeleteMountTargetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteMountTarget{}, middleware.After) } +func addOpDeleteReplicationConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteReplicationConfiguration{}, middleware.After) +} + func addOpDeleteTagsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteTags{}, middleware.After) } @@ -739,6 +787,24 @@ func validateOpCreateMountTargetInput(v *CreateMountTargetInput) error { } } +func validateOpCreateReplicationConfigurationInput(v *CreateReplicationConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateReplicationConfigurationInput"} + if v.SourceFileSystemId == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceFileSystemId")) + } + if v.Destinations == nil { + invalidParams.Add(smithy.NewErrParamRequired("Destinations")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateTagsInput(v *CreateTagsInput) error { if v == nil { return nil @@ -821,6 +887,21 @@ func validateOpDeleteMountTargetInput(v *DeleteMountTargetInput) error { } } +func validateOpDeleteReplicationConfigurationInput(v *DeleteReplicationConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteReplicationConfigurationInput"} + if v.SourceFileSystemId == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceFileSystemId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteTagsInput(v *DeleteTagsInput) error { if v == nil { return nil diff --git a/service/fis/api_op_CreateExperimentTemplate.go b/service/fis/api_op_CreateExperimentTemplate.go index d51dc4c4289..f5dd302be42 100644 --- a/service/fis/api_op_CreateExperimentTemplate.go +++ b/service/fis/api_op_CreateExperimentTemplate.go @@ -12,24 +12,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an experiment template. To create a template, specify the following -// information: +// Creates an experiment template. An experiment template includes the following +// components: // -// * Targets: A target can be a specific resource in your AWS -// environment, or one or more resources that match criteria that you specify, for -// example, resources that have specific tags. +// * Targets: A target can be a specific resource in your Amazon Web +// Services environment, or one or more resources that match criteria that you +// specify, for example, resources that have specific tags. // -// * Actions: The actions to carry out -// on the target. You can specify multiple actions, the duration of each action, -// and when to start each action during an experiment. +// * Actions: The actions +// to carry out on the target. You can specify multiple actions, the duration of +// each action, and when to start each action during an experiment. // -// * Stop conditions: If a -// stop condition is triggered while an experiment is running, the experiment is -// automatically stopped. You can define a stop condition as a CloudWatch -// alarm. +// * Stop +// conditions: If a stop condition is triggered while an experiment is running, the +// experiment is automatically stopped. You can define a stop condition as a +// CloudWatch alarm. // -// For more information, see the AWS Fault Injection Simulator User Guide -// (https://docs.aws.amazon.com/fis/latest/userguide/). +// For more information, see Experiment templates +// (https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html) in +// the Fault Injection Simulator User Guide. func (c *Client) CreateExperimentTemplate(ctx context.Context, params *CreateExperimentTemplateInput, optFns ...func(*Options)) (*CreateExperimentTemplateOutput, error) { if params == nil { params = &CreateExperimentTemplateInput{} @@ -58,13 +59,12 @@ type CreateExperimentTemplateInput struct { // This member is required. ClientToken *string - // A description for the experiment template. Can contain up to 64 letters (A-Z and - // a-z). + // A description for the experiment template. // // This member is required. Description *string - // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // The Amazon Resource Name (ARN) of an IAM role that grants the FIS service // permission to perform service actions on your behalf. // // This member is required. diff --git a/service/fis/api_op_GetAction.go b/service/fis/api_op_GetAction.go index be6cc2cf7be..00994a9325c 100644 --- a/service/fis/api_op_GetAction.go +++ b/service/fis/api_op_GetAction.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about the specified AWS FIS action. +// Gets information about the specified FIS action. func (c *Client) GetAction(ctx context.Context, params *GetActionInput, optFns ...func(*Options)) (*GetActionOutput, error) { if params == nil { params = &GetActionInput{} diff --git a/service/fis/api_op_ListActions.go b/service/fis/api_op_ListActions.go index 8c872a3edce..800058a6180 100644 --- a/service/fis/api_op_ListActions.go +++ b/service/fis/api_op_ListActions.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the available AWS FIS actions. +// Lists the available FIS actions. func (c *Client) ListActions(ctx context.Context, params *ListActionsInput, optFns ...func(*Options)) (*ListActionsOutput, error) { if params == nil { params = &ListActionsInput{} diff --git a/service/fis/api_op_UpdateExperimentTemplate.go b/service/fis/api_op_UpdateExperimentTemplate.go index e8bc86bbfce..0c65a2e8170 100644 --- a/service/fis/api_op_UpdateExperimentTemplate.go +++ b/service/fis/api_op_UpdateExperimentTemplate.go @@ -40,7 +40,7 @@ type UpdateExperimentTemplateInput struct { // A description for the template. Description *string - // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // The Amazon Resource Name (ARN) of an IAM role that grants the FIS service // permission to perform service actions on your behalf. RoleArn *string diff --git a/service/fis/deserializers.go b/service/fis/deserializers.go index 1d1d8a32856..a97853efc54 100644 --- a/service/fis/deserializers.go +++ b/service/fis/deserializers.go @@ -2677,6 +2677,22 @@ func awsRestjson1_deserializeDocumentExperimentAction(v **types.ExperimentAction sv.Description = ptr.String(jtv) } + case "endTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected ExperimentActionEndTime to be a JSON Number, got %T instead", value) + + } + } + case "parameters": if err := awsRestjson1_deserializeDocumentExperimentActionParameterMap(&sv.Parameters, value); err != nil { return err @@ -2687,6 +2703,22 @@ func awsRestjson1_deserializeDocumentExperimentAction(v **types.ExperimentAction return err } + case "startTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.StartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected ExperimentActionStartTime to be a JSON Number, got %T instead", value) + + } + } + case "state": if err := awsRestjson1_deserializeDocumentExperimentActionState(&sv.State, value); err != nil { return err diff --git a/service/fis/doc.go b/service/fis/doc.go index 66ca09c510c..54001681508 100644 --- a/service/fis/doc.go +++ b/service/fis/doc.go @@ -3,8 +3,8 @@ // Package fis provides the API client, operations, and parameter types for AWS // Fault Injection Simulator. // -// AWS Fault Injection Simulator is a managed service that enables you to perform -// fault injection experiments on your AWS workloads. For more information, see the -// AWS Fault Injection Simulator User Guide +// Fault Injection Simulator is a managed service that enables you to perform fault +// injection experiments on your Amazon Web Services workloads. For more +// information, see the Fault Injection Simulator User Guide // (https://docs.aws.amazon.com/fis/latest/userguide/). package fis diff --git a/service/fis/types/types.go b/service/fis/types/types.go index 8586b84aa1e..816f7ce200a 100644 --- a/service/fis/types/types.go +++ b/service/fis/types/types.go @@ -7,9 +7,9 @@ import ( "time" ) -// Describes an action. For more information, see AWS FIS actions +// Describes an action. For more information, see FIS actions // (https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html) in -// the AWS Fault Injection Simulator User Guide. +// the Fault Injection Simulator User Guide. type Action struct { // The description for the action. @@ -69,10 +69,13 @@ type ActionTarget struct { noSmithyDocumentSerde } -// Specifies an action for an experiment template. +// Specifies an action for an experiment template. For more information, see +// Actions (https://docs.aws.amazon.com/fis/latest/userguide/actions.html) in the +// Fault Injection Simulator User Guide. type CreateExperimentTemplateActionInput struct { - // The ID of the action. + // The ID of the action. The format of the action ID is: + // aws:service-name:action-type. // // This member is required. ActionId *string @@ -112,11 +115,13 @@ type CreateExperimentTemplateStopConditionInput struct { // Specifies a target for an experiment. You must specify at least one Amazon // Resource Name (ARN) or at least one resource tag. You cannot specify both ARNs -// and tags. +// and tags. For more information, see Targets +// (https://docs.aws.amazon.com/fis/latest/userguide/targets.html) in the Fault +// Injection Simulator User Guide. type CreateExperimentTemplateTargetInput struct { - // The AWS resource type. The resource type must be supported for the specified - // action. + // The Amazon Web Services resource type. The resource type must be supported for + // the specified action. // // This member is required. ResourceType *string @@ -157,7 +162,7 @@ type Experiment struct { // The actions for the experiment. Actions map[string]ExperimentAction - // The time the experiment was created. + // The time that the experiment was created. CreationTime *time.Time // The time that the experiment ended. @@ -169,11 +174,11 @@ type Experiment struct { // The ID of the experiment. Id *string - // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // The Amazon Resource Name (ARN) of an IAM role that grants the FIS service // permission to perform service actions on your behalf. RoleArn *string - // The time that the experiment was started. + // The time that the experiment started. StartTime *time.Time // The state of the experiment. @@ -200,12 +205,18 @@ type ExperimentAction struct { // The description for the action. Description *string + // The time that the action ended. + EndTime *time.Time + // The parameters for the action. Parameters map[string]string // The name of the action that must be completed before this action starts. StartAfter []string + // The time that the action started. + StartTime *time.Time + // The state of the action. State *ExperimentActionState @@ -425,7 +436,10 @@ type ExperimentTemplateTargetFilter struct { noSmithyDocumentSerde } -// Describes a filter used for the target resource input in an experiment template. +// Specifies a filter used for the target resource input in an experiment template. +// For more information, see Resource filters +// (https://docs.aws.amazon.com/fis/latest/userguide/targets.html#target-filters) +// in the Fault Injection Simulator User Guide. type ExperimentTemplateTargetInputFilter struct { // The attribute path for the filter. @@ -484,8 +498,8 @@ type UpdateExperimentTemplateStopConditionInput struct { // Resource Name (ARN) or at least one resource tag. You cannot specify both. type UpdateExperimentTemplateTargetInput struct { - // The AWS resource type. The resource type must be supported for the specified - // action. + // The Amazon Web Services resource type. The resource type must be supported for + // the specified action. // // This member is required. ResourceType *string diff --git a/service/frauddetector/api_op_GetEventPredictionMetadata.go b/service/frauddetector/api_op_GetEventPredictionMetadata.go new file mode 100644 index 00000000000..bf83b445d14 --- /dev/null +++ b/service/frauddetector/api_op_GetEventPredictionMetadata.go @@ -0,0 +1,187 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets details of the past fraud predictions for the specified event ID, event +// type, detector ID, and detector version ID that was generated in the specified +// time period. +func (c *Client) GetEventPredictionMetadata(ctx context.Context, params *GetEventPredictionMetadataInput, optFns ...func(*Options)) (*GetEventPredictionMetadataOutput, error) { + if params == nil { + params = &GetEventPredictionMetadataInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetEventPredictionMetadata", params, optFns, c.addOperationGetEventPredictionMetadataMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetEventPredictionMetadataOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetEventPredictionMetadataInput struct { + + // The detector ID. + // + // This member is required. + DetectorId *string + + // The detector version ID. + // + // This member is required. + DetectorVersionId *string + + // The event ID. + // + // This member is required. + EventId *string + + // The event type associated with the detector specified for the prediction. + // + // This member is required. + EventTypeName *string + + // The timestamp that defines when the prediction was generated. + // + // This member is required. + PredictionTimestamp *string + + noSmithyDocumentSerde +} + +type GetEventPredictionMetadataOutput struct { + + // The detector ID. + DetectorId *string + + // The detector version ID. + DetectorVersionId *string + + // The status of the detector version. + DetectorVersionStatus *string + + // The entity ID. + EntityId *string + + // The entity type. + EntityType *string + + // External (Amazon SageMaker) models that were evaluated for generating + // predictions. + EvaluatedExternalModels []types.EvaluatedExternalModel + + // Model versions that were evaluated for generating predictions. + EvaluatedModelVersions []types.EvaluatedModelVersion + + // The event ID. + EventId *string + + // The timestamp for when the prediction was generated for the associated event ID. + EventTimestamp *string + + // The event type associated with the detector specified for this prediction. + EventTypeName *string + + // A list of event variables that influenced the prediction scores. + EventVariables []types.EventVariableSummary + + // The outcomes of the matched rule, based on the rule execution mode. + Outcomes []string + + // The timestamp that defines when the prediction was generated. + PredictionTimestamp *string + + // The execution mode of the rule used for evaluating variable values. + RuleExecutionMode types.RuleExecutionMode + + // List of rules associated with the detector version that were used for evaluating + // variable values. + Rules []types.EvaluatedRule + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetEventPredictionMetadataMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetEventPredictionMetadata{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetEventPredictionMetadata{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetEventPredictionMetadataValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetEventPredictionMetadata(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetEventPredictionMetadata(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "GetEventPredictionMetadata", + } +} diff --git a/service/frauddetector/api_op_ListEventPredictions.go b/service/frauddetector/api_op_ListEventPredictions.go new file mode 100644 index 00000000000..5789f8a856a --- /dev/null +++ b/service/frauddetector/api_op_ListEventPredictions.go @@ -0,0 +1,244 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets a list of past predictions. The list can be filtered by detector ID, +// detector version ID, event ID, event type, or by specifying a time period. If +// filter is not specified, the most recent prediction is returned. For example, +// the following filter lists all past predictions for xyz event type - { +// "eventType":{ "value": "xyz" }” } This is a paginated API. If you provide a +// null maxResults, this action will retrieve a maximum of 10 records per page. If +// you provide a maxResults, the value must be between 50 and 100. To get the next +// page results, provide the nextToken from the response as part of your request. A +// null nextToken fetches the records from the beginning. +func (c *Client) ListEventPredictions(ctx context.Context, params *ListEventPredictionsInput, optFns ...func(*Options)) (*ListEventPredictionsOutput, error) { + if params == nil { + params = &ListEventPredictionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEventPredictions", params, optFns, c.addOperationListEventPredictionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEventPredictionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEventPredictionsInput struct { + + // The detector ID. + DetectorId *types.FilterCondition + + // The detector version ID. + DetectorVersionId *types.FilterCondition + + // The event ID. + EventId *types.FilterCondition + + // The event type associated with the detector. + EventType *types.FilterCondition + + // The maximum number of predictions to return for the request. + MaxResults *int32 + + // Identifies the next page of results to return. Use the token to make the call + // again to retrieve the next page. Keep all other arguments unchanged. Each + // pagination token expires after 24 hours. + NextToken *string + + // The time period for when the predictions were generated. + PredictionTimeRange *types.PredictionTimeRange + + noSmithyDocumentSerde +} + +type ListEventPredictionsOutput struct { + + // The summary of the past predictions. + EventPredictionSummaries []types.EventPredictionSummary + + // Identifies the next page of results to return. Use the token to make the call + // again to retrieve the next page. Keep all other arguments unchanged. Each + // pagination token expires after 24 hours. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEventPredictionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListEventPredictions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListEventPredictions{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListEventPredictionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEventPredictions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListEventPredictionsAPIClient is a client that implements the +// ListEventPredictions operation. +type ListEventPredictionsAPIClient interface { + ListEventPredictions(context.Context, *ListEventPredictionsInput, ...func(*Options)) (*ListEventPredictionsOutput, error) +} + +var _ ListEventPredictionsAPIClient = (*Client)(nil) + +// ListEventPredictionsPaginatorOptions is the paginator options for +// ListEventPredictions +type ListEventPredictionsPaginatorOptions struct { + // The maximum number of predictions to return for the request. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListEventPredictionsPaginator is a paginator for ListEventPredictions +type ListEventPredictionsPaginator struct { + options ListEventPredictionsPaginatorOptions + client ListEventPredictionsAPIClient + params *ListEventPredictionsInput + nextToken *string + firstPage bool +} + +// NewListEventPredictionsPaginator returns a new ListEventPredictionsPaginator +func NewListEventPredictionsPaginator(client ListEventPredictionsAPIClient, params *ListEventPredictionsInput, optFns ...func(*ListEventPredictionsPaginatorOptions)) *ListEventPredictionsPaginator { + if params == nil { + params = &ListEventPredictionsInput{} + } + + options := ListEventPredictionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEventPredictionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEventPredictionsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEventPredictions page. +func (p *ListEventPredictionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEventPredictionsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListEventPredictions(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListEventPredictions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "ListEventPredictions", + } +} diff --git a/service/frauddetector/deserializers.go b/service/frauddetector/deserializers.go index 7cccb8c181c..586da9d1c95 100644 --- a/service/frauddetector/deserializers.go +++ b/service/frauddetector/deserializers.go @@ -4432,6 +4432,129 @@ func awsAwsjson11_deserializeOpErrorGetEventPrediction(response *smithyhttp.Resp } } +type awsAwsjson11_deserializeOpGetEventPredictionMetadata struct { +} + +func (*awsAwsjson11_deserializeOpGetEventPredictionMetadata) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGetEventPredictionMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorGetEventPredictionMetadata(response, &metadata) + } + output := &GetEventPredictionMetadataOutput{} + 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_deserializeOpDocumentGetEventPredictionMetadataOutput(&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_deserializeOpErrorGetEventPredictionMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpGetEventTypes struct { } @@ -5536,6 +5659,126 @@ func awsAwsjson11_deserializeOpErrorGetVariables(response *smithyhttp.Response, } } +type awsAwsjson11_deserializeOpListEventPredictions struct { +} + +func (*awsAwsjson11_deserializeOpListEventPredictions) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListEventPredictions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorListEventPredictions(response, &metadata) + } + output := &ListEventPredictionsOutput{} + 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_deserializeOpDocumentListEventPredictionsOutput(&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_deserializeOpErrorListEventPredictions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpListTagsForResource struct { } @@ -9518,7 +9761,7 @@ func awsAwsjson11_deserializeDocumentEntityTypeList(v *[]types.EntityType, value return nil } -func awsAwsjson11_deserializeDocumentEvent(v **types.Event, value interface{}) error { +func awsAwsjson11_deserializeDocumentEvaluatedExternalModel(v **types.EvaluatedExternalModel, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9531,46 +9774,292 @@ func awsAwsjson11_deserializeDocumentEvent(v **types.Event, value interface{}) e return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Event + var sv *types.EvaluatedExternalModel if *v == nil { - sv = &types.Event{} + sv = &types.EvaluatedExternalModel{} } else { sv = *v } for key, value := range shape { switch key { - case "currentLabel": + case "inputVariables": + if err := awsAwsjson11_deserializeDocumentMapOfStrings(&sv.InputVariables, value); err != nil { + return err + } + + case "modelEndpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected string to be of type string, got %T instead", value) } - sv.CurrentLabel = ptr.String(jtv) + sv.ModelEndpoint = ptr.String(jtv) } - case "entities": - if err := awsAwsjson11_deserializeDocumentListOfEntities(&sv.Entities, value); err != nil { + case "outputVariables": + if err := awsAwsjson11_deserializeDocumentMapOfStrings(&sv.OutputVariables, value); err != nil { return err } - case "eventId": + case "useEventVariables": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.EventId = ptr.String(jtv) + sv.UseEventVariables = ptr.Bool(jtv) } - case "eventTimestamp": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) - } - sv.EventTimestamp = ptr.String(jtv) - } + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEvaluatedModelVersion(v **types.EvaluatedModelVersion, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EvaluatedModelVersion + if *v == nil { + sv = &types.EvaluatedModelVersion{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "evaluations": + if err := awsAwsjson11_deserializeDocumentListOfModelVersionEvaluations(&sv.Evaluations, value); err != nil { + return err + } + + case "modelId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.ModelId = ptr.String(jtv) + } + + case "modelType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.ModelType = ptr.String(jtv) + } + + case "modelVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.ModelVersion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEvaluatedRule(v **types.EvaluatedRule, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EvaluatedRule + if *v == nil { + sv = &types.EvaluatedRule{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "evaluated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Evaluated = ptr.Bool(jtv) + } + + case "expression": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected sensitiveString to be of type string, got %T instead", value) + } + sv.Expression = ptr.String(jtv) + } + + case "expressionWithValues": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected sensitiveString to be of type string, got %T instead", value) + } + sv.ExpressionWithValues = ptr.String(jtv) + } + + case "matched": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Matched = ptr.Bool(jtv) + } + + case "outcomes": + if err := awsAwsjson11_deserializeDocumentListOfStrings(&sv.Outcomes, value); err != nil { + return err + } + + case "ruleId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.RuleId = ptr.String(jtv) + } + + case "ruleVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected wholeNumberVersionString to be of type string, got %T instead", value) + } + sv.RuleVersion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEvaluatedRuleList(v *[]types.EvaluatedRule, 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.EvaluatedRule + if *v == nil { + cv = []types.EvaluatedRule{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EvaluatedRule + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEvaluatedRule(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentEvent(v **types.Event, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Event + if *v == nil { + sv = &types.Event{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "currentLabel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.CurrentLabel = ptr.String(jtv) + } + + case "entities": + if err := awsAwsjson11_deserializeDocumentListOfEntities(&sv.Entities, value); err != nil { + return err + } + + case "eventId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventId = ptr.String(jtv) + } + + case "eventTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventTimestamp = ptr.String(jtv) + } case "eventTypeName": if value != nil { @@ -9640,6 +10129,91 @@ func awsAwsjson11_deserializeDocumentEventAttributeMap(v *map[string]string, val return nil } +func awsAwsjson11_deserializeDocumentEventPredictionSummary(v **types.EventPredictionSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EventPredictionSummary + if *v == nil { + sv = &types.EventPredictionSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "detectorId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.DetectorId = ptr.String(jtv) + } + + case "detectorVersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected wholeNumberVersionString to be of type string, got %T instead", value) + } + sv.DetectorVersionId = ptr.String(jtv) + } + + case "eventId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventId = ptr.String(jtv) + } + + case "eventTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.EventTimestamp = ptr.String(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + case "predictionTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.PredictionTimestamp = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentEventType(v **types.EventType, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9779,6 +10353,64 @@ func awsAwsjson11_deserializeDocumentEventTypeList(v *[]types.EventType, value i return nil } +func awsAwsjson11_deserializeDocumentEventVariableSummary(v **types.EventVariableSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EventVariableSummary + if *v == nil { + sv = &types.EventVariableSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected sensitiveString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "source": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected sensitiveString to be of type string, got %T instead", value) + } + sv.Source = ptr.String(jtv) + } + + case "value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected sensitiveString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentExternalEventsDetail(v **types.ExternalEventsDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10651,11 +11283,158 @@ func awsAwsjson11_deserializeDocumentLabel(v **types.Label, value interface{}) e } } - *v = sv + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentLabelList(v *[]types.Label, 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.Label + if *v == nil { + cv = []types.Label{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Label + destAddr := &col + if err := awsAwsjson11_deserializeDocumentLabel(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentLabelMapper(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 + mapVar := parsedVal + if err := awsAwsjson11_deserializeDocumentNonEmptyListOfStrings(&mapVar, value); err != nil { + return err + } + parsedVal = mapVar + mv[key] = parsedVal + + } + *v = mv + return nil +} + +func awsAwsjson11_deserializeDocumentLabelSchema(v **types.LabelSchema, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.LabelSchema + if *v == nil { + sv = &types.LabelSchema{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "labelMapper": + if err := awsAwsjson11_deserializeDocumentLabelMapper(&sv.LabelMapper, value); err != nil { + return err + } + + case "unlabeledEventsTreatment": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UnlabeledEventsTreatment to be of type string, got %T instead", value) + } + sv.UnlabeledEventsTreatment = types.UnlabeledEventsTreatment(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentListOfEntities(v *[]types.Entity, 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.Entity + if *v == nil { + cv = []types.Entity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Entity + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEntity(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv return nil } -func awsAwsjson11_deserializeDocumentLabelList(v *[]types.Label, value interface{}) error { +func awsAwsjson11_deserializeDocumentListOfEvaluatedExternalModels(v *[]types.EvaluatedExternalModel, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10668,17 +11447,17 @@ func awsAwsjson11_deserializeDocumentLabelList(v *[]types.Label, value interface return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Label + var cv []types.EvaluatedExternalModel if *v == nil { - cv = []types.Label{} + cv = []types.EvaluatedExternalModel{} } else { cv = *v } for _, value := range shape { - var col types.Label + var col types.EvaluatedExternalModel destAddr := &col - if err := awsAwsjson11_deserializeDocumentLabel(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentEvaluatedExternalModel(&destAddr, value); err != nil { return err } col = *destAddr @@ -10689,7 +11468,7 @@ func awsAwsjson11_deserializeDocumentLabelList(v *[]types.Label, value interface return nil } -func awsAwsjson11_deserializeDocumentLabelMapper(v *map[string][]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentListOfEvaluatedModelVersions(v *[]types.EvaluatedModelVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10697,33 +11476,33 @@ func awsAwsjson11_deserializeDocumentLabelMapper(v *map[string][]string, value i return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var mv map[string][]string + var cv []types.EvaluatedModelVersion if *v == nil { - mv = map[string][]string{} + cv = []types.EvaluatedModelVersion{} } else { - mv = *v + cv = *v } - for key, value := range shape { - var parsedVal []string - mapVar := parsedVal - if err := awsAwsjson11_deserializeDocumentNonEmptyListOfStrings(&mapVar, value); err != nil { + for _, value := range shape { + var col types.EvaluatedModelVersion + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEvaluatedModelVersion(&destAddr, value); err != nil { return err } - parsedVal = mapVar - mv[key] = parsedVal + col = *destAddr + cv = append(cv, col) } - *v = mv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentLabelSchema(v **types.LabelSchema, value interface{}) error { +func awsAwsjson11_deserializeDocumentListOfEventPredictionSummaries(v *[]types.EventPredictionSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10731,44 +11510,33 @@ func awsAwsjson11_deserializeDocumentLabelSchema(v **types.LabelSchema, value in return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LabelSchema + var cv []types.EventPredictionSummary if *v == nil { - sv = &types.LabelSchema{} + cv = []types.EventPredictionSummary{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "labelMapper": - if err := awsAwsjson11_deserializeDocumentLabelMapper(&sv.LabelMapper, value); err != nil { - return err - } - - case "unlabeledEventsTreatment": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected UnlabeledEventsTreatment to be of type string, got %T instead", value) - } - sv.UnlabeledEventsTreatment = types.UnlabeledEventsTreatment(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.EventPredictionSummary + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEventPredictionSummary(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentListOfEntities(v *[]types.Entity, value interface{}) error { +func awsAwsjson11_deserializeDocumentListOfEventVariableSummaries(v *[]types.EventVariableSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10781,17 +11549,17 @@ func awsAwsjson11_deserializeDocumentListOfEntities(v *[]types.Entity, value int return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Entity + var cv []types.EventVariableSummary if *v == nil { - cv = []types.Entity{} + cv = []types.EventVariableSummary{} } else { cv = *v } for _, value := range shape { - var col types.Entity + var col types.EventVariableSummary destAddr := &col - if err := awsAwsjson11_deserializeDocumentEntity(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentEventVariableSummary(&destAddr, value); err != nil { return err } col = *destAddr @@ -10904,6 +11672,40 @@ func awsAwsjson11_deserializeDocumentListOfModelScores(v *[]types.ModelScores, v return nil } +func awsAwsjson11_deserializeDocumentListOfModelVersionEvaluations(v *[]types.ModelVersionEvaluation, 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.ModelVersionEvaluation + if *v == nil { + cv = []types.ModelVersionEvaluation{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ModelVersionEvaluation + destAddr := &col + if err := awsAwsjson11_deserializeDocumentModelVersionEvaluation(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentListOfModelVersions(v *[]types.ModelVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11008,6 +11810,40 @@ func awsAwsjson11_deserializeDocumentListOfStrings(v *[]string, value interface{ return nil } +func awsAwsjson11_deserializeDocumentListOfVariableImpactExplanations(v *[]types.VariableImpactExplanation, 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.VariableImpactExplanation + if *v == nil { + cv = []types.VariableImpactExplanation{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VariableImpactExplanation + destAddr := &col + if err := awsAwsjson11_deserializeDocumentVariableImpactExplanation(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentLogOddsMetric(v **types.LogOddsMetric, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11091,6 +11927,42 @@ func awsAwsjson11_deserializeDocumentLogOddsMetric(v **types.LogOddsMetric, valu return nil } +func awsAwsjson11_deserializeDocumentMapOfStrings(v *map[string]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsAwsjson11_deserializeDocumentMetricDataPoint(v **types.MetricDataPoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11872,6 +12744,60 @@ func awsAwsjson11_deserializeDocumentModelVersionDetailList(v *[]types.ModelVers return nil } +func awsAwsjson11_deserializeDocumentModelVersionEvaluation(v **types.ModelVersionEvaluation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ModelVersionEvaluation + if *v == nil { + sv = &types.ModelVersionEvaluation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "evaluationScore": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EvaluationScore = ptr.String(jtv) + } + + case "outputVariableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.OutputVariableName = ptr.String(jtv) + } + + case "predictionExplanations": + if err := awsAwsjson11_deserializeDocumentPredictionExplanations(&sv.PredictionExplanations, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentNonEmptyListOfStrings(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12004,17 +12930,53 @@ func awsAwsjson11_deserializeDocumentOutcomeList(v *[]types.Outcome, value inter cv = *v } - for _, value := range shape { - var col types.Outcome - destAddr := &col - if err := awsAwsjson11_deserializeDocumentOutcome(&destAddr, value); err != nil { - return err + for _, value := range shape { + var col types.Outcome + destAddr := &col + if err := awsAwsjson11_deserializeDocumentOutcome(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentPredictionExplanations(v **types.PredictionExplanations, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PredictionExplanations + if *v == nil { + sv = &types.PredictionExplanations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "variableImpactExplanations": + if err := awsAwsjson11_deserializeDocumentListOfVariableImpactExplanations(&sv.VariableImpactExplanations, value); err != nil { + return err + } + + default: + _, _ = key, value + } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } @@ -12818,6 +13780,89 @@ func awsAwsjson11_deserializeDocumentVariable(v **types.Variable, value interfac return nil } +func awsAwsjson11_deserializeDocumentVariableImpactExplanation(v **types.VariableImpactExplanation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.VariableImpactExplanation + if *v == nil { + sv = &types.VariableImpactExplanation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "eventVariableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventVariableName = ptr.String(jtv) + } + + case "logOddsImpact": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LogOddsImpact = ptr.Float32(float32(f64)) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.LogOddsImpact = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected float to be a JSON Number, got %T instead", value) + + } + } + + case "relativeImpact": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.RelativeImpact = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentVariableImportanceMetrics(v **types.VariableImportanceMetrics, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14286,6 +15331,152 @@ func awsAwsjson11_deserializeOpDocumentGetEventOutput(v **GetEventOutput, value return nil } +func awsAwsjson11_deserializeOpDocumentGetEventPredictionMetadataOutput(v **GetEventPredictionMetadataOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetEventPredictionMetadataOutput + if *v == nil { + sv = &GetEventPredictionMetadataOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "detectorId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.DetectorId = ptr.String(jtv) + } + + case "detectorVersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected wholeNumberVersionString to be of type string, got %T instead", value) + } + sv.DetectorVersionId = ptr.String(jtv) + } + + case "detectorVersionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.DetectorVersionStatus = ptr.String(jtv) + } + + case "entityId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EntityId = ptr.String(jtv) + } + + case "entityType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EntityType = ptr.String(jtv) + } + + case "evaluatedExternalModels": + if err := awsAwsjson11_deserializeDocumentListOfEvaluatedExternalModels(&sv.EvaluatedExternalModels, value); err != nil { + return err + } + + case "evaluatedModelVersions": + if err := awsAwsjson11_deserializeDocumentListOfEvaluatedModelVersions(&sv.EvaluatedModelVersions, value); err != nil { + return err + } + + case "eventId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventId = ptr.String(jtv) + } + + case "eventTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.EventTimestamp = ptr.String(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + case "eventVariables": + if err := awsAwsjson11_deserializeDocumentListOfEventVariableSummaries(&sv.EventVariables, value); err != nil { + return err + } + + case "outcomes": + if err := awsAwsjson11_deserializeDocumentListOfStrings(&sv.Outcomes, value); err != nil { + return err + } + + case "predictionTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.PredictionTimestamp = ptr.String(jtv) + } + + case "ruleExecutionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RuleExecutionMode to be of type string, got %T instead", value) + } + sv.RuleExecutionMode = types.RuleExecutionMode(jtv) + } + + case "rules": + if err := awsAwsjson11_deserializeDocumentEvaluatedRuleList(&sv.Rules, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetEventPredictionOutput(v **GetEventPredictionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14783,6 +15974,51 @@ func awsAwsjson11_deserializeOpDocumentGetVariablesOutput(v **GetVariablesOutput return nil } +func awsAwsjson11_deserializeOpDocumentListEventPredictionsOutput(v **ListEventPredictionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListEventPredictionsOutput + if *v == nil { + sv = &ListEventPredictionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "eventPredictionSummaries": + if err := awsAwsjson11_deserializeDocumentListOfEventPredictionSummaries(&sv.EventPredictionSummaries, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/frauddetector/generated.json b/service/frauddetector/generated.json index 7640653faef..65baa791e4e 100644 --- a/service/frauddetector/generated.json +++ b/service/frauddetector/generated.json @@ -43,6 +43,7 @@ "api_op_GetEntityTypes.go", "api_op_GetEvent.go", "api_op_GetEventPrediction.go", + "api_op_GetEventPredictionMetadata.go", "api_op_GetEventTypes.go", "api_op_GetExternalModels.go", "api_op_GetKMSEncryptionKey.go", @@ -52,6 +53,7 @@ "api_op_GetOutcomes.go", "api_op_GetRules.go", "api_op_GetVariables.go", + "api_op_ListEventPredictions.go", "api_op_ListTagsForResource.go", "api_op_PutDetector.go", "api_op_PutEntityType.go", diff --git a/service/frauddetector/serializers.go b/service/frauddetector/serializers.go index 18a94a0b5ba..52963ebe8e0 100644 --- a/service/frauddetector/serializers.go +++ b/service/frauddetector/serializers.go @@ -1996,6 +1996,61 @@ func (m *awsAwsjson11_serializeOpGetEventPrediction) HandleSerialize(ctx context return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetEventPredictionMetadata struct { +} + +func (*awsAwsjson11_serializeOpGetEventPredictionMetadata) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetEventPredictionMetadata) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetEventPredictionMetadataInput) + _ = 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("AWSHawksNestServiceFacade.GetEventPredictionMetadata") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetEventPredictionMetadataInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetEventTypes struct { } @@ -2486,6 +2541,61 @@ func (m *awsAwsjson11_serializeOpGetVariables) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListEventPredictions struct { +} + +func (*awsAwsjson11_serializeOpListEventPredictions) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListEventPredictions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListEventPredictionsInput) + _ = 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("AWSHawksNestServiceFacade.ListEventPredictions") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListEventPredictionsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpListTagsForResource struct { } @@ -3710,6 +3820,18 @@ func awsAwsjson11_serializeDocumentExternalModelEndpointDataBlobMap(v map[string return nil } +func awsAwsjson11_serializeDocumentFilterCondition(v *types.FilterCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Value != nil { + ok := object.Key("value") + ok.String(*v.Value) + } + + return nil +} + func awsAwsjson11_serializeDocumentIngestedEventsDetail(v *types.IngestedEventsDetail, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3948,6 +4070,23 @@ func awsAwsjson11_serializeDocumentNonEmptyListOfStrings(v []string, value smith return nil } +func awsAwsjson11_serializeDocumentPredictionTimeRange(v *types.PredictionTimeRange, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EndTime != nil { + ok := object.Key("endTime") + ok.String(*v.EndTime) + } + + if v.StartTime != nil { + ok := object.Key("startTime") + ok.String(*v.StartTime) + } + + return nil +} + func awsAwsjson11_serializeDocumentRule(v *types.Rule, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4919,6 +5058,38 @@ func awsAwsjson11_serializeOpDocumentGetEventPredictionInput(v *GetEventPredicti return nil } +func awsAwsjson11_serializeOpDocumentGetEventPredictionMetadataInput(v *GetEventPredictionMetadataInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DetectorId != nil { + ok := object.Key("detectorId") + ok.String(*v.DetectorId) + } + + if v.DetectorVersionId != nil { + ok := object.Key("detectorVersionId") + ok.String(*v.DetectorVersionId) + } + + if v.EventId != nil { + ok := object.Key("eventId") + ok.String(*v.EventId) + } + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + if v.PredictionTimestamp != nil { + ok := object.Key("predictionTimestamp") + ok.String(*v.PredictionTimestamp) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetEventTypesInput(v *GetEventTypesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5110,6 +5281,58 @@ func awsAwsjson11_serializeOpDocumentGetVariablesInput(v *GetVariablesInput, val return nil } +func awsAwsjson11_serializeOpDocumentListEventPredictionsInput(v *ListEventPredictionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DetectorId != nil { + ok := object.Key("detectorId") + if err := awsAwsjson11_serializeDocumentFilterCondition(v.DetectorId, ok); err != nil { + return err + } + } + + if v.DetectorVersionId != nil { + ok := object.Key("detectorVersionId") + if err := awsAwsjson11_serializeDocumentFilterCondition(v.DetectorVersionId, ok); err != nil { + return err + } + } + + if v.EventId != nil { + ok := object.Key("eventId") + if err := awsAwsjson11_serializeDocumentFilterCondition(v.EventId, ok); err != nil { + return err + } + } + + if v.EventType != nil { + ok := object.Key("eventType") + if err := awsAwsjson11_serializeDocumentFilterCondition(v.EventType, 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.PredictionTimeRange != nil { + ok := object.Key("predictionTimeRange") + if err := awsAwsjson11_serializeDocumentPredictionTimeRange(v.PredictionTimeRange, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListTagsForResourceInput(v *ListTagsForResourceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/frauddetector/types/types.go b/service/frauddetector/types/types.go index 77da32eed73..273a08b4984 100644 --- a/service/frauddetector/types/types.go +++ b/service/frauddetector/types/types.go @@ -225,6 +225,70 @@ type EntityType struct { noSmithyDocumentSerde } +// The details of the external (Amazon Sagemaker) model evaluated for generating +// predictions. +type EvaluatedExternalModel struct { + + // Input variables use for generating predictions. + InputVariables map[string]string + + // The endpoint of the external (Amazon Sagemaker) model. + ModelEndpoint *string + + // Output variables. + OutputVariables map[string]string + + // Indicates whether event variables were used to generate predictions. + UseEventVariables *bool + + noSmithyDocumentSerde +} + +// The model version evaluated for generating prediction. +type EvaluatedModelVersion struct { + + // Evaluations generated for the model version. + Evaluations []ModelVersionEvaluation + + // The model ID. + ModelId *string + + // The model type. Valid values: ONLINE_FRAUD_INSIGHTS | TRANSACTION_FRAUD_INSIGHTS + ModelType *string + + // The model version. + ModelVersion *string + + noSmithyDocumentSerde +} + +// The details of the rule used for evaluating variable values. +type EvaluatedRule struct { + + // Indicates whether the rule was evaluated. + Evaluated *bool + + // The rule expression. + Expression *string + + // The rule expression value. + ExpressionWithValues *string + + // Indicates whether the rule matched. + Matched *bool + + // The rule outcome. + Outcomes []string + + // The rule ID. + RuleId *string + + // The rule version. + RuleVersion *string + + noSmithyDocumentSerde +} + // The event details. type Event struct { @@ -256,6 +320,30 @@ type Event struct { noSmithyDocumentSerde } +// Information about the summary of an event prediction. +type EventPredictionSummary struct { + + // The detector ID. + DetectorId *string + + // The detector version ID. + DetectorVersionId *string + + // The event ID. + EventId *string + + // The timestamp of the event. + EventTimestamp *string + + // The event type. + EventTypeName *string + + // The timestamp when the prediction was generated. + PredictionTimestamp *string + + noSmithyDocumentSerde +} + // The event type details. type EventType struct { @@ -295,6 +383,22 @@ type EventType struct { noSmithyDocumentSerde } +// Information about the summary of an event variable that was evaluated for +// generating prediction. +type EventVariableSummary struct { + + // The event variable name. + Name *string + + // The event variable source. + Source *string + + // The value of the event variable. + Value *string + + noSmithyDocumentSerde +} + // Details for the external events data used for model version training. type ExternalEventsDetail struct { @@ -405,6 +509,16 @@ type FileValidationMessage struct { noSmithyDocumentSerde } +// A conditional statement for filtering a list of past predictions. +type FilterCondition struct { + + // A statement containing a resource property and a value to specify filter + // condition. + Value *string + + noSmithyDocumentSerde +} + // The details of the ingested event. type IngestedEventsDetail struct { @@ -717,6 +831,21 @@ type ModelVersionDetail struct { noSmithyDocumentSerde } +// The model version evalutions. +type ModelVersionEvaluation struct { + + // The evaluation score generated for the model version. + EvaluationScore *string + + // The output variable name. + OutputVariableName *string + + // The prediction explanations generated for the model version. + PredictionExplanations *PredictionExplanations + + noSmithyDocumentSerde +} + // The outcome. type Outcome struct { @@ -738,6 +867,32 @@ type Outcome struct { noSmithyDocumentSerde } +// The prediction explanations that provide insight into how each event variable +// impacted the model version's fraud prediction score. +type PredictionExplanations struct { + + // The details of the event variable's impact on the prediction score. + VariableImpactExplanations []VariableImpactExplanation + + noSmithyDocumentSerde +} + +// The time period for when the predictions were generated. +type PredictionTimeRange struct { + + // The end time of the time period for when the predictions were generated. + // + // This member is required. + EndTime *string + + // The start time of the time period for when the predictions were generated. + // + // This member is required. + StartTime *string + + noSmithyDocumentSerde +} + // A rule. type Rule struct { @@ -941,6 +1096,30 @@ type VariableEntry struct { noSmithyDocumentSerde } +// The details of the event variable's impact on the prediction score. +type VariableImpactExplanation struct { + + // The event variable name. + EventVariableName *string + + // The raw, uninterpreted value represented as log-odds of the fraud. These values + // are usually between -10 to +10, but range from - infinity to + infinity. + // + // * A + // positive value indicates that the variable drove the risk score up. + // + // * A + // negative value indicates that the variable drove the risk score down. + LogOddsImpact *float32 + + // The event variable's relative impact in terms of magnitude on the prediction + // scores. The relative impact values consist of a numerical rating (0-5, 5 being + // the highest) and direction (increased/decreased) impact of the fraud risk. + RelativeImpact *string + + noSmithyDocumentSerde +} + // The variable importance metrics details. type VariableImportanceMetrics struct { diff --git a/service/frauddetector/validators.go b/service/frauddetector/validators.go index 4450405f3d9..ab42a4777a3 100644 --- a/service/frauddetector/validators.go +++ b/service/frauddetector/validators.go @@ -630,6 +630,26 @@ func (m *validateOpGetEventPrediction) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpGetEventPredictionMetadata struct { +} + +func (*validateOpGetEventPredictionMetadata) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetEventPredictionMetadata) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetEventPredictionMetadataInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetEventPredictionMetadataInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetModelVersion struct { } @@ -670,6 +690,26 @@ func (m *validateOpGetRules) HandleInitialize(ctx context.Context, in middleware return next.HandleInitialize(ctx, in) } +type validateOpListEventPredictions struct { +} + +func (*validateOpListEventPredictions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListEventPredictions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListEventPredictionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListEventPredictionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListTagsForResource struct { } @@ -1214,6 +1254,10 @@ func addOpGetEventPredictionValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetEventPrediction{}, middleware.After) } +func addOpGetEventPredictionMetadataValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetEventPredictionMetadata{}, middleware.After) +} + func addOpGetModelVersionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetModelVersion{}, middleware.After) } @@ -1222,6 +1266,10 @@ func addOpGetRulesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetRules{}, middleware.After) } +func addOpListEventPredictionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEventPredictions{}, middleware.After) +} + func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) } @@ -1479,6 +1527,24 @@ func validateModelVersion(v *types.ModelVersion) error { } } +func validatePredictionTimeRange(v *types.PredictionTimeRange) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PredictionTimeRange"} + if v.StartTime == nil { + invalidParams.Add(smithy.NewErrParamRequired("StartTime")) + } + if v.EndTime == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndTime")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRule(v *types.Rule) error { if v == nil { return nil @@ -2212,6 +2278,33 @@ func validateOpGetEventPredictionInput(v *GetEventPredictionInput) error { } } +func validateOpGetEventPredictionMetadataInput(v *GetEventPredictionMetadataInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetEventPredictionMetadataInput"} + if v.EventId == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventId")) + } + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if v.DetectorId == nil { + invalidParams.Add(smithy.NewErrParamRequired("DetectorId")) + } + if v.DetectorVersionId == nil { + invalidParams.Add(smithy.NewErrParamRequired("DetectorVersionId")) + } + if v.PredictionTimestamp == nil { + invalidParams.Add(smithy.NewErrParamRequired("PredictionTimestamp")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetModelVersionInput(v *GetModelVersionInput) error { if v == nil { return nil @@ -2248,6 +2341,23 @@ func validateOpGetRulesInput(v *GetRulesInput) error { } } +func validateOpListEventPredictionsInput(v *ListEventPredictionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListEventPredictionsInput"} + if v.PredictionTimeRange != nil { + if err := validatePredictionTimeRange(v.PredictionTimeRange); err != nil { + invalidParams.AddNested("PredictionTimeRange", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { if v == nil { return nil diff --git a/service/fsx/api_op_CreateFileSystem.go b/service/fsx/api_op_CreateFileSystem.go index 803ecc3592a..f6c8c579034 100644 --- a/service/fsx/api_op_CreateFileSystem.go +++ b/service/fsx/api_op_CreateFileSystem.go @@ -20,43 +20,45 @@ import ( // // * Amazon FSx for NetApp ONTAP // -// * Amazon FSx for Windows -// File Server +// * Amazon FSx for +// OpenZFS // -// This operation requires a client request token in the request that -// Amazon FSx uses to ensure idempotent creation. This means that calling the -// operation multiple times with the same client request token has no effect. By -// using the idempotent operation, you can retry a CreateFileSystem operation -// without the risk of creating an extra file system. This approach can be useful -// when an initial call fails in a way that makes it unclear whether a file system -// was created. Examples are if a transport level timeout occurred, or your -// connection was reset. If you use the same client request token and the initial -// call created a file system, the client receives success as long as the -// parameters are the same. If a file system with the specified client request -// token exists and the parameters match, CreateFileSystem returns the description -// of the existing file system. If a file system with the specified client request -// token exists and the parameters don't match, this call returns -// IncompatibleParameterError. If a file system with the specified client request -// token doesn't exist, CreateFileSystem does the following: +// * Amazon FSx for Windows File Server // -// * Creates a new, -// empty Amazon FSx file system with an assigned ID, and an initial lifecycle state -// of CREATING. +// This operation requires a client +// request token in the request that Amazon FSx uses to ensure idempotent creation. +// This means that calling the operation multiple times with the same client +// request token has no effect. By using the idempotent operation, you can retry a +// CreateFileSystem operation without the risk of creating an extra file system. +// This approach can be useful when an initial call fails in a way that makes it +// unclear whether a file system was created. Examples are if a transport level +// timeout occurred, or your connection was reset. If you use the same client +// request token and the initial call created a file system, the client receives +// success as long as the parameters are the same. If a file system with the +// specified client request token exists and the parameters match, CreateFileSystem +// returns the description of the existing file system. If a file system with the +// specified client request token exists and the parameters don't match, this call +// returns IncompatibleParameterError. If a file system with the specified client +// request token doesn't exist, CreateFileSystem does the following: +// +// * Creates a +// new, empty Amazon FSx file system with an assigned ID, and an initial lifecycle +// state of CREATING. // // * Returns the description of the file system. // -// This operation -// requires a client request token in the request that Amazon FSx uses to ensure -// idempotent creation. This means that calling the operation multiple times with -// the same client request token has no effect. By using the idempotent operation, -// you can retry a CreateFileSystem operation without the risk of creating an extra -// file system. This approach can be useful when an initial call fails in a way -// that makes it unclear whether a file system was created. Examples are if a -// transport-level timeout occurred, or your connection was reset. If you use the -// same client request token and the initial call created a file system, the client -// receives a success message as long as the parameters are the same. The -// CreateFileSystem call returns while the file system's lifecycle state is still -// CREATING. You can check the file-system creation status by calling the +// This +// operation requires a client request token in the request that Amazon FSx uses to +// ensure idempotent creation. This means that calling the operation multiple times +// with the same client request token has no effect. By using the idempotent +// operation, you can retry a CreateFileSystem operation without the risk of +// creating an extra file system. This approach can be useful when an initial call +// fails in a way that makes it unclear whether a file system was created. Examples +// are if a transport-level timeout occurred, or your connection was reset. If you +// use the same client request token and the initial call created a file system, +// the client receives a success message as long as the parameters are the same. +// The CreateFileSystem call returns while the file system's lifecycle state is +// still CREATING. You can check the file-system creation status by calling the // DescribeFileSystems // (https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html) // operation, which returns the file system state along with other information. @@ -202,7 +204,7 @@ type CreateFileSystemInput struct { // // * Set to HDD to use // hard disk drive storage. HDD is supported on SINGLE_AZ_2 and MULTI_AZ_1 Windows - // file system deployment types, and on PERSISTENT Lustre file system deployment + // file system deployment types, and on PERSISTENT_1 Lustre file system deployment // types. // // Default value is SSD. For more information, see Storage type options diff --git a/service/fsx/api_op_UpdateFileSystem.go b/service/fsx/api_op_UpdateFileSystem.go index f8dc4fc3c5f..79279eaf8c9 100644 --- a/service/fsx/api_op_UpdateFileSystem.go +++ b/service/fsx/api_op_UpdateFileSystem.go @@ -33,8 +33,8 @@ import ( // // * WeeklyMaintenanceStartTime // -// For FSx for -// Lustre file systems, you can update the following properties: +// For Amazon +// FSx for Lustre file systems, you can update the following properties: // // * // AutoImportPolicy @@ -51,37 +51,40 @@ import ( // * // WeeklyMaintenanceStartTime // -// For FSx for ONTAP file systems, you can update the -// following properties: +// For Amazon FSx for NetApp ONTAP file systems, you +// can update the following properties: // // * AutomaticBackupRetentionDays // // * // DailyAutomaticBackupStartTime // +// * DiskIopsConfiguration +// // * FsxAdminPassword // // * -// WeeklyMaintenanceStartTime +// StorageCapacity // -// For the Amazon FSx for OpenZFS file systems, you can -// update the following properties: +// * WeeklyMaintenanceStartTime // -// * AutomaticBackupRetentionDays +// For the Amazon FSx for OpenZFS +// file systems, you can update the following properties: // // * -// CopyTagsToBackups +// AutomaticBackupRetentionDays // -// * CopyTagsToVolumes +// * CopyTagsToBackups // -// * DailyAutomaticBackupStartTime +// * CopyTagsToVolumes // // * -// DiskIopsConfiguration +// DailyAutomaticBackupStartTime // // * ThroughputCapacity // -// * WeeklyMaintenanceStartTime +// * +// WeeklyMaintenanceStartTime func (c *Client) UpdateFileSystem(ctx context.Context, params *UpdateFileSystemInput, optFns ...func(*Options)) (*UpdateFileSystemOutput, error) { if params == nil { params = &UpdateFileSystemInput{} @@ -121,40 +124,40 @@ type UpdateFileSystemInput struct { OpenZFSConfiguration *types.UpdateFileSystemOpenZFSConfiguration // Use this parameter to increase the storage capacity of an Amazon FSx for Windows - // File Server or Amazon FSx for Lustre file system. Specifies the storage capacity - // target value, in GiB, to increase the storage capacity for the file system that - // you're updating. You can't make a storage capacity increase request if there is - // an existing storage capacity increase request in progress. For Windows file - // systems, the storage capacity target value must be at least 10 percent greater - // than the current storage capacity value. To increase storage capacity, the file - // system must have at least 16 MBps of throughput capacity. For Lustre file - // systems, the storage capacity target value can be the following: - // - // * For - // SCRATCH_2 and PERSISTENT_1 SSD deployment types, valid values are in multiples - // of 2400 GiB. The value must be greater than the current storage capacity. + // File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp ONTAP file system. + // Specifies the storage capacity target value, in GiB, to increase the storage + // capacity for the file system that you're updating. You can't make a storage + // capacity increase request if there is an existing storage capacity increase + // request in progress. For Windows file systems, the storage capacity target value + // must be at least 10 percent greater than the current storage capacity value. To + // increase storage capacity, the file system must have at least 16 MBps of + // throughput capacity. For more information, see Managing storage capacity + // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html) + // in the Amazon FSx for Windows File Server User Guide. For Lustre file systems, + // the storage capacity target value can be the following: // - // * For - // PERSISTENT HDD file systems, valid values are multiples of 6000 GiB for 12-MBps - // throughput per TiB file systems and multiples of 1800 GiB for 40-MBps throughput - // per TiB file systems. The values must be greater than the current storage + // * For SCRATCH_2, + // PERSISTENT_1, and PERSISTENT_2 SSD deployment types, valid values are in + // multiples of 2400 GiB. The value must be greater than the current storage // capacity. // - // * For SCRATCH_1 file systems, you can't increase the storage - // capacity. + // * For PERSISTENT HDD file systems, valid values are multiples of 6000 + // GiB for 12-MBps throughput per TiB file systems and multiples of 1800 GiB for + // 40-MBps throughput per TiB file systems. The values must be greater than the + // current storage capacity. // - // For OpenZFS file systems, the input/output operations per second - // (IOPS) automatically scale with increases to the storage capacity if IOPS is - // configured for automatic scaling. If the storage capacity increase would result - // in less than 3 IOPS per GiB of storage, this operation returns an error. For - // more information, see Managing storage capacity - // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html) - // in the Amazon FSx for Windows File Server User Guide, Managing storage and - // throughput capacity + // * For SCRATCH_1 file systems, you can't increase the + // storage capacity. + // + // For more information, see Managing storage and throughput + // capacity // (https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html) - // in the Amazon FSx for Lustre User Guide, and Managing storage capacity - // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-storage-capacity.html) - // in the Amazon FSx for OpenZFS User Guide. + // in the Amazon FSx for Lustre User Guide. For ONTAP file systems, the storage + // capacity target value must be at least 10 percent greater than the current + // storage capacity value. For more information, see Managing storage capacity and + // provisioned IOPS + // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html) + // in the Amazon FSx for NetApp ONTAP User Guide. StorageCapacity *int32 // The configuration updates for an Amazon FSx for Windows File Server file system. diff --git a/service/fsx/serializers.go b/service/fsx/serializers.go index 1c47a94b776..910b519a8d7 100644 --- a/service/fsx/serializers.go +++ b/service/fsx/serializers.go @@ -3293,6 +3293,13 @@ func awsAwsjson11_serializeDocumentUpdateFileSystemOntapConfiguration(v *types.U ok.String(*v.DailyAutomaticBackupStartTime) } + if v.DiskIopsConfiguration != nil { + ok := object.Key("DiskIopsConfiguration") + if err := awsAwsjson11_serializeDocumentDiskIopsConfiguration(v.DiskIopsConfiguration, ok); err != nil { + return err + } + } + if v.FsxAdminPassword != nil { ok := object.Key("FsxAdminPassword") ok.String(*v.FsxAdminPassword) diff --git a/service/fsx/types/types.go b/service/fsx/types/types.go index 0e201094083..27c22fb4638 100644 --- a/service/fsx/types/types.go +++ b/service/fsx/types/types.go @@ -44,32 +44,29 @@ type AdministrativeAction struct { // system's storage capacity has been completed successfully, a // STORAGE_OPTIMIZATION task starts. // - // * For Windows, storage optimization is the - // process of migrating the file system data to the new, larger disks. + // * For Windows and ONTAP, storage optimization + // is the process of migrating the file system data to newer larger disks. // // * For // Lustre, storage optimization consists of rebalancing the data across the // existing and newly added file servers. // - // * For OpenZFS, storage optimization - // consists of migrating data from the older smaller disks to the newer larger - // disks. - // - // You can track the storage-optimization progress using the - // ProgressPercent property. When STORAGE_OPTIMIZATION has been completed - // successfully, the parent FILE_SYSTEM_UPDATE action status changes to COMPLETED. - // For more information, see Managing storage capacity + // You can track the storage-optimization + // progress using the ProgressPercent property. When STORAGE_OPTIMIZATION has been + // completed successfully, the parent FILE_SYSTEM_UPDATE action status changes to + // COMPLETED. For more information, see Managing storage capacity // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html) // in the Amazon FSx for Windows File Server User Guide, Managing storage and // throughput capacity // (https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html) - // in the Amazon FSx for Lustre User Guide, and Managing storage capacity - // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-storage-capacity.html) - // in the Amazon FSx for OpenZFS User Guide. - // - // * FILE_SYSTEM_ALIAS_ASSOCIATION - A - // file system update to associate a new Domain Name System (DNS) alias with the - // file system. For more information, see AssociateFileSystemAliases + // in the Amazon FSx for Lustre User Guide, and Managing storage capacity and + // provisioned IOPS + // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html) + // in the Amazon FSx for NetApp ONTAP User Guide. + // + // * FILE_SYSTEM_ALIAS_ASSOCIATION + // - A file system update to associate a new Domain Name System (DNS) alias with + // the file system. For more information, see AssociateFileSystemAliases // (https://docs.aws.amazon.com/fsx/latest/APIReference/API_AssociateFileSystemAliases.html). // // * @@ -481,7 +478,7 @@ type CreateFileSystemLustreConfiguration struct { // temporary storage and shorter-term processing of data. The SCRATCH_2 deployment // type provides in-transit encryption of data and higher burst throughput capacity // than SCRATCH_1. Choose PERSISTENT_1 for longer-term storage and for - // throughput-focused workloads that aren’t latency-sensitive. a. PERSISTENT_1 + // throughput-focused workloads that aren’t latency-sensitive. PERSISTENT_1 // supports encryption of data in transit, and is available in all Amazon Web // Services Regions in which FSx for Lustre is available. Choose PERSISTENT_2 for // longer-term storage and for latency-sensitive workloads that require the highest @@ -593,7 +590,7 @@ type CreateFileSystemOntapConfiguration struct { DeploymentType OntapDeploymentType // Sets the throughput capacity for the file system that you're creating. Valid - // values are 512, 1024, and 2048 MBps. + // values are 128, 256, 512, 1024, and 2048 MBps. // // This member is required. ThroughputCapacity *int32 @@ -866,7 +863,21 @@ type CreateOntapVolumeConfiguration struct { // Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx // for ONTAP's intelligent tiering automatically transitions a volume's data // between the file system's primary storage and capacity pool storage based on - // your access patterns. + // your access patterns. Valid tiering policies are the following: + // + // * SNAPSHOT_ONLY + // - (Default value) moves cold snapshots to the capacity pool storage tier. + // + // * + // AUTO - moves cold user data and snapshots to the capacity pool storage tier + // based on your access patterns. + // + // * ALL - moves all user data blocks in both the + // active file system and Snapshot copies to the storage pool tier. + // + // * NONE - keeps + // a volume's data in the primary storage tier, preventing it from being moved to + // the capacity pool tier. TieringPolicy *TieringPolicy noSmithyDocumentSerde @@ -1460,7 +1471,7 @@ type DeleteVolumeOntapResponse struct { // A value that specifies whether to delete all child volumes and snapshots. type DeleteVolumeOpenZFSConfiguration struct { - // To delete the volume's children and snapshots, use the string + // To delete the volume's child volumes, snapshots, and clones, use the string // DELETE_CHILD_VOLUMES_AND_SNAPSHOTS. Options []DeleteOpenZFSVolumeOption @@ -1510,7 +1521,8 @@ type FileSystem struct { // OPENZFS. FileSystemType FileSystemType - // The Lustre version of the Amazon FSx for Lustrefile system, either 2.10 or 2.12. + // The Lustre version of the Amazon FSx for Lustre file system, either 2.10 or + // 2.12. FileSystemTypeVersion *string // The ID of the Key Management Service (KMS) key used to encrypt the file system's @@ -2572,7 +2584,21 @@ type Tag struct { // Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx // for ONTAP's intelligent tiering automatically transitions a volume's data // between the file system's primary storage and capacity pool storage based on -// your access patterns. +// your access patterns. Valid tiering policies are the following: +// +// * SNAPSHOT_ONLY +// - (Default value) moves cold snapshots to the capacity pool storage tier. +// +// * +// AUTO - moves cold user data and snapshots to the capacity pool storage tier +// based on your access patterns. +// +// * ALL - moves all user data blocks in both the +// active file system and Snapshot copies to the storage pool tier. +// +// * NONE - keeps +// a volume's data in the primary storage tier, preventing it from being moved to +// the capacity pool tier. type TieringPolicy struct { // Specifies the number of days that user data in a volume must remain inactive @@ -2686,6 +2712,13 @@ type UpdateFileSystemOntapConfiguration struct { // specifies 5 AM daily. DailyAutomaticBackupStartTime *string + // The SSD IOPS (input/output operations per second) configuration for an Amazon + // FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of storage + // capacity, but you can provision additional IOPS per GB of storage. The + // configuration consists of an IOPS mode (AUTOMATIC or USER_PROVISIONED), and in + // the case of USER_PROVISIONED IOPS, the total number of SSD IOPS provisioned. + DiskIopsConfiguration *DiskIopsConfiguration + // The ONTAP administrative password for the fsxadmin user. FsxAdminPassword *string @@ -2738,7 +2771,7 @@ type UpdateFileSystemOpenZFSConfiguration struct { DiskIopsConfiguration *DiskIopsConfiguration // The throughput of an Amazon FSx file system, measured in megabytes per second - // (MBps), in 2 to the nth increments, between 2^3 (8) and 2^11 (2048). + // (MBps), in 2 to the nth increments, between 2^3 (8) and 2^12 (4096). ThroughputCapacity *int32 // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for diff --git a/service/greengrass/internal/endpoints/endpoints.go b/service/greengrass/internal/endpoints/endpoints.go index 2910235f2f4..287613b78e1 100644 --- a/service/greengrass/internal/endpoints/endpoints.go +++ b/service/greengrass/internal/endpoints/endpoints.go @@ -150,6 +150,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, diff --git a/service/greengrassv2/internal/endpoints/endpoints.go b/service/greengrassv2/internal/endpoints/endpoints.go index 7614a28ba70..8bf846e531b 100644 --- a/service/greengrassv2/internal/endpoints/endpoints.go +++ b/service/greengrassv2/internal/endpoints/endpoints.go @@ -150,6 +150,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, diff --git a/service/guardduty/api_op_CreateFilter.go b/service/guardduty/api_op_CreateFilter.go index 5e38b6f447e..0322fc95f7f 100644 --- a/service/guardduty/api_op_CreateFilter.go +++ b/service/guardduty/api_op_CreateFilter.go @@ -169,20 +169,34 @@ type CreateFilterInput struct { // * // service.additionalInfo.threatListName // - // * service.archived When this attribute is - // set to TRUE, only archived findings are listed. When it's set to FALSE, only - // unarchived findings are listed. When this attribute is not set, all existing - // findings are listed. + // * + // resource.s3BucketDetails.publicAccess.effectivePermissions + // + // * + // resource.s3BucketDetails.name + // + // * resource.s3BucketDetails.tags.key + // + // * + // resource.s3BucketDetails.tags.value + // + // * resource.s3BucketDetails.type // - // * service.resourceRole + // * + // service.archived When this attribute is set to TRUE, only archived findings are + // listed. When it's set to FALSE, only unarchived findings are listed. When this + // attribute is not set, all existing findings are listed. + // + // * + // service.resourceRole // // * severity // // * type // - // * updatedAt - // Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ - // depending on whether the value contains milliseconds. + // * updatedAt Type: ISO 8601 string + // format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether + // the value contains milliseconds. // // This member is required. FindingCriteria *types.FindingCriteria diff --git a/service/guardduty/api_op_CreateIPSet.go b/service/guardduty/api_op_CreateIPSet.go index aa6f555bff8..1b63f395129 100644 --- a/service/guardduty/api_op_CreateIPSet.go +++ b/service/guardduty/api_op_CreateIPSet.go @@ -14,9 +14,9 @@ import ( // Creates a new IPSet, which is called a trusted IP list in the console user // interface. An IPSet is a list of IP addresses that are trusted for secure -// communication with AWS infrastructure and applications. GuardDuty doesn't -// generate findings for IP addresses that are included in IPSets. Only users from -// the administrator account can use this operation. +// communication with Amazon Web Services infrastructure and applications. +// GuardDuty doesn't generate findings for IP addresses that are included in +// IPSets. Only users from the administrator account can use this operation. func (c *Client) CreateIPSet(ctx context.Context, params *CreateIPSetInput, optFns ...func(*Options)) (*CreateIPSetOutput, error) { if params == nil { params = &CreateIPSetInput{} @@ -51,8 +51,7 @@ type CreateIPSetInput struct { // This member is required. Format types.IpSetFormat - // The URI of the file that contains the IPSet. For example: - // https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key. + // The URI of the file that contains the IPSet. // // This member is required. Location *string diff --git a/service/guardduty/api_op_CreateMembers.go b/service/guardduty/api_op_CreateMembers.go index bf003516665..03dbf218807 100644 --- a/service/guardduty/api_op_CreateMembers.go +++ b/service/guardduty/api_op_CreateMembers.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates member accounts of the current AWS account by specifying a list of AWS -// account IDs. This step is a prerequisite for managing the associated member -// accounts either by invitation or through an organization. When using Create -// Members as an organizations delegated administrator this action will enable -// GuardDuty in the added member accounts, with the exception of the organization -// delegated administrator account, which must enable GuardDuty prior to being -// added as a member. If you are adding accounts by invitation use this action -// after GuardDuty has been enabled in potential member accounts and before using -// Invite Members +// Creates member accounts of the current Amazon Web Services account by specifying +// a list of Amazon Web Services account IDs. This step is a prerequisite for +// managing the associated member accounts either by invitation or through an +// organization. When using Create Members as an organizations delegated +// administrator this action will enable GuardDuty in the added member accounts, +// with the exception of the organization delegated administrator account, which +// must enable GuardDuty prior to being added as a member. If you are adding +// accounts by invitation use this action after GuardDuty has been enabled in +// potential member accounts and before using Invite Members // (https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html). func (c *Client) CreateMembers(ctx context.Context, params *CreateMembersInput, optFns ...func(*Options)) (*CreateMembersOutput, error) { if params == nil { diff --git a/service/guardduty/api_op_CreateThreatIntelSet.go b/service/guardduty/api_op_CreateThreatIntelSet.go index 8311e49bb09..48a622fdcef 100644 --- a/service/guardduty/api_op_CreateThreatIntelSet.go +++ b/service/guardduty/api_op_CreateThreatIntelSet.go @@ -49,8 +49,7 @@ type CreateThreatIntelSetInput struct { // This member is required. Format types.ThreatIntelSetFormat - // The URI of the file that contains the ThreatIntelSet. For example: - // https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key. + // The URI of the file that contains the ThreatIntelSet. // // This member is required. Location *string diff --git a/service/guardduty/api_op_DeclineInvitations.go b/service/guardduty/api_op_DeclineInvitations.go index e0bd5ce95bb..af6710543b7 100644 --- a/service/guardduty/api_op_DeclineInvitations.go +++ b/service/guardduty/api_op_DeclineInvitations.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Declines invitations sent to the current member account by AWS accounts -// specified by their account IDs. +// Declines invitations sent to the current member account by Amazon Web Services +// accounts specified by their account IDs. func (c *Client) DeclineInvitations(ctx context.Context, params *DeclineInvitationsInput, optFns ...func(*Options)) (*DeclineInvitationsOutput, error) { if params == nil { params = &DeclineInvitationsInput{} @@ -30,8 +30,8 @@ func (c *Client) DeclineInvitations(ctx context.Context, params *DeclineInvitati type DeclineInvitationsInput struct { - // A list of account IDs of the AWS accounts that sent invitations to the current - // member account that you want to decline invitations from. + // A list of account IDs of the Amazon Web Services accounts that sent invitations + // to the current member account that you want to decline invitations from. // // This member is required. AccountIds []string diff --git a/service/guardduty/api_op_DeleteInvitations.go b/service/guardduty/api_op_DeleteInvitations.go index 0a5791ab70d..f7cd11135f3 100644 --- a/service/guardduty/api_op_DeleteInvitations.go +++ b/service/guardduty/api_op_DeleteInvitations.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes invitations sent to the current member account by AWS accounts specified -// by their account IDs. +// Deletes invitations sent to the current member account by Amazon Web Services +// accounts specified by their account IDs. func (c *Client) DeleteInvitations(ctx context.Context, params *DeleteInvitationsInput, optFns ...func(*Options)) (*DeleteInvitationsOutput, error) { if params == nil { params = &DeleteInvitationsInput{} @@ -30,8 +30,8 @@ func (c *Client) DeleteInvitations(ctx context.Context, params *DeleteInvitation type DeleteInvitationsInput struct { - // A list of account IDs of the AWS accounts that sent invitations to the current - // member account that you want to delete invitations from. + // A list of account IDs of the Amazon Web Services accounts that sent invitations + // to the current member account that you want to delete invitations from. // // This member is required. AccountIds []string diff --git a/service/guardduty/api_op_DisableOrganizationAdminAccount.go b/service/guardduty/api_op_DisableOrganizationAdminAccount.go index eba858e51e2..b9827604e6a 100644 --- a/service/guardduty/api_op_DisableOrganizationAdminAccount.go +++ b/service/guardduty/api_op_DisableOrganizationAdminAccount.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disables an AWS account within the Organization as the GuardDuty delegated -// administrator. +// Disables an Amazon Web Services account within the Organization as the GuardDuty +// delegated administrator. func (c *Client) DisableOrganizationAdminAccount(ctx context.Context, params *DisableOrganizationAdminAccountInput, optFns ...func(*Options)) (*DisableOrganizationAdminAccountOutput, error) { if params == nil { params = &DisableOrganizationAdminAccountInput{} @@ -29,8 +29,8 @@ func (c *Client) DisableOrganizationAdminAccount(ctx context.Context, params *Di type DisableOrganizationAdminAccountInput struct { - // The AWS Account ID for the organizations account to be disabled as a GuardDuty - // delegated administrator. + // The Amazon Web Services Account ID for the organizations account to be disabled + // as a GuardDuty delegated administrator. // // This member is required. AdminAccountId *string diff --git a/service/guardduty/api_op_EnableOrganizationAdminAccount.go b/service/guardduty/api_op_EnableOrganizationAdminAccount.go index 29854486974..44d310d03df 100644 --- a/service/guardduty/api_op_EnableOrganizationAdminAccount.go +++ b/service/guardduty/api_op_EnableOrganizationAdminAccount.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables an AWS account within the organization as the GuardDuty delegated -// administrator. +// Enables an Amazon Web Services account within the organization as the GuardDuty +// delegated administrator. func (c *Client) EnableOrganizationAdminAccount(ctx context.Context, params *EnableOrganizationAdminAccountInput, optFns ...func(*Options)) (*EnableOrganizationAdminAccountOutput, error) { if params == nil { params = &EnableOrganizationAdminAccountInput{} @@ -29,8 +29,8 @@ func (c *Client) EnableOrganizationAdminAccount(ctx context.Context, params *Ena type EnableOrganizationAdminAccountInput struct { - // The AWS Account ID for the organization account to be enabled as a GuardDuty - // delegated administrator. + // The Amazon Web Services Account ID for the organization account to be enabled as + // a GuardDuty delegated administrator. // // This member is required. AdminAccountId *string diff --git a/service/guardduty/api_op_GetIPSet.go b/service/guardduty/api_op_GetIPSet.go index 7384a2bcae3..6142e35fb8a 100644 --- a/service/guardduty/api_op_GetIPSet.go +++ b/service/guardduty/api_op_GetIPSet.go @@ -49,8 +49,7 @@ type GetIPSetOutput struct { // This member is required. Format types.IpSetFormat - // The URI of the file that contains the IPSet. For example: - // https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key. + // The URI of the file that contains the IPSet. // // This member is required. Location *string diff --git a/service/guardduty/api_op_GetThreatIntelSet.go b/service/guardduty/api_op_GetThreatIntelSet.go index dcc9a3bc5e0..46bd0f3744d 100644 --- a/service/guardduty/api_op_GetThreatIntelSet.go +++ b/service/guardduty/api_op_GetThreatIntelSet.go @@ -49,8 +49,7 @@ type GetThreatIntelSetOutput struct { // This member is required. Format types.ThreatIntelSetFormat - // The URI of the file that contains the ThreatIntelSet. For example: - // https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key. + // The URI of the file that contains the ThreatIntelSet. // // This member is required. Location *string diff --git a/service/guardduty/api_op_InviteMembers.go b/service/guardduty/api_op_InviteMembers.go index 2f7c414615a..2fc6ba171d3 100644 --- a/service/guardduty/api_op_InviteMembers.go +++ b/service/guardduty/api_op_InviteMembers.go @@ -11,10 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Invites other AWS accounts (created as members of the current AWS account by -// CreateMembers) to enable GuardDuty, and allow the current AWS account to view -// and manage these accounts' findings on their behalf as the GuardDuty -// administrator account. +// Invites other Amazon Web Services accounts (created as members of the current +// Amazon Web Services account by CreateMembers) to enable GuardDuty, and allow the +// current Amazon Web Services account to view and manage these accounts' findings +// on their behalf as the GuardDuty administrator account. func (c *Client) InviteMembers(ctx context.Context, params *InviteMembersInput, optFns ...func(*Options)) (*InviteMembersOutput, error) { if params == nil { params = &InviteMembersInput{} diff --git a/service/guardduty/api_op_ListFindings.go b/service/guardduty/api_op_ListFindings.go index 7d8c6689f74..c2e67fdb3fc 100644 --- a/service/guardduty/api_op_ListFindings.go +++ b/service/guardduty/api_op_ListFindings.go @@ -142,9 +142,6 @@ type ListFindingsInput struct { // service.action.networkConnectionAction.protocol // // * - // service.action.networkConnectionAction.remoteIpDetails.city.cityName - // - // * // service.action.networkConnectionAction.remoteIpDetails.country.countryName // // * diff --git a/service/guardduty/api_op_ListInvitations.go b/service/guardduty/api_op_ListInvitations.go index f9c05d6f64b..552a7dce644 100644 --- a/service/guardduty/api_op_ListInvitations.go +++ b/service/guardduty/api_op_ListInvitations.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all GuardDuty membership invitations that were sent to the current AWS -// account. +// Lists all GuardDuty membership invitations that were sent to the current Amazon +// Web Services account. func (c *Client) ListInvitations(ctx context.Context, params *ListInvitationsInput, optFns ...func(*Options)) (*ListInvitationsOutput, error) { if params == nil { params = &ListInvitationsInput{} diff --git a/service/guardduty/api_op_ListPublishingDestinations.go b/service/guardduty/api_op_ListPublishingDestinations.go index 95510f0e840..46160762aad 100644 --- a/service/guardduty/api_op_ListPublishingDestinations.go +++ b/service/guardduty/api_op_ListPublishingDestinations.go @@ -13,7 +13,7 @@ import ( ) // Returns a list of publishing destinations associated with the specified -// dectectorId. +// detectorId. func (c *Client) ListPublishingDestinations(ctx context.Context, params *ListPublishingDestinationsInput, optFns ...func(*Options)) (*ListPublishingDestinationsOutput, error) { if params == nil { params = &ListPublishingDestinationsInput{} diff --git a/service/guardduty/api_op_UpdateIPSet.go b/service/guardduty/api_op_UpdateIPSet.go index e71b96b125a..cc8703d7623 100644 --- a/service/guardduty/api_op_UpdateIPSet.go +++ b/service/guardduty/api_op_UpdateIPSet.go @@ -42,8 +42,7 @@ type UpdateIPSetInput struct { // The updated Boolean value that specifies whether the IPSet is active or not. Activate bool - // The updated URI of the file that contains the IPSet. For example: - // https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key. + // The updated URI of the file that contains the IPSet. Location *string // The unique ID that specifies the IPSet that you want to update. diff --git a/service/guardduty/deserializers.go b/service/guardduty/deserializers.go index 490d98859d9..4b89f3cf597 100644 --- a/service/guardduty/deserializers.go +++ b/service/guardduty/deserializers.go @@ -8062,6 +8062,11 @@ func awsRestjson1_deserializeDocumentAction(v **types.Action, value interface{}) return err } + case "kubernetesApiCallAction": + if err := awsRestjson1_deserializeDocumentKubernetesApiCallAction(&sv.KubernetesApiCallAction, value); err != nil { + return err + } + case "networkConnectionAction": if err := awsRestjson1_deserializeDocumentNetworkConnectionAction(&sv.NetworkConnectionAction, value); err != nil { return err @@ -8218,6 +8223,11 @@ func awsRestjson1_deserializeDocumentAwsApiCallAction(v **types.AwsApiCallAction sv.ErrorCode = ptr.String(jtv) } + case "remoteAccountDetails": + if err := awsRestjson1_deserializeDocumentRemoteAccountDetails(&sv.RemoteAccountDetails, value); err != nil { + return err + } + case "remoteIpDetails": if err := awsRestjson1_deserializeDocumentRemoteIpDetails(&sv.RemoteIpDetails, value); err != nil { return err @@ -8232,6 +8242,15 @@ func awsRestjson1_deserializeDocumentAwsApiCallAction(v **types.AwsApiCallAction sv.ServiceName = ptr.String(jtv) } + case "userAgent": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.UserAgent = ptr.String(jtv) + } + default: _, _ = key, value @@ -8687,6 +8706,126 @@ func awsRestjson1_deserializeDocumentCondition(v **types.Condition, value interf return nil } +func awsRestjson1_deserializeDocumentContainer(v **types.Container, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Container + if *v == nil { + sv = &types.Container{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "containerRuntime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ContainerRuntime = ptr.String(jtv) + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "image": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Image = ptr.String(jtv) + } + + case "imagePrefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ImagePrefix = ptr.String(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "securityContext": + if err := awsRestjson1_deserializeDocumentSecurityContext(&sv.SecurityContext, value); err != nil { + return err + } + + case "volumeMounts": + if err := awsRestjson1_deserializeDocumentVolumeMounts(&sv.VolumeMounts, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentContainers(v *[]types.Container, 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.Container + if *v == nil { + cv = []types.Container{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Container + destAddr := &col + if err := awsRestjson1_deserializeDocumentContainer(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCountBySeverity(v *map[string]int32, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8848,6 +8987,11 @@ func awsRestjson1_deserializeDocumentDataSourceConfigurationsResult(v **types.Da return err } + case "kubernetes": + if err := awsRestjson1_deserializeDocumentKubernetesConfigurationResult(&sv.Kubernetes, value); err != nil { + return err + } + case "s3Logs": if err := awsRestjson1_deserializeDocumentS3LogsConfigurationResult(&sv.S3Logs, value); err != nil { return err @@ -9208,6 +9352,94 @@ func awsRestjson1_deserializeDocumentDomainDetails(v **types.DomainDetails, valu return nil } +func awsRestjson1_deserializeDocumentEksClusterDetails(v **types.EksClusterDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EksClusterDetails + if *v == nil { + sv = &types.EksClusterDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "createdAt": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "tags": + if err := awsRestjson1_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "vpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentEq(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9841,7 +10073,7 @@ func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value in return nil } -func awsRestjson1_deserializeDocumentIamInstanceProfile(v **types.IamInstanceProfile, value interface{}) error { +func awsRestjson1_deserializeDocumentGroups(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9849,48 +10081,35 @@ func awsRestjson1_deserializeDocumentIamInstanceProfile(v **types.IamInstancePro return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IamInstanceProfile + var cv []string if *v == nil { - sv = &types.IamInstanceProfile{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "id": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Id = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentInstanceDetails(v **types.InstanceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentHostPath(v **types.HostPath, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9903,30 +10122,119 @@ func awsRestjson1_deserializeDocumentInstanceDetails(v **types.InstanceDetails, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InstanceDetails + var sv *types.HostPath if *v == nil { - sv = &types.InstanceDetails{} + sv = &types.HostPath{} } else { sv = *v } for key, value := range shape { switch key { - case "availabilityZone": + case "path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.AvailabilityZone = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "iamInstanceProfile": - if err := awsRestjson1_deserializeDocumentIamInstanceProfile(&sv.IamInstanceProfile, value); err != nil { - return err - } + default: + _, _ = key, value - case "imageDescription": + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentIamInstanceProfile(v **types.IamInstanceProfile, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.IamInstanceProfile + if *v == nil { + sv = &types.IamInstanceProfile{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentInstanceDetails(v **types.InstanceDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InstanceDetails + if *v == nil { + sv = &types.InstanceDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "availabilityZone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AvailabilityZone = ptr.String(jtv) + } + + case "iamInstanceProfile": + if err := awsRestjson1_deserializeDocumentIamInstanceProfile(&sv.IamInstanceProfile, value); err != nil { + return err + } + + case "imageDescription": if value != nil { jtv, ok := value.(string) if !ok { @@ -10244,6 +10552,353 @@ func awsRestjson1_deserializeDocumentIpv6Addresses(v *[]string, value interface{ return nil } +func awsRestjson1_deserializeDocumentKubernetesApiCallAction(v **types.KubernetesApiCallAction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesApiCallAction + if *v == nil { + sv = &types.KubernetesApiCallAction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "parameters": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Parameters = ptr.String(jtv) + } + + case "remoteIpDetails": + if err := awsRestjson1_deserializeDocumentRemoteIpDetails(&sv.RemoteIpDetails, value); err != nil { + return err + } + + case "requestUri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestUri = ptr.String(jtv) + } + + case "sourceIps": + if err := awsRestjson1_deserializeDocumentSourceIps(&sv.SourceIps, value); err != nil { + return err + } + + case "statusCode": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StatusCode = int32(i64) + } + + case "userAgent": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.UserAgent = ptr.String(jtv) + } + + case "verb": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Verb = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKubernetesAuditLogsConfigurationResult(v **types.KubernetesAuditLogsConfigurationResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesAuditLogsConfigurationResult + if *v == nil { + sv = &types.KubernetesAuditLogsConfigurationResult{} + } 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 DataSourceStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataSourceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKubernetesConfigurationResult(v **types.KubernetesConfigurationResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesConfigurationResult + if *v == nil { + sv = &types.KubernetesConfigurationResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "auditLogs": + if err := awsRestjson1_deserializeDocumentKubernetesAuditLogsConfigurationResult(&sv.AuditLogs, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKubernetesDetails(v **types.KubernetesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesDetails + if *v == nil { + sv = &types.KubernetesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "kubernetesUserDetails": + if err := awsRestjson1_deserializeDocumentKubernetesUserDetails(&sv.KubernetesUserDetails, value); err != nil { + return err + } + + case "kubernetesWorkloadDetails": + if err := awsRestjson1_deserializeDocumentKubernetesWorkloadDetails(&sv.KubernetesWorkloadDetails, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKubernetesUserDetails(v **types.KubernetesUserDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesUserDetails + if *v == nil { + sv = &types.KubernetesUserDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "groups": + if err := awsRestjson1_deserializeDocumentGroups(&sv.Groups, value); err != nil { + return err + } + + case "uid": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Uid = ptr.String(jtv) + } + + case "username": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Username = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentKubernetesWorkloadDetails(v **types.KubernetesWorkloadDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KubernetesWorkloadDetails + if *v == nil { + sv = &types.KubernetesWorkloadDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "containers": + if err := awsRestjson1_deserializeDocumentContainers(&sv.Containers, value); err != nil { + return err + } + + case "hostNetwork": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.HostNetwork = jtv + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "namespace": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Namespace = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + case "uid": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Uid = ptr.String(jtv) + } + + case "volumes": + if err := awsRestjson1_deserializeDocumentVolumes(&sv.Volumes, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentLocalIpDetails(v **types.LocalIpDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10993,6 +11648,11 @@ func awsRestjson1_deserializeDocumentOrganizationDataSourceConfigurationsResult( for key, value := range shape { switch key { + case "kubernetes": + if err := awsRestjson1_deserializeDocumentOrganizationKubernetesConfigurationResult(&sv.Kubernetes, value); err != nil { + return err + } + case "s3Logs": if err := awsRestjson1_deserializeDocumentOrganizationS3LogsConfigurationResult(&sv.S3Logs, value); err != nil { return err @@ -11007,6 +11667,82 @@ func awsRestjson1_deserializeDocumentOrganizationDataSourceConfigurationsResult( return nil } +func awsRestjson1_deserializeDocumentOrganizationKubernetesAuditLogsConfigurationResult(v **types.OrganizationKubernetesAuditLogsConfigurationResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.OrganizationKubernetesAuditLogsConfigurationResult + if *v == nil { + sv = &types.OrganizationKubernetesAuditLogsConfigurationResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "autoEnable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.AutoEnable = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentOrganizationKubernetesConfigurationResult(v **types.OrganizationKubernetesConfigurationResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.OrganizationKubernetesConfigurationResult + if *v == nil { + sv = &types.OrganizationKubernetesConfigurationResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "auditLogs": + if err := awsRestjson1_deserializeDocumentOrganizationKubernetesAuditLogsConfigurationResult(&sv.AuditLogs, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentOrganizationS3LogsConfigurationResult(v **types.OrganizationS3LogsConfigurationResult, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11398,28 +12134,73 @@ func awsRestjson1_deserializeDocumentProductCodes(v *[]types.ProductCode, value return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ProductCode - if *v == nil { - cv = []types.ProductCode{} - } else { - cv = *v - } + var cv []types.ProductCode + if *v == nil { + cv = []types.ProductCode{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ProductCode + destAddr := &col + if err := awsRestjson1_deserializeDocumentProductCode(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentPublicAccess(v **types.PublicAccess, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PublicAccess + if *v == nil { + sv = &types.PublicAccess{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "effectivePermission": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.EffectivePermission = ptr.String(jtv) + } + + case "permissionConfiguration": + if err := awsRestjson1_deserializeDocumentPermissionConfiguration(&sv.PermissionConfiguration, value); err != nil { + return err + } - for _, value := range shape { - var col types.ProductCode - destAddr := &col - if err := awsRestjson1_deserializeDocumentProductCode(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentPublicAccess(v **types.PublicAccess, value interface{}) error { +func awsRestjson1_deserializeDocumentRemoteAccountDetails(v **types.RemoteAccountDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11432,27 +12213,31 @@ func awsRestjson1_deserializeDocumentPublicAccess(v **types.PublicAccess, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.PublicAccess + var sv *types.RemoteAccountDetails if *v == nil { - sv = &types.PublicAccess{} + sv = &types.RemoteAccountDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "effectivePermission": + case "accountId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.EffectivePermission = ptr.String(jtv) + sv.AccountId = ptr.String(jtv) } - case "permissionConfiguration": - if err := awsRestjson1_deserializeDocumentPermissionConfiguration(&sv.PermissionConfiguration, value); err != nil { - return err + case "affiliated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Affiliated = jtv } default: @@ -11604,11 +12389,21 @@ func awsRestjson1_deserializeDocumentResource(v **types.Resource, value interfac return err } + case "eksClusterDetails": + if err := awsRestjson1_deserializeDocumentEksClusterDetails(&sv.EksClusterDetails, value); err != nil { + return err + } + case "instanceDetails": if err := awsRestjson1_deserializeDocumentInstanceDetails(&sv.InstanceDetails, value); err != nil { return err } + case "kubernetesDetails": + if err := awsRestjson1_deserializeDocumentKubernetesDetails(&sv.KubernetesDetails, value); err != nil { + return err + } + case "resourceType": if value != nil { jtv, ok := value.(string) @@ -11800,6 +12595,46 @@ func awsRestjson1_deserializeDocumentS3LogsConfigurationResult(v **types.S3LogsC return nil } +func awsRestjson1_deserializeDocumentSecurityContext(v **types.SecurityContext, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SecurityContext + if *v == nil { + sv = &types.SecurityContext{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "privileged": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Privileged = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSecurityGroup(v **types.SecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12000,6 +12835,42 @@ func awsRestjson1_deserializeDocumentService(v **types.Service, value interface{ return nil } +func awsRestjson1_deserializeDocumentSourceIps(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12689,3 +13560,165 @@ func awsRestjson1_deserializeDocumentUsageStatistics(v **types.UsageStatistics, *v = sv return nil } + +func awsRestjson1_deserializeDocumentVolume(v **types.Volume, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Volume + if *v == nil { + sv = &types.Volume{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "hostPath": + if err := awsRestjson1_deserializeDocumentHostPath(&sv.HostPath, value); err != nil { + return err + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVolumeMount(v **types.VolumeMount, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.VolumeMount + if *v == nil { + sv = &types.VolumeMount{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "mountPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.MountPath = ptr.String(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentVolumeMounts(v *[]types.VolumeMount, 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.VolumeMount + if *v == nil { + cv = []types.VolumeMount{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VolumeMount + destAddr := &col + if err := awsRestjson1_deserializeDocumentVolumeMount(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentVolumes(v *[]types.Volume, 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.Volume + if *v == nil { + cv = []types.Volume{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Volume + destAddr := &col + if err := awsRestjson1_deserializeDocumentVolume(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} diff --git a/service/guardduty/doc.go b/service/guardduty/doc.go index e807d9d867a..363ad87c436 100644 --- a/service/guardduty/doc.go +++ b/service/guardduty/doc.go @@ -4,19 +4,20 @@ // Amazon GuardDuty. // // Amazon GuardDuty is a continuous security monitoring service that analyzes and -// processes the following data sources: VPC Flow Logs, AWS CloudTrail event logs, -// and DNS logs. It uses threat intelligence feeds (such as lists of malicious IPs -// and domains) and machine learning to identify unexpected, potentially -// unauthorized, and malicious activity within your AWS environment. This can -// include issues like escalations of privileges, uses of exposed credentials, or -// communication with malicious IPs, URLs, or domains. For example, GuardDuty can -// detect compromised EC2 instances that serve malware or mine bitcoin. GuardDuty -// also monitors AWS account access behavior for signs of compromise. Some examples -// of this are unauthorized infrastructure deployments such as EC2 instances -// deployed in a Region that has never been used, or unusual API calls like a -// password policy change to reduce password strength. GuardDuty informs you of the -// status of your AWS environment by producing security findings that you can view -// in the GuardDuty console or through Amazon CloudWatch events. For more -// information, see the Amazon GuardDuty User Guide +// processes the following data sources: VPC Flow Logs, Amazon Web Services +// CloudTrail event logs, and DNS logs. It uses threat intelligence feeds (such as +// lists of malicious IPs and domains) and machine learning to identify unexpected, +// potentially unauthorized, and malicious activity within your Amazon Web Services +// environment. This can include issues like escalations of privileges, uses of +// exposed credentials, or communication with malicious IPs, URLs, or domains. For +// example, GuardDuty can detect compromised EC2 instances that serve malware or +// mine bitcoin. GuardDuty also monitors Amazon Web Services account access +// behavior for signs of compromise. Some examples of this are unauthorized +// infrastructure deployments such as EC2 instances deployed in a Region that has +// never been used, or unusual API calls like a password policy change to reduce +// password strength. GuardDuty informs you of the status of your Amazon Web +// Services environment by producing security findings that you can view in the +// GuardDuty console or through Amazon CloudWatch events. For more information, see +// the Amazon GuardDuty User Guide // (https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) . package guardduty diff --git a/service/guardduty/serializers.go b/service/guardduty/serializers.go index cc43b87b3d2..a0243dafcef 100644 --- a/service/guardduty/serializers.go +++ b/service/guardduty/serializers.go @@ -4676,6 +4676,13 @@ func awsRestjson1_serializeDocumentDataSourceConfigurations(v *types.DataSourceC object := value.Object() defer object.Close() + if v.Kubernetes != nil { + ok := object.Key("kubernetes") + if err := awsRestjson1_serializeDocumentKubernetesConfiguration(v.Kubernetes, ok); err != nil { + return err + } + } + if v.S3Logs != nil { ok := object.Key("s3Logs") if err := awsRestjson1_serializeDocumentS3LogsConfiguration(v.S3Logs, ok); err != nil { @@ -4783,6 +4790,32 @@ func awsRestjson1_serializeDocumentFindingTypes(v []string, value smithyjson.Val return nil } +func awsRestjson1_serializeDocumentKubernetesAuditLogsConfiguration(v *types.KubernetesAuditLogsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + { + ok := object.Key("enable") + ok.Boolean(v.Enable) + } + + return nil +} + +func awsRestjson1_serializeDocumentKubernetesConfiguration(v *types.KubernetesConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuditLogs != nil { + ok := object.Key("auditLogs") + if err := awsRestjson1_serializeDocumentKubernetesAuditLogsConfiguration(v.AuditLogs, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentNeq(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -4809,6 +4842,13 @@ func awsRestjson1_serializeDocumentOrganizationDataSourceConfigurations(v *types object := value.Object() defer object.Close() + if v.Kubernetes != nil { + ok := object.Key("kubernetes") + if err := awsRestjson1_serializeDocumentOrganizationKubernetesConfiguration(v.Kubernetes, ok); err != nil { + return err + } + } + if v.S3Logs != nil { ok := object.Key("s3Logs") if err := awsRestjson1_serializeDocumentOrganizationS3LogsConfiguration(v.S3Logs, ok); err != nil { @@ -4819,6 +4859,32 @@ func awsRestjson1_serializeDocumentOrganizationDataSourceConfigurations(v *types return nil } +func awsRestjson1_serializeDocumentOrganizationKubernetesAuditLogsConfiguration(v *types.OrganizationKubernetesAuditLogsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + { + ok := object.Key("autoEnable") + ok.Boolean(v.AutoEnable) + } + + return nil +} + +func awsRestjson1_serializeDocumentOrganizationKubernetesConfiguration(v *types.OrganizationKubernetesConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuditLogs != nil { + ok := object.Key("auditLogs") + if err := awsRestjson1_serializeDocumentOrganizationKubernetesAuditLogsConfiguration(v.AuditLogs, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentOrganizationS3LogsConfiguration(v *types.OrganizationS3LogsConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/guardduty/types/enums.go b/service/guardduty/types/enums.go index ead2c04be55..6950c33e15d 100644 --- a/service/guardduty/types/enums.go +++ b/service/guardduty/types/enums.go @@ -24,10 +24,11 @@ type DataSource string // Enum values for DataSource const ( - DataSourceFlowLogs DataSource = "FLOW_LOGS" - DataSourceCloudTrail DataSource = "CLOUD_TRAIL" - DataSourceDnsLogs DataSource = "DNS_LOGS" - DataSourceS3Logs DataSource = "S3_LOGS" + DataSourceFlowLogs DataSource = "FLOW_LOGS" + DataSourceCloudTrail DataSource = "CLOUD_TRAIL" + DataSourceDnsLogs DataSource = "DNS_LOGS" + DataSourceS3Logs DataSource = "S3_LOGS" + DataSourceKubernetesAuditLogs DataSource = "KUBERNETES_AUDIT_LOGS" ) // Values returns all known values for DataSource. Note that this can be expanded @@ -39,6 +40,7 @@ func (DataSource) Values() []DataSource { "CLOUD_TRAIL", "DNS_LOGS", "S3_LOGS", + "KUBERNETES_AUDIT_LOGS", } } diff --git a/service/guardduty/types/types.go b/service/guardduty/types/types.go index 8a676d5991b..50b19a0699a 100644 --- a/service/guardduty/types/types.go +++ b/service/guardduty/types/types.go @@ -76,6 +76,9 @@ type Action struct { // Information about the DNS_REQUEST action described in this finding. DnsRequestAction *DnsRequestAction + // Information about the Kubernetes API call action described in this finding. + KubernetesApiCallAction *KubernetesApiCallAction + // Information about the NETWORK_CONNECTION action described in this finding. NetworkConnectionAction *NetworkConnectionAction @@ -89,7 +92,7 @@ type Action struct { // administrator. type AdminAccount struct { - // The AWS account ID for the account. + // The Amazon Web Services account ID for the account. AdminAccountId *string // Indicates whether the account is enabled as the delegated administrator. @@ -101,24 +104,31 @@ type AdminAccount struct { // Contains information about the API action. type AwsApiCallAction struct { - // The AWS API name. + // The Amazon Web Services API name. Api *string - // The AWS API caller type. + // The Amazon Web Services API caller type. CallerType *string - // The domain information for the AWS API call. + // The domain information for the Amazon Web Services API call. DomainDetails *DomainDetails - // The error code of the failed AWS API action. + // The error code of the failed Amazon Web Services API action. ErrorCode *string - // The remote IP information of the connection that initiated the AWS API call. + // The details of the Amazon Web Services account that made the API call. This + // field appears if the call was made from outside your account. + RemoteAccountDetails *RemoteAccountDetails + + // The remote IP information of the connection that initiated the Amazon Web + // Services API call. RemoteIpDetails *RemoteIpDetails - // The AWS service name whose API was invoked. + // The Amazon Web Services service name whose API was invoked. ServiceName *string + UserAgent *string + noSmithyDocumentSerde } @@ -260,6 +270,36 @@ type Condition struct { noSmithyDocumentSerde } +// Details of a container. +type Container struct { + + // The container runtime (such as, Docker or containerd) used to run the container. + ContainerRuntime *string + + // Container ID. + Id *string + + // Container image. + Image *string + + // Part of the image name before the last slash. For example, imagePrefix for + // public.ecr.aws/amazonlinux/amazonlinux:latest would be + // public.ecr.aws/amazonlinux. If the image name is relative and does not have a + // slash, this field is empty. + ImagePrefix *string + + // Container name. + Name *string + + // Container security context. + SecurityContext *SecurityContext + + // Container volume mounts. + VolumeMounts []VolumeMount + + noSmithyDocumentSerde +} + // Contains information about the country where the remote IP address is located. type Country struct { @@ -275,6 +315,9 @@ type Country struct { // Contains information about which data sources are enabled. type DataSourceConfigurations struct { + // Describes whether any Kubernetes logs are enabled as data sources. + Kubernetes *KubernetesConfiguration + // Describes whether S3 data event logs are enabled as a data source. S3Logs *S3LogsConfiguration @@ -307,6 +350,10 @@ type DataSourceConfigurationsResult struct { // This member is required. S3Logs *S3LogsConfigurationResult + // An object that contains information on the status of all Kubernetes data + // sources. + Kubernetes *KubernetesConfigurationResult + noSmithyDocumentSerde } @@ -353,7 +400,8 @@ type Destination struct { // an S3 bucket, and the ARN of the KMS key to use to encrypt published findings. type DestinationProperties struct { - // The ARN of the resource to publish to. + // The ARN of the resource to publish to. To specify an S3 bucket folder use the + // following format: arn:aws:s3:::DOC-EXAMPLE-BUCKET/myFolder/ DestinationArn *string // The ARN of the KMS key to use for encryption. @@ -385,12 +433,36 @@ type DnsRequestAction struct { // Contains information about the domain. type DomainDetails struct { - // The domain information for the AWS API call. + // The domain information for the Amazon Web Services API call. Domain *string noSmithyDocumentSerde } +// Details about the EKS cluster involved in a Kubernetes finding. +type EksClusterDetails struct { + + // EKS cluster ARN. + Arn *string + + // The timestamp when the EKS cluster was created. + CreatedAt *time.Time + + // EKS cluster name. + Name *string + + // The EKS cluster status. + Status *string + + // The EKS cluster tags. + Tags []Tag + + // The VPC ID to which the EKS cluster is attached. + VpcId *string + + noSmithyDocumentSerde +} + // Contains information about the reason that the finding was generated. type Evidence struct { @@ -429,8 +501,8 @@ type Finding struct { // This member is required. Region *string - // Contains information about the AWS resource associated with the activity that - // prompted GuardDuty to generate a finding. + // Contains information about the Amazon Web Services resource associated with the + // activity that prompted GuardDuty to generate a finding. // // This member is required. Resource *Resource @@ -515,6 +587,16 @@ type GeoLocation struct { noSmithyDocumentSerde } +// Represents a pre-existing file or directory on the host machine that the volume +// maps to. +type HostPath struct { + + // Path of the file or directory on the host that the volume maps to. + Path *string + + noSmithyDocumentSerde +} + // Contains information about the EC2 instance profile. type IamInstanceProfile struct { @@ -557,8 +639,8 @@ type InstanceDetails struct { // The elastic network interface information of the EC2 instance. NetworkInterfaces []NetworkInterface - // The Amazon Resource Name (ARN) of the AWS Outpost. Only applicable to AWS - // Outposts instances. + // The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only + // applicable to Amazon Web Services Outposts instances. OutpostArn *string // The platform of the EC2 instance. @@ -592,6 +674,134 @@ type Invitation struct { noSmithyDocumentSerde } +// Information about the Kubernetes API call action described in this finding. +type KubernetesApiCallAction struct { + + // Parameters related to the Kubernetes API call action. + Parameters *string + + // Contains information about the remote IP address of the connection. + RemoteIpDetails *RemoteIpDetails + + // The Kubernetes API request URI. + RequestUri *string + + // The IP of the Kubernetes API caller and the IPs of any proxies or load balancers + // between the caller and the API endpoint. + SourceIps []string + + // The resulting HTTP response code of the Kubernetes API call action. + StatusCode int32 + + // The user agent of the caller of the Kubernetes API. + UserAgent *string + + // The Kubernetes API request HTTP verb. + Verb *string + + noSmithyDocumentSerde +} + +// Describes whether Kubernetes audit logs are enabled as a data source. +type KubernetesAuditLogsConfiguration struct { + + // The status of Kubernetes audit logs as a data source. + // + // This member is required. + Enable bool + + noSmithyDocumentSerde +} + +// Describes whether Kubernetes audit logs are enabled as a data source. +type KubernetesAuditLogsConfigurationResult struct { + + // A value that describes whether Kubernetes audit logs are enabled as a data + // source. + // + // This member is required. + Status DataSourceStatus + + noSmithyDocumentSerde +} + +// Describes whether any Kubernetes data sources are enabled. +type KubernetesConfiguration struct { + + // The status of Kubernetes audit logs as a data source. + // + // This member is required. + AuditLogs *KubernetesAuditLogsConfiguration + + noSmithyDocumentSerde +} + +// Describes whether any Kubernetes logs will be enabled as a data source. +type KubernetesConfigurationResult struct { + + // Describes whether Kubernetes audit logs are enabled as a data source. + // + // This member is required. + AuditLogs *KubernetesAuditLogsConfigurationResult + + noSmithyDocumentSerde +} + +// Details about Kubernetes resources such as a Kubernetes user or workload +// resource involved in a Kubernetes finding. +type KubernetesDetails struct { + + // Details about the Kubernetes user involved in a Kubernetes finding. + KubernetesUserDetails *KubernetesUserDetails + + // Details about the Kubernetes workload involved in a Kubernetes finding. + KubernetesWorkloadDetails *KubernetesWorkloadDetails + + noSmithyDocumentSerde +} + +// Details about the Kubernetes user involved in a Kubernetes finding. +type KubernetesUserDetails struct { + + // The groups that include the user who called the Kubernetes API. + Groups []string + + // The user ID of the user who called the Kubernetes API. + Uid *string + + // The username of the user who called the Kubernetes API. + Username *string + + noSmithyDocumentSerde +} + +// Details about the Kubernetes workload involved in a Kubernetes finding. +type KubernetesWorkloadDetails struct { + + // Containers running as part of the Kubernetes workload. + Containers []Container + + // Whether the hostNetwork flag is enabled for the pods included in the workload. + HostNetwork bool + + // Kubernetes workload name. + Name *string + + // Kubernetes namespace that the workload is part of. + Namespace *string + + // Kubernetes workload type (e.g. Pod, Deployment, etc.). + Type *string + + // Kubernetes workload ID. + Uid *string + + // Volumes used by the Kubernetes workload. + Volumes []Volume + + noSmithyDocumentSerde +} + // Contains information about the local IP address of the connection. type LocalIpDetails struct { @@ -771,6 +981,10 @@ type Organization struct { // be automatically enabled for new members within the organization. type OrganizationDataSourceConfigurations struct { + // Describes the configuration of Kubernetes data sources for new members of the + // organization. + Kubernetes *OrganizationKubernetesConfiguration + // Describes whether S3 data event logs are enabled for new members of the // organization. S3Logs *OrganizationS3LogsConfiguration @@ -787,6 +1001,58 @@ type OrganizationDataSourceConfigurationsResult struct { // This member is required. S3Logs *OrganizationS3LogsConfigurationResult + // Describes the configuration of Kubernetes data sources. + Kubernetes *OrganizationKubernetesConfigurationResult + + noSmithyDocumentSerde +} + +// Organization-wide Kubernetes audit logs configuration. +type OrganizationKubernetesAuditLogsConfiguration struct { + + // A value that contains information on whether Kubernetes audit logs should be + // enabled automatically as a data source for the organization. + // + // This member is required. + AutoEnable bool + + noSmithyDocumentSerde +} + +// The current configuration of Kubernetes audit logs as a data source for the +// organization. +type OrganizationKubernetesAuditLogsConfigurationResult struct { + + // Whether Kubernetes audit logs data source should be auto-enabled for new members + // joining the organization. + // + // This member is required. + AutoEnable bool + + noSmithyDocumentSerde +} + +// Organization-wide Kubernetes data sources configurations. +type OrganizationKubernetesConfiguration struct { + + // Whether Kubernetes audit logs data source should be auto-enabled for new members + // joining the organization. + // + // This member is required. + AuditLogs *OrganizationKubernetesAuditLogsConfiguration + + noSmithyDocumentSerde +} + +// The current configuration of all Kubernetes data sources for the organization. +type OrganizationKubernetesConfigurationResult struct { + + // The current configuration of Kubernetes audit logs as a data source for the + // organization. + // + // This member is required. + AuditLogs *OrganizationKubernetesAuditLogsConfigurationResult + noSmithyDocumentSerde } @@ -904,6 +1170,22 @@ type PublicAccess struct { noSmithyDocumentSerde } +// Contains details about the remote Amazon Web Services account that made the API +// call. +type RemoteAccountDetails struct { + + // The Amazon Web Services account ID of the remote API caller. + AccountId *string + + // Details on whether the Amazon Web Services account of the remote API caller is + // related to your GuardDuty environment. If this value is True the API caller is + // affiliated to your account in some way. If it is False the API caller is from + // outside your environment. + Affiliated bool + + noSmithyDocumentSerde +} + // Contains information about the remote IP address of the connection. type RemoteIpDetails struct { @@ -937,19 +1219,25 @@ type RemotePortDetails struct { noSmithyDocumentSerde } -// Contains information about the AWS resource associated with the activity that -// prompted GuardDuty to generate a finding. +// Contains information about the Amazon Web Services resource associated with the +// activity that prompted GuardDuty to generate a finding. type Resource struct { // The IAM access key details (IAM user information) of a user that engaged in the // activity that prompted GuardDuty to generate a finding. AccessKeyDetails *AccessKeyDetails + // Details about the EKS cluster involved in a Kubernetes finding. + EksClusterDetails *EksClusterDetails + // The information about the EC2 instance associated with the activity that // prompted GuardDuty to generate a finding. InstanceDetails *InstanceDetails - // The type of AWS resource. + // Details about the Kubernetes user and workload involved in a Kubernetes finding. + KubernetesDetails *KubernetesDetails + + // The type of Amazon Web Services resource. ResourceType *string // Contains information on the S3 bucket. @@ -1011,6 +1299,15 @@ type S3LogsConfigurationResult struct { noSmithyDocumentSerde } +// Container security context. +type SecurityContext struct { + + // Whether the container is privileged. + Privileged bool + + noSmithyDocumentSerde +} + // Contains information about the security groups associated with the EC2 instance. type SecurityGroup struct { @@ -1052,7 +1349,8 @@ type Service struct { // The resource role information for this finding. ResourceRole *string - // The name of the AWS service (GuardDuty) that generated a finding. + // The name of the Amazon Web Services service (GuardDuty) that generated a + // finding. ServiceName *string // Feedback that was submitted about the finding. @@ -1114,7 +1412,7 @@ type Total struct { // Contains information about the accounts that weren't processed. type UnprocessedAccount struct { - // The AWS account ID. + // The Amazon Web Services account ID. // // This member is required. AccountId *string @@ -1169,10 +1467,11 @@ type UsageDataSourceResult struct { noSmithyDocumentSerde } -// Contains information on the sum of usage based on an AWS resource. +// Contains information on the sum of usage based on an Amazon Web Services +// resource. type UsageResourceResult struct { - // The AWS resource that generated usage. + // The Amazon Web Services resource that generated usage. Resource *string // Represents the sum total of usage for the specified resource type. @@ -1201,4 +1500,29 @@ type UsageStatistics struct { noSmithyDocumentSerde } +// Volume used by the Kubernetes workload. +type Volume struct { + + // Represents a pre-existing file or directory on the host machine that the volume + // maps to. + HostPath *HostPath + + // Volume name. + Name *string + + noSmithyDocumentSerde +} + +// Container volume mount. +type VolumeMount struct { + + // Volume mount path. + MountPath *string + + // Volume mount name. + Name *string + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/guardduty/validators.go b/service/guardduty/validators.go index 36ae02c030a..c05e4b20cbf 100644 --- a/service/guardduty/validators.go +++ b/service/guardduty/validators.go @@ -1351,6 +1351,42 @@ func validateDataSourceConfigurations(v *types.DataSourceConfigurations) error { invalidParams.AddNested("S3Logs", err.(smithy.InvalidParamsError)) } } + if v.Kubernetes != nil { + if err := validateKubernetesConfiguration(v.Kubernetes); err != nil { + invalidParams.AddNested("Kubernetes", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateKubernetesAuditLogsConfiguration(v *types.KubernetesAuditLogsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "KubernetesAuditLogsConfiguration"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateKubernetesConfiguration(v *types.KubernetesConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "KubernetesConfiguration"} + if v.AuditLogs == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuditLogs")) + } else if v.AuditLogs != nil { + if err := validateKubernetesAuditLogsConfiguration(v.AuditLogs); err != nil { + invalidParams.AddNested("AuditLogs", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1368,6 +1404,42 @@ func validateOrganizationDataSourceConfigurations(v *types.OrganizationDataSourc invalidParams.AddNested("S3Logs", err.(smithy.InvalidParamsError)) } } + if v.Kubernetes != nil { + if err := validateOrganizationKubernetesConfiguration(v.Kubernetes); err != nil { + invalidParams.AddNested("Kubernetes", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOrganizationKubernetesAuditLogsConfiguration(v *types.OrganizationKubernetesAuditLogsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OrganizationKubernetesAuditLogsConfiguration"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOrganizationKubernetesConfiguration(v *types.OrganizationKubernetesConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OrganizationKubernetesConfiguration"} + if v.AuditLogs == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuditLogs")) + } else if v.AuditLogs != nil { + if err := validateOrganizationKubernetesAuditLogsConfiguration(v.AuditLogs); err != nil { + invalidParams.AddNested("AuditLogs", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/honeycode/api_op_DescribeTableDataImportJob.go b/service/honeycode/api_op_DescribeTableDataImportJob.go index 0304a69243f..b60283cbcc7 100644 --- a/service/honeycode/api_op_DescribeTableDataImportJob.go +++ b/service/honeycode/api_op_DescribeTableDataImportJob.go @@ -69,6 +69,9 @@ type DescribeTableDataImportJobOutput struct { // This member is required. Message *string + // If job status is failed, error code to understand reason for the failure. + ErrorCode types.ErrorCode + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/honeycode/deserializers.go b/service/honeycode/deserializers.go index 298b614ec33..6c082d61561 100644 --- a/service/honeycode/deserializers.go +++ b/service/honeycode/deserializers.go @@ -851,6 +851,9 @@ func awsRestjson1_deserializeOpErrorDescribeTableDataImportJob(response *smithyh case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("RequestTimeoutException", errorCode): + return awsRestjson1_deserializeErrorRequestTimeoutException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -895,6 +898,15 @@ func awsRestjson1_deserializeOpDocumentDescribeTableDataImportJobOutput(v **Desc for key, value := range shape { switch key { + case "errorCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value) + } + sv.ErrorCode = types.ErrorCode(jtv) + } + case "jobMetadata": if err := awsRestjson1_deserializeDocumentTableDataImportJobMetadata(&sv.JobMetadata, value); err != nil { return err @@ -1230,6 +1242,9 @@ func awsRestjson1_deserializeOpErrorInvokeScreenAutomation(response *smithyhttp. case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) @@ -2325,9 +2340,15 @@ func awsRestjson1_deserializeOpErrorStartTableDataImportJob(response *smithyhttp case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("RequestTimeoutException", errorCode): + return awsRestjson1_deserializeErrorRequestTimeoutException(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("ServiceUnavailableException", errorCode): return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) @@ -3118,6 +3139,11 @@ func awsRestjson1_deserializeDocumentCell(v **types.Cell, value interface{}) err sv.FormattedValue = ptr.String(jtv) } + case "formattedValues": + if err := awsRestjson1_deserializeDocumentFormattedValuesList(&sv.FormattedValues, value); err != nil { + return err + } + case "formula": if value != nil { jtv, ok := value.(string) @@ -3542,6 +3568,42 @@ func awsRestjson1_deserializeDocumentFailedBatchItems(v *[]types.FailedBatchItem return nil } +func awsRestjson1_deserializeDocumentFormattedValuesList(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 FormattedValue to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentImportColumnMap(v *map[string]types.SourceDataColumnProperties, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/honeycode/serializers.go b/service/honeycode/serializers.go index bb8c63e148e..be4e7f31ab9 100644 --- a/service/honeycode/serializers.go +++ b/service/honeycode/serializers.go @@ -1357,6 +1357,13 @@ func awsRestjson1_serializeDocumentCellInput(v *types.CellInput, value smithyjso ok.String(*v.Fact) } + if v.Facts != nil { + ok := object.Key("facts") + if err := awsRestjson1_serializeDocumentFactList(v.Facts, ok); err != nil { + return err + } + } + return nil } @@ -1433,6 +1440,17 @@ func awsRestjson1_serializeDocumentDestinationOptions(v *types.DestinationOption return nil } +func awsRestjson1_serializeDocumentFactList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentFilter(v *types.Filter, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/honeycode/types/enums.go b/service/honeycode/types/enums.go index a769228a720..97cdb17a649 100644 --- a/service/honeycode/types/enums.go +++ b/service/honeycode/types/enums.go @@ -2,6 +2,48 @@ package types +type ErrorCode string + +// Enum values for ErrorCode +const ( + ErrorCodeAccessDenied ErrorCode = "ACCESS_DENIED" + ErrorCodeInvalidUrlError ErrorCode = "INVALID_URL_ERROR" + ErrorCodeInvalidImportOptionsError ErrorCode = "INVALID_IMPORT_OPTIONS_ERROR" + ErrorCodeInvalidTableIdError ErrorCode = "INVALID_TABLE_ID_ERROR" + ErrorCodeInvalidTableColumnIdError ErrorCode = "INVALID_TABLE_COLUMN_ID_ERROR" + ErrorCodeTableNotFoundError ErrorCode = "TABLE_NOT_FOUND_ERROR" + ErrorCodeFileEmptyError ErrorCode = "FILE_EMPTY_ERROR" + ErrorCodeInvalidFileTypeError ErrorCode = "INVALID_FILE_TYPE_ERROR" + ErrorCodeFileParsingError ErrorCode = "FILE_PARSING_ERROR" + ErrorCodeFileSizeLimitError ErrorCode = "FILE_SIZE_LIMIT_ERROR" + ErrorCodeFileNotFoundError ErrorCode = "FILE_NOT_FOUND_ERROR" + ErrorCodeUnknownError ErrorCode = "UNKNOWN_ERROR" + ErrorCodeResourceNotFoundError ErrorCode = "RESOURCE_NOT_FOUND_ERROR" + ErrorCodeSystemLimitError ErrorCode = "SYSTEM_LIMIT_ERROR" +) + +// Values returns all known values for ErrorCode. 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 (ErrorCode) Values() []ErrorCode { + return []ErrorCode{ + "ACCESS_DENIED", + "INVALID_URL_ERROR", + "INVALID_IMPORT_OPTIONS_ERROR", + "INVALID_TABLE_ID_ERROR", + "INVALID_TABLE_COLUMN_ID_ERROR", + "TABLE_NOT_FOUND_ERROR", + "FILE_EMPTY_ERROR", + "INVALID_FILE_TYPE_ERROR", + "FILE_PARSING_ERROR", + "FILE_SIZE_LIMIT_ERROR", + "FILE_NOT_FOUND_ERROR", + "UNKNOWN_ERROR", + "RESOURCE_NOT_FOUND_ERROR", + "SYSTEM_LIMIT_ERROR", + } +} + type Format string // Enum values for Format @@ -17,6 +59,7 @@ const ( FormatAccounting Format = "ACCOUNTING" FormatContact Format = "CONTACT" FormatRowlink Format = "ROWLINK" + FormatRowset Format = "ROWSET" ) // Values returns all known values for Format. Note that this can be expanded in @@ -35,6 +78,7 @@ func (Format) Values() []Format { "ACCOUNTING", "CONTACT", "ROWLINK", + "ROWSET", } } diff --git a/service/honeycode/types/types.go b/service/honeycode/types/types.go index 045c23d2962..93065c7962f 100644 --- a/service/honeycode/types/types.go +++ b/service/honeycode/types/types.go @@ -23,6 +23,12 @@ type Cell struct { // different raw and formatted values. FormattedValue *string + // A list of formatted values of the cell. This field is only returned when the + // cell is ROWSET format (aka multi-select or multi-record picklist). Values in the + // list are always represented as strings. The formattedValue field will be empty + // if this field is returned. + FormattedValues []string + // The formula contained in the cell. This field is empty if a cell does not have a // formula. Formula *string @@ -55,9 +61,20 @@ type Cell struct { // example, a cell containing a picklist to a table that displays task status might // have "Completed" as the formatted value and // "row:dfcefaee-5b37-4355-8f28-40c3e4ff5dd4/ca432b2f-b8eb-431d-9fb5-cbe0342f9f03" - // as the raw value. Cells with format AUTO or cells without any format that are - // auto-detected as one of the formats above will contain the raw and formatted - // values as mentioned above, based on the auto-detected formats. If there is no + // as the raw value. Cells with format ROWSET (aka multi-select or multi-record + // picklist) will by default have the first column of each of the linked rows as + // the formatted value in the list, and the rowset id of the linked rows as the raw + // value. For example, a cell containing a multi-select picklist to a table that + // contains items might have "Item A", "Item B" in the formatted value list and + // "rows:b742c1f4-6cb0-4650-a845-35eb86fcc2bb/ + // [fdea123b-8f68-474a-aa8a-5ff87aa333af,6daf41f0-a138-4eee-89da-123086d36ecf]" as + // the raw value. Cells with format ATTACHMENT will have the name of the attachment + // as the formatted value and the attachment id as the raw value. For example, a + // cell containing an attachment named "image.jpeg" will have "image.jpeg" as the + // formatted value and "attachment:ca432b2f-b8eb-431d-9fb5-cbe0342f9f03" as the raw + // value. Cells with format AUTO or cells without any format that are auto-detected + // as one of the formats above will contain the raw and formatted values as + // mentioned above, based on the auto-detected formats. If there is no // auto-detected format, the raw and formatted values will be the same as the data // in the cell. RawValue *string @@ -66,12 +83,18 @@ type Cell struct { } // CellInput object contains the data needed to create or update cells in a table. +// CellInput object has only a facts field or a fact field, but not both. A 400 bad +// request will be thrown if both fact and facts field are present. type CellInput struct { // Fact represents the data that is entered into a cell. This data can be free text // or a formula. Formulas need to start with the equals (=) sign. Fact *string + // A list representing the values that are entered into a ROWSET cell. Facts list + // can have either only values or rowIDs, and rowIDs should from the same table. + Facts []string + noSmithyDocumentSerde } diff --git a/service/internal/benchmark/go.mod b/service/internal/benchmark/go.mod index 4ed083401c0..2478f7e82db 100644 --- a/service/internal/benchmark/go.mod +++ b/service/internal/benchmark/go.mod @@ -7,13 +7,15 @@ require ( github.com/aws/aws-sdk-go-v2 v1.13.0 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.13.0 github.com/aws/aws-sdk-go-v2/service/lexruntimeservice v1.10.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.24.0 // indirect - github.com/aws/aws-sdk-go-v2/service/schemas v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.24.0 + github.com/aws/aws-sdk-go-v2/service/schemas v1.12.0 github.com/aws/smithy-go v1.10.0 ) replace github.com/aws/aws-sdk-go-v2 => ../../../ +replace github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream => ../../../aws/protocol/eventstream/ + 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/ @@ -24,6 +26,10 @@ replace github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding => ../../. replace github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery => ../../../service/internal/endpoint-discovery/ +replace github.com/aws/aws-sdk-go-v2/service/internal/presigned-url => ../../../service/internal/presigned-url/ + +replace github.com/aws/aws-sdk-go-v2/service/internal/s3shared => ../../../service/internal/s3shared/ + replace github.com/aws/aws-sdk-go-v2/service/lexruntimeservice => ../../../service/lexruntimeservice/ replace github.com/aws/aws-sdk-go-v2/service/s3 => ../../../service/s3/ diff --git a/service/internal/benchmark/go.sum b/service/internal/benchmark/go.sum index 10b3894c484..9e455092086 100644 --- a/service/internal/benchmark/go.sum +++ b/service/internal/benchmark/go.sum @@ -1,15 +1,5 @@ github.com/aws/aws-sdk-go v1.34.33 h1:ymkFm0rNPEOlgjyX3ojEd4zqzW6kGICBkqWs7LqgHtU= github.com/aws/aws-sdk-go v1.34.33/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.2.0 h1:scBthy70MB3m4LCMFaBcmYCyR2XWOz6MxSfdSu/+fQo= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.2.0/go.mod h1:oZHzg1OVbuCiRTY0oRPM+c2HQvwnFCGJwKeSqqAJ/yM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.7.0 h1:4QAOB3KrvI1ApJK14sliGr3Ie2pjyvNypn/lfzDHfUw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.7.0/go.mod h1:K/qPe6AP2TGYv4l6n7c88zh9jWBDf6nHhvg1fx/EWfU= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.11.0 h1:XAe+PDnaBELHr25qaJKfB415V4CKFWE8H+prUreql8k= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.11.0/go.mod h1:RMlgnt1LbOT2BxJ3cdw+qVz7KL84714LFkWtF6sLI7A= -github.com/aws/aws-sdk-go-v2/service/s3 v1.24.0 h1:REKac2iT0HYxUSzqOSuncnmsZnE3m4MlGfo1dOUN3vg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.24.0/go.mod h1:oIUXg/5F0x0gy6nkwEnlxZboueddwPEKO6Xl+U6/3a0= -github.com/aws/aws-sdk-go-v2/service/schemas v1.12.0 h1:RfqnMV7sOkLxqUjltYY2FdsNaxuzqDrmp89/E9Jyj70= -github.com/aws/aws-sdk-go-v2/service/schemas v1.12.0/go.mod h1:znm7/t+tVXzCzcS3UOLaMsaB9xNkWIT/jvRUNRLB4A0= github.com/aws/smithy-go v1.10.0 h1:gsoZQMNHnX+PaghNw4ynPsyGP7aUCqx5sY2dlPQsZ0w= github.com/aws/smithy-go v1.10.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= diff --git a/service/ivs/api_op_CreateRecordingConfiguration.go b/service/ivs/api_op_CreateRecordingConfiguration.go index fea025313d4..f871208d9bd 100644 --- a/service/ivs/api_op_CreateRecordingConfiguration.go +++ b/service/ivs/api_op_CreateRecordingConfiguration.go @@ -50,6 +50,11 @@ type CreateRecordingConfigurationInput struct { // Array of 1-50 maps, each of the form string:string (key:value). Tags map[string]string + // A complex type that allows you to enable/disable the recording of thumbnails for + // a live session and modify the interval at which thumbnails are generated for the + // live session. + ThumbnailConfiguration *types.ThumbnailConfiguration + noSmithyDocumentSerde } diff --git a/service/ivs/api_op_ListStreamSessions.go b/service/ivs/api_op_ListStreamSessions.go index 605d702011d..965e9abd02d 100644 --- a/service/ivs/api_op_ListStreamSessions.go +++ b/service/ivs/api_op_ListStreamSessions.go @@ -48,7 +48,7 @@ type ListStreamSessionsInput struct { type ListStreamSessionsOutput struct { - // + // List of stream sessions. // // This member is required. StreamSessions []types.StreamSessionSummary diff --git a/service/ivs/deserializers.go b/service/ivs/deserializers.go index 8978677a1fd..6ecd5b8beae 100644 --- a/service/ivs/deserializers.go +++ b/service/ivs/deserializers.go @@ -3024,6 +3024,9 @@ func awsRestjson1_deserializeOpErrorListStreams(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5202,6 +5205,11 @@ func awsRestjson1_deserializeDocumentRecordingConfiguration(v **types.RecordingC return err } + case "thumbnailConfiguration": + if err := awsRestjson1_deserializeDocumentThumbnailConfiguration(&sv.ThumbnailConfiguration, value); err != nil { + return err + } + default: _, _ = key, value @@ -6254,6 +6262,59 @@ func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingExc return nil } +func awsRestjson1_deserializeDocumentThumbnailConfiguration(v **types.ThumbnailConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ThumbnailConfiguration + if *v == nil { + sv = &types.ThumbnailConfiguration{} + } 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 RecordingMode to be of type string, got %T instead", value) + } + sv.RecordingMode = types.RecordingMode(jtv) + } + + case "targetIntervalSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TargetIntervalSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TargetIntervalSeconds = i64 + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ivs/serializers.go b/service/ivs/serializers.go index 7c94c9e23eb..ac90f7ddbee 100644 --- a/service/ivs/serializers.go +++ b/service/ivs/serializers.go @@ -328,6 +328,13 @@ func awsRestjson1_serializeOpDocumentCreateRecordingConfigurationInput(v *Create } } + if v.ThumbnailConfiguration != nil { + ok := object.Key("thumbnailConfiguration") + if err := awsRestjson1_serializeDocumentThumbnailConfiguration(v.ThumbnailConfiguration, ok); err != nil { + return err + } + } + return nil } @@ -2145,3 +2152,20 @@ func awsRestjson1_serializeDocumentTags(v map[string]string, value smithyjson.Va } return nil } + +func awsRestjson1_serializeDocumentThumbnailConfiguration(v *types.ThumbnailConfiguration, 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.TargetIntervalSeconds != 0 { + ok := object.Key("targetIntervalSeconds") + ok.Long(v.TargetIntervalSeconds) + } + + return nil +} diff --git a/service/ivs/types/enums.go b/service/ivs/types/enums.go index a966068abab..f8c467757bf 100644 --- a/service/ivs/types/enums.go +++ b/service/ivs/types/enums.go @@ -58,6 +58,24 @@ func (RecordingConfigurationState) Values() []RecordingConfigurationState { } } +type RecordingMode string + +// Enum values for RecordingMode +const ( + RecordingModeDisabled RecordingMode = "DISABLED" + RecordingModeInterval RecordingMode = "INTERVAL" +) + +// Values returns all known values for RecordingMode. 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 (RecordingMode) Values() []RecordingMode { + return []RecordingMode{ + "DISABLED", + "INTERVAL", + } +} + type StreamHealth string // Enum values for StreamHealth diff --git a/service/ivs/types/types.go b/service/ivs/types/types.go index a2c0aaebcab..cf20082f24f 100644 --- a/service/ivs/types/types.go +++ b/service/ivs/types/types.go @@ -205,6 +205,11 @@ type RecordingConfiguration struct { // Array of 1-50 maps, each of the form string:string (key:value). Tags map[string]string + // A complex type that allows you to enable/disable the recording of thumbnails for + // a live session and modify the interval at which thumbnails are generated for the + // live session. + ThumbnailConfiguration *ThumbnailConfiguration + noSmithyDocumentSerde } @@ -417,6 +422,27 @@ type StreamSummary struct { noSmithyDocumentSerde } +// An object representing a configuration of thumbnails for recorded video. +type ThumbnailConfiguration struct { + + // Thumbnail recording mode. Default: INTERVAL. + RecordingMode RecordingMode + + // The targeted thumbnail-generation interval in seconds. This is configurable (and + // required) only if recordingMode is INTERVAL. Default: 60. Important: Setting a + // value for targetIntervalSeconds does not guarantee that thumbnails are generated + // at the specified interval. For thumbnails to be generated at the + // targetIntervalSeconds interval, the IDR/Keyframe value for the input video must + // be less than the targetIntervalSeconds value. See Amazon IVS Streaming + // Configuration + // (https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html) for + // information on setting IDR/Keyframe to the recommended value in video-encoder + // settings. + TargetIntervalSeconds int64 + + noSmithyDocumentSerde +} + // Object specifying a stream’s video configuration. type VideoConfiguration struct { diff --git a/service/kafka/internal/endpoints/endpoints.go b/service/kafka/internal/endpoints/endpoints.go index 040bebeb8ad..4e4d4953e6a 100644 --- a/service/kafka/internal/endpoints/endpoints.go +++ b/service/kafka/internal/endpoints/endpoints.go @@ -135,6 +135,9 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "af-south-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-east-1", }: endpoints.Endpoint{}, @@ -144,6 +147,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-northeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-3", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-south-1", }: endpoints.Endpoint{}, diff --git a/service/location/api_op_CalculateRoute.go b/service/location/api_op_CalculateRoute.go index 7cc79fcdac8..663a68800ca 100644 --- a/service/location/api_op_CalculateRoute.go +++ b/service/location/api_op_CalculateRoute.go @@ -15,7 +15,7 @@ import ( // Calculates a route // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html) -// given the following required parameters: DeparturePostiton and +// given the following required parameters: DeparturePosition and // DestinationPosition. Requires that you first create a route calculator resource // (https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html). // By default, a request that doesn't specify a departure time uses the best time @@ -23,16 +23,17 @@ import ( // Additional options include: // // * Specifying a departure time -// (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#departure-time) -// using either DepartureTime or DepartureNow. This calculates a route based on +// (https://docs.aws.amazon.com/location/latest/developerguide/departure-time.html) +// using either DepartureTime or DepartNow. This calculates a route based on // predictive traffic data at the given time. You can't specify both DepartureTime -// and DepartureNow in a single request. Specifying both parameters returns a +// and DepartNow in a single request. Specifying both parameters returns a // validation error. // // * Specifying a travel mode -// (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#travel-mode) -// using TravelMode. This lets you specify an additional route preference such as -// CarModeOptions if traveling by Car, or TruckModeOptions if traveling by Truck. +// (https://docs.aws.amazon.com/location/latest/developerguide/travel-mode.html) +// using TravelMode sets the transportation mode used to calculate the routes. This +// also lets you specify additional route preferences in CarModeOptions if +// traveling by Car, or TruckModeOptions if traveling by Truck. func (c *Client) CalculateRoute(ctx context.Context, params *CalculateRouteInput, optFns ...func(*Options)) (*CalculateRouteOutput, error) { if params == nil { params = &CalculateRouteInput{} @@ -64,7 +65,7 @@ type CalculateRouteInput struct { // // If you specify a departure that's // not located on a road, Amazon Location moves the position to the nearest road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). // If Esri is the provider for your route calculator, specifying a route that is // longer than 400 km returns a 400 RoutesValidationException error. Valid Values: // [-180 to 180,-90 to 90] @@ -81,7 +82,7 @@ type CalculateRouteInput struct { // If you specify a destination // that's not located on a road, Amazon Location moves the position to the nearest // road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). // Valid Values: [-180 to 180,-90 to 90] // // This member is required. @@ -115,16 +116,16 @@ type CalculateRouteInput struct { IncludeLegGeometry *bool // Specifies the mode of transport when calculating a route. Used in estimating the - // speed of travel and road compatibility. The TravelMode you specify determines - // how you specify route preferences: + // speed of travel and road compatibility. The TravelMode you specify also + // determines how you specify route preferences: // - // * If traveling by Car use the CarModeOptions - // parameter. + // * If traveling by Car use the + // CarModeOptions parameter. // - // * If traveling by Truck use the TruckModeOptions parameter. + // * If traveling by Truck use the TruckModeOptions + // parameter. // - // Default - // Value: Car + // Default Value: Car TravelMode types.TravelMode // Specifies route preferences when traveling by Truck, such as avoiding routes @@ -142,7 +143,7 @@ type CalculateRouteInput struct { // If // you specify a waypoint position that's not located on a road, Amazon Location // moves the position to the nearest road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). // Specifying more than 23 waypoints returns a 400 ValidationException error. If // Esri is the provider for your route calculator, specifying a route that is // longer than 400 km returns a 400 RoutesValidationException error. Valid Values: @@ -162,7 +163,7 @@ type CalculateRouteOutput struct { // number of positions in the request. For example, a route with a departure // position and destination position returns one leg with the positions snapped to // a nearby road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road): + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html): // // * // The StartPosition is the departure position. diff --git a/service/location/api_op_CalculateRouteMatrix.go b/service/location/api_op_CalculateRouteMatrix.go new file mode 100644 index 00000000000..9791a3092c9 --- /dev/null +++ b/service/location/api_op_CalculateRouteMatrix.go @@ -0,0 +1,281 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package location + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/location/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Calculates a route matrix +// (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route-matrix.html) +// given the following required parameters: DeparturePositions and +// DestinationPositions. CalculateRouteMatrix calculates routes and returns the +// travel time and travel distance from each departure position to each destination +// position in the request. For example, given departure positions A and B, and +// destination positions X and Y, CalculateRouteMatrix will return time and +// distance for routes from A to X, A to Y, B to X, and B to Y (in that order). The +// number of results returned (and routes calculated) will be the number of +// DeparturePositions times the number of DestinationPositions. Your account is +// charged for each route calculated, not the number of requests. Requires that you +// first create a route calculator resource +// (https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html). +// By default, a request that doesn't specify a departure time uses the best time +// of day to travel with the best traffic conditions when calculating routes. +// Additional options include: +// +// * Specifying a departure time +// (https://docs.aws.amazon.com/location/latest/developerguide/departure-time.html) +// using either DepartureTime or DepartNow. This calculates routes based on +// predictive traffic data at the given time. You can't specify both DepartureTime +// and DepartNow in a single request. Specifying both parameters returns a +// validation error. +// +// * Specifying a travel mode +// (https://docs.aws.amazon.com/location/latest/developerguide/travel-mode.html) +// using TravelMode sets the transportation mode used to calculate the routes. This +// also lets you specify additional route preferences in CarModeOptions if +// traveling by Car, or TruckModeOptions if traveling by Truck. +func (c *Client) CalculateRouteMatrix(ctx context.Context, params *CalculateRouteMatrixInput, optFns ...func(*Options)) (*CalculateRouteMatrixOutput, error) { + if params == nil { + params = &CalculateRouteMatrixInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CalculateRouteMatrix", params, optFns, c.addOperationCalculateRouteMatrixMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CalculateRouteMatrixOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CalculateRouteMatrixInput struct { + + // The name of the route calculator resource that you want to use to calculate the + // route matrix. + // + // This member is required. + CalculatorName *string + + // The list of departure (origin) positions for the route matrix. An array of + // points, each of which is itself a 2-value array defined in WGS 84 + // (https://earth-info.nga.mil/GandG/wgs84/index.html) format: [longitude, + // latitude]. For example, [-123.115, 49.285]. Depending on the data provider + // selected in the route calculator resource there may be additional restrictions + // on the inputs you can choose. See Position restrictions + // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route-matrix.html#matrix-routing-position-limits) + // in the Amazon Location Service Developer Guide. For route calculators that use + // Esri as the data provider, if you specify a departure that's not located on a + // road, Amazon Location moves the position to the nearest road + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). + // The snapped value is available in the result in SnappedDeparturePositions. Valid + // Values: [-180 to 180,-90 to 90] + // + // This member is required. + DeparturePositions [][]float64 + + // The list of destination positions for the route matrix. An array of points, each + // of which is itself a 2-value array defined in WGS 84 + // (https://earth-info.nga.mil/GandG/wgs84/index.html) format: [longitude, + // latitude]. For example, [-122.339, 47.615] Depending on the data provider + // selected in the route calculator resource there may be additional restrictions + // on the inputs you can choose. See Position restrictions + // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route-matrix.html#matrix-routing-position-limits) + // in the Amazon Location Service Developer Guide. For route calculators that use + // Esri as the data provider, if you specify a destination that's not located on a + // road, Amazon Location moves the position to the nearest road + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). + // The snapped value is available in the result in SnappedDestinationPositions. + // Valid Values: [-180 to 180,-90 to 90] + // + // This member is required. + DestinationPositions [][]float64 + + // Specifies route preferences when traveling by Car, such as avoiding routes that + // use ferries or tolls. Requirements: TravelMode must be specified as Car. + CarModeOptions *types.CalculateRouteCarModeOptions + + // Sets the time of departure as the current time. Uses the current time to + // calculate the route matrix. You can't set both DepartureTime and DepartNow. If + // neither is set, the best time of day to travel with the best traffic conditions + // is used to calculate the route matrix. Default Value: false Valid Values: false + // | true + DepartNow *bool + + // Specifies the desired time of departure. Uses the given time to calculate the + // route matrix. You can't set both DepartureTime and DepartNow. If neither is set, + // the best time of day to travel with the best traffic conditions is used to + // calculate the route matrix. Setting a departure time in the past returns a 400 + // ValidationException error. + // + // * In ISO 8601 + // (https://www.iso.org/iso-8601-date-and-time-format.html) format: + // YYYY-MM-DDThh:mm:ss.sssZ. For example, 2020–07-2T12:15:20.000Z+01:00 + DepartureTime *time.Time + + // Set the unit system to specify the distance. Default Value: Kilometers + DistanceUnit types.DistanceUnit + + // Specifies the mode of transport when calculating a route. Used in estimating the + // speed of travel and road compatibility. The TravelMode you specify also + // determines how you specify route preferences: + // + // * If traveling by Car use the + // CarModeOptions parameter. + // + // * If traveling by Truck use the TruckModeOptions + // parameter. + // + // Default Value: Car + TravelMode types.TravelMode + + // Specifies route preferences when traveling by Truck, such as avoiding routes + // that use ferries or tolls, and truck specifications to consider when choosing an + // optimal road. Requirements: TravelMode must be specified as Truck. + TruckModeOptions *types.CalculateRouteTruckModeOptions + + noSmithyDocumentSerde +} + +// Returns the result of the route matrix calculation. +type CalculateRouteMatrixOutput struct { + + // The calculated route matrix containing the results for all pairs of + // DeparturePositions to DestinationPositions. Each row corresponds to one entry in + // DeparturePositions. Each entry in the row corresponds to the route from that + // entry in DeparturePositions to an entry in DestinationPositions. + // + // This member is required. + RouteMatrix [][]types.RouteMatrixEntry + + // Contains information about the route matrix, DataSource, DistanceUnit, + // RouteCount and ErrorCount. + // + // This member is required. + Summary *types.CalculateRouteMatrixSummary + + // For routes calculated using an Esri route calculator resource, departure + // positions are snapped to the closest road. For Esri route calculator resources, + // this returns the list of departure/origin positions used for calculation of the + // RouteMatrix. + SnappedDeparturePositions [][]float64 + + // The list of destination positions for the route matrix used for calculation of + // the RouteMatrix. + SnappedDestinationPositions [][]float64 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCalculateRouteMatrixMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCalculateRouteMatrix{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCalculateRouteMatrix{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opCalculateRouteMatrixMiddleware(stack); err != nil { + return err + } + if err = addOpCalculateRouteMatrixValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCalculateRouteMatrix(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type endpointPrefix_opCalculateRouteMatrixMiddleware struct { +} + +func (*endpointPrefix_opCalculateRouteMatrixMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opCalculateRouteMatrixMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + req.URL.Host = "routes." + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opCalculateRouteMatrixMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opCalculateRouteMatrixMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opCalculateRouteMatrix(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "geo", + OperationName: "CalculateRouteMatrix", + } +} diff --git a/service/location/api_op_CreateGeofenceCollection.go b/service/location/api_op_CreateGeofenceCollection.go index 0b60abfadee..da59b57bdb2 100644 --- a/service/location/api_op_CreateGeofenceCollection.go +++ b/service/location/api_op_CreateGeofenceCollection.go @@ -53,25 +53,15 @@ type CreateGeofenceCollectionInput struct { // a key ID, key ARN, alias name, or alias ARN. KmsKeyId *string - // Optionally specifies the pricing plan for the geofence collection. Defaults to - // RequestBasedUsage. For additional details and restrictions on each pricing plan - // option, see the Amazon Location Service pricing page - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan - // Specifies the data provider for the geofence collection. - // - // * Required value for - // the following pricing plans: MobileAssetTracking | MobileAssetManagement + // This parameter is no longer used. // - // For - // more information about Data Providers - // (https://aws.amazon.com/location/data-providers/), and Pricing plans - // (https://aws.amazon.com/location/pricing/), see the Amazon Location Service - // product page. Amazon Location Service only uses PricingPlanDataSource to - // calculate billing for your geofence collection. Your data won't be shared with - // the data provider, and will remain in your AWS account or Region unless you move - // it. Valid Values: Esri | Here + // Deprecated: Deprecated. No longer allowed. PricingPlanDataSource *string // Applies one or more tags to the geofence collection. A tag is a key-value pair diff --git a/service/location/api_op_CreateMap.go b/service/location/api_op_CreateMap.go index b8b93d97b13..f387e035df6 100644 --- a/service/location/api_op_CreateMap.go +++ b/service/location/api_op_CreateMap.go @@ -14,7 +14,11 @@ import ( ) // Creates a map resource in your AWS account, which provides map tiles of -// different styles sourced from global location data providers. +// different styles sourced from global location data providers. If your +// application is tracking or routing assets you use in your business, such as +// delivery vehicles or employees, you may only use HERE as your geolocation +// provider. See section 82 of the AWS service terms +// (http://aws.amazon.com/service-terms) for more details. func (c *Client) CreateMap(ctx context.Context, params *CreateMapInput, optFns ...func(*Options)) (*CreateMapOutput, error) { if params == nil { params = &CreateMapInput{} @@ -54,10 +58,10 @@ type CreateMapInput struct { // An optional description for the map resource. Description *string - // Optionally specifies the pricing plan for the map resource. Defaults to - // RequestBasedUsage. For additional details and restrictions on each pricing plan - // option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan // Applies one or more tags to the map resource. A tag is a key-value pair helps diff --git a/service/location/api_op_CreatePlaceIndex.go b/service/location/api_op_CreatePlaceIndex.go index 1914a9393a3..6fa17db5cde 100644 --- a/service/location/api_op_CreatePlaceIndex.go +++ b/service/location/api_op_CreatePlaceIndex.go @@ -17,7 +17,10 @@ import ( // to geocode addresses and other text queries by using the SearchPlaceIndexForText // operation, and reverse geocode coordinates by using the // SearchPlaceIndexForPosition operation, and enable autosuggestions by using the -// SearchPlaceIndexForSuggestions operation. +// SearchPlaceIndexForSuggestions operation. If your application is tracking or +// routing assets you use in your business, such as delivery vehicles or employees, +// you may only use HERE as your geolocation provider. See section 82 of the AWS +// service terms (http://aws.amazon.com/service-terms) for more details. func (c *Client) CreatePlaceIndex(ctx context.Context, params *CreatePlaceIndexInput, optFns ...func(*Options)) (*CreatePlaceIndexOutput, error) { if params == nil { params = &CreatePlaceIndexInput{} @@ -84,10 +87,10 @@ type CreatePlaceIndexInput struct { // The optional description for the place index resource. Description *string - // Optionally specifies the pricing plan for the place index resource. Defaults to - // RequestBasedUsage. For additional details and restrictions on each pricing plan - // option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan // Applies one or more tags to the place index resource. A tag is a key-value pair diff --git a/service/location/api_op_CreateRouteCalculator.go b/service/location/api_op_CreateRouteCalculator.go index 4d2806e7e6b..d54f451f121 100644 --- a/service/location/api_op_CreateRouteCalculator.go +++ b/service/location/api_op_CreateRouteCalculator.go @@ -16,7 +16,10 @@ import ( // Creates a route calculator resource in your AWS account. You can send requests // to a route calculator resource to estimate travel time, distance, and get // directions. A route calculator sources traffic and road network data from your -// chosen data provider. +// chosen data provider. If your application is tracking or routing assets you use +// in your business, such as delivery vehicles or employees, you may only use HERE +// as your geolocation provider. See section 82 of the AWS service terms +// (http://aws.amazon.com/service-terms) for more details. func (c *Client) CreateRouteCalculator(ctx context.Context, params *CreateRouteCalculatorInput, optFns ...func(*Options)) (*CreateRouteCalculatorOutput, error) { if params == nil { params = &CreateRouteCalculatorInput{} @@ -79,10 +82,10 @@ type CreateRouteCalculatorInput struct { // The optional description for the route calculator resource. Description *string - // Optionally specifies the pricing plan for the route calculator resource. - // Defaults to RequestBasedUsage. For additional details and restrictions on each - // pricing plan option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan // Applies one or more tags to the route calculator resource. A tag is a key-value diff --git a/service/location/api_op_CreateTracker.go b/service/location/api_op_CreateTracker.go index 5d8118721e0..e550904c27c 100644 --- a/service/location/api_op_CreateTracker.go +++ b/service/location/api_op_CreateTracker.go @@ -82,25 +82,15 @@ type CreateTrackerInput struct { // is optional. If not specified, the default value is TimeBased. PositionFiltering types.PositionFiltering - // Optionally specifies the pricing plan for the tracker resource. Defaults to - // RequestBasedUsage. For additional details and restrictions on each pricing plan - // option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan - // Specifies the data provider for the tracker resource. - // - // * Required value for the - // following pricing plans: MobileAssetTracking | MobileAssetManagement + // This parameter is no longer used. // - // For more - // information about Data Providers - // (https://aws.amazon.com/location/data-providers/), and Pricing plans - // (https://aws.amazon.com/location/pricing/), see the Amazon Location Service - // product page. Amazon Location Service only uses PricingPlanDataSource to - // calculate billing for your tracker resource. Your data will not be shared with - // the data provider, and will remain in your AWS account or Region unless you move - // it. Valid values: Esri | Here + // Deprecated: Deprecated. No longer allowed. PricingPlanDataSource *string // Applies one or more tags to the tracker resource. A tag is a key-value pair diff --git a/service/location/api_op_DescribeGeofenceCollection.go b/service/location/api_op_DescribeGeofenceCollection.go index c393efc679f..da96a34c8c2 100644 --- a/service/location/api_op_DescribeGeofenceCollection.go +++ b/service/location/api_op_DescribeGeofenceCollection.go @@ -67,13 +67,6 @@ type DescribeGeofenceCollectionOutput struct { // This member is required. Description *string - // The pricing plan selected for the specified geofence collection. For additional - // details and restrictions on each pricing plan option, see the Amazon Location - // Service pricing page (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan types.PricingPlan - // The timestamp for when the geofence collection was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ @@ -86,7 +79,14 @@ type DescribeGeofenceCollectionOutput struct { // assigned to the Amazon Location resource KmsKeyId *string - // The specified data provider for the geofence collection. + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan types.PricingPlan + + // No longer used. Always returns an empty string. + // + // Deprecated: Deprecated. Unused. PricingPlanDataSource *string // Displays the key, value pairs of tags associated with this resource. diff --git a/service/location/api_op_DescribeMap.go b/service/location/api_op_DescribeMap.go index 67268b6c4d4..a343a11b839 100644 --- a/service/location/api_op_DescribeMap.go +++ b/service/location/api_op_DescribeMap.go @@ -76,13 +76,6 @@ type DescribeMapOutput struct { // This member is required. MapName *string - // The pricing plan selected for the specified map resource. For additional details - // and restrictions on each pricing plan option, see Amazon Location Service - // pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan types.PricingPlan - // The timestamp for when the map resource was last update in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -90,6 +83,11 @@ type DescribeMapOutput struct { // This member is required. UpdateTime *time.Time + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan types.PricingPlan + // Tags associated with the map resource. Tags map[string]string diff --git a/service/location/api_op_DescribePlaceIndex.go b/service/location/api_op_DescribePlaceIndex.go index 80dc22312e0..c8d51775922 100644 --- a/service/location/api_op_DescribePlaceIndex.go +++ b/service/location/api_op_DescribePlaceIndex.go @@ -86,13 +86,6 @@ type DescribePlaceIndexOutput struct { // This member is required. IndexName *string - // The pricing plan selected for the specified place index resource. For additional - // details and restrictions on each pricing plan option, see Amazon Location - // Service pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan types.PricingPlan - // The timestamp for when the place index resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -100,6 +93,11 @@ type DescribePlaceIndexOutput struct { // This member is required. UpdateTime *time.Time + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan types.PricingPlan + // Tags associated with place index resource. Tags map[string]string diff --git a/service/location/api_op_DescribeRouteCalculator.go b/service/location/api_op_DescribeRouteCalculator.go index 99420142c1a..88dd29608eb 100644 --- a/service/location/api_op_DescribeRouteCalculator.go +++ b/service/location/api_op_DescribeRouteCalculator.go @@ -83,13 +83,6 @@ type DescribeRouteCalculatorOutput struct { // This member is required. Description *string - // The pricing plan selected for the specified route calculator resource. For - // additional details and restrictions on each pricing plan option, see Amazon - // Location Service pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan types.PricingPlan - // The timestamp when the route calculator resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -99,6 +92,11 @@ type DescribeRouteCalculatorOutput struct { // This member is required. UpdateTime *time.Time + // Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan types.PricingPlan + // Tags associated with route calculator resource. Tags map[string]string diff --git a/service/location/api_op_DescribeTracker.go b/service/location/api_op_DescribeTracker.go index 40f90a754eb..c94b608b171 100644 --- a/service/location/api_op_DescribeTracker.go +++ b/service/location/api_op_DescribeTracker.go @@ -53,13 +53,6 @@ type DescribeTrackerOutput struct { // This member is required. Description *string - // The pricing plan selected for the specified tracker resource. For additional - // details and restrictions on each pricing plan option, see Amazon Location - // Service pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan types.PricingPlan - // The Amazon Resource Name (ARN) for the tracker resource. Used when you need to // specify a resource across all AWS. // @@ -89,7 +82,14 @@ type DescribeTrackerOutput struct { // The position filtering method of the tracker resource. PositionFiltering types.PositionFiltering - // The specified data provider for the tracker resource. + // Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan types.PricingPlan + + // No longer used. Always returns an empty string. + // + // Deprecated: Deprecated. Unused. PricingPlanDataSource *string // The tags associated with the tracker resource. diff --git a/service/location/api_op_UpdateGeofenceCollection.go b/service/location/api_op_UpdateGeofenceCollection.go index d9f80104d33..a357ec880e7 100644 --- a/service/location/api_op_UpdateGeofenceCollection.go +++ b/service/location/api_op_UpdateGeofenceCollection.go @@ -39,20 +39,15 @@ type UpdateGeofenceCollectionInput struct { // Updates the description for the geofence collection. Description *string - // Updates the pricing plan for the geofence collection. For more information about - // each pricing plan option restrictions, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan - // Updates the data provider for the geofence collection. A required value for the - // following pricing plans: MobileAssetTracking| MobileAssetManagement For more - // information about data providers - // (https://aws.amazon.com/location/data-providers/) and pricing plans - // (https://aws.amazon.com/location/pricing/), see the Amazon Location Service - // product page. This can only be updated when updating the PricingPlan in the same - // request. Amazon Location Service uses PricingPlanDataSource to calculate billing - // for your geofence collection. Your data won't be shared with the data provider, - // and will remain in your AWS account and Region unless you move it. + // This parameter is no longer used. + // + // Deprecated: Deprecated. No longer allowed. PricingPlanDataSource *string noSmithyDocumentSerde diff --git a/service/location/api_op_UpdateMap.go b/service/location/api_op_UpdateMap.go index 6af12bc7074..b325ca5e5cf 100644 --- a/service/location/api_op_UpdateMap.go +++ b/service/location/api_op_UpdateMap.go @@ -39,9 +39,10 @@ type UpdateMapInput struct { // Updates the description for the map resource. Description *string - // Updates the pricing plan for the map resource. For more information about each - // pricing plan option restrictions, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan noSmithyDocumentSerde diff --git a/service/location/api_op_UpdatePlaceIndex.go b/service/location/api_op_UpdatePlaceIndex.go index d7596eafc80..b8ccc39901d 100644 --- a/service/location/api_op_UpdatePlaceIndex.go +++ b/service/location/api_op_UpdatePlaceIndex.go @@ -42,9 +42,10 @@ type UpdatePlaceIndexInput struct { // Updates the description for the place index resource. Description *string - // Updates the pricing plan for the place index resource. For more information - // about each pricing plan option restrictions, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan noSmithyDocumentSerde diff --git a/service/location/api_op_UpdateRouteCalculator.go b/service/location/api_op_UpdateRouteCalculator.go index 027d4b1ded5..6cbd9a62e53 100644 --- a/service/location/api_op_UpdateRouteCalculator.go +++ b/service/location/api_op_UpdateRouteCalculator.go @@ -39,9 +39,10 @@ type UpdateRouteCalculatorInput struct { // Updates the description for the route calculator resource. Description *string - // Updates the pricing plan for the route calculator resource. For more information - // about each pricing plan option restrictions, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan noSmithyDocumentSerde diff --git a/service/location/api_op_UpdateTracker.go b/service/location/api_op_UpdateTracker.go index 69f89f48185..dcbcd308b56 100644 --- a/service/location/api_op_UpdateTracker.go +++ b/service/location/api_op_UpdateTracker.go @@ -64,20 +64,15 @@ type UpdateTrackerInput struct { // control costs by reducing the number of geofence evaluations. PositionFiltering types.PositionFiltering - // Updates the pricing plan for the tracker resource. For more information about - // each pricing plan option restrictions, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). + // No longer used. If included, the only allowed value is RequestBasedUsage. + // + // Deprecated: Deprecated. If included, the only allowed value is + // RequestBasedUsage. PricingPlan types.PricingPlan - // Updates the data provider for the tracker resource. A required value for the - // following pricing plans: MobileAssetTracking| MobileAssetManagement For more - // information about data providers - // (https://aws.amazon.com/location/data-providers/) and pricing plans - // (https://aws.amazon.com/location/pricing/), see the Amazon Location Service - // product page This can only be updated when updating the PricingPlan in the same - // request. Amazon Location Service uses PricingPlanDataSource to calculate billing - // for your tracker resource. Your data won't be shared with the data provider, and - // will remain in your AWS account and Region unless you move it. + // This parameter is no longer used. + // + // Deprecated: Deprecated. No longer allowed. PricingPlanDataSource *string noSmithyDocumentSerde diff --git a/service/location/deserializers.go b/service/location/deserializers.go index fcd1f1a5fbf..077995f6078 100644 --- a/service/location/deserializers.go +++ b/service/location/deserializers.go @@ -1249,6 +1249,180 @@ func awsRestjson1_deserializeOpDocumentCalculateRouteOutput(v **CalculateRouteOu return nil } +type awsRestjson1_deserializeOpCalculateRouteMatrix struct { +} + +func (*awsRestjson1_deserializeOpCalculateRouteMatrix) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCalculateRouteMatrix) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorCalculateRouteMatrix(response, &metadata) + } + output := &CalculateRouteMatrixOutput{} + 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_deserializeOpDocumentCalculateRouteMatrixOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorCalculateRouteMatrix(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCalculateRouteMatrixOutput(v **CalculateRouteMatrixOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CalculateRouteMatrixOutput + if *v == nil { + sv = &CalculateRouteMatrixOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "RouteMatrix": + if err := awsRestjson1_deserializeDocumentRouteMatrix(&sv.RouteMatrix, value); err != nil { + return err + } + + case "SnappedDeparturePositions": + if err := awsRestjson1_deserializeDocumentPositionList(&sv.SnappedDeparturePositions, value); err != nil { + return err + } + + case "SnappedDestinationPositions": + if err := awsRestjson1_deserializeDocumentPositionList(&sv.SnappedDestinationPositions, value); err != nil { + return err + } + + case "Summary": + if err := awsRestjson1_deserializeDocumentCalculateRouteMatrixSummary(&sv.Summary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateGeofenceCollection struct { } @@ -9384,6 +9558,81 @@ func awsRestjson1_deserializeDocumentBoundingBox(v *[]float64, value interface{} return nil } +func awsRestjson1_deserializeDocumentCalculateRouteMatrixSummary(v **types.CalculateRouteMatrixSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CalculateRouteMatrixSummary + if *v == nil { + sv = &types.CalculateRouteMatrixSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSource": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DataSource = ptr.String(jtv) + } + + case "DistanceUnit": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DistanceUnit to be of type string, got %T instead", value) + } + sv.DistanceUnit = types.DistanceUnit(jtv) + } + + case "ErrorCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ErrorCount = ptr.Int32(int32(i64)) + } + + case "RouteCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RouteCount = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentCalculateRouteSummary(v **types.CalculateRouteSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11282,6 +11531,38 @@ func awsRestjson1_deserializeDocumentPositionalAccuracy(v **types.PositionalAccu return nil } +func awsRestjson1_deserializeDocumentPositionList(v *[][]float64, 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 [][]float64 + if *v == nil { + cv = [][]float64{} + } else { + cv = *v + } + + for _, value := range shape { + var col []float64 + if err := awsRestjson1_deserializeDocumentPosition(&col, value); err != nil { + return err + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentPropertyMap(v *map[string]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11358,6 +11639,225 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } +func awsRestjson1_deserializeDocumentRouteMatrix(v *[][]types.RouteMatrixEntry, 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.RouteMatrixEntry + if *v == nil { + cv = [][]types.RouteMatrixEntry{} + } else { + cv = *v + } + + for _, value := range shape { + var col []types.RouteMatrixEntry + if err := awsRestjson1_deserializeDocumentRouteMatrixRow(&col, value); err != nil { + return err + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRouteMatrixEntry(v **types.RouteMatrixEntry, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RouteMatrixEntry + if *v == nil { + sv = &types.RouteMatrixEntry{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Distance": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Distance = ptr.Float64(f64) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.Distance = ptr.Float64(f64) + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + case "DurationSeconds": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.DurationSeconds = ptr.Float64(f64) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.DurationSeconds = ptr.Float64(f64) + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + case "Error": + if err := awsRestjson1_deserializeDocumentRouteMatrixEntryError(&sv.Error, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRouteMatrixEntryError(v **types.RouteMatrixEntryError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RouteMatrixEntryError + if *v == nil { + sv = &types.RouteMatrixEntryError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Code": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RouteMatrixErrorCode to be of type string, got %T instead", value) + } + sv.Code = types.RouteMatrixErrorCode(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRouteMatrixRow(v *[]types.RouteMatrixEntry, 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.RouteMatrixEntry + if *v == nil { + cv = []types.RouteMatrixEntry{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RouteMatrixEntry + destAddr := &col + if err := awsRestjson1_deserializeDocumentRouteMatrixEntry(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentSearchForPositionResult(v **types.SearchForPositionResult, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/location/generated.json b/service/location/generated.json index 08345c5a595..10fbb6bd6e7 100644 --- a/service/location/generated.json +++ b/service/location/generated.json @@ -15,6 +15,7 @@ "api_op_BatchPutGeofence.go", "api_op_BatchUpdateDevicePosition.go", "api_op_CalculateRoute.go", + "api_op_CalculateRouteMatrix.go", "api_op_CreateGeofenceCollection.go", "api_op_CreateMap.go", "api_op_CreatePlaceIndex.go", diff --git a/service/location/serializers.go b/service/location/serializers.go index 5410c6c9d95..4bbdeeb22e7 100644 --- a/service/location/serializers.go +++ b/service/location/serializers.go @@ -731,6 +731,130 @@ func awsRestjson1_serializeOpDocumentCalculateRouteInput(v *CalculateRouteInput, return nil } +type awsRestjson1_serializeOpCalculateRouteMatrix struct { +} + +func (*awsRestjson1_serializeOpCalculateRouteMatrix) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCalculateRouteMatrix) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CalculateRouteMatrixInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/routes/v0/calculators/{CalculatorName}/calculate/route-matrix") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCalculateRouteMatrixInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCalculateRouteMatrixInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCalculateRouteMatrixInput(v *CalculateRouteMatrixInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.CalculatorName == nil || len(*v.CalculatorName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member CalculatorName must not be empty")} + } + if v.CalculatorName != nil { + if err := encoder.SetURI("CalculatorName").String(*v.CalculatorName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCalculateRouteMatrixInput(v *CalculateRouteMatrixInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CarModeOptions != nil { + ok := object.Key("CarModeOptions") + if err := awsRestjson1_serializeDocumentCalculateRouteCarModeOptions(v.CarModeOptions, ok); err != nil { + return err + } + } + + if v.DepartNow != nil { + ok := object.Key("DepartNow") + ok.Boolean(*v.DepartNow) + } + + if v.DeparturePositions != nil { + ok := object.Key("DeparturePositions") + if err := awsRestjson1_serializeDocumentPositionList(v.DeparturePositions, ok); err != nil { + return err + } + } + + if v.DepartureTime != nil { + ok := object.Key("DepartureTime") + ok.String(smithytime.FormatDateTime(*v.DepartureTime)) + } + + if v.DestinationPositions != nil { + ok := object.Key("DestinationPositions") + if err := awsRestjson1_serializeDocumentPositionList(v.DestinationPositions, ok); err != nil { + return err + } + } + + if len(v.DistanceUnit) > 0 { + ok := object.Key("DistanceUnit") + ok.String(string(v.DistanceUnit)) + } + + if len(v.TravelMode) > 0 { + ok := object.Key("TravelMode") + ok.String(string(v.TravelMode)) + } + + if v.TruckModeOptions != nil { + ok := object.Key("TruckModeOptions") + if err := awsRestjson1_serializeDocumentCalculateRouteTruckModeOptions(v.TruckModeOptions, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpCreateGeofenceCollection struct { } @@ -4363,6 +4487,22 @@ func awsRestjson1_serializeDocumentPositionalAccuracy(v *types.PositionalAccurac return nil } +func awsRestjson1_serializeDocumentPositionList(v [][]float64, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if vv := v[i]; vv == nil { + continue + } + if err := awsRestjson1_serializeDocumentPosition(v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentPropertyMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/location/types/enums.go b/service/location/types/enums.go index c9db5b21a21..aa8d6c99043 100644 --- a/service/location/types/enums.go +++ b/service/location/types/enums.go @@ -80,6 +80,22 @@ func (PricingPlan) Values() []PricingPlan { } } +type RouteMatrixErrorCode string + +// Values returns all known values for RouteMatrixErrorCode. 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 (RouteMatrixErrorCode) Values() []RouteMatrixErrorCode { + return []RouteMatrixErrorCode{ + "RouteNotFound", + "RouteTooLong", + "PositionsNotFound", + "DestinationPositionNotFound", + "DeparturePositionNotFound", + "OtherValidationError", + } +} + type TravelMode string // Values returns all known values for TravelMode. Note that this can be expanded diff --git a/service/location/types/types.go b/service/location/types/types.go index 08c139e6920..dc07648c504 100644 --- a/service/location/types/types.go +++ b/service/location/types/types.go @@ -193,6 +193,43 @@ type CalculateRouteCarModeOptions struct { noSmithyDocumentSerde } +// A summary of the calculated route matrix. +type CalculateRouteMatrixSummary struct { + + // The data provider of traffic and road network data used to calculate the routes. + // Indicates one of the available providers: + // + // * Esri + // + // * Here + // + // For more information + // about data providers, see Amazon Location Service data providers + // (https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html). + // + // This member is required. + DataSource *string + + // The unit of measurement for route distances. + // + // This member is required. + DistanceUnit DistanceUnit + + // The count of error results in the route matrix. If this number is 0, all routes + // were calculated successfully. + // + // This member is required. + ErrorCount *int32 + + // The count of cells in the route matrix. Equal to the number of + // DeparturePositions multiplied by the number of DestinationPositions. + // + // This member is required. + RouteCount *int32 + + noSmithyDocumentSerde +} + // A summary of the calculated route. type CalculateRouteSummary struct { @@ -401,7 +438,7 @@ type GeofenceGeometry struct { // number of positions in the request. For example, a route with a departure // position and destination position returns one leg with the positions snapped to // a nearby road -// (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road): +// (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html): // // * // The StartPosition is the departure position. @@ -438,14 +475,14 @@ type Leg struct { // The terminating position of the leg. Follows the format [longitude,latitude]. If // the EndPosition isn't located on a road, it's snapped to a nearby road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). + // (https://docs.aws.amazon.com/location/latest/developerguide/nap-to-nearby-road.html). // // This member is required. EndPosition []float64 // The starting position of the leg. Follows the format [longitude,latitude]. If // the StartPosition isn't located on a road, it's snapped to a nearby road - // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). + // (https://docs.aws.amazon.com/location/latest/developerguide/snap-to-nearby-road.html). // // This member is required. StartPosition []float64 @@ -528,13 +565,6 @@ type ListGeofenceCollectionsResponseEntry struct { // This member is required. Description *string - // The pricing plan for the specified geofence collection. For additional details - // and restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan PricingPlan - // Specifies a timestamp for when the resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ @@ -542,7 +572,14 @@ type ListGeofenceCollectionsResponseEntry struct { // This member is required. UpdateTime *time.Time - // The specified data provider for the geofence collection. + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan PricingPlan + + // No longer used. Always returns an empty string. + // + // Deprecated: Deprecated. Unused. PricingPlanDataSource *string noSmithyDocumentSerde @@ -622,13 +659,6 @@ type ListMapsResponseEntry struct { // This member is required. MapName *string - // The pricing plan for the specified map resource. For additional details and - // restrictions on each pricing plan option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan PricingPlan - // The timestamp for when the map resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -636,6 +666,11 @@ type ListMapsResponseEntry struct { // This member is required. UpdateTime *time.Time + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan PricingPlan + noSmithyDocumentSerde } @@ -673,13 +708,6 @@ type ListPlaceIndexesResponseEntry struct { // This member is required. IndexName *string - // The pricing plan for the specified place index resource. For additional details - // and restrictions on each pricing plan option, see Amazon Location Service - // pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan PricingPlan - // The timestamp for when the place index resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -687,6 +715,11 @@ type ListPlaceIndexesResponseEntry struct { // This member is required. UpdateTime *time.Time + // No longer used. Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan PricingPlan + noSmithyDocumentSerde } @@ -726,13 +759,6 @@ type ListRouteCalculatorsResponseEntry struct { // This member is required. Description *string - // The pricing plan for the specified route calculator resource. For additional - // details and restrictions on each pricing plan option, see Amazon Location - // Service pricing (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan PricingPlan - // The timestamp when the route calculator resource was last updated in ISO 8601 // (https://www.iso.org/iso-8601-date-and-time-format.html) format: // YYYY-MM-DDThh:mm:ss.sssZ. @@ -742,6 +768,11 @@ type ListRouteCalculatorsResponseEntry struct { // This member is required. UpdateTime *time.Time + // Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan PricingPlan + noSmithyDocumentSerde } @@ -760,13 +791,6 @@ type ListTrackersResponseEntry struct { // This member is required. Description *string - // The pricing plan for the specified tracker resource. For additional details and - // restrictions on each pricing plan option, see Amazon Location Service pricing - // (https://aws.amazon.com/location/pricing/). - // - // This member is required. - PricingPlan PricingPlan - // The name of the tracker resource. // // This member is required. @@ -779,7 +803,14 @@ type ListTrackersResponseEntry struct { // This member is required. UpdateTime *time.Time - // The specified data provider for the tracker resource. + // Always returns RequestBasedUsage. + // + // Deprecated: Deprecated. Always returns RequestBasedUsage. + PricingPlan PricingPlan + + // No longer used. Always returns an empty string. + // + // Deprecated: Deprecated. Unused. PricingPlanDataSource *string noSmithyDocumentSerde @@ -923,6 +954,57 @@ type PositionalAccuracy struct { noSmithyDocumentSerde } +// The result for one SnappedDeparturePositionSnappedDestinationPosition pair. +type RouteMatrixEntry struct { + + // The total distance of travel for the route. + Distance *float64 + + // The expected duration of travel for the route. + DurationSeconds *float64 + + // An error corresponding to the calculation of a route between the + // DeparturePosition and DestinationPosition. + Error *RouteMatrixEntryError + + noSmithyDocumentSerde +} + +// An error corresponding to the calculation of a route between the +// DeparturePosition and DestinationPosition. The error code can be one of the +// following: +// +// * RouteNotFound - Unable to find a valid route with the given +// parameters. +// +// * RouteTooLong - Route calculation went beyond the maximum size of +// a route and was terminated before completion. +// +// * PositionsNotFound - One or more +// of the input positions were not found on the route network. +// +// * +// DestinationPositionNotFound - The destination position was not found on the +// route network. +// +// * DeparturePositionNotFound - The departure position was not +// found on the route network. +// +// * OtherValidationError - The given inputs were not +// valid or a route was not found. More information is given in the error Message +type RouteMatrixEntryError struct { + + // The type of error which occurred for the route calculation. + // + // This member is required. + Code RouteMatrixErrorCode + + // A message about the error that occurred for the route calculation. + Message *string + + noSmithyDocumentSerde +} + // Contains a search result from a position search query that is run on a place // index resource. type SearchForPositionResult struct { diff --git a/service/location/validators.go b/service/location/validators.go index d693bb46802..3fb3f1e4a94 100644 --- a/service/location/validators.go +++ b/service/location/validators.go @@ -170,6 +170,26 @@ func (m *validateOpCalculateRoute) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpCalculateRouteMatrix struct { +} + +func (*validateOpCalculateRouteMatrix) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCalculateRouteMatrix) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CalculateRouteMatrixInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCalculateRouteMatrixInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateGeofenceCollection struct { } @@ -962,6 +982,10 @@ func addOpCalculateRouteValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCalculateRoute{}, middleware.After) } +func addOpCalculateRouteMatrixValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCalculateRouteMatrix{}, middleware.After) +} + func addOpCreateGeofenceCollectionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateGeofenceCollection{}, middleware.After) } @@ -1381,6 +1405,27 @@ func validateOpCalculateRouteInput(v *CalculateRouteInput) error { } } +func validateOpCalculateRouteMatrixInput(v *CalculateRouteMatrixInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CalculateRouteMatrixInput"} + if v.CalculatorName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CalculatorName")) + } + if v.DeparturePositions == nil { + invalidParams.Add(smithy.NewErrParamRequired("DeparturePositions")) + } + if v.DestinationPositions == nil { + invalidParams.Add(smithy.NewErrParamRequired("DestinationPositions")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateGeofenceCollectionInput(v *CreateGeofenceCollectionInput) error { if v == nil { return nil diff --git a/service/lookoutmetrics/api_op_DeactivateAnomalyDetector.go b/service/lookoutmetrics/api_op_DeactivateAnomalyDetector.go new file mode 100644 index 00000000000..6ca39b89069 --- /dev/null +++ b/service/lookoutmetrics/api_op_DeactivateAnomalyDetector.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package lookoutmetrics + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deactivates an anomaly detector. +func (c *Client) DeactivateAnomalyDetector(ctx context.Context, params *DeactivateAnomalyDetectorInput, optFns ...func(*Options)) (*DeactivateAnomalyDetectorOutput, error) { + if params == nil { + params = &DeactivateAnomalyDetectorInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeactivateAnomalyDetector", params, optFns, c.addOperationDeactivateAnomalyDetectorMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeactivateAnomalyDetectorOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeactivateAnomalyDetectorInput struct { + + // The Amazon Resource Name (ARN) of the anomaly detector. + // + // This member is required. + AnomalyDetectorArn *string + + noSmithyDocumentSerde +} + +type DeactivateAnomalyDetectorOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeactivateAnomalyDetectorMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeactivateAnomalyDetector{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeactivateAnomalyDetector{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeactivateAnomalyDetectorValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeactivateAnomalyDetector(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeactivateAnomalyDetector(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "lookoutmetrics", + OperationName: "DeactivateAnomalyDetector", + } +} diff --git a/service/lookoutmetrics/deserializers.go b/service/lookoutmetrics/deserializers.go index 00b6e48feff..e6be78ecc07 100644 --- a/service/lookoutmetrics/deserializers.go +++ b/service/lookoutmetrics/deserializers.go @@ -717,6 +717,104 @@ func awsRestjson1_deserializeOpDocumentCreateMetricSetOutput(v **CreateMetricSet return nil } +type awsRestjson1_deserializeOpDeactivateAnomalyDetector struct { +} + +func (*awsRestjson1_deserializeOpDeactivateAnomalyDetector) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeactivateAnomalyDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeactivateAnomalyDetector(response, &metadata) + } + output := &DeactivateAnomalyDetectorOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeactivateAnomalyDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpDeleteAlert struct { } diff --git a/service/lookoutmetrics/generated.json b/service/lookoutmetrics/generated.json index 15553883eca..95d34686b38 100644 --- a/service/lookoutmetrics/generated.json +++ b/service/lookoutmetrics/generated.json @@ -12,6 +12,7 @@ "api_op_CreateAlert.go", "api_op_CreateAnomalyDetector.go", "api_op_CreateMetricSet.go", + "api_op_DeactivateAnomalyDetector.go", "api_op_DeleteAlert.go", "api_op_DeleteAnomalyDetector.go", "api_op_DescribeAlert.go", diff --git a/service/lookoutmetrics/serializers.go b/service/lookoutmetrics/serializers.go index deabb1a690b..52f6e200b09 100644 --- a/service/lookoutmetrics/serializers.go +++ b/service/lookoutmetrics/serializers.go @@ -467,6 +467,74 @@ func awsRestjson1_serializeOpDocumentCreateMetricSetInput(v *CreateMetricSetInpu return nil } +type awsRestjson1_serializeOpDeactivateAnomalyDetector struct { +} + +func (*awsRestjson1_serializeOpDeactivateAnomalyDetector) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeactivateAnomalyDetector) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeactivateAnomalyDetectorInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/DeactivateAnomalyDetector") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, 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_serializeOpDocumentDeactivateAnomalyDetectorInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeactivateAnomalyDetectorInput(v *DeactivateAnomalyDetectorInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentDeactivateAnomalyDetectorInput(v *DeactivateAnomalyDetectorInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AnomalyDetectorArn != nil { + ok := object.Key("AnomalyDetectorArn") + ok.String(*v.AnomalyDetectorArn) + } + + return nil +} + type awsRestjson1_serializeOpDeleteAlert struct { } diff --git a/service/lookoutmetrics/types/enums.go b/service/lookoutmetrics/types/enums.go index ec145234b6b..60dfbc4da86 100644 --- a/service/lookoutmetrics/types/enums.go +++ b/service/lookoutmetrics/types/enums.go @@ -87,6 +87,7 @@ const ( AnomalyDetectorFailureTypeActivationFailure AnomalyDetectorFailureType = "ACTIVATION_FAILURE" AnomalyDetectorFailureTypeBackTestActivationFailure AnomalyDetectorFailureType = "BACK_TEST_ACTIVATION_FAILURE" AnomalyDetectorFailureTypeDeletionFailure AnomalyDetectorFailureType = "DELETION_FAILURE" + AnomalyDetectorFailureTypeDeactivationFailure AnomalyDetectorFailureType = "DEACTIVATION_FAILURE" ) // Values returns all known values for AnomalyDetectorFailureType. Note that this @@ -97,6 +98,7 @@ func (AnomalyDetectorFailureType) Values() []AnomalyDetectorFailureType { "ACTIVATION_FAILURE", "BACK_TEST_ACTIVATION_FAILURE", "DELETION_FAILURE", + "DEACTIVATION_FAILURE", } } @@ -113,6 +115,8 @@ const ( AnomalyDetectorStatusBackTestActivating AnomalyDetectorStatus = "BACK_TEST_ACTIVATING" AnomalyDetectorStatusBackTestActive AnomalyDetectorStatus = "BACK_TEST_ACTIVE" AnomalyDetectorStatusBackTestComplete AnomalyDetectorStatus = "BACK_TEST_COMPLETE" + AnomalyDetectorStatusDeactivated AnomalyDetectorStatus = "DEACTIVATED" + AnomalyDetectorStatusDeactivating AnomalyDetectorStatus = "DEACTIVATING" ) // Values returns all known values for AnomalyDetectorStatus. Note that this can be @@ -129,6 +133,8 @@ func (AnomalyDetectorStatus) Values() []AnomalyDetectorStatus { "BACK_TEST_ACTIVATING", "BACK_TEST_ACTIVE", "BACK_TEST_COMPLETE", + "DEACTIVATED", + "DEACTIVATING", } } diff --git a/service/lookoutmetrics/validators.go b/service/lookoutmetrics/validators.go index fefcd6f851b..4d653e81a27 100644 --- a/service/lookoutmetrics/validators.go +++ b/service/lookoutmetrics/validators.go @@ -110,6 +110,26 @@ func (m *validateOpCreateMetricSet) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpDeactivateAnomalyDetector struct { +} + +func (*validateOpDeactivateAnomalyDetector) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeactivateAnomalyDetector) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeactivateAnomalyDetectorInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeactivateAnomalyDetectorInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteAlert struct { } @@ -490,6 +510,10 @@ func addOpCreateMetricSetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateMetricSet{}, middleware.After) } +func addOpDeactivateAnomalyDetectorValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeactivateAnomalyDetector{}, middleware.After) +} + func addOpDeleteAlertValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAlert{}, middleware.After) } @@ -888,6 +912,21 @@ func validateOpCreateMetricSetInput(v *CreateMetricSetInput) error { } } +func validateOpDeactivateAnomalyDetectorInput(v *DeactivateAnomalyDetectorInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeactivateAnomalyDetectorInput"} + if v.AnomalyDetectorArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("AnomalyDetectorArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteAlertInput(v *DeleteAlertInput) error { if v == nil { return nil diff --git a/service/macie2/api_op_CreateCustomDataIdentifier.go b/service/macie2/api_op_CreateCustomDataIdentifier.go index 94ba7697a8c..3f0a7131ec8 100644 --- a/service/macie2/api_op_CreateCustomDataIdentifier.go +++ b/service/macie2/api_op_CreateCustomDataIdentifier.go @@ -31,6 +31,21 @@ func (c *Client) CreateCustomDataIdentifier(ctx context.Context, params *CreateC type CreateCustomDataIdentifierInput struct { + // A custom name for the custom data identifier. The name can contain as many as + // 128 characters. We strongly recommend that you avoid including any sensitive + // data in the name of a custom data identifier. Other users of your account might + // be able to see this name, depending on the actions that they're allowed to + // perform in Amazon Macie. + // + // This member is required. + Name *string + + // The regular expression (regex) that defines the pattern to match. The expression + // can contain as many as 512 characters. + // + // This member is required. + Regex *string + // A unique, case-sensitive token that you provide to ensure the idempotency of the // request. ClientToken *string @@ -62,17 +77,6 @@ type CreateCustomDataIdentifierInput struct { // characters. The default value is 50. MaximumMatchDistance int32 - // A custom name for the custom data identifier. The name can contain as many as - // 128 characters. We strongly recommend that you avoid including any sensitive - // data in the name of a custom data identifier. Other users of your account might - // be able to see this name, depending on the actions that they're allowed to - // perform in Amazon Macie. - Name *string - - // The regular expression (regex) that defines the pattern to match. The expression - // can contain as many as 512 characters. - Regex *string - // The severity to assign to findings that the custom data identifier produces, // based on the number of occurrences of text that matches the custom data // identifier's detection criteria. You can specify as many as three SeverityLevel diff --git a/service/macie2/validators.go b/service/macie2/validators.go index ba3f401c794..37366cd0d4d 100644 --- a/service/macie2/validators.go +++ b/service/macie2/validators.go @@ -927,6 +927,12 @@ func validateOpCreateCustomDataIdentifierInput(v *CreateCustomDataIdentifierInpu return nil } invalidParams := smithy.InvalidParamsError{Context: "CreateCustomDataIdentifierInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Regex == nil { + invalidParams.Add(smithy.NewErrParamRequired("Regex")) + } if v.SeverityLevels != nil { if err := validateSeverityLevelList(v.SeverityLevels); err != nil { invalidParams.AddNested("SeverityLevels", err.(smithy.InvalidParamsError)) diff --git a/service/mediaconvert/deserializers.go b/service/mediaconvert/deserializers.go index 889fcdb455d..f234bc3ccd8 100644 --- a/service/mediaconvert/deserializers.go +++ b/service/mediaconvert/deserializers.go @@ -6825,6 +6825,15 @@ func awsRestjson1_deserializeDocumentAv1Settings(v **types.Av1Settings, value in sv.AdaptiveQuantization = types.Av1AdaptiveQuantization(jtv) } + case "bitDepth": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Av1BitDepth to be of type string, got %T instead", value) + } + sv.BitDepth = types.Av1BitDepth(jtv) + } + case "framerateControl": if value != nil { jtv, ok := value.(string) @@ -8531,6 +8540,15 @@ func awsRestjson1_deserializeDocumentCmfcSettings(v **types.CmfcSettings, value sv.Scte35Source = types.CmfcScte35Source(jtv) } + case "timedMetadata": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CmfcTimedMetadata to be of type string, got %T instead", value) + } + sv.TimedMetadata = types.CmfcTimedMetadata(jtv) + } + default: _, _ = key, value @@ -13560,6 +13578,15 @@ func awsRestjson1_deserializeDocumentImscDestinationSettings(v **types.ImscDesti for key, value := range shape { switch key { + case "accessibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImscAccessibilitySubs to be of type string, got %T instead", value) + } + sv.Accessibility = types.ImscAccessibilitySubs(jtv) + } + case "stylePassthrough": if value != nil { jtv, ok := value.(string) @@ -13643,6 +13670,15 @@ func awsRestjson1_deserializeDocumentInput(v **types.Input, value interface{}) e sv.DenoiseFilter = types.InputDenoiseFilter(jtv) } + case "dolbyVisionMetadataXml": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMin14PatternS3XmlXMLHttpsXmlXML to be of type string, got %T instead", value) + } + sv.DolbyVisionMetadataXml = ptr.String(jtv) + } + case "fileInput": if value != nil { jtv, ok := value.(string) @@ -13933,6 +13969,15 @@ func awsRestjson1_deserializeDocumentInputTemplate(v **types.InputTemplate, valu sv.DenoiseFilter = types.InputDenoiseFilter(jtv) } + case "dolbyVisionMetadataXml": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMin14PatternS3XmlXMLHttpsXmlXML to be of type string, got %T instead", value) + } + sv.DolbyVisionMetadataXml = ptr.String(jtv) + } + case "filterEnable": if value != nil { jtv, ok := value.(string) @@ -16415,6 +16460,15 @@ func awsRestjson1_deserializeDocumentMpdSettings(v **types.MpdSettings, value in sv.Scte35Source = types.MpdScte35Source(jtv) } + case "timedMetadata": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MpdTimedMetadata to be of type string, got %T instead", value) + } + sv.TimedMetadata = types.MpdTimedMetadata(jtv) + } + default: _, _ = key, value @@ -19151,7 +19205,7 @@ func awsRestjson1_deserializeDocumentS3EncryptionSettings(v **types.S3Encryption if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912MrkAFAF0932 to be of type string, got %T instead", value) } sv.KmsKeyArn = ptr.String(jtv) } @@ -21085,6 +21139,15 @@ func awsRestjson1_deserializeDocumentWebvttDestinationSettings(v **types.WebvttD for key, value := range shape { switch key { + case "accessibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WebvttAccessibilitySubs to be of type string, got %T instead", value) + } + sv.Accessibility = types.WebvttAccessibilitySubs(jtv) + } + case "stylePassthrough": if value != nil { jtv, ok := value.(string) diff --git a/service/mediaconvert/serializers.go b/service/mediaconvert/serializers.go index 62cf505245d..031727a59b7 100644 --- a/service/mediaconvert/serializers.go +++ b/service/mediaconvert/serializers.go @@ -3033,6 +3033,11 @@ func awsRestjson1_serializeDocumentAv1Settings(v *types.Av1Settings, value smith ok.String(string(v.AdaptiveQuantization)) } + if len(v.BitDepth) > 0 { + ok := object.Key("bitDepth") + ok.String(string(v.BitDepth)) + } + if len(v.FramerateControl) > 0 { ok := object.Key("framerateControl") ok.String(string(v.FramerateControl)) @@ -3857,6 +3862,11 @@ func awsRestjson1_serializeDocumentCmfcSettings(v *types.CmfcSettings, value smi ok.String(string(v.Scte35Source)) } + if len(v.TimedMetadata) > 0 { + ok := object.Key("timedMetadata") + ok.String(string(v.TimedMetadata)) + } + return nil } @@ -6024,6 +6034,11 @@ func awsRestjson1_serializeDocumentImscDestinationSettings(v *types.ImscDestinat object := value.Object() defer object.Close() + if len(v.Accessibility) > 0 { + ok := object.Key("accessibility") + ok.String(string(v.Accessibility)) + } + if len(v.StylePassthrough) > 0 { ok := object.Key("stylePassthrough") ok.String(string(v.StylePassthrough)) @@ -6081,6 +6096,11 @@ func awsRestjson1_serializeDocumentInput(v *types.Input, value smithyjson.Value) ok.String(string(v.DenoiseFilter)) } + if v.DolbyVisionMetadataXml != nil { + ok := object.Key("dolbyVisionMetadataXml") + ok.String(*v.DolbyVisionMetadataXml) + } + if v.FileInput != nil { ok := object.Key("fileInput") ok.String(*v.FileInput) @@ -6245,6 +6265,11 @@ func awsRestjson1_serializeDocumentInputTemplate(v *types.InputTemplate, value s ok.String(string(v.DenoiseFilter)) } + if v.DolbyVisionMetadataXml != nil { + ok := object.Key("dolbyVisionMetadataXml") + ok.String(*v.DolbyVisionMetadataXml) + } + if len(v.FilterEnable) > 0 { ok := object.Key("filterEnable") ok.String(string(v.FilterEnable)) @@ -7227,6 +7252,11 @@ func awsRestjson1_serializeDocumentMpdSettings(v *types.MpdSettings, value smith ok.String(string(v.Scte35Source)) } + if len(v.TimedMetadata) > 0 { + ok := object.Key("timedMetadata") + ok.String(string(v.TimedMetadata)) + } + return nil } @@ -9012,6 +9042,11 @@ func awsRestjson1_serializeDocumentWebvttDestinationSettings(v *types.WebvttDest object := value.Object() defer object.Close() + if len(v.Accessibility) > 0 { + ok := object.Key("accessibility") + ok.String(string(v.Accessibility)) + } + if len(v.StylePassthrough) > 0 { ok := object.Key("stylePassthrough") ok.String(string(v.StylePassthrough)) diff --git a/service/mediaconvert/types/enums.go b/service/mediaconvert/types/enums.go index e9fc6c87492..db8afdf0c95 100644 --- a/service/mediaconvert/types/enums.go +++ b/service/mediaconvert/types/enums.go @@ -696,6 +696,24 @@ func (Av1AdaptiveQuantization) Values() []Av1AdaptiveQuantization { } } +type Av1BitDepth string + +// Enum values for Av1BitDepth +const ( + Av1BitDepthBit8 Av1BitDepth = "BIT_8" + Av1BitDepthBit10 Av1BitDepth = "BIT_10" +) + +// Values returns all known values for Av1BitDepth. 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 (Av1BitDepth) Values() []Av1BitDepth { + return []Av1BitDepth{ + "BIT_8", + "BIT_10", + } +} + type Av1FramerateControl string // Enum values for Av1FramerateControl @@ -1679,6 +1697,24 @@ func (CmfcScte35Source) Values() []CmfcScte35Source { } } +type CmfcTimedMetadata string + +// Enum values for CmfcTimedMetadata +const ( + CmfcTimedMetadataPassthrough CmfcTimedMetadata = "PASSTHROUGH" + CmfcTimedMetadataNone CmfcTimedMetadata = "NONE" +) + +// Values returns all known values for CmfcTimedMetadata. 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 (CmfcTimedMetadata) Values() []CmfcTimedMetadata { + return []CmfcTimedMetadata{ + "PASSTHROUGH", + "NONE", + } +} + type ColorMetadata string // Enum values for ColorMetadata @@ -3536,6 +3572,7 @@ const ( H265AdaptiveQuantizationHigh H265AdaptiveQuantization = "HIGH" H265AdaptiveQuantizationHigher H265AdaptiveQuantization = "HIGHER" H265AdaptiveQuantizationMax H265AdaptiveQuantization = "MAX" + H265AdaptiveQuantizationAuto H265AdaptiveQuantization = "AUTO" ) // Values returns all known values for H265AdaptiveQuantization. Note that this can @@ -3549,6 +3586,7 @@ func (H265AdaptiveQuantization) Values() []H265AdaptiveQuantization { "HIGH", "HIGHER", "MAX", + "AUTO", } } @@ -4511,6 +4549,24 @@ func (HlsTimedMetadataId3Frame) Values() []HlsTimedMetadataId3Frame { } } +type ImscAccessibilitySubs string + +// Enum values for ImscAccessibilitySubs +const ( + ImscAccessibilitySubsDisabled ImscAccessibilitySubs = "DISABLED" + ImscAccessibilitySubsEnabled ImscAccessibilitySubs = "ENABLED" +) + +// Values returns all known values for ImscAccessibilitySubs. 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 (ImscAccessibilitySubs) Values() []ImscAccessibilitySubs { + return []ImscAccessibilitySubs{ + "DISABLED", + "ENABLED", + } +} + type ImscStylePassthrough string // Enum values for ImscStylePassthrough @@ -4962,6 +5018,7 @@ const ( LanguageCodeOrj LanguageCode = "ORJ" LanguageCodeQpc LanguageCode = "QPC" LanguageCodeTng LanguageCode = "TNG" + LanguageCodeSrp LanguageCode = "SRP" ) // Values returns all known values for LanguageCode. Note that this can be expanded @@ -5160,6 +5217,7 @@ func (LanguageCode) Values() []LanguageCode { "ORJ", "QPC", "TNG", + "SRP", } } @@ -5801,6 +5859,24 @@ func (MpdScte35Source) Values() []MpdScte35Source { } } +type MpdTimedMetadata string + +// Enum values for MpdTimedMetadata +const ( + MpdTimedMetadataPassthrough MpdTimedMetadata = "PASSTHROUGH" + MpdTimedMetadataNone MpdTimedMetadata = "NONE" +) + +// Values returns all known values for MpdTimedMetadata. 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 (MpdTimedMetadata) Values() []MpdTimedMetadata { + return []MpdTimedMetadata{ + "PASSTHROUGH", + "NONE", + } +} + type Mpeg2AdaptiveQuantization string // Enum values for Mpeg2AdaptiveQuantization @@ -7526,6 +7602,24 @@ func (WavFormat) Values() []WavFormat { } } +type WebvttAccessibilitySubs string + +// Enum values for WebvttAccessibilitySubs +const ( + WebvttAccessibilitySubsDisabled WebvttAccessibilitySubs = "DISABLED" + WebvttAccessibilitySubsEnabled WebvttAccessibilitySubs = "ENABLED" +) + +// Values returns all known values for WebvttAccessibilitySubs. 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 (WebvttAccessibilitySubs) Values() []WebvttAccessibilitySubs { + return []WebvttAccessibilitySubs{ + "DISABLED", + "ENABLED", + } +} + type WebvttStylePassthrough string // Enum values for WebvttStylePassthrough diff --git a/service/mediaconvert/types/types.go b/service/mediaconvert/types/types.go index c57edeb0bfe..0ed74700dfc 100644 --- a/service/mediaconvert/types/types.go +++ b/service/mediaconvert/types/types.go @@ -558,6 +558,10 @@ type Av1Settings struct { // (spatialAdaptiveQuantization). AdaptiveQuantization Av1AdaptiveQuantization + // Specify the Bit depth (Av1BitDepth). You can choose 8-bit (BIT_8) or 10-bit + // (BIT_10). + BitDepth Av1BitDepth + // If you are using the console, use the Framerate setting to specify the frame // rate for this output. If you want to keep the same frame rate as the input // video, choose Follow source. If you want to do frame rate conversion, choose a @@ -1576,6 +1580,10 @@ type CmfcSettings struct { // SCTE-35 markers in this output. Scte35Source CmfcScte35Source + // Applies to CMAF outputs. Use this setting to specify whether the service inserts + // the ID3 timed metadata from the input in this output. + TimedMetadata CmfcTimedMetadata + noSmithyDocumentSerde } @@ -3190,11 +3198,16 @@ type H265QvbrSettings struct { // Settings for H265 codec type H265Settings struct { - // Specify the strength of any adaptive quantization filters that you enable. The - // value that you choose here applies to the following settings: Flicker adaptive - // quantization (flickerAdaptiveQuantization), Spatial adaptive quantization - // (spatialAdaptiveQuantization), and Temporal adaptive quantization - // (temporalAdaptiveQuantization). + // When you set Adaptive Quantization (H265AdaptiveQuantization) to Auto (AUTO), or + // leave blank, MediaConvert automatically applies quantization to improve the + // video quality of your output. Set Adaptive Quantization to Low (LOW), Medium + // (MEDIUM), High (HIGH), Higher (HIGHER), or Max (MAX) to manually control the + // strength of the quantization filter. When you do, you can specify a value for + // Spatial Adaptive Quantization (H265SpatialAdaptiveQuantization), Temporal + // Adaptive Quantization (H265TemporalAdaptiveQuantization), and Flicker Adaptive + // Quantization (H265FlickerAdaptiveQuantization), to further control the + // quantization filter. Set Adaptive Quantization to Off (OFF) to apply no + // quantization to your output. AdaptiveQuantization H265AdaptiveQuantization // Enables Alternate Transfer Function SEI message for outputs using Hybrid Log @@ -4018,6 +4031,13 @@ type ImageInserter struct { // any required children when you set destinationType to IMSC. type ImscDestinationSettings struct { + // Specify whether to flag this caption track as accessibility in your HLS/CMAF + // parent manifest. When you choose ENABLED, MediaConvert includes the parameters + // CHARACTERISTICS="public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound" + // and AUTOSELECT="YES" in the EXT-X-MEDIA entry for this track. When you keep the + // default choice, DISABLED, MediaConvert leaves this parameter out. + Accessibility ImscAccessibilitySubs + // Keep this setting enabled to have MediaConvert use the font style and position // information from the captions source in the output. This option is available // only when your input captions are IMSC, SMPTE-TT, or TTML. Disable this setting @@ -4070,6 +4090,17 @@ type Input struct { // disabled. Only applicable to MPEG2, H.264, H.265, and uncompressed video inputs. DenoiseFilter InputDenoiseFilter + // Use this setting only when your video source has Dolby Vision studio mastering + // metadata that is carried in a separate XML file. Specify the Amazon S3 location + // for the metadata XML file. MediaConvert uses this file to provide global and + // frame-level metadata for Dolby Vision preprocessing. When you specify a file + // here and your input also has interleaved global and frame level metadata, + // MediaConvert ignores the interleaved metadata and uses only the the metadata + // from this external XML file. Note that your IAM service role must grant + // MediaConvert read permissions to this file. For more information, see + // https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. + DolbyVisionMetadataXml *string + // Specify the source file for your transcoding job. You can use multiple inputs in // a single job. The service concatenates these inputs, in the order that you // specify them in the job, to create the outputs. If your input format is IMF, @@ -4263,6 +4294,17 @@ type InputTemplate struct { // disabled. Only applicable to MPEG2, H.264, H.265, and uncompressed video inputs. DenoiseFilter InputDenoiseFilter + // Use this setting only when your video source has Dolby Vision studio mastering + // metadata that is carried in a separate XML file. Specify the Amazon S3 location + // for the metadata XML file. MediaConvert uses this file to provide global and + // frame-level metadata for Dolby Vision preprocessing. When you specify a file + // here and your input also has interleaved global and frame level metadata, + // MediaConvert ignores the interleaved metadata and uses only the the metadata + // from this external XML file. Note that your IAM service role must grant + // MediaConvert read permissions to this file. For more information, see + // https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. + DolbyVisionMetadataXml *string + // Specify how the transcoding service applies the denoise and deblock filters. You // must also enable the filters separately, with Denoise (InputDenoiseFilter) and // Deblock (InputDeblockFilter). * Auto - The transcoding service determines @@ -5160,8 +5202,8 @@ type M3u8Settings struct { // (sccXml). Scte35Source M3u8Scte35Source - // Applies only to HLS outputs. Use this setting to specify whether the service - // inserts the ID3 timed metadata from the input in this output. + // Applies to HLS outputs. Use this setting to specify whether the service inserts + // the ID3 timed metadata from the input in this output. TimedMetadata TimedMetadata // Packet Identifier (PID) of the timed metadata stream in the transport stream. @@ -5436,6 +5478,10 @@ type MpdSettings struct { // SCTE-35 markers in this output. Scte35Source MpdScte35Source + // Applies to DASH outputs. Use this setting to specify whether the service inserts + // the ID3 timed metadata from the input in this output. + TimedMetadata MpdTimedMetadata + noSmithyDocumentSerde } @@ -7686,6 +7732,13 @@ type WavSettings struct { // any required children when you set destinationType to WebVTT. type WebvttDestinationSettings struct { + // Specify whether to flag this caption track as accessibility in your HLS/CMAF + // parent manifest. When you choose ENABLED, MediaConvert includes the parameters + // CHARACTERISTICS="public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound" + // and AUTOSELECT="YES" in the EXT-X-MEDIA entry for this track. When you keep the + // default choice, DISABLED, MediaConvert leaves this parameter out. + Accessibility WebvttAccessibilitySubs + // Set Style passthrough (StylePassthrough) to ENABLED to use the available style, // color, and position information from your input captions. MediaConvert uses // default settings for any missing style and position information in your input diff --git a/service/mediatailor/api_op_CreateSourceLocation.go b/service/mediatailor/api_op_CreateSourceLocation.go index bdf6fd36b92..c72c3722d47 100644 --- a/service/mediatailor/api_op_CreateSourceLocation.go +++ b/service/mediatailor/api_op_CreateSourceLocation.go @@ -47,6 +47,8 @@ type CreateSourceLocationInput struct { // The optional configuration for the server that serves segments. DefaultSegmentDeliveryConfiguration *types.DefaultSegmentDeliveryConfiguration + SegmentDeliveryConfigurations []types.SegmentDeliveryConfiguration + // The tags to assign to the source location. Tags map[string]string @@ -73,6 +75,8 @@ type CreateSourceLocationOutput struct { // The timestamp that indicates when the source location was last modified. LastModifiedTime *time.Time + SegmentDeliveryConfigurations []types.SegmentDeliveryConfiguration + // The name of the source location. SourceLocationName *string diff --git a/service/mediatailor/api_op_DescribeSourceLocation.go b/service/mediatailor/api_op_DescribeSourceLocation.go index 36dad2b0028..1d2f4f448cf 100644 --- a/service/mediatailor/api_op_DescribeSourceLocation.go +++ b/service/mediatailor/api_op_DescribeSourceLocation.go @@ -58,6 +58,8 @@ type DescribeSourceLocationOutput struct { // The timestamp that indicates when the source location was last modified. LastModifiedTime *time.Time + SegmentDeliveryConfigurations []types.SegmentDeliveryConfiguration + // The name of the source location. SourceLocationName *string diff --git a/service/mediatailor/api_op_UpdateSourceLocation.go b/service/mediatailor/api_op_UpdateSourceLocation.go index 68eb9b5e33d..f6deb2db886 100644 --- a/service/mediatailor/api_op_UpdateSourceLocation.go +++ b/service/mediatailor/api_op_UpdateSourceLocation.go @@ -47,6 +47,8 @@ type UpdateSourceLocationInput struct { // The optional configuration for the host server that serves segments. DefaultSegmentDeliveryConfiguration *types.DefaultSegmentDeliveryConfiguration + SegmentDeliveryConfigurations []types.SegmentDeliveryConfiguration + noSmithyDocumentSerde } @@ -70,6 +72,8 @@ type UpdateSourceLocationOutput struct { // The timestamp that indicates when the source location was last modified. LastModifiedTime *time.Time + SegmentDeliveryConfigurations []types.SegmentDeliveryConfiguration + // The name of the source location. SourceLocationName *string diff --git a/service/mediatailor/deserializers.go b/service/mediatailor/deserializers.go index 5463f5c7fd2..4919a5caa92 100644 --- a/service/mediatailor/deserializers.go +++ b/service/mediatailor/deserializers.go @@ -995,6 +995,11 @@ func awsRestjson1_deserializeOpDocumentCreateSourceLocationOutput(v **CreateSour } } + case "SegmentDeliveryConfigurations": + if err := awsRestjson1_deserializeDocument__listOfSegmentDeliveryConfiguration(&sv.SegmentDeliveryConfigurations, value); err != nil { + return err + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) @@ -2415,6 +2420,11 @@ func awsRestjson1_deserializeOpDocumentDescribeSourceLocationOutput(v **Describe } } + case "SegmentDeliveryConfigurations": + if err := awsRestjson1_deserializeDocument__listOfSegmentDeliveryConfiguration(&sv.SegmentDeliveryConfigurations, value); err != nil { + return err + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) @@ -5571,6 +5581,11 @@ func awsRestjson1_deserializeOpDocumentUpdateSourceLocationOutput(v **UpdateSour } } + case "SegmentDeliveryConfigurations": + if err := awsRestjson1_deserializeDocument__listOfSegmentDeliveryConfiguration(&sv.SegmentDeliveryConfigurations, value); err != nil { + return err + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) @@ -6146,6 +6161,40 @@ func awsRestjson1_deserializeDocument__listOfScheduleEntry(v *[]types.ScheduleEn return nil } +func awsRestjson1_deserializeDocument__listOfSegmentDeliveryConfiguration(v *[]types.SegmentDeliveryConfiguration, 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.SegmentDeliveryConfiguration + if *v == nil { + cv = []types.SegmentDeliveryConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SegmentDeliveryConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentSegmentDeliveryConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocument__listOfSourceLocation(v *[]types.SourceLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8127,6 +8176,55 @@ func awsRestjson1_deserializeDocumentSecretsManagerAccessTokenConfiguration(v ** return nil } +func awsRestjson1_deserializeDocumentSegmentDeliveryConfiguration(v **types.SegmentDeliveryConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SegmentDeliveryConfiguration + if *v == nil { + sv = &types.SegmentDeliveryConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BaseUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.BaseUrl = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSlateSource(v **types.SlateSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8254,6 +8352,11 @@ func awsRestjson1_deserializeDocumentSourceLocation(v **types.SourceLocation, va } } + case "SegmentDeliveryConfigurations": + if err := awsRestjson1_deserializeDocument__listOfSegmentDeliveryConfiguration(&sv.SegmentDeliveryConfigurations, value); err != nil { + return err + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) diff --git a/service/mediatailor/serializers.go b/service/mediatailor/serializers.go index 858746ca6eb..b0be79da5e8 100644 --- a/service/mediatailor/serializers.go +++ b/service/mediatailor/serializers.go @@ -497,6 +497,13 @@ func awsRestjson1_serializeOpDocumentCreateSourceLocationInput(v *CreateSourceLo } } + if v.SegmentDeliveryConfigurations != nil { + ok := object.Key("SegmentDeliveryConfigurations") + if err := awsRestjson1_serializeDocument__listOfSegmentDeliveryConfiguration(v.SegmentDeliveryConfigurations, ok); err != nil { + return err + } + } + if v.Tags != nil { ok := object.Key("tags") if err := awsRestjson1_serializeDocument__mapOf__string(v.Tags, ok); err != nil { @@ -2666,6 +2673,13 @@ func awsRestjson1_serializeOpDocumentUpdateSourceLocationInput(v *UpdateSourceLo } } + if v.SegmentDeliveryConfigurations != nil { + ok := object.Key("SegmentDeliveryConfigurations") + if err := awsRestjson1_serializeDocument__listOfSegmentDeliveryConfiguration(v.SegmentDeliveryConfigurations, ok); err != nil { + return err + } + } + return nil } @@ -2787,6 +2801,19 @@ func awsRestjson1_serializeDocument__listOfAvailMatchingCriteria(v []types.Avail return nil } +func awsRestjson1_serializeDocument__listOfSegmentDeliveryConfiguration(v []types.SegmentDeliveryConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentSegmentDeliveryConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocument__mapOf__string(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3218,6 +3245,23 @@ func awsRestjson1_serializeDocumentSecretsManagerAccessTokenConfiguration(v *typ return nil } +func awsRestjson1_serializeDocumentSegmentDeliveryConfiguration(v *types.SegmentDeliveryConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BaseUrl != nil { + ok := object.Key("BaseUrl") + ok.String(*v.BaseUrl) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + return nil +} + func awsRestjson1_serializeDocumentSlateSource(v *types.SlateSource, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/mediatailor/types/types.go b/service/mediatailor/types/types.go index 6429503d7c1..6fc398dc9f0 100644 --- a/service/mediatailor/types/types.go +++ b/service/mediatailor/types/types.go @@ -772,6 +772,14 @@ type SecretsManagerAccessTokenConfiguration struct { noSmithyDocumentSerde } +type SegmentDeliveryConfiguration struct { + BaseUrl *string + + Name *string + + noSmithyDocumentSerde +} + // Slate VOD source configuration. type SlateSource struct { @@ -815,6 +823,8 @@ type SourceLocation struct { // The timestamp that indicates when the source location was last modified. LastModifiedTime *time.Time + SegmentDeliveryConfigurations []SegmentDeliveryConfiguration + // The tags assigned to the source location. Tags map[string]string diff --git a/service/ram/api_op_AssociateResourceSharePermission.go b/service/ram/api_op_AssociateResourceSharePermission.go index 2b94f916722..79fe5573ea6 100644 --- a/service/ram/api_op_AssociateResourceSharePermission.go +++ b/service/ram/api_op_AssociateResourceSharePermission.go @@ -60,7 +60,8 @@ type AssociateResourceSharePermissionInput struct { // Specifies the version of the RAM permission to associate with the resource // share. If you don't specify this parameter, the operation uses the version - // designated as the default. + // designated as the default. You can use the ListPermissionVersions operation to + // discover the available versions of a permission. PermissionVersion *int32 // Specifies whether the specified permission should replace or add to the existing diff --git a/service/ram/api_op_ListPermissionVersions.go b/service/ram/api_op_ListPermissionVersions.go new file mode 100644 index 00000000000..25cdf705b77 --- /dev/null +++ b/service/ram/api_op_ListPermissionVersions.go @@ -0,0 +1,249 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ram + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/ram/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the available versions of the specified RAM permission. +func (c *Client) ListPermissionVersions(ctx context.Context, params *ListPermissionVersionsInput, optFns ...func(*Options)) (*ListPermissionVersionsOutput, error) { + if params == nil { + params = &ListPermissionVersionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPermissionVersions", params, optFns, c.addOperationListPermissionVersionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPermissionVersionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPermissionVersionsInput struct { + + // Specifies the Amazon Resoure Name (ARN) + // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of + // the RAM permission whose versions you want to list. You can use the + // permissionVersion parameter on the AssociateResourceSharePermission operation to + // specify a non-default version to attach. + // + // This member is required. + PermissionArn *string + + // Specifies the total number of results that you want included on each page of the + // response. If you do not include this parameter, it defaults to a value that is + // specific to the operation. If additional items exist beyond the number you + // specify, the NextToken response element is returned with a value (not null). + // Include the specified value as the NextToken request parameter in the next call + // to the operation to get the next part of the results. Note that the service + // might return fewer results than the maximum even when there are more results + // available. You should check NextToken after every operation to ensure that you + // receive all of the results. + MaxResults *int32 + + // Specifies that you want to receive the next page of results. Valid only if you + // received a NextToken response in the previous request. If you did, it indicates + // that more output is available. Set this parameter to the value provided by the + // previous call's NextToken response to request the next page of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListPermissionVersionsOutput struct { + + // If present, this value indicates that more output is available than is included + // in the current response. Use this value in the NextToken request parameter in a + // subsequent call to the operation to get the next part of the output. You should + // repeat this until the NextToken response element comes back as null. This + // indicates that this is the last page of results. + NextToken *string + + // An array of objects that contain details for each of the available versions. + Permissions []types.ResourceSharePermissionSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPermissionVersionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListPermissionVersions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListPermissionVersions{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListPermissionVersionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListPermissionVersions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListPermissionVersionsAPIClient is a client that implements the +// ListPermissionVersions operation. +type ListPermissionVersionsAPIClient interface { + ListPermissionVersions(context.Context, *ListPermissionVersionsInput, ...func(*Options)) (*ListPermissionVersionsOutput, error) +} + +var _ ListPermissionVersionsAPIClient = (*Client)(nil) + +// ListPermissionVersionsPaginatorOptions is the paginator options for +// ListPermissionVersions +type ListPermissionVersionsPaginatorOptions struct { + // Specifies the total number of results that you want included on each page of the + // response. If you do not include this parameter, it defaults to a value that is + // specific to the operation. If additional items exist beyond the number you + // specify, the NextToken response element is returned with a value (not null). + // Include the specified value as the NextToken request parameter in the next call + // to the operation to get the next part of the results. Note that the service + // might return fewer results than the maximum even when there are more results + // available. You should check NextToken after every operation to ensure that you + // receive all of the 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 +} + +// ListPermissionVersionsPaginator is a paginator for ListPermissionVersions +type ListPermissionVersionsPaginator struct { + options ListPermissionVersionsPaginatorOptions + client ListPermissionVersionsAPIClient + params *ListPermissionVersionsInput + nextToken *string + firstPage bool +} + +// NewListPermissionVersionsPaginator returns a new ListPermissionVersionsPaginator +func NewListPermissionVersionsPaginator(client ListPermissionVersionsAPIClient, params *ListPermissionVersionsInput, optFns ...func(*ListPermissionVersionsPaginatorOptions)) *ListPermissionVersionsPaginator { + if params == nil { + params = &ListPermissionVersionsInput{} + } + + options := ListPermissionVersionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPermissionVersionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPermissionVersionsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPermissionVersions page. +func (p *ListPermissionVersionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPermissionVersionsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListPermissionVersions(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListPermissionVersions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "ram", + OperationName: "ListPermissionVersions", + } +} diff --git a/service/ram/deserializers.go b/service/ram/deserializers.go index 90703f12bf7..0350b4c747b 100644 --- a/service/ram/deserializers.go +++ b/service/ram/deserializers.go @@ -2660,6 +2660,180 @@ func awsRestjson1_deserializeOpDocumentListPermissionsOutput(v **ListPermissions return nil } +type awsRestjson1_deserializeOpListPermissionVersions struct { +} + +func (*awsRestjson1_deserializeOpListPermissionVersions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListPermissionVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListPermissionVersions(response, &metadata) + } + output := &ListPermissionVersionsOutput{} + 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_deserializeOpDocumentListPermissionVersionsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListPermissionVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("MalformedArnException", errorCode): + return awsRestjson1_deserializeErrorMalformedArnException(response, errorBody) + + case strings.EqualFold("OperationNotPermittedException", errorCode): + return awsRestjson1_deserializeErrorOperationNotPermittedException(response, errorBody) + + case strings.EqualFold("ServerInternalException", errorCode): + return awsRestjson1_deserializeErrorServerInternalException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("UnknownResourceException", errorCode): + return awsRestjson1_deserializeErrorUnknownResourceException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListPermissionVersionsOutput(v **ListPermissionVersionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListPermissionVersionsOutput + if *v == nil { + sv = &ListPermissionVersionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "permissions": + if err := awsRestjson1_deserializeDocumentResourceSharePermissionList(&sv.Permissions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpListPrincipals struct { } diff --git a/service/ram/generated.json b/service/ram/generated.json index d8efeefe1b7..1e2f0ddef56 100644 --- a/service/ram/generated.json +++ b/service/ram/generated.json @@ -21,6 +21,7 @@ "api_op_GetResourceShareInvitations.go", "api_op_GetResourceShares.go", "api_op_ListPendingInvitationResources.go", + "api_op_ListPermissionVersions.go", "api_op_ListPermissions.go", "api_op_ListPrincipals.go", "api_op_ListResourceSharePermissions.go", diff --git a/service/ram/serializers.go b/service/ram/serializers.go index 679e273e602..7bdeb572d42 100644 --- a/service/ram/serializers.go +++ b/service/ram/serializers.go @@ -1248,6 +1248,84 @@ func awsRestjson1_serializeOpDocumentListPermissionsInput(v *ListPermissionsInpu return nil } +type awsRestjson1_serializeOpListPermissionVersions struct { +} + +func (*awsRestjson1_serializeOpListPermissionVersions) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListPermissionVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListPermissionVersionsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/listpermissionversions") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, 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_serializeOpDocumentListPermissionVersionsInput(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 + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListPermissionVersionsInput(v *ListPermissionVersionsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentListPermissionVersionsInput(v *ListPermissionVersionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + if v.PermissionArn != nil { + ok := object.Key("permissionArn") + ok.String(*v.PermissionArn) + } + + return nil +} + type awsRestjson1_serializeOpListPrincipals struct { } diff --git a/service/ram/validators.go b/service/ram/validators.go index e7d8c6e4e8e..66ec8c68087 100644 --- a/service/ram/validators.go +++ b/service/ram/validators.go @@ -249,6 +249,26 @@ func (m *validateOpListPendingInvitationResources) HandleInitialize(ctx context. return next.HandleInitialize(ctx, in) } +type validateOpListPermissionVersions struct { +} + +func (*validateOpListPermissionVersions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListPermissionVersions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListPermissionVersionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListPermissionVersionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListPrincipals struct { } @@ -457,6 +477,10 @@ func addOpListPendingInvitationResourcesValidationMiddleware(stack *middleware.S return stack.Initialize.Add(&validateOpListPendingInvitationResources{}, middleware.After) } +func addOpListPermissionVersionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListPermissionVersions{}, middleware.After) +} + func addOpListPrincipalsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListPrincipals{}, middleware.After) } @@ -675,6 +699,21 @@ func validateOpListPendingInvitationResourcesInput(v *ListPendingInvitationResou } } +func validateOpListPermissionVersionsInput(v *ListPermissionVersionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListPermissionVersionsInput"} + if v.PermissionArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("PermissionArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListPrincipalsInput(v *ListPrincipalsInput) error { if v == nil { return nil diff --git a/service/route53recoveryreadiness/api_op_CreateCell.go b/service/route53recoveryreadiness/api_op_CreateCell.go index ffb1c8aad52..83ef03c58f8 100644 --- a/service/route53recoveryreadiness/api_op_CreateCell.go +++ b/service/route53recoveryreadiness/api_op_CreateCell.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Cell. +// Creates a cell in an account. func (c *Client) CreateCell(ctx context.Context, params *CreateCellInput, optFns ...func(*Options)) (*CreateCellOutput, error) { if params == nil { params = &CreateCellInput{} @@ -26,19 +26,19 @@ func (c *Client) CreateCell(ctx context.Context, params *CreateCellInput, optFns return out, nil } -// The Cell to create type CreateCellInput struct { - // The name of the Cell to create + // The name of the cell to create. // // This member is required. CellName *string - // A list of Cell arns contained within this Cell (for use in nested Cells, e.g. - // regions within which AZs) + // A list of cell Amazon Resource Names (ARNs) contained within this cell, for use + // in nested cells. For example, Availability Zones within specific Amazon Web + // Services Regions. Cells []string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string noSmithyDocumentSerde @@ -46,19 +46,20 @@ type CreateCellInput struct { type CreateCellOutput struct { - // The arn for the Cell + // The Amazon Resource Name (ARN) for the cell. CellArn *string - // The name of the Cell + // The name of the cell. CellName *string - // A list of Cell arns + // A list of cell ARNs. Cells []string - // A list of Cell ARNs and/or RecoveryGroup ARNs + // The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) + // or a recovery group ARN. This is a list but currently can have only one element. ParentReadinessScopes []string - // A collection of tags associated with a resource + // Tags on the resources. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_CreateCrossAccountAuthorization.go b/service/route53recoveryreadiness/api_op_CreateCrossAccountAuthorization.go index 9dd8d4c2a03..ad378aad99f 100644 --- a/service/route53recoveryreadiness/api_op_CreateCrossAccountAuthorization.go +++ b/service/route53recoveryreadiness/api_op_CreateCrossAccountAuthorization.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create a new cross account readiness authorization. +// Creates a cross-account readiness authorization. This lets you authorize another +// account to work with Route 53 Application Recovery Controller, for example, to +// check the readiness status of resources in a separate account. func (c *Client) CreateCrossAccountAuthorization(ctx context.Context, params *CreateCrossAccountAuthorizationInput, optFns ...func(*Options)) (*CreateCrossAccountAuthorizationOutput, error) { if params == nil { params = &CreateCrossAccountAuthorizationInput{} @@ -26,10 +28,9 @@ func (c *Client) CreateCrossAccountAuthorization(ctx context.Context, params *Cr return out, nil } -// The cross account authorization type CreateCrossAccountAuthorizationInput struct { - // The cross account authorization + // The cross-account authorization. // // This member is required. CrossAccountAuthorization *string @@ -39,7 +40,7 @@ type CreateCrossAccountAuthorizationInput struct { type CreateCrossAccountAuthorizationOutput struct { - // The cross account authorization + // The cross-account authorization. CrossAccountAuthorization *string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_CreateReadinessCheck.go b/service/route53recoveryreadiness/api_op_CreateReadinessCheck.go index 9e9c7b45531..d1279931752 100644 --- a/service/route53recoveryreadiness/api_op_CreateReadinessCheck.go +++ b/service/route53recoveryreadiness/api_op_CreateReadinessCheck.go @@ -10,7 +10,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Readiness Check. +// Creates a readiness check in an account. A readiness check monitors a resource +// set in your application, such as a set of Amazon Aurora instances, that +// Application Recovery Controller is auditing recovery readiness for. The audits +// run once every minute on every resource that's associated with a readiness +// check. func (c *Client) CreateReadinessCheck(ctx context.Context, params *CreateReadinessCheckInput, optFns ...func(*Options)) (*CreateReadinessCheckOutput, error) { if params == nil { params = &CreateReadinessCheckInput{} @@ -26,20 +30,19 @@ func (c *Client) CreateReadinessCheck(ctx context.Context, params *CreateReadine return out, nil } -// The ReadinessCheck to create type CreateReadinessCheckInput struct { - // The name of the ReadinessCheck to create + // The name of the readiness check to create. // // This member is required. ReadinessCheckName *string - // The name of the ResourceSet to check + // The name of the resource set to check. // // This member is required. ResourceSetName *string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string noSmithyDocumentSerde @@ -47,16 +50,16 @@ type CreateReadinessCheckInput struct { type CreateReadinessCheckOutput struct { - // Arn associated with ReadinessCheck + // The Amazon Resource Name (ARN) associated with a readiness check. ReadinessCheckArn *string - // Name for a ReadinessCheck + // Name of a readiness check. ReadinessCheckName *string - // Name of the ResourceSet to be checked + // Name of the resource set to be checked. ResourceSet *string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_CreateRecoveryGroup.go b/service/route53recoveryreadiness/api_op_CreateRecoveryGroup.go index 931c5e743fc..3c506b35e5d 100644 --- a/service/route53recoveryreadiness/api_op_CreateRecoveryGroup.go +++ b/service/route53recoveryreadiness/api_op_CreateRecoveryGroup.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Recovery Group. +// Creates a recovery group in an account. A recovery group corresponds to an +// application and includes a list of the cells that make up the application. func (c *Client) CreateRecoveryGroup(ctx context.Context, params *CreateRecoveryGroupInput, optFns ...func(*Options)) (*CreateRecoveryGroupOutput, error) { if params == nil { params = &CreateRecoveryGroupInput{} @@ -26,18 +27,17 @@ func (c *Client) CreateRecoveryGroup(ctx context.Context, params *CreateRecovery return out, nil } -// The RecoveryGroup to create type CreateRecoveryGroupInput struct { - // The name of the RecoveryGroup to create + // The name of the recovery group to create. // // This member is required. RecoveryGroupName *string - // A list of Cell arns + // A list of the cell Amazon Resource Names (ARNs) in the recovery group. Cells []string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string noSmithyDocumentSerde @@ -45,16 +45,16 @@ type CreateRecoveryGroupInput struct { type CreateRecoveryGroupOutput struct { - // A list of Cell arns + // A list of a cell's Amazon Resource Names (ARNs). Cells []string - // The arn for the RecoveryGroup + // The Amazon Resource Name (ARN) for the recovery group. RecoveryGroupArn *string - // The name of the RecoveryGroup + // The name of the recovery group. RecoveryGroupName *string - // A collection of tags associated with a resource + // The tags associated with the recovery group. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_CreateResourceSet.go b/service/route53recoveryreadiness/api_op_CreateResourceSet.go index 98325711cd7..1b6d48f482d 100644 --- a/service/route53recoveryreadiness/api_op_CreateResourceSet.go +++ b/service/route53recoveryreadiness/api_op_CreateResourceSet.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Resource Set. +// Creates a resource set. A resource set is a set of resources of one type that +// span multiple cells. You can associate a resource set with a readiness check to +// monitor the resources for failover readiness. func (c *Client) CreateResourceSet(ctx context.Context, params *CreateResourceSetInput, optFns ...func(*Options)) (*CreateResourceSetOutput, error) { if params == nil { params = &CreateResourceSetInput{} @@ -27,25 +29,33 @@ func (c *Client) CreateResourceSet(ctx context.Context, params *CreateResourceSe return out, nil } -// The ResourceSet to create type CreateResourceSetInput struct { - // The name of the ResourceSet to create + // The name of the resource set to create. // // This member is required. ResourceSetName *string - // AWS Resource type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource // // This member is required. ResourceSetType *string - // A list of Resource objects + // A list of resource objects in the resource set. // // This member is required. Resources []types.Resource - // A collection of tags associated with a resource + // A tag to associate with the parameters for a resource set. Tags map[string]string noSmithyDocumentSerde @@ -53,19 +63,28 @@ type CreateResourceSetInput struct { type CreateResourceSetOutput struct { - // The arn for the ResourceSet + // The Amazon Resource Name (ARN) for the resource set. ResourceSetArn *string - // The name of the ResourceSet + // The name of the resource set. ResourceSetName *string - // AWS Resource Type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource ResourceSetType *string - // A list of Resource objects + // A list of resource objects. Resources []types.Resource - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_DeleteCell.go b/service/route53recoveryreadiness/api_op_DeleteCell.go index 0cae73bfb7e..57afae289a5 100644 --- a/service/route53recoveryreadiness/api_op_DeleteCell.go +++ b/service/route53recoveryreadiness/api_op_DeleteCell.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an existing Cell. +// Delete a cell. When successful, the response code is 204, with no response body. func (c *Client) DeleteCell(ctx context.Context, params *DeleteCellInput, optFns ...func(*Options)) (*DeleteCellOutput, error) { if params == nil { params = &DeleteCellInput{} @@ -28,7 +28,7 @@ func (c *Client) DeleteCell(ctx context.Context, params *DeleteCellInput, optFns type DeleteCellInput struct { - // The Cell to delete + // The name of the cell. // // This member is required. CellName *string diff --git a/service/route53recoveryreadiness/api_op_DeleteCrossAccountAuthorization.go b/service/route53recoveryreadiness/api_op_DeleteCrossAccountAuthorization.go index ae645c13f90..59ce4255bac 100644 --- a/service/route53recoveryreadiness/api_op_DeleteCrossAccountAuthorization.go +++ b/service/route53recoveryreadiness/api_op_DeleteCrossAccountAuthorization.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Delete cross account readiness authorization +// Deletes cross account readiness authorization. func (c *Client) DeleteCrossAccountAuthorization(ctx context.Context, params *DeleteCrossAccountAuthorizationInput, optFns ...func(*Options)) (*DeleteCrossAccountAuthorizationOutput, error) { if params == nil { params = &DeleteCrossAccountAuthorizationInput{} @@ -28,7 +28,7 @@ func (c *Client) DeleteCrossAccountAuthorization(ctx context.Context, params *De type DeleteCrossAccountAuthorizationInput struct { - // The cross account authorization + // The cross-account authorization. // // This member is required. CrossAccountAuthorization *string diff --git a/service/route53recoveryreadiness/api_op_DeleteReadinessCheck.go b/service/route53recoveryreadiness/api_op_DeleteReadinessCheck.go index 1b195b61b23..269fdf6b253 100644 --- a/service/route53recoveryreadiness/api_op_DeleteReadinessCheck.go +++ b/service/route53recoveryreadiness/api_op_DeleteReadinessCheck.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an existing Readiness Check. +// Deletes a readiness check. func (c *Client) DeleteReadinessCheck(ctx context.Context, params *DeleteReadinessCheckInput, optFns ...func(*Options)) (*DeleteReadinessCheckOutput, error) { if params == nil { params = &DeleteReadinessCheckInput{} @@ -28,7 +28,7 @@ func (c *Client) DeleteReadinessCheck(ctx context.Context, params *DeleteReadine type DeleteReadinessCheckInput struct { - // The ReadinessCheck to delete + // Name of a readiness check. // // This member is required. ReadinessCheckName *string diff --git a/service/route53recoveryreadiness/api_op_DeleteRecoveryGroup.go b/service/route53recoveryreadiness/api_op_DeleteRecoveryGroup.go index 6e3b282a45d..497cef42fbe 100644 --- a/service/route53recoveryreadiness/api_op_DeleteRecoveryGroup.go +++ b/service/route53recoveryreadiness/api_op_DeleteRecoveryGroup.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an existing Recovery Group. +// Deletes a recovery group. func (c *Client) DeleteRecoveryGroup(ctx context.Context, params *DeleteRecoveryGroupInput, optFns ...func(*Options)) (*DeleteRecoveryGroupOutput, error) { if params == nil { params = &DeleteRecoveryGroupInput{} @@ -28,7 +28,7 @@ func (c *Client) DeleteRecoveryGroup(ctx context.Context, params *DeleteRecovery type DeleteRecoveryGroupInput struct { - // The RecoveryGroup to delete + // The name of a recovery group. // // This member is required. RecoveryGroupName *string diff --git a/service/route53recoveryreadiness/api_op_DeleteResourceSet.go b/service/route53recoveryreadiness/api_op_DeleteResourceSet.go index 20b94f5b0a9..09d1a99c741 100644 --- a/service/route53recoveryreadiness/api_op_DeleteResourceSet.go +++ b/service/route53recoveryreadiness/api_op_DeleteResourceSet.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an existing Resource Set. +// Deletes a resource set. func (c *Client) DeleteResourceSet(ctx context.Context, params *DeleteResourceSetInput, optFns ...func(*Options)) (*DeleteResourceSetOutput, error) { if params == nil { params = &DeleteResourceSetInput{} @@ -28,7 +28,7 @@ func (c *Client) DeleteResourceSet(ctx context.Context, params *DeleteResourceSe type DeleteResourceSetInput struct { - // The ResourceSet to delete + // Name of a resource set. // // This member is required. ResourceSetName *string diff --git a/service/route53recoveryreadiness/api_op_GetArchitectureRecommendations.go b/service/route53recoveryreadiness/api_op_GetArchitectureRecommendations.go index 2418e260fe8..587bf86181f 100644 --- a/service/route53recoveryreadiness/api_op_GetArchitectureRecommendations.go +++ b/service/route53recoveryreadiness/api_op_GetArchitectureRecommendations.go @@ -12,8 +12,8 @@ import ( "time" ) -// Returns a collection of recommendations to improve resilliance and readiness -// check quality for a Recovery Group. +// Gets recommendations about architecture designs for improving resiliency for an +// application, based on a recovery group. func (c *Client) GetArchitectureRecommendations(ctx context.Context, params *GetArchitectureRecommendationsInput, optFns ...func(*Options)) (*GetArchitectureRecommendationsOutput, error) { if params == nil { params = &GetArchitectureRecommendationsInput{} @@ -31,15 +31,15 @@ func (c *Client) GetArchitectureRecommendations(ctx context.Context, params *Get type GetArchitectureRecommendationsInput struct { - // Name of RecoveryGroup (top level resource) to be analyzed. + // The name of a recovery group. // // This member is required. RecoveryGroupName *string - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -47,14 +47,14 @@ type GetArchitectureRecommendationsInput struct { type GetArchitectureRecommendationsOutput struct { - // The time a Recovery Group was last assessed for recommendations in UTC ISO-8601 - // format. + // The time that a recovery group was last assessed for recommendations, in UTC + // ISO-8601 format. LastAuditTimestamp *time.Time - // A token that can be used to resume pagination from the end of the collection + // The token that identifies which batch of results you want to see. NextToken *string - // A list of recommendations for the customer's application + // A list of the recommendations for the customer's application. Recommendations []types.Recommendation // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_GetCell.go b/service/route53recoveryreadiness/api_op_GetCell.go index ae9a2a418ee..613ad72546c 100644 --- a/service/route53recoveryreadiness/api_op_GetCell.go +++ b/service/route53recoveryreadiness/api_op_GetCell.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a Cell. +// Gets information about a cell including cell name, cell Amazon Resource Name +// (ARN), ARNs of nested cells for this cell, and a list of those cell ARNs with +// their associated recovery group ARNs. func (c *Client) GetCell(ctx context.Context, params *GetCellInput, optFns ...func(*Options)) (*GetCellOutput, error) { if params == nil { params = &GetCellInput{} @@ -28,7 +30,7 @@ func (c *Client) GetCell(ctx context.Context, params *GetCellInput, optFns ...fu type GetCellInput struct { - // The Cell to get + // The name of the cell. // // This member is required. CellName *string @@ -38,19 +40,20 @@ type GetCellInput struct { type GetCellOutput struct { - // The arn for the Cell + // The Amazon Resource Name (ARN) for the cell. CellArn *string - // The name of the Cell + // The name of the cell. CellName *string - // A list of Cell arns + // A list of cell ARNs. Cells []string - // A list of Cell ARNs and/or RecoveryGroup ARNs + // The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) + // or a recovery group ARN. This is a list but currently can have only one element. ParentReadinessScopes []string - // A collection of tags associated with a resource + // Tags on the resources. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_GetCellReadinessSummary.go b/service/route53recoveryreadiness/api_op_GetCellReadinessSummary.go index edf0fbd9679..c2ce49c7433 100644 --- a/service/route53recoveryreadiness/api_op_GetCellReadinessSummary.go +++ b/service/route53recoveryreadiness/api_op_GetCellReadinessSummary.go @@ -12,7 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about readiness of a Cell. +// Gets readiness for a cell. Aggregates the readiness of all the resources that +// are associated with the cell into a single value. func (c *Client) GetCellReadinessSummary(ctx context.Context, params *GetCellReadinessSummaryInput, optFns ...func(*Options)) (*GetCellReadinessSummaryOutput, error) { if params == nil { params = &GetCellReadinessSummaryInput{} @@ -30,15 +31,15 @@ func (c *Client) GetCellReadinessSummary(ctx context.Context, params *GetCellRea type GetCellReadinessSummaryInput struct { - // The name of the Cell + // The name of the cell. // // This member is required. CellName *string - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -46,13 +47,13 @@ type GetCellReadinessSummaryInput struct { type GetCellReadinessSummaryOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // The readiness at Cell level. + // The readiness at a cell level. Readiness types.Readiness - // Summaries for the ReadinessChecks making up the Cell + // Summaries for the readiness checks that make up the cell. ReadinessChecks []types.ReadinessCheckSummary // Metadata pertaining to the operation's result. @@ -135,7 +136,7 @@ var _ GetCellReadinessSummaryAPIClient = (*Client)(nil) // GetCellReadinessSummaryPaginatorOptions is the paginator options for // GetCellReadinessSummary type GetCellReadinessSummaryPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_GetReadinessCheck.go b/service/route53recoveryreadiness/api_op_GetReadinessCheck.go index 47518ce2eb3..f23501dc8c1 100644 --- a/service/route53recoveryreadiness/api_op_GetReadinessCheck.go +++ b/service/route53recoveryreadiness/api_op_GetReadinessCheck.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a ReadinessCheck. +// Gets details about a readiness check. func (c *Client) GetReadinessCheck(ctx context.Context, params *GetReadinessCheckInput, optFns ...func(*Options)) (*GetReadinessCheckOutput, error) { if params == nil { params = &GetReadinessCheckInput{} @@ -28,7 +28,7 @@ func (c *Client) GetReadinessCheck(ctx context.Context, params *GetReadinessChec type GetReadinessCheckInput struct { - // The ReadinessCheck to get + // Name of a readiness check. // // This member is required. ReadinessCheckName *string @@ -38,16 +38,16 @@ type GetReadinessCheckInput struct { type GetReadinessCheckOutput struct { - // Arn associated with ReadinessCheck + // The Amazon Resource Name (ARN) associated with a readiness check. ReadinessCheckArn *string - // Name for a ReadinessCheck + // Name of a readiness check. ReadinessCheckName *string - // Name of the ResourceSet to be checked + // Name of the resource set to be checked. ResourceSet *string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_GetReadinessCheckResourceStatus.go b/service/route53recoveryreadiness/api_op_GetReadinessCheckResourceStatus.go index 82f8a16abe1..570d3c6c21f 100644 --- a/service/route53recoveryreadiness/api_op_GetReadinessCheckResourceStatus.go +++ b/service/route53recoveryreadiness/api_op_GetReadinessCheckResourceStatus.go @@ -12,8 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns detailed information about the status of an individual resource within a -// Readiness Check's Resource Set. +// Gets individual readiness status for a readiness check. To see the overall +// readiness status for a recovery group, that considers the readiness status for +// all the readiness checks in the recovery group, use +// GetRecoveryGroupReadinessSummary. func (c *Client) GetReadinessCheckResourceStatus(ctx context.Context, params *GetReadinessCheckResourceStatusInput, optFns ...func(*Options)) (*GetReadinessCheckResourceStatusOutput, error) { if params == nil { params = &GetReadinessCheckResourceStatusInput{} @@ -31,20 +33,22 @@ func (c *Client) GetReadinessCheckResourceStatus(ctx context.Context, params *Ge type GetReadinessCheckResourceStatusInput struct { - // The ReadinessCheck to get + // Name of a readiness check. // // This member is required. ReadinessCheckName *string - // The resource ARN or component Id to get + // The resource identifier, which is the Amazon Resource Name (ARN) or the + // identifier generated for the resource by Application Recovery Controller (for + // example, for a DNS target resource). // // This member is required. ResourceIdentifier *string - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -52,13 +56,13 @@ type GetReadinessCheckResourceStatusInput struct { type GetReadinessCheckResourceStatusOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // The readiness at rule level. + // The readiness at a rule level. Readiness types.Readiness - // Details of the rules's results + // Details of the rule's results. Rules []types.RuleResult // Metadata pertaining to the operation's result. @@ -141,7 +145,7 @@ var _ GetReadinessCheckResourceStatusAPIClient = (*Client)(nil) // GetReadinessCheckResourceStatusPaginatorOptions is the paginator options for // GetReadinessCheckResourceStatus type GetReadinessCheckResourceStatusPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_GetReadinessCheckStatus.go b/service/route53recoveryreadiness/api_op_GetReadinessCheckStatus.go index 94d6a7f8602..a540a808fc3 100644 --- a/service/route53recoveryreadiness/api_op_GetReadinessCheckStatus.go +++ b/service/route53recoveryreadiness/api_op_GetReadinessCheckStatus.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about the status of a Readiness Check. +// Gets the readiness status for an individual readiness check. To see the overall +// readiness status for a recovery group, that considers the readiness status for +// all the readiness checks in a recovery group, use +// GetRecoveryGroupReadinessSummary. func (c *Client) GetReadinessCheckStatus(ctx context.Context, params *GetReadinessCheckStatusInput, optFns ...func(*Options)) (*GetReadinessCheckStatusOutput, error) { if params == nil { params = &GetReadinessCheckStatusInput{} @@ -30,15 +33,15 @@ func (c *Client) GetReadinessCheckStatus(ctx context.Context, params *GetReadine type GetReadinessCheckStatusInput struct { - // The ReadinessCheck to get + // Name of a readiness check. // // This member is required. ReadinessCheckName *string - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -49,13 +52,13 @@ type GetReadinessCheckStatusOutput struct { // Top level messages for readiness check status Messages []types.Message - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string // The readiness at rule level. Readiness types.Readiness - // Summary of resources's readiness + // Summary of the readiness of resources. Resources []types.ResourceResult // Metadata pertaining to the operation's result. @@ -138,7 +141,7 @@ var _ GetReadinessCheckStatusAPIClient = (*Client)(nil) // GetReadinessCheckStatusPaginatorOptions is the paginator options for // GetReadinessCheckStatus type GetReadinessCheckStatusPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_GetRecoveryGroup.go b/service/route53recoveryreadiness/api_op_GetRecoveryGroup.go index 5e24833a6f8..eb3391ed77a 100644 --- a/service/route53recoveryreadiness/api_op_GetRecoveryGroup.go +++ b/service/route53recoveryreadiness/api_op_GetRecoveryGroup.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a Recovery Group. +// Gets details about a recovery group, including a list of the cells that are +// included in it. func (c *Client) GetRecoveryGroup(ctx context.Context, params *GetRecoveryGroupInput, optFns ...func(*Options)) (*GetRecoveryGroupOutput, error) { if params == nil { params = &GetRecoveryGroupInput{} @@ -28,7 +29,7 @@ func (c *Client) GetRecoveryGroup(ctx context.Context, params *GetRecoveryGroupI type GetRecoveryGroupInput struct { - // The RecoveryGroup to get + // The name of a recovery group. // // This member is required. RecoveryGroupName *string @@ -38,16 +39,16 @@ type GetRecoveryGroupInput struct { type GetRecoveryGroupOutput struct { - // A list of Cell arns + // A list of a cell's Amazon Resource Names (ARNs). Cells []string - // The arn for the RecoveryGroup + // The Amazon Resource Name (ARN) for the recovery group. RecoveryGroupArn *string - // The name of the RecoveryGroup + // The name of the recovery group. RecoveryGroupName *string - // A collection of tags associated with a resource + // The tags associated with the recovery group. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_GetRecoveryGroupReadinessSummary.go b/service/route53recoveryreadiness/api_op_GetRecoveryGroupReadinessSummary.go index e5113c9e505..715ecd97e0b 100644 --- a/service/route53recoveryreadiness/api_op_GetRecoveryGroupReadinessSummary.go +++ b/service/route53recoveryreadiness/api_op_GetRecoveryGroupReadinessSummary.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a Recovery Group. +// Displays a summary of information about a recovery group's readiness status. +// Includes the readiness checks for resources in the recovery group and the +// readiness status of each one. func (c *Client) GetRecoveryGroupReadinessSummary(ctx context.Context, params *GetRecoveryGroupReadinessSummaryInput, optFns ...func(*Options)) (*GetRecoveryGroupReadinessSummaryOutput, error) { if params == nil { params = &GetRecoveryGroupReadinessSummaryInput{} @@ -30,15 +32,15 @@ func (c *Client) GetRecoveryGroupReadinessSummary(ctx context.Context, params *G type GetRecoveryGroupReadinessSummaryInput struct { - // The name of the RecoveryGroup + // The name of a recovery group. // // This member is required. RecoveryGroupName *string - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -46,13 +48,13 @@ type GetRecoveryGroupReadinessSummaryInput struct { type GetRecoveryGroupReadinessSummaryOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // The readiness at RecoveryGroup level. + // The readiness status at a recovery group level. Readiness types.Readiness - // Summaries for the ReadinessChecks making up the RecoveryGroup + // Summaries of the readiness checks for the recovery group. ReadinessChecks []types.ReadinessCheckSummary // Metadata pertaining to the operation's result. @@ -135,7 +137,7 @@ var _ GetRecoveryGroupReadinessSummaryAPIClient = (*Client)(nil) // GetRecoveryGroupReadinessSummaryPaginatorOptions is the paginator options for // GetRecoveryGroupReadinessSummary type GetRecoveryGroupReadinessSummaryPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_GetResourceSet.go b/service/route53recoveryreadiness/api_op_GetResourceSet.go index 3b9d2b14fd6..d95f69563fe 100644 --- a/service/route53recoveryreadiness/api_op_GetResourceSet.go +++ b/service/route53recoveryreadiness/api_op_GetResourceSet.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a Resource Set. +// Displays the details about a resource set, including a list of the resources in +// the set. func (c *Client) GetResourceSet(ctx context.Context, params *GetResourceSetInput, optFns ...func(*Options)) (*GetResourceSetOutput, error) { if params == nil { params = &GetResourceSetInput{} @@ -29,7 +30,7 @@ func (c *Client) GetResourceSet(ctx context.Context, params *GetResourceSetInput type GetResourceSetInput struct { - // The ResourceSet to get + // Name of a resource set. // // This member is required. ResourceSetName *string @@ -39,19 +40,28 @@ type GetResourceSetInput struct { type GetResourceSetOutput struct { - // The arn for the ResourceSet + // The Amazon Resource Name (ARN) for the resource set. ResourceSetArn *string - // The name of the ResourceSet + // The name of the resource set. ResourceSetName *string - // AWS Resource Type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource ResourceSetType *string - // A list of Resource objects + // A list of resource objects. Resources []types.Resource - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_ListCells.go b/service/route53recoveryreadiness/api_op_ListCells.go index c010a0162ad..d547df639eb 100644 --- a/service/route53recoveryreadiness/api_op_ListCells.go +++ b/service/route53recoveryreadiness/api_op_ListCells.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of Cells. +// Lists the cells for an account. func (c *Client) ListCells(ctx context.Context, params *ListCellsInput, optFns ...func(*Options)) (*ListCellsOutput, error) { if params == nil { params = &ListCellsInput{} @@ -30,10 +30,10 @@ func (c *Client) ListCells(ctx context.Context, params *ListCellsInput, optFns . type ListCellsInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -41,10 +41,10 @@ type ListCellsInput struct { type ListCellsOutput struct { - // A list of Cells + // A list of cells. Cells []types.CellOutput - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string // Metadata pertaining to the operation's result. @@ -122,7 +122,7 @@ var _ ListCellsAPIClient = (*Client)(nil) // ListCellsPaginatorOptions is the paginator options for ListCells type ListCellsPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListCrossAccountAuthorizations.go b/service/route53recoveryreadiness/api_op_ListCrossAccountAuthorizations.go index 10c5c6b34e4..463b9fd8509 100644 --- a/service/route53recoveryreadiness/api_op_ListCrossAccountAuthorizations.go +++ b/service/route53recoveryreadiness/api_op_ListCrossAccountAuthorizations.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of cross account readiness authorizations. +// Lists the cross-account readiness authorizations that are in place for an +// account. func (c *Client) ListCrossAccountAuthorizations(ctx context.Context, params *ListCrossAccountAuthorizationsInput, optFns ...func(*Options)) (*ListCrossAccountAuthorizationsOutput, error) { if params == nil { params = &ListCrossAccountAuthorizationsInput{} @@ -29,10 +30,10 @@ func (c *Client) ListCrossAccountAuthorizations(ctx context.Context, params *Lis type ListCrossAccountAuthorizationsInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -40,10 +41,10 @@ type ListCrossAccountAuthorizationsInput struct { type ListCrossAccountAuthorizationsOutput struct { - // A list of CrossAccountAuthorizations + // A list of cross-account authorizations. CrossAccountAuthorizations []string - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string // Metadata pertaining to the operation's result. @@ -123,7 +124,7 @@ var _ ListCrossAccountAuthorizationsAPIClient = (*Client)(nil) // ListCrossAccountAuthorizationsPaginatorOptions is the paginator options for // ListCrossAccountAuthorizations type ListCrossAccountAuthorizationsPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListReadinessChecks.go b/service/route53recoveryreadiness/api_op_ListReadinessChecks.go index 5b0073127d1..5b7e3dd6f01 100644 --- a/service/route53recoveryreadiness/api_op_ListReadinessChecks.go +++ b/service/route53recoveryreadiness/api_op_ListReadinessChecks.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of Readiness Checks. +// Lists the readiness checks for an account. func (c *Client) ListReadinessChecks(ctx context.Context, params *ListReadinessChecksInput, optFns ...func(*Options)) (*ListReadinessChecksOutput, error) { if params == nil { params = &ListReadinessChecksInput{} @@ -30,10 +30,10 @@ func (c *Client) ListReadinessChecks(ctx context.Context, params *ListReadinessC type ListReadinessChecksInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -41,10 +41,10 @@ type ListReadinessChecksInput struct { type ListReadinessChecksOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // A list of ReadinessCheck associated with the account + // A list of readiness checks associated with the account. ReadinessChecks []types.ReadinessCheckOutput // Metadata pertaining to the operation's result. @@ -124,7 +124,7 @@ var _ ListReadinessChecksAPIClient = (*Client)(nil) // ListReadinessChecksPaginatorOptions is the paginator options for // ListReadinessChecks type ListReadinessChecksPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListRecoveryGroups.go b/service/route53recoveryreadiness/api_op_ListRecoveryGroups.go index 5915a9ea484..16904f54616 100644 --- a/service/route53recoveryreadiness/api_op_ListRecoveryGroups.go +++ b/service/route53recoveryreadiness/api_op_ListRecoveryGroups.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of Recovery Groups. +// Lists the recovery groups in an account. func (c *Client) ListRecoveryGroups(ctx context.Context, params *ListRecoveryGroupsInput, optFns ...func(*Options)) (*ListRecoveryGroupsOutput, error) { if params == nil { params = &ListRecoveryGroupsInput{} @@ -30,10 +30,10 @@ func (c *Client) ListRecoveryGroups(ctx context.Context, params *ListRecoveryGro type ListRecoveryGroupsInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -41,10 +41,10 @@ type ListRecoveryGroupsInput struct { type ListRecoveryGroupsOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // A list of RecoveryGroups + // A list of recovery groups. RecoveryGroups []types.RecoveryGroupOutput // Metadata pertaining to the operation's result. @@ -124,7 +124,7 @@ var _ ListRecoveryGroupsAPIClient = (*Client)(nil) // ListRecoveryGroupsPaginatorOptions is the paginator options for // ListRecoveryGroups type ListRecoveryGroupsPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListResourceSets.go b/service/route53recoveryreadiness/api_op_ListResourceSets.go index ae3c7e94d55..02684120a47 100644 --- a/service/route53recoveryreadiness/api_op_ListResourceSets.go +++ b/service/route53recoveryreadiness/api_op_ListResourceSets.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of Resource Sets. +// Lists the resource sets in an account. func (c *Client) ListResourceSets(ctx context.Context, params *ListResourceSetsInput, optFns ...func(*Options)) (*ListResourceSetsOutput, error) { if params == nil { params = &ListResourceSetsInput{} @@ -30,10 +30,10 @@ func (c *Client) ListResourceSets(ctx context.Context, params *ListResourceSetsI type ListResourceSetsInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string noSmithyDocumentSerde @@ -41,10 +41,10 @@ type ListResourceSetsInput struct { type ListResourceSetsOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // A list of ResourceSets associated with the account + // A list of resource sets associated with the account. ResourceSets []types.ResourceSetOutput // Metadata pertaining to the operation's result. @@ -123,7 +123,7 @@ var _ ListResourceSetsAPIClient = (*Client)(nil) // ListResourceSetsPaginatorOptions is the paginator options for ListResourceSets type ListResourceSetsPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListRules.go b/service/route53recoveryreadiness/api_op_ListRules.go index f2662197b72..78ae39727a6 100644 --- a/service/route53recoveryreadiness/api_op_ListRules.go +++ b/service/route53recoveryreadiness/api_op_ListRules.go @@ -12,7 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a collection of rules that are applied as part of Readiness Checks. +// Lists all readiness rules, or lists the readiness rules for a specific resource +// type. func (c *Client) ListRules(ctx context.Context, params *ListRulesInput, optFns ...func(*Options)) (*ListRulesOutput, error) { if params == nil { params = &ListRulesInput{} @@ -30,13 +31,13 @@ func (c *Client) ListRules(ctx context.Context, params *ListRulesInput, optFns . type ListRulesInput struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. MaxResults int32 - // A token used to resume pagination from the end of a previous request. + // The token that identifies which batch of results you want to see. NextToken *string - // Filter parameter which specifies the rules to return given a resource type. + // The resource type that a readiness rule applies to. ResourceType *string noSmithyDocumentSerde @@ -44,10 +45,10 @@ type ListRulesInput struct { type ListRulesOutput struct { - // A token that can be used to resume pagination from the end of the collection. + // The token that identifies which batch of results you want to see. NextToken *string - // A list of rules + // A list of readiness rules for a specific resource type. Rules []types.ListRulesOutput // Metadata pertaining to the operation's result. @@ -125,7 +126,7 @@ var _ ListRulesAPIClient = (*Client)(nil) // ListRulesPaginatorOptions is the paginator options for ListRules type ListRulesPaginatorOptions struct { - // Upper bound on number of records to return. + // The number of objects that you want to return with this call. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/route53recoveryreadiness/api_op_ListTagsForResources.go b/service/route53recoveryreadiness/api_op_ListTagsForResources.go index 751e0e8321b..ecf09df7b99 100644 --- a/service/route53recoveryreadiness/api_op_ListTagsForResources.go +++ b/service/route53recoveryreadiness/api_op_ListTagsForResources.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of the tags assigned to the specified resource. +// Lists the tags for a resource. func (c *Client) ListTagsForResources(ctx context.Context, params *ListTagsForResourcesInput, optFns ...func(*Options)) (*ListTagsForResourcesOutput, error) { if params == nil { params = &ListTagsForResourcesInput{} @@ -28,8 +28,7 @@ func (c *Client) ListTagsForResources(ctx context.Context, params *ListTagsForRe type ListTagsForResourcesInput struct { - // The Amazon Resource Name (ARN) for the resource. You can get this from the - // response to any request to the resource. + // The Amazon Resource Name (ARN) for a resource. // // This member is required. ResourceArn *string @@ -39,7 +38,7 @@ type ListTagsForResourcesInput struct { type ListTagsForResourcesOutput struct { - // A collection of tags associated with a resource + // Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_TagResource.go b/service/route53recoveryreadiness/api_op_TagResource.go index 241ae456af6..c0ac6189f78 100644 --- a/service/route53recoveryreadiness/api_op_TagResource.go +++ b/service/route53recoveryreadiness/api_op_TagResource.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds tags to the specified resource. You can specify one or more tags to add. +// Adds a tag to a resource. func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} @@ -28,13 +28,12 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { - // The Amazon Resource Name (ARN) for the resource. You can get this from the - // response to any request to the resource. + // The Amazon Resource Name (ARN) for a resource. // // This member is required. ResourceArn *string - // A collection of tags associated with a resource + // // // This member is required. Tags map[string]string diff --git a/service/route53recoveryreadiness/api_op_UntagResource.go b/service/route53recoveryreadiness/api_op_UntagResource.go index 734e295d6ae..3f97264131f 100644 --- a/service/route53recoveryreadiness/api_op_UntagResource.go +++ b/service/route53recoveryreadiness/api_op_UntagResource.go @@ -10,8 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes tags from the specified resource. You can specify one or more tags to -// remove. +// Removes a tag from a resource. func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, optFns ...func(*Options)) (*UntagResourceOutput, error) { if params == nil { params = &UntagResourceInput{} @@ -29,13 +28,12 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { - // The Amazon Resource Name (ARN) for the resource. You can get this from the - // response to any request to the resource. + // The Amazon Resource Name (ARN) for a resource. // // This member is required. ResourceArn *string - // A comma-separated list of the tag keys to remove from the resource. + // The keys for tags you add to resources. // // This member is required. TagKeys []string diff --git a/service/route53recoveryreadiness/api_op_UpdateCell.go b/service/route53recoveryreadiness/api_op_UpdateCell.go index fe172a4e0bd..e619615c63a 100644 --- a/service/route53recoveryreadiness/api_op_UpdateCell.go +++ b/service/route53recoveryreadiness/api_op_UpdateCell.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an existing Cell. +// Updates a cell to replace the list of nested cells with a new list of nested +// cells. func (c *Client) UpdateCell(ctx context.Context, params *UpdateCellInput, optFns ...func(*Options)) (*UpdateCellOutput, error) { if params == nil { params = &UpdateCellInput{} @@ -26,15 +27,15 @@ func (c *Client) UpdateCell(ctx context.Context, params *UpdateCellInput, optFns return out, nil } -// Parameters to update for the Cell type UpdateCellInput struct { - // The Cell to update + // The name of the cell. // // This member is required. CellName *string - // A list of Cell arns, completely replaces previous list + // A list of cell Amazon Resource Names (ARNs), which completely replaces the + // previous list. // // This member is required. Cells []string @@ -44,19 +45,20 @@ type UpdateCellInput struct { type UpdateCellOutput struct { - // The arn for the Cell + // The Amazon Resource Name (ARN) for the cell. CellArn *string - // The name of the Cell + // The name of the cell. CellName *string - // A list of Cell arns + // A list of cell ARNs. Cells []string - // A list of Cell ARNs and/or RecoveryGroup ARNs + // The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) + // or a recovery group ARN. This is a list but currently can have only one element. ParentReadinessScopes []string - // A collection of tags associated with a resource + // Tags on the resources. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_UpdateReadinessCheck.go b/service/route53recoveryreadiness/api_op_UpdateReadinessCheck.go index 150e158f30d..1b328b8c042 100644 --- a/service/route53recoveryreadiness/api_op_UpdateReadinessCheck.go +++ b/service/route53recoveryreadiness/api_op_UpdateReadinessCheck.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an exisiting Readiness Check. +// Updates a readiness check. func (c *Client) UpdateReadinessCheck(ctx context.Context, params *UpdateReadinessCheckInput, optFns ...func(*Options)) (*UpdateReadinessCheckOutput, error) { if params == nil { params = &UpdateReadinessCheckInput{} @@ -26,15 +26,15 @@ func (c *Client) UpdateReadinessCheck(ctx context.Context, params *UpdateReadine return out, nil } -// The new Readiness Check values +// Name of a readiness check to describe. type UpdateReadinessCheckInput struct { - // The ReadinessCheck to update + // Name of a readiness check. // // This member is required. ReadinessCheckName *string - // The name of the ResourceSet to check + // The name of the resource set to be checked. // // This member is required. ResourceSetName *string @@ -44,16 +44,16 @@ type UpdateReadinessCheckInput struct { type UpdateReadinessCheckOutput struct { - // Arn associated with ReadinessCheck + // The Amazon Resource Name (ARN) associated with a readiness check. ReadinessCheckArn *string - // Name for a ReadinessCheck + // Name of a readiness check. ReadinessCheckName *string - // Name of the ResourceSet to be checked + // Name of the resource set to be checked. ResourceSet *string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_UpdateRecoveryGroup.go b/service/route53recoveryreadiness/api_op_UpdateRecoveryGroup.go index f27127573a6..4dc23c5e28f 100644 --- a/service/route53recoveryreadiness/api_op_UpdateRecoveryGroup.go +++ b/service/route53recoveryreadiness/api_op_UpdateRecoveryGroup.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an existing Recovery Group. +// Updates a recovery group. func (c *Client) UpdateRecoveryGroup(ctx context.Context, params *UpdateRecoveryGroupInput, optFns ...func(*Options)) (*UpdateRecoveryGroupOutput, error) { if params == nil { params = &UpdateRecoveryGroupInput{} @@ -26,15 +26,16 @@ func (c *Client) UpdateRecoveryGroup(ctx context.Context, params *UpdateRecovery return out, nil } -// Parameters to update for the RecoveryGroup +// Name of a recovery group. type UpdateRecoveryGroupInput struct { - // A list of Cell arns, completely replaces previous list + // A list of cell Amazon Resource Names (ARNs). This list completely replaces the + // previous list. // // This member is required. Cells []string - // The RecoveryGroup to update + // The name of a recovery group. // // This member is required. RecoveryGroupName *string @@ -44,16 +45,16 @@ type UpdateRecoveryGroupInput struct { type UpdateRecoveryGroupOutput struct { - // A list of Cell arns + // A list of a cell's Amazon Resource Names (ARNs). Cells []string - // The arn for the RecoveryGroup + // The Amazon Resource Name (ARN) for the recovery group. RecoveryGroupArn *string - // The name of the RecoveryGroup + // The name of the recovery group. RecoveryGroupName *string - // A collection of tags associated with a resource + // The tags associated with the recovery group. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/api_op_UpdateResourceSet.go b/service/route53recoveryreadiness/api_op_UpdateResourceSet.go index fd3ef87d09c..949dcad4909 100644 --- a/service/route53recoveryreadiness/api_op_UpdateResourceSet.go +++ b/service/route53recoveryreadiness/api_op_UpdateResourceSet.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an existing Resource Set. +// Updates a resource set. func (c *Client) UpdateResourceSet(ctx context.Context, params *UpdateResourceSetInput, optFns ...func(*Options)) (*UpdateResourceSetOutput, error) { if params == nil { params = &UpdateResourceSetInput{} @@ -27,20 +27,29 @@ func (c *Client) UpdateResourceSet(ctx context.Context, params *UpdateResourceSe return out, nil } -// configuration for the desired +// Name of a resource set. type UpdateResourceSetInput struct { - // The ResourceSet to update + // Name of a resource set. // // This member is required. ResourceSetName *string - // AWS Resource Type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource // // This member is required. ResourceSetType *string - // A list of Resource objects + // A list of resource objects. // // This member is required. Resources []types.Resource @@ -50,19 +59,28 @@ type UpdateResourceSetInput struct { type UpdateResourceSetOutput struct { - // The arn for the ResourceSet + // The Amazon Resource Name (ARN) for the resource set. ResourceSetArn *string - // The name of the ResourceSet + // The name of the resource set. ResourceSetName *string - // AWS Resource Type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource ResourceSetType *string - // A list of Resource objects + // A list of resource objects. Resources []types.Resource - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string // Metadata pertaining to the operation's result. diff --git a/service/route53recoveryreadiness/doc.go b/service/route53recoveryreadiness/doc.go index 58292b6a597..42e7bbc2cc9 100644 --- a/service/route53recoveryreadiness/doc.go +++ b/service/route53recoveryreadiness/doc.go @@ -3,5 +3,5 @@ // Package route53recoveryreadiness provides the API client, operations, and // parameter types for AWS Route53 Recovery Readiness. // -// AWS Route53 Recovery Readiness +// Recovery readiness package route53recoveryreadiness diff --git a/service/route53recoveryreadiness/types/types.go b/service/route53recoveryreadiness/types/types.go index fee928a6067..b59379ee6d5 100644 --- a/service/route53recoveryreadiness/types/types.go +++ b/service/route53recoveryreadiness/types/types.go @@ -7,71 +7,75 @@ import ( "time" ) -// A Cell and its properties +// Information about a cell. type CellOutput struct { - // The arn for the Cell + // The Amazon Resource Name (ARN) for the cell. // // This member is required. CellArn *string - // The name of the Cell + // The name of the cell. // // This member is required. CellName *string - // A list of Cell arns + // A list of cell ARNs. // // This member is required. Cells []string - // A list of Cell ARNs and/or RecoveryGroup ARNs + // The readiness scope for the cell, which can be a cell Amazon Resource Name (ARN) + // or a recovery group ARN. This is a list but currently can have only one element. // // This member is required. ParentReadinessScopes []string - // A collection of tags associated with a resource + // Tags on the resources. Tags map[string]string noSmithyDocumentSerde } -// A component for DNS/Routing Control Readiness Checks +// A component for DNS/routing control readiness checks and architecture checks. type DNSTargetResource struct { - // The DNS Name that acts as ingress point to a portion of application + // The domain name that acts as an ingress point to a portion of the customer + // application. DomainName *string - // The Hosted Zone ARN that contains the DNS record with the provided name of - // target resource. + // The hosted zone Amazon Resource Name (ARN) that contains the DNS record with the + // provided name of the target resource. HostedZoneArn *string - // The R53 Set Id to uniquely identify a record given a Name and a Type + // The Route 53 record set ID that uniquely identifies a DNS record, given a name + // and a type. RecordSetId *string - // The Type of DNS Record of target resource + // The type of DNS record of the target resource. RecordType *string - // The target resource the R53 record points to + // The target resource of the DNS target resource. TargetResource *TargetResource noSmithyDocumentSerde } -// A collection of rules used in a readiness check +// Readiness rule information, including the resource type, rule ID, and rule +// description. type ListRulesOutput struct { - // The resource type the rule applies to. + // The resource type that the readiness rule applies to. // // This member is required. ResourceType *string - // A description of the rule + // The description of a readiness rule. // // This member is required. RuleDescription *string - // The Rule's ID. + // The ID for the readiness rule. // // This member is required. RuleId *string @@ -79,75 +83,77 @@ type ListRulesOutput struct { noSmithyDocumentSerde } -// Information relating to readiness check status +// Information relating to readiness check status. type Message struct { - // The text of a readiness check message + // The text of a readiness check message. MessageText *string noSmithyDocumentSerde } -// The NLB resource a DNS Target Resource points to +// The Network Load Balancer resource that a DNS target resource points to. type NLBResource struct { - // An NLB resource arn + // The Network Load Balancer resource Amazon Resource Name (ARN). Arn *string noSmithyDocumentSerde } -// The Route 53 resource a DNS Target Resource record points to +// The Route 53 resource that a DNS target resource record points to. type R53ResourceRecord struct { - // The DNS target name + // The DNS target domain name. DomainName *string - // The Resource Record set id + // The Route 53 Resource Record Set ID. RecordSetId *string noSmithyDocumentSerde } -// A resource used for checking the readiness of a Resource Set +// A readiness check. type ReadinessCheckOutput struct { - // Arn associated with ReadinessCheck + // The Amazon Resource Name (ARN) associated with a readiness check. // // This member is required. ReadinessCheckArn *string - // Name of the ResourceSet to be checked + // Name of the resource set to be checked. // // This member is required. ResourceSet *string - // Name for a ReadinessCheck + // Name of a readiness check. ReadinessCheckName *string - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string noSmithyDocumentSerde } -// Summary of ReadinessCheck status, paginated in GetRecoveryGroupReadinessSummary -// and GetCellReadinessSummary +// Summary of all readiness check statuses in a recovery group, paginated in +// GetRecoveryGroupReadinessSummary and GetCellReadinessSummary. type ReadinessCheckSummary struct { - // The readiness of this ReadinessCheck + // The readiness status of this readiness check. Readiness Readiness - // The name of a ReadinessCheck which is part of the given RecoveryGroup or Cell + // The name of a readiness check. ReadinessCheckName *string noSmithyDocumentSerde } -// Guidance for improving Recovery Group resilliancy +// Recommendations that are provided to make an application more recovery +// resilient. type Recommendation struct { - // Guidance text for recommendation + // Text of the recommendations that are provided to make an application more + // recovery resilient. // // This member is required. RecommendationText *string @@ -155,102 +161,113 @@ type Recommendation struct { noSmithyDocumentSerde } -// A Recovery Group generally containing multiple Cells +// A representation of the application, typically containing multiple cells. type RecoveryGroupOutput struct { - // A list of Cell arns + // A list of a cell's Amazon Resource Names (ARNs). // // This member is required. Cells []string - // The arn for the RecoveryGroup + // The Amazon Resource Name (ARN) for the recovery group. // // This member is required. RecoveryGroupArn *string - // The name of the RecoveryGroup + // The name of the recovery group. // // This member is required. RecoveryGroupName *string - // A collection of tags associated with a resource + // The tags associated with the recovery group. Tags map[string]string noSmithyDocumentSerde } -// The resource element of a ResourceSet +// The resource element of a resource set. type Resource struct { - // The component id of the resource, generated by the service when - // dnsTargetResource is used + // The component identifier of the resource, generated when DNS target resource is + // used. ComponentId *string - // A component for DNS/Routing Control Readiness Checks + // The DNS target resource. DnsTargetResource *DNSTargetResource - // A list of RecoveryGroup ARNs and/or Cell ARNs that this resource is contained - // within. + // A list of recovery group Amazon Resource Names (ARNs) and cell ARNs that this + // resource is contained within. ReadinessScopes []string - // The ARN of the AWS resource, can be skipped if dnsTargetResource is used + // The Amazon Resource Name (ARN) of the Amazon Web Services resource. ResourceArn *string noSmithyDocumentSerde } -// Result with status for an individual resource. +// The result of a successful Resource request, with status for an individual +// resource. type ResourceResult struct { - // The time the resource was last checked for readiness, in ISO-8601 format, UTC. + // The time (UTC) that the resource was last checked for readiness, in ISO-8601 + // format. // // This member is required. LastCheckedTimestamp *time.Time - // The readiness of the resource. + // The readiness of a resource. // // This member is required. Readiness Readiness - // The component id of the resource + // The component id of the resource. ComponentId *string - // The ARN of the resource + // The Amazon Resource Name (ARN) of the resource. ResourceArn *string noSmithyDocumentSerde } -// A collection of resources of the same type +// A collection of resources of the same type. type ResourceSetOutput struct { - // The arn for the ResourceSet + // The Amazon Resource Name (ARN) for the resource set. // // This member is required. ResourceSetArn *string - // The name of the ResourceSet + // The name of the resource set. // // This member is required. ResourceSetName *string - // AWS Resource Type of the resources in the ResourceSet + // The resource type of the resources in the resource set. Enter one of the + // following values for resource type: AWS::ApiGateway::Stage, + // AWS::ApiGatewayV2::Stage, AWS::AutoScaling::AutoScalingGroup, + // AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, + // AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::Lambda::Function, + // AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, + // AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, + // AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, + // AWS::Route53RecoveryReadiness::DNSTargetResource // // This member is required. ResourceSetType *string - // A list of Resource objects + // A list of resource objects. // // This member is required. Resources []Resource - // A collection of tags associated with a resource + // A collection of tags associated with a resource. Tags map[string]string noSmithyDocumentSerde } -// Result with status for an individual rule.. +// The result of a successful Rule request, with status for an individual rule. type RuleResult struct { // The time the resource was last checked for readiness, in ISO-8601 format, UTC. @@ -258,7 +275,7 @@ type RuleResult struct { // This member is required. LastCheckedTimestamp *time.Time - // Details about the resource's readiness + // Details about the resource's readiness. // // This member is required. Messages []Message @@ -276,13 +293,13 @@ type RuleResult struct { noSmithyDocumentSerde } -// The target resource the R53 record points to +// The target resource that the Route 53 record points to. type TargetResource struct { - // The NLB resource a DNS Target Resource points to + // The Network Load Balancer Resource. NLBResource *NLBResource - // The Route 53 resource a DNS Target Resource record points to + // The Route 53 resource. R53Resource *R53ResourceRecord noSmithyDocumentSerde diff --git a/service/sagemaker/api_op_CreateEndpointConfig.go b/service/sagemaker/api_op_CreateEndpointConfig.go index 5457f1fe74b..fcbd3bd112c 100644 --- a/service/sagemaker/api_op_CreateEndpointConfig.go +++ b/service/sagemaker/api_op_CreateEndpointConfig.go @@ -67,7 +67,7 @@ type CreateEndpointConfigInput struct { // Specifies configuration for how an endpoint performs asynchronous inference. // This is a required field in order for your Endpoint to be invoked using // InvokeEndpointAsync - // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html). + // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html). AsyncInferenceConfig *types.AsyncInferenceConfig // diff --git a/service/sagemaker/api_op_ListModelPackages.go b/service/sagemaker/api_op_ListModelPackages.go index 230b372c0b8..bdd3938e5ef 100644 --- a/service/sagemaker/api_op_ListModelPackages.go +++ b/service/sagemaker/api_op_ListModelPackages.go @@ -50,16 +50,17 @@ type ListModelPackagesInput struct { // group. ModelPackageGroupName *string - // A filter that returns onlyl the model packages of the specified type. This can - // be one of the following values. + // A filter that returns only the model packages of the specified type. This can be + // one of the following values. // - // * VERSIONED - List only versioned models. + // * UNVERSIONED - List only unversioined models. + // This is the default value if no ModelPackageType is specified. // - // * - // UNVERSIONED - List only unversioined models. + // * VERSIONED - + // List only versioned models. // - // * BOTH - List both versioned and - // unversioned models. + // * BOTH - List both versioned and unversioned + // models. ModelPackageType types.ModelPackageType // A string in the model package name. This filter returns only model packages diff --git a/service/sagemaker/api_op_StopPipelineExecution.go b/service/sagemaker/api_op_StopPipelineExecution.go index 026964ebff2..05884d2557b 100644 --- a/service/sagemaker/api_op_StopPipelineExecution.go +++ b/service/sagemaker/api_op_StopPipelineExecution.go @@ -13,13 +13,13 @@ import ( // Stops a pipeline execution. Callback Step A pipeline execution won't stop while // a callback step is running. When you call StopPipelineExecution on a pipeline -// execution with a running callback step, Amazon SageMaker Pipelines sends an -// additional Amazon SQS message to the specified SQS queue. The body of the SQS -// message contains a "Status" field which is set to "Stopping". You should add -// logic to your Amazon SQS message consumer to take any needed action (for -// example, resource cleanup) upon receipt of the message followed by a call to +// execution with a running callback step, SageMaker Pipelines sends an additional +// Amazon SQS message to the specified SQS queue. The body of the SQS message +// contains a "Status" field which is set to "Stopping". You should add logic to +// your Amazon SQS message consumer to take any needed action (for example, +// resource cleanup) upon receipt of the message followed by a call to // SendPipelineExecutionStepSuccess or SendPipelineExecutionStepFailure. Only when -// Amazon SageMaker Pipelines receives one of these calls will it stop the pipeline +// SageMaker Pipelines receives one of these calls will it stop the pipeline // execution. Lambda Step A pipeline execution can't be stopped while a lambda step // is running because the Lambda function invoked by the lambda step can't be // stopped. If you attempt to stop the execution while the Lambda function is diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index 948211a95fb..f9689276c56 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -36563,6 +36563,46 @@ func awsAwsjson11_deserializeDocumentExplainability(v **types.Explainability, va return nil } +func awsAwsjson11_deserializeDocumentFailStepMetadata(v **types.FailStepMetadata, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FailStepMetadata + if *v == nil { + sv = &types.FailStepMetadata{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ErrorMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String3072 to be of type string, got %T instead", value) + } + sv.ErrorMessage = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentFeatureDefinition(v **types.FeatureDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -48180,6 +48220,11 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStepMetadata(v **types.Pip return err } + case "Fail": + if err := awsAwsjson11_deserializeDocumentFailStepMetadata(&sv.Fail, value); err != nil { + return err + } + case "Lambda": if err := awsAwsjson11_deserializeDocumentLambdaStepMetadata(&sv.Lambda, value); err != nil { return err @@ -48278,6 +48323,15 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionSummary(v **types.Pipeline sv.PipelineExecutionDisplayName = ptr.String(jtv) } + case "PipelineExecutionFailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String3072 to be of type string, got %T instead", value) + } + sv.PipelineExecutionFailureReason = ptr.String(jtv) + } + case "PipelineExecutionStatus": if value != nil { jtv, ok := value.(string) diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 47b691f73a6..644558872de 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -3783,6 +3783,16 @@ type Explainability struct { noSmithyDocumentSerde } +// The container for the metadata for Fail step. +type FailStepMetadata struct { + + // A message that you define and then is processed and rendered by the Fail step + // when the error occurs. + ErrorMessage *string + + noSmithyDocumentSerde +} + // A list of features. You must include FeatureName and FeatureType. Valid feature // FeatureTypes are Integral, Fractional and String. type FeatureDefinition struct { @@ -9155,8 +9165,8 @@ type PipelineExecution struct { type PipelineExecutionStep struct { // The current attempt of the execution step. For more information, see Retry - // Policy for Amazon SageMaker Pipelines steps - // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/sagemaker/latest/dg/pipelines-retry-policy.html). + // Policy for SageMaker Pipelines steps + // (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-retry-policy.html). AttemptCount int32 // If this pipeline execution step was cached, details on the cache hit. @@ -9230,6 +9240,9 @@ type PipelineExecutionStepMetadata struct { // The configurations and outcomes of an EMR step execution. EMR *EMRStepMetadata + // The configurations and outcomes of a Fail step execution. + Fail *FailStepMetadata + // The Amazon Resource Name (ARN) of the Lambda function that was run by this step // execution and a list of output parameters. Lambda *LambdaStepMetadata @@ -9300,6 +9313,10 @@ type PipelineExecutionSummary struct { // The display name of the pipeline execution. PipelineExecutionDisplayName *string + // A message generated by SageMaker Pipelines describing why the pipeline execution + // failed. + PipelineExecutionFailureReason *string + // The status of the pipeline execution. PipelineExecutionStatus PipelineExecutionStatus diff --git a/service/securityhub/deserializers.go b/service/securityhub/deserializers.go index ec9195bb3d9..b345c273ce2 100644 --- a/service/securityhub/deserializers.go +++ b/service/securityhub/deserializers.go @@ -33799,6 +33799,15 @@ func awsRestjson1_deserializeDocumentAwsSecurityFinding(v **types.AwsSecurityFin return err } + case "Sample": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Sample = jtv + } + case "SchemaVersion": if value != nil { jtv, ok := value.(string) @@ -34299,6 +34308,11 @@ func awsRestjson1_deserializeDocumentAwsSecurityFindingFilters(v **types.AwsSecu return err } + case "Sample": + if err := awsRestjson1_deserializeDocumentBooleanFilterList(&sv.Sample, value); err != nil { + return err + } + case "SeverityLabel": if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.SeverityLabel, value); err != nil { return err @@ -35714,6 +35728,80 @@ func awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFindingsList( return nil } +func awsRestjson1_deserializeDocumentBooleanFilter(v **types.BooleanFilter, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BooleanFilter + if *v == nil { + sv = &types.BooleanFilter{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Value": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Value = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBooleanFilterList(v *[]types.BooleanFilter, 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.BooleanFilter + if *v == nil { + cv = []types.BooleanFilter{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BooleanFilter + destAddr := &col + if err := awsRestjson1_deserializeDocumentBooleanFilter(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCategoryList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/securityhub/serializers.go b/service/securityhub/serializers.go index 3f36c64a7e3..0997fa032d8 100644 --- a/service/securityhub/serializers.go +++ b/service/securityhub/serializers.go @@ -15564,6 +15564,11 @@ func awsRestjson1_serializeDocumentAwsSecurityFinding(v *types.AwsSecurityFindin } } + if v.Sample { + ok := object.Key("Sample") + ok.Boolean(v.Sample) + } + if v.SchemaVersion != nil { ok := object.Key("SchemaVersion") ok.String(*v.SchemaVersion) @@ -16182,6 +16187,13 @@ func awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v *types.AwsSecurit } } + if v.Sample != nil { + ok := object.Key("Sample") + if err := awsRestjson1_serializeDocumentBooleanFilterList(v.Sample, ok); err != nil { + return err + } + } + if v.SeverityLabel != nil { ok := object.Key("SeverityLabel") if err := awsRestjson1_serializeDocumentStringFilterList(v.SeverityLabel, ok); err != nil { @@ -16813,6 +16825,31 @@ func awsRestjson1_serializeDocumentBatchImportFindingsRequestFindingList(v []typ return nil } +func awsRestjson1_serializeDocumentBooleanFilter(v *types.BooleanFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Value { + ok := object.Key("Value") + ok.Boolean(v.Value) + } + + return nil +} + +func awsRestjson1_serializeDocumentBooleanFilterList(v []types.BooleanFilter, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentBooleanFilter(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentCell(v *types.Cell, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/securityhub/types/types.go b/service/securityhub/types/types.go index 44bf0425733..85f7a4f9317 100644 --- a/service/securityhub/types/types.go +++ b/service/securityhub/types/types.go @@ -7422,6 +7422,9 @@ type AwsSecurityFinding struct { // A data type that describes the remediation options for a finding. Remediation *Remediation + // Indicates whether the finding is a sample finding. + Sample bool + // A finding's severity. Severity *Severity @@ -7739,6 +7742,9 @@ type AwsSecurityFindingFilters struct { // Specifies the type of the resource that details are provided for. ResourceType []StringFilter + // Indicates whether or not sample findings are included in the filter results. + Sample []BooleanFilter + // The label of a finding's severity. SeverityLabel []StringFilter @@ -8207,6 +8213,15 @@ type BatchUpdateFindingsUnprocessedFinding struct { noSmithyDocumentSerde } +// Boolean filter for querying findings. +type BooleanFilter struct { + + // The value of the boolean. + Value bool + + noSmithyDocumentSerde +} + // An occurrence of sensitive data detected in a Microsoft Excel workbook, // comma-separated value (CSV) file, or tab-separated value (TSV) file. type Cell struct { diff --git a/service/storagegateway/api_op_DeleteBandwidthRateLimit.go b/service/storagegateway/api_op_DeleteBandwidthRateLimit.go index 64b801d30e9..e4228b93fd7 100644 --- a/service/storagegateway/api_op_DeleteBandwidthRateLimit.go +++ b/service/storagegateway/api_op_DeleteBandwidthRateLimit.go @@ -14,7 +14,7 @@ import ( // and download bandwidth rate limit, or you can delete both. If you delete only // one of the limits, the other limit remains unchanged. To specify which gateway // to work with, use the Amazon Resource Name (ARN) of the gateway in your request. -// This operation is supported for the stored volume, cached volume and tape +// This operation is supported only for the stored volume, cached volume, and tape // gateway types. func (c *Client) DeleteBandwidthRateLimit(ctx context.Context, params *DeleteBandwidthRateLimitInput, optFns ...func(*Options)) (*DeleteBandwidthRateLimitOutput, error) { if params == nil { diff --git a/service/storagegateway/api_op_DescribeBandwidthRateLimit.go b/service/storagegateway/api_op_DescribeBandwidthRateLimit.go index 452051f1be6..dda40a95f9d 100644 --- a/service/storagegateway/api_op_DescribeBandwidthRateLimit.go +++ b/service/storagegateway/api_op_DescribeBandwidthRateLimit.go @@ -12,11 +12,13 @@ import ( // Returns the bandwidth rate limits of a gateway. By default, these limits are not // set, which means no bandwidth rate limiting is in effect. This operation is -// supported for the stored volume, cached volume, and tape gateway types. This -// operation only returns a value for a bandwidth rate limit only if the limit is -// set. If no limits are set for the gateway, then this operation returns only the -// gateway ARN in the response body. To specify which gateway to describe, use the -// Amazon Resource Name (ARN) of the gateway in your request. +// supported only for the stored volume, cached volume, and tape gateway types. To +// describe bandwidth rate limits for S3 file gateways, use +// DescribeBandwidthRateLimitSchedule. This operation returns a value for a +// bandwidth rate limit only if the limit is set. If no limits are set for the +// gateway, then this operation returns only the gateway ARN in the response body. +// To specify which gateway to describe, use the Amazon Resource Name (ARN) of the +// gateway in your request. func (c *Client) DescribeBandwidthRateLimit(ctx context.Context, params *DescribeBandwidthRateLimitInput, optFns ...func(*Options)) (*DescribeBandwidthRateLimitOutput, error) { if params == nil { params = &DescribeBandwidthRateLimitInput{} diff --git a/service/storagegateway/api_op_DescribeBandwidthRateLimitSchedule.go b/service/storagegateway/api_op_DescribeBandwidthRateLimitSchedule.go index cb67472a147..01f492bdcc6 100644 --- a/service/storagegateway/api_op_DescribeBandwidthRateLimitSchedule.go +++ b/service/storagegateway/api_op_DescribeBandwidthRateLimitSchedule.go @@ -13,18 +13,18 @@ import ( // Returns information about the bandwidth rate limit schedule of a gateway. By // default, gateways do not have bandwidth rate limit schedules, which means no -// bandwidth rate limiting is in effect. This operation is supported only in the -// volume and tape gateway types. This operation returns information about a -// gateway's bandwidth rate limit schedule. A bandwidth rate limit schedule -// consists of one or more bandwidth rate limit intervals. A bandwidth rate limit -// interval defines a period of time on one or more days of the week, during which -// bandwidth rate limits are specified for uploading, downloading, or both. A -// bandwidth rate limit interval consists of one or more days of the week, a start -// hour and minute, an ending hour and minute, and bandwidth rate limits for -// uploading and downloading If no bandwidth rate limit schedule intervals are set -// for the gateway, this operation returns an empty response. To specify which -// gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your -// request. +// bandwidth rate limiting is in effect. This operation is supported only for +// volume, tape and S3 file gateways. FSx file gateways do not support bandwidth +// rate limits. This operation returns information about a gateway's bandwidth rate +// limit schedule. A bandwidth rate limit schedule consists of one or more +// bandwidth rate limit intervals. A bandwidth rate limit interval defines a period +// of time on one or more days of the week, during which bandwidth rate limits are +// specified for uploading, downloading, or both. A bandwidth rate limit interval +// consists of one or more days of the week, a start hour and minute, an ending +// hour and minute, and bandwidth rate limits for uploading and downloading If no +// bandwidth rate limit schedule intervals are set for the gateway, this operation +// returns an empty response. To specify which gateway to describe, use the Amazon +// Resource Name (ARN) of the gateway in your request. func (c *Client) DescribeBandwidthRateLimitSchedule(ctx context.Context, params *DescribeBandwidthRateLimitScheduleInput, optFns ...func(*Options)) (*DescribeBandwidthRateLimitScheduleOutput, error) { if params == nil { params = &DescribeBandwidthRateLimitScheduleInput{} diff --git a/service/storagegateway/api_op_UpdateBandwidthRateLimit.go b/service/storagegateway/api_op_UpdateBandwidthRateLimit.go index 96117e5cee7..4c65427a6b8 100644 --- a/service/storagegateway/api_op_UpdateBandwidthRateLimit.go +++ b/service/storagegateway/api_op_UpdateBandwidthRateLimit.go @@ -13,11 +13,13 @@ import ( // Updates the bandwidth rate limits of a gateway. You can update both the upload // and download bandwidth rate limit or specify only one of the two. If you don't // set a bandwidth rate limit, the existing rate limit remains. This operation is -// supported for the stored volume, cached volume, and tape gateway types. By -// default, a gateway's bandwidth rate limits are not set. If you don't set any -// limit, the gateway does not have any limitations on its bandwidth usage and -// could potentially use the maximum available bandwidth. To specify which gateway -// to update, use the Amazon Resource Name (ARN) of the gateway in your request. +// supported only for the stored volume, cached volume, and tape gateway types. To +// update bandwidth rate limits for S3 file gateways, use +// UpdateBandwidthRateLimitSchedule. By default, a gateway's bandwidth rate limits +// are not set. If you don't set any limit, the gateway does not have any +// limitations on its bandwidth usage and could potentially use the maximum +// available bandwidth. To specify which gateway to update, use the Amazon Resource +// Name (ARN) of the gateway in your request. func (c *Client) UpdateBandwidthRateLimit(ctx context.Context, params *UpdateBandwidthRateLimitInput, optFns ...func(*Options)) (*UpdateBandwidthRateLimitOutput, error) { if params == nil { params = &UpdateBandwidthRateLimitInput{} diff --git a/service/storagegateway/api_op_UpdateBandwidthRateLimitSchedule.go b/service/storagegateway/api_op_UpdateBandwidthRateLimitSchedule.go index d0b8b20cf33..4cadd63426c 100644 --- a/service/storagegateway/api_op_UpdateBandwidthRateLimitSchedule.go +++ b/service/storagegateway/api_op_UpdateBandwidthRateLimitSchedule.go @@ -14,8 +14,8 @@ import ( // Updates the bandwidth rate limit schedule for a specified gateway. By default, // gateways do not have bandwidth rate limit schedules, which means no bandwidth // rate limiting is in effect. Use this to initiate or update a gateway's bandwidth -// rate limit schedule. This operation is supported in the volume and tape gateway -// types. +// rate limit schedule. This operation is supported only for volume, tape and S3 +// file gateways. FSx file gateways do not support bandwidth rate limits. func (c *Client) UpdateBandwidthRateLimitSchedule(ctx context.Context, params *UpdateBandwidthRateLimitScheduleInput, optFns ...func(*Options)) (*UpdateBandwidthRateLimitScheduleOutput, error) { if params == nil { params = &UpdateBandwidthRateLimitScheduleInput{} diff --git a/service/storagegateway/internal/endpoints/endpoints.go b/service/storagegateway/internal/endpoints/endpoints.go index 777f9b0adf3..6fb082ce712 100644 --- a/service/storagegateway/internal/endpoints/endpoints.go +++ b/service/storagegateway/internal/endpoints/endpoints.go @@ -159,6 +159,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/transcribe/deserializers.go b/service/transcribe/deserializers.go index a6888ccf508..8228ad5cd68 100644 --- a/service/transcribe/deserializers.go +++ b/service/transcribe/deserializers.go @@ -5537,6 +5537,11 @@ func awsAwsjson11_deserializeDocumentContentRedaction(v **types.ContentRedaction for key, value := range shape { switch key { + case "PiiEntityTypes": + if err := awsAwsjson11_deserializeDocumentPiiEntityTypes(&sv.PiiEntityTypes, value); err != nil { + return err + } + case "RedactionOutput": if value != nil { jtv, ok := value.(string) @@ -6802,6 +6807,42 @@ func awsAwsjson11_deserializeDocumentNotFoundException(v **types.NotFoundExcepti return nil } +func awsAwsjson11_deserializeDocumentPiiEntityTypes(v *[]types.PiiEntityType, 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.PiiEntityType + if *v == nil { + cv = []types.PiiEntityType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PiiEntityType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiEntityType to be of type string, got %T instead", value) + } + col = types.PiiEntityType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentRelativeTimeRange(v **types.RelativeTimeRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/transcribe/serializers.go b/service/transcribe/serializers.go index 81bdbc9c2e8..fb7f57e0e5d 100644 --- a/service/transcribe/serializers.go +++ b/service/transcribe/serializers.go @@ -2268,6 +2268,13 @@ func awsAwsjson11_serializeDocumentContentRedaction(v *types.ContentRedaction, v object := value.Object() defer object.Close() + if v.PiiEntityTypes != nil { + ok := object.Key("PiiEntityTypes") + if err := awsAwsjson11_serializeDocumentPiiEntityTypes(v.PiiEntityTypes, ok); err != nil { + return err + } + } + if len(v.RedactionOutput) > 0 { ok := object.Key("RedactionOutput") ok.String(string(v.RedactionOutput)) @@ -2522,6 +2529,17 @@ func awsAwsjson11_serializeDocumentPhrases(v []string, value smithyjson.Value) e return nil } +func awsAwsjson11_serializeDocumentPiiEntityTypes(v []types.PiiEntityType, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + func awsAwsjson11_serializeDocumentRelativeTimeRange(v *types.RelativeTimeRange, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/transcribe/types/enums.go b/service/transcribe/types/enums.go index 1699aaffdc9..d7999d2bf8f 100644 --- a/service/transcribe/types/enums.go +++ b/service/transcribe/types/enums.go @@ -261,6 +261,44 @@ func (ParticipantRole) Values() []ParticipantRole { } } +type PiiEntityType string + +// Enum values for PiiEntityType +const ( + PiiEntityTypeBankAccountNumber PiiEntityType = "BANK_ACCOUNT_NUMBER" + PiiEntityTypeBankRouting PiiEntityType = "BANK_ROUTING" + PiiEntityTypeCreditDebitNumber PiiEntityType = "CREDIT_DEBIT_NUMBER" + PiiEntityTypeCreditDebitCvv PiiEntityType = "CREDIT_DEBIT_CVV" + PiiEntityTypeCreditDebitExpiry PiiEntityType = "CREDIT_DEBIT_EXPIRY" + PiiEntityTypePin PiiEntityType = "PIN" + PiiEntityTypeEmail PiiEntityType = "EMAIL" + PiiEntityTypeAddress PiiEntityType = "ADDRESS" + PiiEntityTypeName PiiEntityType = "NAME" + PiiEntityTypePhone PiiEntityType = "PHONE" + PiiEntityTypeSsn PiiEntityType = "SSN" + PiiEntityTypeAll PiiEntityType = "ALL" +) + +// Values returns all known values for PiiEntityType. 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 (PiiEntityType) Values() []PiiEntityType { + return []PiiEntityType{ + "BANK_ACCOUNT_NUMBER", + "BANK_ROUTING", + "CREDIT_DEBIT_NUMBER", + "CREDIT_DEBIT_CVV", + "CREDIT_DEBIT_EXPIRY", + "PIN", + "EMAIL", + "ADDRESS", + "NAME", + "PHONE", + "SSN", + "ALL", + } +} + type RedactionOutput string // Enum values for RedactionOutput diff --git a/service/transcribe/types/types.go b/service/transcribe/types/types.go index 4ebfc7baf29..0986ab0b45b 100644 --- a/service/transcribe/types/types.go +++ b/service/transcribe/types/types.go @@ -268,6 +268,10 @@ type ContentRedaction struct { // This member is required. RedactionType RedactionType + // The types of personally identifiable information (PII) you want to redact in + // your transcript. + PiiEntityTypes []PiiEntityType + noSmithyDocumentSerde }