From 5814f6f73ae62d0029cc6b8045351f3c5a6511a7 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Fri, 10 Dec 2021 11:22:03 -0800 Subject: [PATCH 1/7] Sync Models --- .../aws-models/apigateway.2015-07-09.json | 12 +- .../aws-models/appsync.2017-07-25.json | 965 +++++++++--- .../chimesdkmessaging.2021-05-15.json | 55 +- .../aws-models/cloudwatchlogs.2014-03-28.json | 17 +- .../comprehendmedical.2018-10-30.json | 887 ++++++++++- .../customerprofiles.2020-08-15.json | 67 +- .../aws-models/datasync.2018-11-09.json | 147 +- .../aws-models/devopsguru.2020-12-01.json | 10 + .../aws-models/ec2.2016-11-15.json | 28 +- .../aws-models/finspacedata.2020-07-13.json | 54 +- .../aws-models/forecast.2018-06-26.json | 138 +- .../aws-models/health.2016-08-04.json | 22 +- .../aws-models/imagebuilder.2019-12-02.json | 228 ++- .../aws-models/iot.2015-05-28.json | 108 +- .../aws-models/lexmodelsv2.2020-08-07.json | 145 +- .../aws-models/location.2020-11-19.json | 321 +++- .../aws-models/lookoutmetrics.2017-07-25.json | 192 ++- .../aws-models/lookoutvision.2020-11-20.json | 811 ++++++++++- .../aws-models/mediaconnect.2018-11-14.json | 129 +- .../networkfirewall.2020-11-12.json | 206 ++- .../aws-models/nimble.2020-08-01.json | 482 +++--- .../aws-models/outposts.2019-12-03.json | 89 +- .../aws-models/qldb.2019-01-02.json | 99 +- .../aws-models/redshift.2012-12-01.json | 12 +- .../aws-models/route53.2013-04-01.json | 79 +- .../aws-models/route53domains.2014-05-15.json | 608 +++++++- ...ute53recoverycontrolconfig.2020-11-02.json | 493 +++++-- .../aws-models/sagemaker.2017-07-24.json | 18 +- .../aws-models/savingsplans.2019-06-28.json | 34 +- .../aws-models/secretsmanager.2017-10-17.json | 364 ++--- .../aws-models/securityhub.2018-10-26.json | 1292 +++++++++++++++-- .../aws-models/sms.2016-10-24.json | 132 +- .../aws-models/support.2013-04-15.json | 148 +- .../aws-models/transfer.2018-11-05.json | 45 +- .../aws-models/workmail.2017-10-01.json | 204 ++- .../smithy/aws/go/codegen/endpoints.json | 31 + 36 files changed, 7165 insertions(+), 1507 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/apigateway.2015-07-09.json b/codegen/sdk-codegen/aws-models/apigateway.2015-07-09.json index 034e3db749f..b7202b6fcbe 100644 --- a/codegen/sdk-codegen/aws-models/apigateway.2015-07-09.json +++ b/codegen/sdk-codegen/aws-models/apigateway.2015-07-09.json @@ -8839,7 +8839,7 @@ "limit": { "target": "com.amazonaws.apigateway#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of requests that can be made in a given time period.

" + "smithy.api#documentation": "

The target maximum number of requests that can be made in a given time period.

" } }, "offset": { @@ -9755,13 +9755,13 @@ "burstLimit": { "target": "com.amazonaws.apigateway#Integer", "traits": { - "smithy.api#documentation": "

The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.

" + "smithy.api#documentation": "

The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.

" } }, "rateLimit": { "target": "com.amazonaws.apigateway#Double", "traits": { - "smithy.api#documentation": "

The API request steady-state rate limit.

" + "smithy.api#documentation": "

The API target request rate limit.

" } } }, @@ -11415,13 +11415,13 @@ "throttle": { "target": "com.amazonaws.apigateway#ThrottleSettings", "traits": { - "smithy.api#documentation": "

The request throttle limits of a usage plan.

" + "smithy.api#documentation": "

Map containing method level throttling information for API stage in a usage plan.

" } }, "quota": { "target": "com.amazonaws.apigateway#QuotaSettings", "traits": { - "smithy.api#documentation": "

The maximum number of permitted requests per a given unit time interval.

" + "smithy.api#documentation": "

The target maximum number of permitted requests per a given unit time interval.

" } }, "productCode": { @@ -11438,7 +11438,7 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a usage plan than can specify who can assess associated API stages with specified request limits and quotas.

\n
\n

In a usage plan, you associate an API by specifying the API's Id and a stage name of the specified API. You add plan customers by adding API keys to the plan.

\n
\n
\n Create and Use Usage Plans\n
" + "smithy.api#documentation": "

Represents a usage plan used to specify who can assess associated API stages. Optionally, target request rate and quota limits can be set. \n In some cases clients can exceed the targets that you set. Don’t rely on usage plans to control costs. \n Consider using AWS Budgets to monitor costs \n and AWS WAF to manage API requests.

\n
\n

In a usage plan, you associate an API by specifying the API's Id and a stage name of the specified API. You add plan customers by adding API keys to the plan.

\n
\n
\n Create and Use Usage Plans\n
" } }, "com.amazonaws.apigateway#UsagePlanKey": { diff --git a/codegen/sdk-codegen/aws-models/appsync.2017-07-25.json b/codegen/sdk-codegen/aws-models/appsync.2017-07-25.json index c885c728bb4..8be4c799ec6 100644 --- a/codegen/sdk-codegen/aws-models/appsync.2017-07-25.json +++ b/codegen/sdk-codegen/aws-models/appsync.2017-07-25.json @@ -31,8 +31,29 @@ "shapes": { "com.amazonaws.appsync#AWSDeepdishControlPlaneService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "AppSync", + "arnNamespace": "appsync", + "cloudFormationName": "AppSync", + "cloudTrailEventSource": "appsync.amazonaws.com", + "endpointPrefix": "appsync" + }, + "aws.auth#sigv4": { + "name": "appsync" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

AppSync provides API actions for creating and interacting with data\n sources using GraphQL from your application.

", + "smithy.api#title": "AWS AppSync", + "smithy.api#xmlNamespace": { + "uri": "http://appsync.amazonaws.com" + } + }, "version": "2017-07-25", "operations": [ + { + "target": "com.amazonaws.appsync#AssociateApi" + }, { "target": "com.amazonaws.appsync#CreateApiCache" }, @@ -42,6 +63,9 @@ { "target": "com.amazonaws.appsync#CreateDataSource" }, + { + "target": "com.amazonaws.appsync#CreateDomainName" + }, { "target": "com.amazonaws.appsync#CreateFunction" }, @@ -63,6 +87,9 @@ { "target": "com.amazonaws.appsync#DeleteDataSource" }, + { + "target": "com.amazonaws.appsync#DeleteDomainName" + }, { "target": "com.amazonaws.appsync#DeleteFunction" }, @@ -75,15 +102,24 @@ { "target": "com.amazonaws.appsync#DeleteType" }, + { + "target": "com.amazonaws.appsync#DisassociateApi" + }, { "target": "com.amazonaws.appsync#FlushApiCache" }, + { + "target": "com.amazonaws.appsync#GetApiAssociation" + }, { "target": "com.amazonaws.appsync#GetApiCache" }, { "target": "com.amazonaws.appsync#GetDataSource" }, + { + "target": "com.amazonaws.appsync#GetDomainName" + }, { "target": "com.amazonaws.appsync#GetFunction" }, @@ -108,6 +144,9 @@ { "target": "com.amazonaws.appsync#ListDataSources" }, + { + "target": "com.amazonaws.appsync#ListDomainNames" + }, { "target": "com.amazonaws.appsync#ListFunctions" }, @@ -144,6 +183,9 @@ { "target": "com.amazonaws.appsync#UpdateDataSource" }, + { + "target": "com.amazonaws.appsync#UpdateDomainName" + }, { "target": "com.amazonaws.appsync#UpdateFunction" }, @@ -156,25 +198,7 @@ { "target": "com.amazonaws.appsync#UpdateType" } - ], - "traits": { - "aws.api#service": { - "sdkId": "AppSync", - "arnNamespace": "appsync", - "cloudFormationName": "AppSync", - "cloudTrailEventSource": "appsync.amazonaws.com", - "endpointPrefix": "appsync" - }, - "aws.auth#sigv4": { - "name": "appsync" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

AppSync provides API actions for creating and interacting with data\n sources using GraphQL from your application.

", - "smithy.api#title": "AWS AppSync", - "smithy.api#xmlNamespace": { - "uri": "http://appsync.amazonaws.com" - } - } + ] }, "com.amazonaws.appsync#AccessDeniedException": { "type": "structure", @@ -184,7 +208,7 @@ } }, "traits": { - "smithy.api#documentation": "

You do not have access to perform this operation on this resource.

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

You don't have access to perform this operation on this resource.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -195,13 +219,13 @@ "authenticationType": { "target": "com.amazonaws.appsync#AuthenticationType", "traits": { - "smithy.api#documentation": "

The authentication type: API key, Identity and Access Management, OIDC, Amazon Cognito user\n pools, or Amazon Web Services Lambda.

" + "smithy.api#documentation": "

The authentication type: API key, Identity and Access Management (IAM), OpenID\n Connect (OIDC), Amazon Cognito user pools, or Lambda.

" } }, "openIDConnectConfig": { "target": "com.amazonaws.appsync#OpenIDConnectConfig", "traits": { - "smithy.api#documentation": "

The OpenID Connect configuration.

" + "smithy.api#documentation": "

The OIDC configuration.

" } }, "userPoolConfig": { @@ -213,7 +237,7 @@ "lambdaAuthorizerConfig": { "target": "com.amazonaws.appsync#LambdaAuthorizerConfig", "traits": { - "smithy.api#documentation": "

Configuration for Amazon Web Services Lambda function authorization.

" + "smithy.api#documentation": "

Configuration for Lambda function authorization.

" } } }, @@ -227,13 +251,45 @@ "target": "com.amazonaws.appsync#AdditionalAuthenticationProvider" } }, + "com.amazonaws.appsync#ApiAssociation": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

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

The API ID.

" + } + }, + "associationStatus": { + "target": "com.amazonaws.appsync#AssociationStatus", + "traits": { + "smithy.api#documentation": "

Identifies the status of an association.

\n " + } + }, + "deploymentDetail": { + "target": "com.amazonaws.appsync#String", + "traits": { + "smithy.api#documentation": "

Details about the last deployment status.

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

Describes an ApiAssociation object.

" + } + }, "com.amazonaws.appsync#ApiCache": { "type": "structure", "members": { "ttl": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

TTL in seconds for cache entries.

\n

Valid values are between 1 and 3600 seconds.

" + "smithy.api#documentation": "

TTL in seconds for cache entries.

\n

Valid values are 1–3,600 seconds.

" } }, "apiCachingBehavior": { @@ -245,13 +301,13 @@ "transitEncryptionEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

Transit encryption flag when connecting to cache. This setting cannot be updated after\n creation.

" + "smithy.api#documentation": "

Transit encryption flag when connecting to cache. You cannot update this setting after\n creation.

" } }, "atRestEncryptionEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

At rest encryption flag for cache. This setting cannot be updated after creation.

" + "smithy.api#documentation": "

At-rest encryption flag for cache. You cannot update this setting after creation.

" } }, "type": { @@ -409,7 +465,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an API key.

\n

Customers invoke AppSync GraphQL API operations with API keys as an\n identity mechanism. There are two key versions:

\n

\n da1: This version was introduced at launch in November\n 2017. These keys always expire after 7 days. Key expiration is managed by Amazon DynamoDB\n TTL. The keys ceased to be valid after February 21, 2018 and should not be used after that\n date.

\n \n

\n da2: This version was introduced in February 2018 when\n AppSync added support to extend key expiration.

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

Describes an API key.

\n

Customers invoke AppSync GraphQL API operations with API keys as an\n identity mechanism. There are two key versions:

\n

\n da1: We introduced this version at launch in November\n 2017. These keys always expire after 7 days. Amazon DynamoDB TTL manages key\n expiration. These keys ceased to be valid after February 21, 2018, and they should no\n longer be used.

\n \n

\n da2: We introduced this version in February 2018 when\n AppSync added support to extend key expiration.

\n " } }, "com.amazonaws.appsync#ApiKeyLimitExceededException": { @@ -457,6 +513,87 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.appsync#AssociateApi": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#AssociateApiRequest" + }, + "output": { + "target": "com.amazonaws.appsync#AssociateApiResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Maps an endpoint to your custom domain.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domainnames/{domainName}/apiassociation", + "code": 200 + } + } + }, + "com.amazonaws.appsync#AssociateApiRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "apiId": { + "target": "com.amazonaws.appsync#String", + "traits": { + "smithy.api#documentation": "

The API ID.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appsync#AssociateApiResponse": { + "type": "structure", + "members": { + "apiAssociation": { + "target": "com.amazonaws.appsync#ApiAssociation", + "traits": { + "smithy.api#documentation": "

The ApiAssociation object.

" + } + } + } + }, + "com.amazonaws.appsync#AssociationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PROCESSING", + "name": "Processing" + }, + { + "value": "FAILED", + "name": "Failed" + }, + { + "value": "SUCCESS", + "name": "Success" + } + ] + } + }, "com.amazonaws.appsync#AuthenticationType": { "type": "string", "traits": { @@ -490,19 +627,19 @@ "authorizationType": { "target": "com.amazonaws.appsync#AuthorizationType", "traits": { - "smithy.api#documentation": "

The authorization type required by the HTTP endpoint.

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

The authorization type that the HTTP endpoint requires.

\n ", "smithy.api#required": {} } }, "awsIamConfig": { "target": "com.amazonaws.appsync#AwsIamConfig", "traits": { - "smithy.api#documentation": "

The Identity and Access Management settings.

" + "smithy.api#documentation": "

The Identity and Access Management (IAM) settings.

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

The authorization config in case the HTTP endpoint requires authorization.

" + "smithy.api#documentation": "

The authorization configuration in case the HTTP endpoint requires authorization.

" } }, "com.amazonaws.appsync#AuthorizationType": { @@ -522,18 +659,18 @@ "signingRegion": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The signing region for Identity and Access Management authorization.

" + "smithy.api#documentation": "

The signing Amazon Web Services Region for IAM authorization.

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

The signing service name for Identity and Access Management authorization.

" + "smithy.api#documentation": "

The signing service name for IAM authorization.

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

The Identity and Access Management configuration.

" + "smithy.api#documentation": "

The Identity and Access Management (IAM) configuration.

" } }, "com.amazonaws.appsync#BadRequestException": { @@ -544,7 +681,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request is not well formed. For example, a value is invalid or a required field is\n missing. Check the field values, and then try again.

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

The request is not well formed. For example, a value is invalid or a required field is\n missing. Check the field values, and then try again.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -567,18 +704,18 @@ "ttl": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

The TTL in seconds for a resolver that has caching enabled.

\n

Valid values are between 1 and 3600 seconds.

" + "smithy.api#documentation": "

The TTL in seconds for a resolver that has caching activated.

\n

Valid values are 1–3,600 seconds.

" } }, "cachingKeys": { "target": "com.amazonaws.appsync#CachingKeys", "traits": { - "smithy.api#documentation": "

The caching keys for a resolver that has caching enabled.

\n

Valid values are entries from the $context.arguments,\n $context.source, and $context.identity maps.

" + "smithy.api#documentation": "

The caching keys for a resolver that has caching activated.

\n

Valid values are entries from the $context.arguments,\n $context.source, and $context.identity maps.

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

The caching configuration for a resolver that has caching enabled.

" + "smithy.api#documentation": "

The caching configuration for a resolver that has caching activated.

" } }, "com.amazonaws.appsync#CachingKeys": { @@ -587,6 +724,16 @@ "target": "com.amazonaws.appsync#String" } }, + "com.amazonaws.appsync#CertificateArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[a-z-]*:(acm|iam):[a-z0-9-]*:\\d{12}:(certificate|server-certificate)/[0-9A-Za-z_/-]*$" + } + }, "com.amazonaws.appsync#CognitoUserPoolConfig": { "type": "structure", "members": { @@ -623,7 +770,7 @@ } }, "traits": { - "smithy.api#documentation": "

Another modification is in progress at this time and it must complete before you can\n make your change.

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

Another modification is in progress at this time and it must complete before you can\n make your change.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -706,7 +853,7 @@ "apiId": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The GraphQL API Id.

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

The GraphQL API ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -714,20 +861,20 @@ "ttl": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

TTL in seconds for cache entries.

\n

Valid values are between 1 and 3600 seconds.

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

TTL in seconds for cache entries.

\n

Valid values are 1–3,600 seconds.

", "smithy.api#required": {} } }, "transitEncryptionEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

Transit encryption flag when connecting to cache. This setting cannot be updated after\n creation.

" + "smithy.api#documentation": "

Transit encryption flag when connecting to cache. You cannot update this setting after\n creation.

" } }, "atRestEncryptionEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

At rest encryption flag for cache. This setting cannot be updated after creation.

" + "smithy.api#documentation": "

At-rest encryption flag for cache. You cannot update this setting after creation.

" } }, "apiCachingBehavior": { @@ -795,7 +942,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a unique key that you can distribute to clients who are executing your\n API.

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

Creates a unique key that you can distribute to clients who invoke your API.

", "smithy.api#http": { "method": "POST", "uri": "/v1/apis/{apiId}/apikeys", @@ -823,7 +970,7 @@ "expires": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

The time from creation time after which the API key expires. The date is represented as\n seconds since the epoch, rounded down to the nearest hour. The default value for this\n parameter is 7 days from creation time. For more information, see .

" + "smithy.api#documentation": "

From the creation time, the time after which the API key expires. The date is\n represented as seconds since the epoch, rounded down to the nearest hour. The default value\n for this parameter is 7 days from creation time. For more information, see .

" } } } @@ -907,7 +1054,7 @@ "serviceRoleArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The Identity and Access Management service role ARN for the data source. The system assumes this\n role when accessing the data source.

" + "smithy.api#documentation": "

The Identity and Access Management (IAM) service role Amazon Resource Name (ARN)\n for the data source. The system assumes this role when accessing the data source.

" } }, "dynamodbConfig": { @@ -919,7 +1066,7 @@ "lambdaConfig": { "target": "com.amazonaws.appsync#LambdaDataSourceConfig", "traits": { - "smithy.api#documentation": "

Amazon Web Services Lambda settings.

" + "smithy.api#documentation": "

Lambda settings.

" } }, "elasticsearchConfig": { @@ -959,6 +1106,70 @@ } } }, + "com.amazonaws.appsync#CreateDomainName": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#CreateDomainNameRequest" + }, + "output": { + "target": "com.amazonaws.appsync#CreateDomainNameResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a custom DomainName object.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domainnames", + "code": 200 + } + } + }, + "com.amazonaws.appsync#CreateDomainNameRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#required": {} + } + }, + "certificateArn": { + "target": "com.amazonaws.appsync#CertificateArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the certificate. This can be an Certificate Manager\n (ACM) certificate or an Identity and Access Management (IAM)\n server certificate.

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

A description of the DomainName.

" + } + } + } + }, + "com.amazonaws.appsync#CreateDomainNameResponse": { + "type": "structure", + "members": { + "domainNameConfig": { + "target": "com.amazonaws.appsync#DomainNameConfig", + "traits": { + "smithy.api#documentation": "

The configuration for the DomainName.

" + } + } + } + }, "com.amazonaws.appsync#CreateFunction": { "type": "operation", "input": { @@ -982,7 +1193,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a Function object.

\n

A function is a reusable entity. Multiple functions can be used to compose the resolver\n logic.

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

Creates a Function object.

\n

A function is a reusable entity. You can use multiple functions to compose the resolver\n logic.

", "smithy.api#http": { "method": "POST", "uri": "/v1/apis/{apiId}/functions", @@ -1030,13 +1241,13 @@ "responseMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

The Function response mapping template.

" + "smithy.api#documentation": "

The Function response mapping template.

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

The version of the request mapping template. Currently the supported value\n is 2018-05-29.

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

The version of the request mapping template. Currently, the supported value\n is 2018-05-29.

", "smithy.api#required": {} } }, @@ -1112,7 +1323,7 @@ "authenticationType": { "target": "com.amazonaws.appsync#AuthenticationType", "traits": { - "smithy.api#documentation": "

The authentication type: API key, Identity and Access Management, OIDC, Amazon Cognito user\n pools, or Amazon Web Services Lambda.

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

The authentication type: API key, Identity and Access Management (IAM), OpenID\n Connect (OIDC), Amazon Cognito user pools, or Lambda.

", "smithy.api#required": {} } }, @@ -1125,7 +1336,7 @@ "openIDConnectConfig": { "target": "com.amazonaws.appsync#OpenIDConnectConfig", "traits": { - "smithy.api#documentation": "

The OpenID Connect configuration.

" + "smithy.api#documentation": "

The OIDC configuration.

" } }, "tags": { @@ -1143,13 +1354,13 @@ "xrayEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

A flag indicating whether to enable X-Ray tracing for the\n GraphqlApi.

" + "smithy.api#documentation": "

A flag indicating whether to use X-Ray tracing for the\n GraphqlApi.

" } }, "lambdaAuthorizerConfig": { "target": "com.amazonaws.appsync#LambdaAuthorizerConfig", "traits": { - "smithy.api#documentation": "

Configuration for Amazon Web Services Lambda function authorization.

" + "smithy.api#documentation": "

Configuration for Lambda function authorization.

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

Creates a Resolver object.

\n

A resolver converts incoming requests into a format that a data source can understand\n and converts the data source's responses into GraphQL.

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

Creates a Resolver object.

\n

A resolver converts incoming requests into a format that a data source can understand,\n and converts the data source's responses into GraphQL.

", "smithy.api#http": { "method": "POST", "uri": "/v1/apis/{apiId}/types/{typeName}/resolvers", @@ -1231,19 +1442,19 @@ "requestMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

The mapping template to be used for requests.

\n

A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

\n

VTL request mapping templates are optional when using a Lambda data source. For all\n other data sources, VTL request and response mapping templates are required.

" + "smithy.api#documentation": "

The mapping template to use for requests.

\n

A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

\n

VTL request mapping templates are optional when using an Lambda data\n source. For all other data sources, VTL request and response mapping templates are\n required.

" } }, "responseMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

The mapping template to be used for responses from the data source.

" + "smithy.api#documentation": "

The mapping template to use for responses from the data source.

" } }, "kind": { "target": "com.amazonaws.appsync#ResolverKind", "traits": { - "smithy.api#documentation": "

The resolver type.

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

The resolver type.

\n " } }, "pipelineConfig": { @@ -1255,7 +1466,7 @@ "syncConfig": { "target": "com.amazonaws.appsync#SyncConfig", "traits": { - "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned datasource.

" + "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned data source.

" } }, "cachingConfig": { @@ -1355,7 +1566,7 @@ "dataSourceArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The data source ARN.

" + "smithy.api#documentation": "

The data source Amazon Resource Name (ARN).

" } }, "name": { @@ -1373,25 +1584,25 @@ "type": { "target": "com.amazonaws.appsync#DataSourceType", "traits": { - "smithy.api#documentation": "

The type of the data source.

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

The type of the data source.

\n " } }, "serviceRoleArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The Identity and Access Management service role ARN for the data source. The system assumes this\n role when accessing the data source.

" + "smithy.api#documentation": "

The Identity and Access Management (IAM) service role Amazon Resource Name (ARN)\n for the data source. The system assumes this role when accessing the data source.

" } }, "dynamodbConfig": { "target": "com.amazonaws.appsync#DynamodbDataSourceConfig", "traits": { - "smithy.api#documentation": "

Amazon DynamoDB settings.

" + "smithy.api#documentation": "

DynamoDB settings.

" } }, "lambdaConfig": { "target": "com.amazonaws.appsync#LambdaDataSourceConfig", "traits": { - "smithy.api#documentation": "

Amazon Web Services Lambda settings.

" + "smithy.api#documentation": "

Lambda settings.

" } }, "elasticsearchConfig": { @@ -1651,6 +1862,57 @@ "type": "structure", "members": {} }, + "com.amazonaws.appsync#DeleteDomainName": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#DeleteDomainNameRequest" + }, + "output": { + "target": "com.amazonaws.appsync#DeleteDomainNameResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom DomainName object.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domainnames/{domainName}", + "code": 200 + } + } + }, + "com.amazonaws.appsync#DeleteDomainNameRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appsync#DeleteDomainNameResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.appsync#DeleteFunction": { "type": "operation", "input": { @@ -1821,19 +2083,117 @@ } } }, - "com.amazonaws.appsync#DeleteResolverResponse": { - "type": "structure", - "members": {} + "com.amazonaws.appsync#DeleteResolverResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.appsync#DeleteType": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#DeleteTypeRequest" + }, + "output": { + "target": "com.amazonaws.appsync#DeleteTypeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + }, + { + "target": "com.amazonaws.appsync#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a Type object.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/v1/apis/{apiId}/types/{typeName}", + "code": 200 + } + } + }, + "com.amazonaws.appsync#DeleteTypeRequest": { + "type": "structure", + "members": { + "apiId": { + "target": "com.amazonaws.appsync#String", + "traits": { + "smithy.api#documentation": "

The API ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "typeName": { + "target": "com.amazonaws.appsync#ResourceName", + "traits": { + "smithy.api#documentation": "

The type name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appsync#DeleteTypeResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.appsync#DeltaSyncConfig": { + "type": "structure", + "members": { + "baseTableTTL": { + "target": "com.amazonaws.appsync#Long", + "traits": { + "smithy.api#documentation": "

The number of minutes that an Item is stored in the data source.

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

The Delta Sync table name.

" + } + }, + "deltaSyncTableTTL": { + "target": "com.amazonaws.appsync#Long", + "traits": { + "smithy.api#documentation": "

The number of minutes that a Delta Sync log entry is stored in the Delta Sync\n table.

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

Describes a Delta Sync configuration.

" + } + }, + "com.amazonaws.appsync#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + }, + "smithy.api#pattern": "^.*$" + } }, - "com.amazonaws.appsync#DeleteType": { + "com.amazonaws.appsync#DisassociateApi": { "type": "operation", "input": { - "target": "com.amazonaws.appsync#DeleteTypeRequest" + "target": "com.amazonaws.appsync#DisassociateApiRequest" }, "output": { - "target": "com.amazonaws.appsync#DeleteTypeResponse" + "target": "com.amazonaws.appsync#DisassociateApiResponse" }, "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, { "target": "com.amazonaws.appsync#BadRequestException" }, @@ -1845,69 +2205,86 @@ }, { "target": "com.amazonaws.appsync#NotFoundException" - }, - { - "target": "com.amazonaws.appsync#UnauthorizedException" } ], "traits": { - "smithy.api#documentation": "

Deletes a Type object.

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

Removes an ApiAssociation object from a custom domain.

", "smithy.api#http": { "method": "DELETE", - "uri": "/v1/apis/{apiId}/types/{typeName}", + "uri": "/domainnames/{domainName}/apiassociation", "code": 200 } } }, - "com.amazonaws.appsync#DeleteTypeRequest": { + "com.amazonaws.appsync#DisassociateApiRequest": { "type": "structure", "members": { - "apiId": { - "target": "com.amazonaws.appsync#String", - "traits": { - "smithy.api#documentation": "

The API ID.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "typeName": { - "target": "com.amazonaws.appsync#ResourceName", + "domainName": { + "target": "com.amazonaws.appsync#DomainName", "traits": { - "smithy.api#documentation": "

The type name.

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

The domain name.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } } }, - "com.amazonaws.appsync#DeleteTypeResponse": { + "com.amazonaws.appsync#DisassociateApiResponse": { "type": "structure", "members": {} }, - "com.amazonaws.appsync#DeltaSyncConfig": { + "com.amazonaws.appsync#DomainName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^(\\*[\\w\\d-]*\\.)?([\\w\\d-]+\\.)+[\\w\\d-]+$" + } + }, + "com.amazonaws.appsync#DomainNameConfig": { "type": "structure", "members": { - "baseTableTTL": { - "target": "com.amazonaws.appsync#Long", + "domainName": { + "target": "com.amazonaws.appsync#DomainName", "traits": { - "smithy.api#documentation": "

The number of minutes an Item is stored in the datasource.

" + "smithy.api#documentation": "

The domain name.

" } }, - "deltaSyncTableName": { + "description": { + "target": "com.amazonaws.appsync#Description", + "traits": { + "smithy.api#documentation": "

A description of the DomainName configuration.

" + } + }, + "certificateArn": { + "target": "com.amazonaws.appsync#CertificateArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the certificate. This can be an Certificate Manager\n (ACM) certificate or an Identity and Access Management (IAM)\n server certificate.

" + } + }, + "appsyncDomainName": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The Delta Sync table name.

" + "smithy.api#documentation": "

The domain name that AppSync provides.

" } }, - "deltaSyncTableTTL": { - "target": "com.amazonaws.appsync#Long", + "hostedZoneId": { + "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The number of minutes a Delta Sync log entry is stored in the Delta Sync table.

" + "smithy.api#documentation": "

The ID of your Amazon Route 53 hosted zone.

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

Describes a Delta Sync configuration.

" + "smithy.api#documentation": "

Describes a configuration for a custom domain.

" + } + }, + "com.amazonaws.appsync#DomainNameConfigs": { + "type": "list", + "member": { + "target": "com.amazonaws.appsync#DomainNameConfig" } }, "com.amazonaws.appsync#DynamodbDataSourceConfig": { @@ -1936,7 +2313,7 @@ "deltaSyncConfig": { "target": "com.amazonaws.appsync#DeltaSyncConfig", "traits": { - "smithy.api#documentation": "

The DeltaSyncConfig for a versioned datasource.

" + "smithy.api#documentation": "

The DeltaSyncConfig for a versioned data source.

" } }, "versioned": { @@ -2063,7 +2440,7 @@ "functionArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The ARN of the Function object.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Function object.

" } }, "name": { @@ -2099,7 +2476,7 @@ "functionVersion": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The version of the request mapping template. Currently only the 2018-05-29 version of\n the template is supported.

" + "smithy.api#documentation": "

The version of the request mapping template. Currently, only the 2018-05-29 version of\n the template is supported.

" } }, "syncConfig": { @@ -2107,7 +2484,7 @@ } }, "traits": { - "smithy.api#documentation": "

A function is a reusable entity. Multiple functions can be used to compose the resolver\n logic.

" + "smithy.api#documentation": "

A function is a reusable entity. You can use multiple functions to compose the resolver\n logic.

" } }, "com.amazonaws.appsync#Functions": { @@ -2122,6 +2499,61 @@ "target": "com.amazonaws.appsync#String" } }, + "com.amazonaws.appsync#GetApiAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#GetApiAssociationRequest" + }, + "output": { + "target": "com.amazonaws.appsync#GetApiAssociationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves an ApiAssociation object.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domainnames/{domainName}/apiassociation", + "code": 200 + } + } + }, + "com.amazonaws.appsync#GetApiAssociationRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appsync#GetApiAssociationResponse": { + "type": "structure", + "members": { + "apiAssociation": { + "target": "com.amazonaws.appsync#ApiAssociation", + "traits": { + "smithy.api#documentation": "

The ApiAssociation object.

" + } + } + } + }, "com.amazonaws.appsync#GetApiCache": { "type": "operation", "input": { @@ -2252,6 +2684,61 @@ } } }, + "com.amazonaws.appsync#GetDomainName": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#GetDomainNameRequest" + }, + "output": { + "target": "com.amazonaws.appsync#GetDomainNameResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a custom DomainName object.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domainnames/{domainName}", + "code": 200 + } + } + }, + "com.amazonaws.appsync#GetDomainNameRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appsync#GetDomainNameResponse": { + "type": "structure", + "members": { + "domainNameConfig": { + "target": "com.amazonaws.appsync#DomainNameConfig", + "traits": { + "smithy.api#documentation": "

The configuration for the DomainName.

" + } + } + } + }, "com.amazonaws.appsync#GetFunction": { "type": "operation", "input": { @@ -2699,7 +3186,7 @@ "arn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The ARN.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN).

" } }, "uris": { @@ -2723,19 +3210,19 @@ "xrayEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

A flag representing whether X-Ray tracing is enabled for this\n GraphqlApi.

" + "smithy.api#documentation": "

A flag indicating whether to use X-Ray tracing for this\n GraphqlApi.

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

The ARN of the WAF ACL associated with this GraphqlApi,\n if one exists.

" + "smithy.api#documentation": "

The ARN of the WAF access control list (ACL) associated with this\n GraphqlApi, if one exists.

" } }, "lambdaAuthorizerConfig": { "target": "com.amazonaws.appsync#LambdaAuthorizerConfig", "traits": { - "smithy.api#documentation": "

Configuration for Amazon Web Services Lambda function authorization.

" + "smithy.api#documentation": "

Configuration for Lambda function authorization.

" } } }, @@ -2755,13 +3242,13 @@ "endpoint": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The HTTP URL endpoint. You can either specify the domain name or IP, and port\n combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified,\n AppSync uses the default port 80 for the HTTP endpoint and port 443 for\n HTTPS endpoints.

" + "smithy.api#documentation": "

The HTTP URL endpoint. You can specify either the domain name or IP, and port\n combination, and the URL scheme must be HTTP or HTTPS. If you don't specify the port,\n AppSync uses the default port 80 for the HTTP endpoint and port 443 for\n HTTPS endpoints.

" } }, "authorizationConfig": { "target": "com.amazonaws.appsync#AuthorizationConfig", "traits": { - "smithy.api#documentation": "

The authorization config in case the HTTP endpoint requires authorization.

" + "smithy.api#documentation": "

The authorization configuration in case the HTTP endpoint requires authorization.

" } } }, @@ -2788,13 +3275,13 @@ "authorizerResultTtlInSeconds": { "target": "com.amazonaws.appsync#TTL", "traits": { - "smithy.api#documentation": "

The number of seconds a response should be cached for. The default is 5 minutes (300\n seconds). The Lambda function can override this by returning a ttlOverride key\n in its response. A value of 0 disables caching of responses.

" + "smithy.api#documentation": "

The number of seconds a response should be cached for. The default is 5 minutes (300\n seconds). The Lambda function can override this by returning a\n ttlOverride key in its response. A value of 0 disables caching of\n responses.

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

The ARN of the Lambda function to be called for authorization. This may be a standard\n Lambda ARN, a version ARN (.../v3) or alias ARN.

\n

\n Note: This Lambda function must have the following resource-based\n policy assigned to it. When configuring Lambda authorizers in the Console, this is done for\n you. To do so with the Amazon Web Services CLI, run the following:

\n

\n aws lambda add-permission --function-name\n \"arn:aws:lambda:us-east-2:111122223333:function:my-function\" --statement-id \"appsync\"\n --principal appsync.amazonaws.com --action lambda:InvokeFunction\n

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

The Amazon Resource Name (ARN) of the Lambda function to be called for\n authorization. This can be a standard Lambda ARN, a version ARN\n (.../v3), or an alias ARN.

\n

\n Note: This Lambda function must have the\n following resource-based policy assigned to it. When configuring Lambda\n authorizers in the console, this is done for you. To use the Command Line Interface\n (CLI), run the following:

\n

\n aws lambda add-permission --function-name\n \"arn:aws:lambda:us-east-2:111122223333:function:my-function\" --statement-id \"appsync\"\n --principal appsync.amazonaws.com --action lambda:InvokeFunction\n

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

A LambdaAuthorizerConfig holds configuration on how to authorize AppSync\n API access when using the AWS_LAMBDA authorizer mode. Be aware that an AppSync\n API may have only one Lambda authorizer configured at a time.

" + "smithy.api#documentation": "

A LambdaAuthorizerConfig specifies how to authorize AppSync\n API access when using the AWS_LAMBDA authorizer mode. Be aware that an AppSync API can have only one Lambda authorizer configured at a\n time.

" } }, "com.amazonaws.appsync#LambdaConflictHandlerConfig": { @@ -2815,12 +3302,12 @@ "lambdaConflictHandlerArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The Arn for the Lambda function to use as the Conflict Handler.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the Lambda function to use as the\n Conflict Handler.

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

The LambdaConflictHandlerConfig object when configuring LAMBDA as the\n Conflict Handler.

" + "smithy.api#documentation": "

The LambdaConflictHandlerConfig object when configuring LAMBDA\n as the Conflict Handler.

" } }, "com.amazonaws.appsync#LambdaDataSourceConfig": { @@ -2829,13 +3316,13 @@ "lambdaFunctionArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The ARN for the Lambda function.

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

The Amazon Resource Name (ARN) for the Lambda function.

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

Describes an Amazon Web Services Lambda data source configuration.

" + "smithy.api#documentation": "

Describes an Lambda data source configuration.

" } }, "com.amazonaws.appsync#LimitExceededException": { @@ -2896,14 +3383,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -2921,7 +3408,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier to be passed in the next request to this operation to return the next set\n of items in the list.

" + "smithy.api#documentation": "

An identifier to pass in the next request to this operation to return the next set of\n items in the list.

" } } } @@ -2971,14 +3458,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -2996,7 +3483,71 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier to be passed in the next request to this operation to return the next set\n of items in the list.

" + "smithy.api#documentation": "

An identifier to pass in the next request to this operation to return the next set of\n items in the list.

" + } + } + } + }, + "com.amazonaws.appsync#ListDomainNames": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#ListDomainNamesRequest" + }, + "output": { + "target": "com.amazonaws.appsync#ListDomainNamesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists multiple custom domain names.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domainnames", + "code": 200 + } + } + }, + "com.amazonaws.appsync#ListDomainNamesRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.appsync#PaginationToken", + "traits": { + "smithy.api#documentation": "

The API token.

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

The maximum number of results that you want the request to return.

", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.appsync#ListDomainNamesResponse": { + "type": "structure", + "members": { + "domainNameConfigs": { + "target": "com.amazonaws.appsync#DomainNameConfigs", + "traits": { + "smithy.api#documentation": "

Lists configurations for multiple domain names.

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

The API token.

" } } } @@ -3046,14 +3597,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -3071,7 +3622,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

" + "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

" } } } @@ -3110,14 +3661,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -3135,7 +3686,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier to be passed in the next request to this operation to return the next set\n of items in the list.

" + "smithy.api#documentation": "

An identifier to pass in the next request to this operation to return the next set of\n items in the list.

" } } } @@ -3216,7 +3767,7 @@ "functionId": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The Function ID.

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

The function ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3231,7 +3782,7 @@ "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -3249,7 +3800,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that can be used to return the next set of items in the list.

" + "smithy.api#documentation": "

An identifier that you can use to return the next set of items in the list.

" } } } @@ -3276,14 +3827,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -3301,7 +3852,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier to be passed in the next request to this operation to return the next set\n of items in the list.

" + "smithy.api#documentation": "

An identifier to pass in the next request to this operation to return the next set of\n items in the list.

" } } } @@ -3349,7 +3900,7 @@ "resourceArn": { "target": "com.amazonaws.appsync#ResourceArn", "traits": { - "smithy.api#documentation": "

The GraphqlApi ARN.

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

The GraphqlApi Amazon Resource Name (ARN).

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3423,14 +3974,14 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier that was returned from the previous call to this operation, which can be\n used to return the next set of items in the list.

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

An identifier that was returned from the previous call to this operation, which you can\n use to return the next set of items in the list.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.appsync#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results you want the request to return.

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

The maximum number of results that you want the request to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -3448,7 +3999,7 @@ "nextToken": { "target": "com.amazonaws.appsync#PaginationToken", "traits": { - "smithy.api#documentation": "

An identifier to be passed in the next request to this operation to return the next set\n of items in the list.

" + "smithy.api#documentation": "

An identifier to pass in the next request to this operation to return the next set of\n items in the list.

" } } } @@ -3459,14 +4010,14 @@ "fieldLogLevel": { "target": "com.amazonaws.appsync#FieldLogLevel", "traits": { - "smithy.api#documentation": "

The field logging level. Values can be NONE, ERROR, or ALL.

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

The field logging level. Values can be NONE, ERROR, or ALL.

\n ", "smithy.api#required": {} } }, "cloudWatchLogsRoleArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The service role that AppSync will assume to publish to Amazon\n CloudWatch logs in your account.

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

The service role that AppSync assumes to publish to CloudWatch\n logs in your account.

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

The CloudWatch Logs configuration.

" + "smithy.api#documentation": "

The Amazon CloudWatch Logs configuration.

" } }, "com.amazonaws.appsync#Long": { @@ -3530,31 +4081,31 @@ "issuer": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The issuer for the OpenID Connect configuration. The issuer returned by discovery must\n exactly match the value of iss in the ID token.

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

The issuer for the OIDC configuration. The issuer returned by discovery must exactly\n match the value of iss in the ID token.

", "smithy.api#required": {} } }, "clientId": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The client identifier of the Relying party at the OpenID identity provider. This\n identifier is typically obtained when the Relying party is registered with the OpenID\n identity provider. You can specify a regular expression so the AppSync can\n validate against multiple client identifiers at a time.

" + "smithy.api#documentation": "

The client identifier of the relying party at the OpenID identity provider. This\n identifier is typically obtained when the relying party is registered with the OpenID\n identity provider. You can specify a regular expression so that AppSync can\n validate against multiple client identifiers at a time.

" } }, "iatTTL": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

The number of milliseconds a token is valid after being issued to a user.

" + "smithy.api#documentation": "

The number of milliseconds that a token is valid after it's issued to a user.

" } }, "authTTL": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

The number of milliseconds a token is valid after being authenticated.

" + "smithy.api#documentation": "

The number of milliseconds that a token is valid after being authenticated.

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

Describes an OpenID Connect configuration.

" + "smithy.api#documentation": "

Describes an OpenID Connect (OIDC) configuration.

" } }, "com.amazonaws.appsync#OpenSearchServiceDataSourceConfig": { @@ -3624,13 +4175,13 @@ "awsRegion": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

Amazon Web Services Region for RDS HTTP endpoint.

" + "smithy.api#documentation": "

Amazon Web Services Region for Amazon RDS HTTP endpoint.

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

Amazon RDS cluster ARN.

" + "smithy.api#documentation": "

Amazon RDS cluster Amazon Resource Name (ARN).

" } }, "databaseName": { @@ -3648,12 +4199,12 @@ "awsSecretStoreArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

Amazon Web Services secret store ARN for database credentials.

" + "smithy.api#documentation": "

Amazon Web Services secret store Amazon Resource Name (ARN) for database\n credentials.

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

The Amazon RDS HTTP endpoint configuration.

" + "smithy.api#documentation": "

The Amazon Relational Database Service (Amazon RDS) HTTP endpoint configuration.

" } }, "com.amazonaws.appsync#RelationalDatabaseDataSourceConfig": { @@ -3662,7 +4213,7 @@ "relationalDatabaseSourceType": { "target": "com.amazonaws.appsync#RelationalDatabaseSourceType", "traits": { - "smithy.api#documentation": "

Source type for the relational database.

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

Source type for the relational database.

\n " } }, "rdsHttpEndpointConfig": { @@ -3711,7 +4262,7 @@ "resolverArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The resolver ARN.

" + "smithy.api#documentation": "

The resolver Amazon Resource Name (ARN).

" } }, "requestMappingTemplate": { @@ -3729,7 +4280,7 @@ "kind": { "target": "com.amazonaws.appsync#ResolverKind", "traits": { - "smithy.api#documentation": "

The resolver type.

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

The resolver type.

\n " } }, "pipelineConfig": { @@ -3741,7 +4292,7 @@ "syncConfig": { "target": "com.amazonaws.appsync#SyncConfig", "traits": { - "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned datasource.

" + "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned data source.

" } }, "cachingConfig": { @@ -3901,24 +4452,24 @@ "conflictHandler": { "target": "com.amazonaws.appsync#ConflictHandlerType", "traits": { - "smithy.api#documentation": "

The Conflict Resolution strategy to perform in the event of a conflict.

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

The Conflict Resolution strategy to perform in the event of a conflict.

\n " } }, "conflictDetection": { "target": "com.amazonaws.appsync#ConflictDetectionType", "traits": { - "smithy.api#documentation": "

The Conflict Detection strategy to use.

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

The Conflict Detection strategy to use.

\n " } }, "lambdaConflictHandlerConfig": { "target": "com.amazonaws.appsync#LambdaConflictHandlerConfig", "traits": { - "smithy.api#documentation": "

The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict\n Handler.

" + "smithy.api#documentation": "

The LambdaConflictHandlerConfig when configuring LAMBDA as the\n Conflict Handler.

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

Describes a Sync configuration for a resolver.

\n

Contains information on which Conflict Detection as well as Resolution strategy should\n be performed when the resolver is invoked.

" + "smithy.api#documentation": "

Describes a Sync configuration for a resolver.

\n

Specifies which Conflict Detection strategy and Resolution strategy to use when the\n resolver is invoked.

" } }, "com.amazonaws.appsync#TTL": { @@ -4012,7 +4563,7 @@ "resourceArn": { "target": "com.amazonaws.appsync#ResourceArn", "traits": { - "smithy.api#documentation": "

The GraphqlApi ARN.

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

The GraphqlApi Amazon Resource Name (ARN).

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4058,7 +4609,7 @@ "arn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The type ARN.

" + "smithy.api#documentation": "

The type Amazon Resource Name (ARN).

" } }, "definition": { @@ -4107,7 +4658,7 @@ } }, "traits": { - "smithy.api#documentation": "

You are not authorized to perform this operation.

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

You aren't authorized to perform this operation.

", "smithy.api#error": "client", "smithy.api#httpError": 401 } @@ -4155,7 +4706,7 @@ "resourceArn": { "target": "com.amazonaws.appsync#ResourceArn", "traits": { - "smithy.api#documentation": "

The GraphqlApi ARN.

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

The GraphqlApi Amazon Resource Name (ARN).

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4214,7 +4765,7 @@ "apiId": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The GraphQL API Id.

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

The GraphQL API ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4222,7 +4773,7 @@ "ttl": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

TTL in seconds for cache entries.

\n

Valid values are between 1 and 3600 seconds.

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

TTL in seconds for cache entries.

\n

Valid values are 1–3,600 seconds.

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

Updates an API key. The key can be updated while it is not deleted.

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

Updates an API key. You can update the key as long as it's not deleted.

", "smithy.api#http": { "method": "POST", "uri": "/v1/apis/{apiId}/apikeys/{id}", @@ -4324,7 +4875,7 @@ "expires": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

The time from update time after which the API key expires. The date is represented as\n seconds since the epoch. For more information, see .

" + "smithy.api#documentation": "

From the update time, the time after which the API key expires. The date is represented\n as seconds since the epoch. For more information, see .

" } } } @@ -4409,7 +4960,7 @@ "serviceRoleArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

The new service role ARN for the data source.

" + "smithy.api#documentation": "

The new service role Amazon Resource Name (ARN) for the data source.

" } }, "dynamodbConfig": { @@ -4421,7 +4972,7 @@ "lambdaConfig": { "target": "com.amazonaws.appsync#LambdaDataSourceConfig", "traits": { - "smithy.api#documentation": "

The new Amazon Web Services Lambda configuration.

" + "smithy.api#documentation": "

The new Lambda configuration.

" } }, "elasticsearchConfig": { @@ -4461,6 +5012,70 @@ } } }, + "com.amazonaws.appsync#UpdateDomainName": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#UpdateDomainNameRequest" + }, + "output": { + "target": "com.amazonaws.appsync#UpdateDomainNameResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a custom DomainName object.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domainnames/{domainName}", + "code": 200 + } + } + }, + "com.amazonaws.appsync#UpdateDomainNameRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.appsync#Description", + "traits": { + "smithy.api#documentation": "

A description of the DomainName.

" + } + } + } + }, + "com.amazonaws.appsync#UpdateDomainNameResponse": { + "type": "structure", + "members": { + "domainNameConfig": { + "target": "com.amazonaws.appsync#DomainNameConfig", + "traits": { + "smithy.api#documentation": "

The configuration for the DomainName.

" + } + } + } + }, "com.amazonaws.appsync#UpdateFunction": { "type": "operation", "input": { @@ -4540,13 +5155,13 @@ "responseMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

The Function request mapping template.

" + "smithy.api#documentation": "

The Function request mapping template.

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

The version of the request mapping template. Currently the supported value\n is 2018-05-29.

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

The version of the request mapping template. Currently, the supported value\n is 2018-05-29.

", "smithy.api#required": {} } }, @@ -4636,7 +5251,7 @@ "userPoolConfig": { "target": "com.amazonaws.appsync#UserPoolConfig", "traits": { - "smithy.api#documentation": "

The new Amazon Cognito user pool configuration for the GraphqlApi\n object.

" + "smithy.api#documentation": "

The new Amazon Cognito user pool configuration for the ~GraphqlApi\n object.

" } }, "openIDConnectConfig": { @@ -4654,13 +5269,13 @@ "xrayEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

A flag indicating whether to enable X-Ray tracing for the\n GraphqlApi.

" + "smithy.api#documentation": "

A flag indicating whether to use X-Ray tracing for the\n GraphqlApi.

" } }, "lambdaAuthorizerConfig": { "target": "com.amazonaws.appsync#LambdaAuthorizerConfig", "traits": { - "smithy.api#documentation": "

Configuration for Amazon Web Services Lambda function authorization.

" + "smithy.api#documentation": "

Configuration for Lambda function authorization.

" } } } @@ -4743,7 +5358,7 @@ "requestMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

The new request mapping template.

\n

A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

\n

VTL request mapping templates are optional when using a Lambda data source. For all\n other data sources, VTL request and response mapping templates are required.

" + "smithy.api#documentation": "

The new request mapping template.

\n

A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

\n

VTL request mapping templates are optional when using an Lambda data\n source. For all other data sources, VTL request and response mapping templates are\n required.

" } }, "responseMappingTemplate": { @@ -4755,7 +5370,7 @@ "kind": { "target": "com.amazonaws.appsync#ResolverKind", "traits": { - "smithy.api#documentation": "

The resolver type.

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

The resolver type.

\n " } }, "pipelineConfig": { @@ -4767,7 +5382,7 @@ "syncConfig": { "target": "com.amazonaws.appsync#SyncConfig", "traits": { - "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned datasource.

" + "smithy.api#documentation": "

The SyncConfig for a resolver attached to a versioned data source.

" } }, "cachingConfig": { @@ -4888,7 +5503,7 @@ "defaultAction": { "target": "com.amazonaws.appsync#DefaultAction", "traits": { - "smithy.api#documentation": "

The action that you want your GraphQL API to take when a request that uses Amazon\n Cognito user pool authentication doesn't match the Amazon Cognito user pool\n configuration.

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

The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool\n configuration.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/chimesdkmessaging.2021-05-15.json b/codegen/sdk-codegen/aws-models/chimesdkmessaging.2021-05-15.json index 3a7cd1cb339..812376a0e7a 100644 --- a/codegen/sdk-codegen/aws-models/chimesdkmessaging.2021-05-15.json +++ b/codegen/sdk-codegen/aws-models/chimesdkmessaging.2021-05-15.json @@ -874,6 +874,18 @@ "traits": { "smithy.api#documentation": "

The message metadata.

" } + }, + "PushNotification": { + "target": "com.amazonaws.chimesdkmessaging#PushNotificationConfiguration", + "traits": { + "smithy.api#documentation": "

The push notification configuration of the message.

" + } + }, + "MessageAttributes": { + "target": "com.amazonaws.chimesdkmessaging#MessageAttributeMap", + "traits": { + "smithy.api#documentation": "

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

" + } } }, "traits": { @@ -1197,6 +1209,21 @@ }, "com.amazonaws.chimesdkmessaging#ChimeMessagingService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Chime SDK Messaging", + "arnNamespace": "chime", + "cloudFormationName": "ChimeSDKMessaging", + "cloudTrailEventSource": "chimesdkmessaging.amazonaws.com", + "endpointPrefix": "messaging-chime" + }, + "aws.auth#sigv4": { + "name": "chime" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

The Amazon Chime SDK Messaging APIs in this section allow software developers to send\n and receive messages in custom messaging applications. These APIs depend on the frameworks\n provided by the Amazon Chime SDK Identity APIs. For more information about the messaging\n APIs, see Amazon Chime SDK messaging\n

", + "smithy.api#title": "Amazon Chime SDK Messaging" + }, "version": "2021-05-15", "operations": [ { @@ -1334,22 +1361,7 @@ { "target": "com.amazonaws.chimesdkmessaging#UpdateChannelReadMarker" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Chime SDK Messaging", - "arnNamespace": "chime", - "cloudFormationName": "ChimeSDKMessaging", - "cloudTrailEventSource": "chimesdkmessaging.amazonaws.com", - "endpointPrefix": "messaging-chime" - }, - "aws.auth#sigv4": { - "name": "chime" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

The Amazon Chime SDK Messaging APIs in this section allow software developers to send\n and receive messages in custom messaging applications. These APIs depend on the frameworks\n provided by the Amazon Chime SDK Identity APIs. For more information about the messaging\n APIs, see Amazon Chime SDK messaging\n

", - "smithy.api#title": "Amazon Chime SDK Messaging" - } + ] }, "com.amazonaws.chimesdkmessaging#ClientRequestToken": { "type": "string", @@ -3617,7 +3629,7 @@ "Type": { "target": "com.amazonaws.chimesdkmessaging#ChannelMembershipType", "traits": { - "smithy.api#documentation": "

The membership type of a user, DEFAULT or HIDDEN. Default\n members are always returned as part of ListChannelMemberships. Hidden members\n are only returned if the type filter in ListChannelMemberships equals\n HIDDEN. Otherwise hidden members are not returned.

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

The membership type of a user, DEFAULT or HIDDEN. Default\n members are returned as part of ListChannelMemberships if no type is specified. Hidden members\n are only returned if the type filter in ListChannelMemberships equals\n HIDDEN.

", "smithy.api#httpQuery": "type" } }, @@ -4475,22 +4487,19 @@ "Title": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationTitle", "traits": { - "smithy.api#documentation": "

The title of the push notification.

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

The title of the push notification.

" } }, "Body": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationBody", "traits": { - "smithy.api#documentation": "

The body of the push notification.

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

The body of the push notification.

" } }, "Type": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationType", "traits": { - "smithy.api#documentation": "

Enum value that indicates the type of the push notification for a message.\n DEFAULT: Normal mobile push notification.\n VOIP: VOIP mobile push notification.

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

Enum value that indicates the type of the push notification for a message.\n DEFAULT: Normal mobile push notification.\n VOIP: VOIP mobile push notification.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/cloudwatchlogs.2014-03-28.json b/codegen/sdk-codegen/aws-models/cloudwatchlogs.2014-03-28.json index 7eac2d48c14..d29784bab3c 100644 --- a/codegen/sdk-codegen/aws-models/cloudwatchlogs.2014-03-28.json +++ b/codegen/sdk-codegen/aws-models/cloudwatchlogs.2014-03-28.json @@ -1799,6 +1799,12 @@ "target": "com.amazonaws.cloudwatchlogs#FilteredLogEvent" } }, + "com.amazonaws.cloudwatchlogs#ForceUpdate": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.cloudwatchlogs#GetLogEvents": { "type": "operation", "input": { @@ -2890,6 +2896,12 @@ "smithy.api#documentation": "

An IAM policy document that authorizes cross-account users to deliver their log events\n to the associated destination. This can be up to 5120 bytes.

", "smithy.api#required": {} } + }, + "forceUpdate": { + "target": "com.amazonaws.cloudwatchlogs#ForceUpdate", + "traits": { + "smithy.api#documentation": "

Specify true if you are updating an existing destination policy to grant permission to\n an organization ID instead of granting permission to individual AWS accounts. Before\n you update a destination policy this way, you must first update the subscription\n filters in the accounts that send logs to this destination. If you do not, the subscription\n filters might stop working. By specifying true\n for forceUpdate, you are affirming that you have already updated the subscription \n filters.\n For more information, see \n Updating an existing cross-account subscription\n

\n

If you omit this parameter, the default of false is used.

" + } } } }, @@ -3082,6 +3094,9 @@ { "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, { "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" }, @@ -3170,7 +3185,7 @@ "policyDocument": { "target": "com.amazonaws.cloudwatchlogs#PolicyDocument", "traits": { - "smithy.api#documentation": "

Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string.\n This parameter is required.

\n

The following example creates a resource policy enabling the Route 53 service to put\n DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of \n your CloudWatch Logs resource, such as a log group or log stream.

\n

CloudWatch Logs also supports aws:SourceArn\n and aws:SourceAccount\ncondition context keys.

\n

In the example resource policy, you would replace the value of SourceArn with the resource making the\n call from Route 53 to CloudWatch Logs and replace the value of SourceAccount with \n the Amazon Web Services account ID making that call.

\n

\n

\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Route53LogsToCloudWatchLogs\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"route53.amazonaws.com\"\n ]\n },\n \"Action\": \"logs:PutLogEvents\",\n \"Resource\": \"logArn\",\n \"Condition\": {\n \"ArnLike\": {\n \"aws:SourceArn\": \"myRoute53ResourceArn\"\n },\n \"StringEquals\": {\n \"aws:SourceAccount\": \"myAwsAccountId\"\n }\n }\n }\n ]\n}\n \n

" + "smithy.api#documentation": "

Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string.\n This parameter is required.

\n

The following example creates a resource policy enabling the Route 53 service to put\n DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of \n your CloudWatch Logs resource, such as a log group or log stream.

\n

CloudWatch Logs also supports aws:SourceArn\n and aws:SourceAccount\ncondition context keys.

\n

In the example resource policy, you would replace the value of SourceArn with the resource making the\n call from Route 53 to CloudWatch Logs and replace the value of SourceAccount with \n the Amazon Web Services account ID making that call.

\n

\n

\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Route53LogsToCloudWatchLogs\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"route53.amazonaws.com\"\n ]\n },\n \"Action\": \"logs:PutLogEvents\",\n \"Resource\": \"logArn\",\n \"Condition\": {\n \"ArnLike\": {\n \"aws:SourceArn\": \"myRoute53ResourceArn\"\n },\n \"StringEquals\": {\n \"aws:SourceAccount\": \"myAwsAccountId\"\n }\n }\n }\n ]\n}\n \n

" } } } diff --git a/codegen/sdk-codegen/aws-models/comprehendmedical.2018-10-30.json b/codegen/sdk-codegen/aws-models/comprehendmedical.2018-10-30.json index b954de2780b..12a8c69d09f 100644 --- a/codegen/sdk-codegen/aws-models/comprehendmedical.2018-10-30.json +++ b/codegen/sdk-codegen/aws-models/comprehendmedical.2018-10-30.json @@ -44,13 +44,13 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized\n as an attribute.

" + "smithy.api#documentation": "

The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized\n as an attribute.

" } }, "RelationshipScore": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this\n entity.

" + "smithy.api#documentation": "

The level of confidence that Comprehend Medical; has that this attribute is correctly related to this\n entity.

" } }, "RelationshipType": { @@ -138,6 +138,20 @@ } } }, + "com.amazonaws.comprehendmedical#Characters": { + "type": "structure", + "members": { + "OriginalTextCharacters": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The number of characters present in the input text document as processed by Comprehend Medical.\n

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

\n The number of characters in the input text to be analyzed. \n

" + } + }, "com.amazonaws.comprehendmedical#ClientRequestTokenString": { "type": "string", "traits": { @@ -246,7 +260,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that gives Comprehend Medical; read access to your input data.

" } }, "ManifestFilePath": { @@ -280,6 +294,21 @@ }, "com.amazonaws.comprehendmedical#ComprehendMedical_20181030": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "ComprehendMedical", + "arnNamespace": "comprehendmedical", + "cloudFormationName": "ComprehendMedical", + "cloudTrailEventSource": "comprehendmedical.amazonaws.com", + "endpointPrefix": "comprehendmedical" + }, + "aws.auth#sigv4": { + "name": "comprehendmedical" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

Comprehend Medical; extracts structured information from unstructured clinical text. Use these actions\n to gain insight in your documents.

", + "smithy.api#title": "AWS Comprehend Medical" + }, "version": "2018-10-30", "operations": [ { @@ -294,6 +323,9 @@ { "target": "com.amazonaws.comprehendmedical#DescribeRxNormInferenceJob" }, + { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJob" + }, { "target": "com.amazonaws.comprehendmedical#DetectEntities" }, @@ -309,6 +341,9 @@ { "target": "com.amazonaws.comprehendmedical#InferRxNorm" }, + { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCT" + }, { "target": "com.amazonaws.comprehendmedical#ListEntitiesDetectionV2Jobs" }, @@ -321,6 +356,9 @@ { "target": "com.amazonaws.comprehendmedical#ListRxNormInferenceJobs" }, + { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobs" + }, { "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job" }, @@ -333,6 +371,9 @@ { "target": "com.amazonaws.comprehendmedical#StartRxNormInferenceJob" }, + { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJob" + }, { "target": "com.amazonaws.comprehendmedical#StopEntitiesDetectionV2Job" }, @@ -344,23 +385,11 @@ }, { "target": "com.amazonaws.comprehendmedical#StopRxNormInferenceJob" - } - ], - "traits": { - "aws.api#service": { - "sdkId": "ComprehendMedical", - "arnNamespace": "comprehendmedical", - "cloudFormationName": "ComprehendMedical", - "cloudTrailEventSource": "comprehendmedical.amazonaws.com", - "endpointPrefix": "comprehendmedical" - }, - "aws.auth#sigv4": { - "name": "comprehendmedical" }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions\n to gain insight in your documents.

", - "smithy.api#title": "AWS Comprehend Medical" - } + { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJob" + } + ] }, "com.amazonaws.comprehendmedical#DescribeEntitiesDetectionV2Job": { "type": "operation", @@ -394,7 +423,7 @@ "JobId": { "target": "com.amazonaws.comprehendmedical#JobId", "traits": { - "smithy.api#documentation": "

The identifier that Amazon Comprehend Medical generated for the job. The\n StartEntitiesDetectionV2Job operation returns this identifier in its\n response.

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

The identifier that Comprehend Medical; generated for the job. The\n StartEntitiesDetectionV2Job operation returns this identifier in its\n response.

", "smithy.api#required": {} } } @@ -492,7 +521,7 @@ "JobId": { "target": "com.amazonaws.comprehendmedical#JobId", "traits": { - "smithy.api#documentation": "

The identifier that Amazon Comprehend Medical generated for the job. The StartPHIDetectionJob\n operation returns this identifier in its response.

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

The identifier that Comprehend Medical; generated for the job. The StartPHIDetectionJob\n operation returns this identifier in its response.

", "smithy.api#required": {} } } @@ -558,6 +587,52 @@ } } }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Gets the properties associated with an InferSNOMEDCT job. Use this operation to get the status of an inference job.\n

" + } + }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

\n The identifier that Amazon Comprehend Medical generated for the job. The StartSNOMEDCTInferenceJob operation returns this identifier in its response.\n

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "ComprehendMedicalAsyncJobProperties": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobProperties" + } + } + }, "com.amazonaws.comprehendmedical#DetectEntities": { "type": "operation", "input": { @@ -611,7 +686,7 @@ "Entities": { "target": "com.amazonaws.comprehendmedical#EntityList", "traits": { - "smithy.api#documentation": "

The collection of medical entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the\n detection and analysis. Attributes and traits of the entity are also returned.

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

The collection of medical entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in the\n detection and analysis. Attributes and traits of the entity are also returned.

", "smithy.api#required": {} } }, @@ -761,7 +836,7 @@ "Entities": { "target": "com.amazonaws.comprehendmedical#EntityList", "traits": { - "smithy.api#documentation": "

The collection of PHI entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in its\n detection.

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

The collection of PHI entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in its\n detection.

", "smithy.api#required": {} } }, @@ -804,7 +879,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

The level of confidence that Amazon Comprehend Medical has in the accuracy of the detection.

" + "smithy.api#documentation": "

The level of confidence that Comprehend Medical; has in the accuracy of the detection.

" } }, "Text": { @@ -856,6 +931,10 @@ "value": "NAME", "name": "NAME" }, + { + "value": "DX_NAME", + "name": "DX_NAME" + }, { "value": "DOSAGE", "name": "DOSAGE" @@ -908,6 +987,10 @@ "value": "TEST_UNITS", "name": "TEST_UNITS" }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + }, { "value": "PROCEDURE_NAME", "name": "PROCEDURE_NAME" @@ -928,6 +1011,10 @@ "value": "CONTACT_POINT", "name": "CONTACT_POINT" }, + { + "value": "PHONE_OR_FAX", + "name": "PHONE_OR_FAX" + }, { "value": "EMAIL", "name": "EMAIL" @@ -936,6 +1023,10 @@ "value": "IDENTIFIER", "name": "IDENTIFIER" }, + { + "value": "ID", + "name": "ID" + }, { "value": "URL", "name": "URL" @@ -1296,7 +1387,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized\n as a trait.

" + "smithy.api#documentation": "

The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized\n as a trait.

" } } }, @@ -1340,7 +1431,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+" + "smithy.api#pattern": "^arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+$" } }, "com.amazonaws.comprehendmedical#InferICD10CM": { @@ -1479,6 +1570,86 @@ } } }, + "com.amazonaws.comprehendmedical#InferSNOMEDCT": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCTRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCTResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidEncodingException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.comprehendmedical#TextSizeLimitExceededException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

\n InferSNOMEDCT detects possible medical concepts as entities and links them to codes from the Systematized Nomenclature of Medicine, Clinical Terms (SNOMED-CT) ontology

" + } + }, + "com.amazonaws.comprehendmedical#InferSNOMEDCTRequest": { + "type": "structure", + "members": { + "Text": { + "target": "com.amazonaws.comprehendmedical#OntologyLinkingBoundedLengthString", + "traits": { + "smithy.api#documentation": "

\n The input text to be analyzed using InferSNOMEDCT. The text should be a string with 1 to 10000 characters. \n

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#InferSNOMEDCTResponse": { + "type": "structure", + "members": { + "Entities": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityList", + "traits": { + "smithy.api#documentation": "

\n The collection of medical concept entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. \n

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

\n If the result of the request is truncated, the pagination token can be used to fetch the next page of entities.\n

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

\n The version of the model used to analyze the documents, in the format n.n.n You can use this information to track the model used for a particular batch of documents.\n

" + } + }, + "SNOMEDCTDetails": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTDetails", + "traits": { + "smithy.api#documentation": "

\n The details of the SNOMED-CT revision, including the edition, language, and version date. \n

" + } + }, + "Characters": { + "target": "com.amazonaws.comprehendmedical#Characters", + "traits": { + "smithy.api#documentation": "

\n The number of characters in the input request documentation. \n

" + } + } + } + }, "com.amazonaws.comprehendmedical#InputDataConfig": { "type": "structure", "members": { @@ -1885,6 +2056,69 @@ } } }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + }, + { + "target": "com.amazonaws.comprehendmedical#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Gets a list of InferSNOMEDCT jobs a user has submitted.\n

" + } + }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobFilter" + }, + "NextToken": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

\n Identifies the next page of InferSNOMEDCT results to return.\n

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

\n The maximum number of results to return in each page. The default is 100.\n

" + } + } + } + }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsResponse": { + "type": "structure", + "members": { + "ComprehendMedicalAsyncJobPropertiesList": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobPropertiesList", + "traits": { + "smithy.api#documentation": "

\n A list containing the properties of each job that is returned.\n

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

\n Identifies the next page of results to return.\n

" + } + } + } + }, "com.amazonaws.comprehendmedical#ManifestFilePath": { "type": "string", "traits": { @@ -1929,7 +2163,7 @@ "S3Key": { "target": "com.amazonaws.comprehendmedical#S3Key", "traits": { - "smithy.api#documentation": "

The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory\n using the job ID so that the output from one job does not overwrite the output of\n another.

" + "smithy.api#documentation": "

The path to the output data files in the S3 bucket. Comprehend Medical; creates an output directory\n using the job ID so that the output from one job does not overwrite the output of\n another.

" } } }, @@ -2005,6 +2239,10 @@ "value": "TEST_UNITS", "name": "TEST_UNITS" }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + }, { "value": "DIRECTION", "name": "DIRECTION" @@ -2315,44 +2553,409 @@ "smithy.api#pattern": ".*" } }, - "com.amazonaws.comprehendmedical#ServiceUnavailableException": { + "com.amazonaws.comprehendmedical#SNOMEDCTAttribute": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.comprehendmedical#String" - } - }, - "traits": { - "smithy.api#documentation": "

The Amazon Comprehend Medical service is temporarily unavailable. Please wait and then retry your request.\n

", - "smithy.api#error": "server", - "smithy.api#httpError": 503 - } - }, - "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job": { - "type": "operation", - "input": { - "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest" - }, - "output": { - "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobResponse" - }, - "errors": [ - { - "target": "com.amazonaws.comprehendmedical#InternalServerException" + "Category": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory", + "traits": { + "smithy.api#documentation": "

\n The category of the detected attribute. Possible categories include MEDICAL_CONDITION, ANATOMY, and TEST_TREATMENT_PROCEDURE.\n

" + } }, - { - "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + "Type": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTAttributeType", + "traits": { + "smithy.api#documentation": "

\n The type of attribute. Possible types include DX_NAME, ACUITY, DIRECTION, SYSTEM_ORGAN_SITE,TEST_NAME, TEST_VALUE, TEST_UNIT, PROCEDURE_NAME, and TREATMENT_NAME.\n

" + } }, - { - "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

\n The level of confidence that Comprehend Medical has that the segment of text is correctly recognized as an attribute.\n

" + } }, - { - "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "

Starts an asynchronous medical entity detection job for a collection of documents. Use the\n DescribeEntitiesDetectionV2Job operation to track the status of a job.

" - } + "RelationshipScore": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

\n The level of confidence that Comprehend Medical has that this attribute is correctly related to this entity.\n

" + } + }, + "RelationshipType": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTRelationshipType", + "traits": { + "smithy.api#documentation": "

\n The type of relationship that exists between the entity and the related attribute. \n

" + } + }, + "Id": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The numeric identifier for this attribute. This is a monotonically increasing id unique within this response rather than a global unique identifier.\n

" + } + }, + "BeginOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The 0-based character offset in the input text that shows where the attribute begins. The offset returns the UTF-8 code point in the string.\n

" + } + }, + "EndOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The 0-based character offset in the input text that shows where the attribute ends. The offset returns the UTF-8 code point in the string.\n

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

\n The segment of input text extracted as this attribute.\n

" + } + }, + "Traits": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitList", + "traits": { + "smithy.api#documentation": "

\n Contextual information for an attribute. Examples include signs, symptoms, diagnosis, and negation.\n

" + } + }, + "SNOMEDCTConcepts": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConceptList", + "traits": { + "smithy.api#documentation": "

\n The SNOMED-CT concepts specific to an attribute, along with a score indicating the likelihood of the match.\n

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

\n The extracted attributes that relate to an entity. An extracted segment of the text that is an attribute of an entity, or otherwise related to an entity, such as the dosage of a medication taken.\n

" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTAttribute" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTAttributeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACUITY", + "name": "ACUITY" + }, + { + "value": "QUALITY", + "name": "QUALITY" + }, + { + "value": "DIRECTION", + "name": "DIRECTION" + }, + { + "value": "SYSTEM_ORGAN_SITE", + "name": "SYSTEM_ORGAN_SITE" + }, + { + "value": "TEST_VALUE", + "name": "TEST_VALUE" + }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTConcept": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

\n The description of the SNOMED-CT concept. \n

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

\n The numeric ID for the SNOMED-CT concept.\n

" + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

\n The level of confidence Comprehend Medical has that the entity should be linked to the identified SNOMED-CT concept.\n

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

\n The SNOMED-CT concepts that the entity could refer to, along with a score indicating the likelihood of the match.\n

" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTConceptList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConcept" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTDetails": { + "type": "structure", + "members": { + "Edition": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

\n The edition of SNOMED-CT used. The edition used for the InferSNOMEDCT editions is the US edition. \n

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

\n The language used in the SNOMED-CT ontology. All Amazon Comprehend Medical operations are US English (en).\n

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

\n The version date of the SNOMED-CT ontology used. \n

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

\n The information about the revision of the SNOMED-CT ontology in the response. Specifically, the details include the SNOMED-CT edition, language, and version date. \n

" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntity": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The numeric identifier for the entity. This is a monotonically increasing id unique within this response rather than a global unique identifier.\n

" + } + }, + "Text": { + "target": "com.amazonaws.comprehendmedical#OntologyLinkingBoundedLengthString", + "traits": { + "smithy.api#documentation": "

\n The segment of input text extracted as this entity.\n

" + } + }, + "Category": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory", + "traits": { + "smithy.api#documentation": "

\n The category of the detected entity. Possible categories are MEDICAL_CONDITION, ANATOMY, or TEST_TREATMENT_PROCEDURE. \n

" + } + }, + "Type": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityType", + "traits": { + "smithy.api#documentation": "

\n Describes the specific type of entity with category of entities. Possible types include DX_NAME, ACUITY, DIRECTION, SYSTEM_ORGAN_SITE, TEST_NAME, TEST_VALUE, TEST_UNIT, PROCEDURE_NAME, or TREATMENT_NAME. \n

" + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

\n The level of confidence that Comprehend Medical has in the accuracy of the detected entity.\n

" + } + }, + "BeginOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The 0-based character offset in the input text that shows where the entity begins. The offset returns the UTF-8 code point in the string.\n

" + } + }, + "EndOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

\n The 0-based character offset in the input text that shows where the entity ends. The offset returns the UTF-8 code point in the string.\n

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

\n An extracted segment of the text that is an attribute of an entity, or otherwise related to an entity, such as the dosage of a medication taken.\n

" + } + }, + "Traits": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitList", + "traits": { + "smithy.api#documentation": "

\n Contextual information for the entity.\n

" + } + }, + "SNOMEDCTConcepts": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConceptList", + "traits": { + "smithy.api#documentation": "

\n The SNOMED concepts that the entity could refer to, along with a score indicating the likelihood of the match.\n

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

\n The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. \n

" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MEDICAL_CONDITION", + "name": "MEDICAL_CONDITION" + }, + { + "value": "ANATOMY", + "name": "ANATOMY" + }, + { + "value": "TEST_TREATMENT_PROCEDURE", + "name": "TEST_TREATMENT_PROCEDURE" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntity" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DX_NAME", + "name": "DX_NAME" + }, + { + "value": "TEST_NAME", + "name": "TEST_NAME" + }, + { + "value": "PROCEDURE_NAME", + "name": "PROCEDURE_NAME" + }, + { + "value": "TREATMENT_NAME", + "name": "TREATMENT_NAME" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTRelationshipType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACUITY", + "name": "ACUITY" + }, + { + "value": "QUALITY", + "name": "QUALITY" + }, + { + "value": "TEST_VALUE", + "name": "TEST_VALUE" + }, + { + "value": "TEST_UNITS", + "name": "TEST_UNITS" + }, + { + "value": "DIRECTION", + "name": "DIRECTION" + }, + { + "value": "SYSTEM_ORGAN_SITE", + "name": "SYSTEM_ORGAN_SITE" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTrait": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitName", + "traits": { + "smithy.api#documentation": "

\n The name or contextual description of a detected trait.\n

" + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

\n The level of confidence that Comprehend Medical has in the accuracy of a detected trait.\n

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

\n Contextual information for an entity.\n

" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTraitList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTrait" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTraitName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NEGATION", + "name": "NEGATION" + }, + { + "value": "DIAGNOSIS", + "name": "DIAGNOSIS" + }, + { + "value": "SIGN", + "name": "SIGN" + }, + { + "value": "SYMPTOM", + "name": "SYMPTOM" + } + ] + } + }, + "com.amazonaws.comprehendmedical#ServiceUnavailableException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.comprehendmedical#String" + } + }, + "traits": { + "smithy.api#documentation": "

The Comprehend Medical; service is temporarily unavailable. Please wait and then retry your request.\n

", + "smithy.api#error": "server", + "smithy.api#httpError": 503 + } + }, + "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts an asynchronous medical entity detection job for a collection of documents. Use the\n DescribeEntitiesDetectionV2Job operation to track the status of a job.

" + } }, "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest": { "type": "structure", @@ -2360,21 +2963,21 @@ "InputDataConfig": { "target": "com.amazonaws.comprehendmedical#InputDataConfig", "traits": { - "smithy.api#documentation": "

Specifies the format and location of the input data for the job.

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

The input configuration that specifies the format and location of the input data for the job.

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

Specifies where to send the output files.

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

The output configuration that specifies where to send the output files.

", "smithy.api#required": {} } }, "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

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

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

", "smithy.api#required": {} } }, @@ -2387,7 +2990,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

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

A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one for you.

", "smithy.api#idempotencyToken": {} } }, @@ -2400,7 +3003,7 @@ "LanguageCode": { "target": "com.amazonaws.comprehendmedical#LanguageCode", "traits": { - "smithy.api#documentation": "

The language of the input documents. All documents must be in the same language.

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

The language of the input documents. All documents must be in the same language. Comprehend Medical; processes files in US English (en).

", "smithy.api#required": {} } } @@ -2463,7 +3066,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

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

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

", "smithy.api#required": {} } }, @@ -2476,7 +3079,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

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

A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

", "smithy.api#idempotencyToken": {} } }, @@ -2552,7 +3155,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

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

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

", "smithy.api#required": {} } }, @@ -2565,7 +3168,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

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

A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

", "smithy.api#idempotencyToken": {} } }, @@ -2641,7 +3244,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

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

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

", "smithy.api#required": {} } }, @@ -2654,7 +3257,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

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

A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

", "smithy.api#idempotencyToken": {} } }, @@ -2684,6 +3287,93 @@ } } }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Starts an asynchronous job to detect medical concepts and link them to the SNOMED-CT ontology. Use the DescribeSNOMEDCTInferenceJob operation to track the status of a job.\n

" + } + }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "InputDataConfig": { + "target": "com.amazonaws.comprehendmedical#InputDataConfig", + "traits": { + "smithy.api#required": {} + } + }, + "OutputDataConfig": { + "target": "com.amazonaws.comprehendmedical#OutputDataConfig", + "traits": { + "smithy.api#required": {} + } + }, + "DataAccessRoleArn": { + "target": "com.amazonaws.comprehendmedical#IamRoleArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. \n

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

\n The user generated name the asynchronous InferSNOMEDCT job.\n

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.\n

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

\n An AWS Key Management Service key used to encrypt your output files. If you do not specify a key, the files are written in plain text.\n

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

\n The language of the input documents. All documents must be in the same language.\n

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

\n The identifier generated for the job. To get the status of a job, use this identifier with the StartSNOMEDCTInferenceJob operation.\n

" + } + } + } + }, "com.amazonaws.comprehendmedical#StopEntitiesDetectionV2Job": { "type": "operation", "input": { @@ -2868,6 +3558,55 @@ } } }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Stops an InferSNOMEDCT inference job in progress.\n

" + } + }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

\n The job id of the asynchronous InferSNOMEDCT job to be stopped.\n

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

\n The identifier generated for the job. To get the status of job, use this identifier with the DescribeSNOMEDCTInferenceJob operation.\n

" + } + } + } + }, "com.amazonaws.comprehendmedical#String": { "type": "string", "traits": { @@ -2917,7 +3656,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

The level of confidence that Amazon Comprehend Medical has in the accuracy of this trait.

" + "smithy.api#documentation": "

The level of confidence that Comprehend Medical; has in the accuracy of this trait.

" } } }, @@ -2937,7 +3676,7 @@ "Type": { "target": "com.amazonaws.comprehendmedical#EntityType", "traits": { - "smithy.api#documentation": "

The type of the attribute, could be one of the following values: \"MEDICATION\",\n \"MEDICAL_CONDITION\", \"ANATOMY\", \"TEST_AND_TREATMENT_PROCEDURE\" or\n \"PROTECTED_HEALTH_INFORMATION\".

" + "smithy.api#documentation": "

The type of the unmapped attribute, could be one of the following values: \"MEDICATION\",\n \"MEDICAL_CONDITION\", \"ANATOMY\", \"TEST_AND_TREATMENT_PROCEDURE\" or\n \"PROTECTED_HEALTH_INFORMATION\".

" } }, "Attribute": { @@ -2948,7 +3687,7 @@ } }, "traits": { - "smithy.api#documentation": "

An attribute that we extracted, but were unable to relate to an entity.

" + "smithy.api#documentation": "

An attribute that was extracted, but Comprehend Medical; was unable to relate to an entity.

" } }, "com.amazonaws.comprehendmedical#UnmappedAttributeList": { diff --git a/codegen/sdk-codegen/aws-models/customerprofiles.2020-08-15.json b/codegen/sdk-codegen/aws-models/customerprofiles.2020-08-15.json index bdeaf077d3a..4bd8fecb0a1 100644 --- a/codegen/sdk-codegen/aws-models/customerprofiles.2020-08-15.json +++ b/codegen/sdk-codegen/aws-models/customerprofiles.2020-08-15.json @@ -1320,7 +1320,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

\n \n

You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.\n

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

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

\n \n

You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.

\n
" } }, "com.amazonaws.customerprofiles#ExportingLocation": { @@ -2001,8 +2001,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The name of the profile object type.

" } }, "CreatedAt": { @@ -2024,6 +2023,12 @@ "traits": { "smithy.api#documentation": "

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

" } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

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

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

\n

Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

\n

GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

\n \n

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

\n
\n\n

Amazon Connect uses the following profile attributes to identify matches:

\n \n

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

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

Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

\n

GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

\n \n

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

\n
\n\n

Amazon Connect uses the following profile attributes to identify matches:

\n \n

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

", "smithy.api#http": { "method": "GET", "uri": "/domains/{DomainName}/matches", @@ -2867,8 +2872,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The name of the profile object type.

" } }, "CreatedAt": { @@ -2890,6 +2894,12 @@ "traits": { "smithy.api#documentation": "

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

" } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" + } } }, "traits": { @@ -3290,7 +3300,7 @@ "ObjectFilter": { "target": "com.amazonaws.customerprofiles#ObjectFilter", "traits": { - "smithy.api#documentation": "

Applies a filter to the response to include profile objects with the specified index\n values. This filter is only supported for ObjectTypeName _asset and _case.

" + "smithy.api#documentation": "

Applies a filter to the response to include profile objects with the specified index\n values. This filter is only supported for ObjectTypeName _asset, _case and _order.

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

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

\n

Runs an AWS Lambda job that does the following:

\n
    \n
  1. \n

    All the profileKeys in the ProfileToBeMerged will be moved to the\n main profile.

    \n
  2. \n
  3. \n

    All the objects in the ProfileToBeMerged will be moved to the main\n profile.

    \n
  4. \n
  5. \n

    All the ProfileToBeMerged will be deleted at the end.

    \n
  6. \n
  7. \n

    All the profileKeys in the ProfileIdsToBeMerged will be moved to the\n main profile.

    \n
  8. \n
  9. \n

    Standard fields are merged as follows:

    \n
      \n
    1. \n

      Fields are always \"union\"-ed if there are no conflicts in standard fields or\n attributeKeys.

      \n
    2. \n
    3. \n

      When there are conflicting fields:

      \n\n
        \n
      1. \n

        If no SourceProfileIds entry is specified, the main\n Profile value is always taken.

        \n
      2. \n
      3. \n

        If a SourceProfileIds entry is specified, the specified\n profileId is always taken, even if it is a NULL value.

        \n
      4. \n
      \n
    4. \n
    \n
  10. \n
\n

You can use MergeProfiles together with GetMatches, which\n returns potentially matching profiles, or use it with the results of another matching\n system. After profiles have been merged, they cannot be separated (unmerged).

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

Runs an AWS Lambda job that does the following:

\n
    \n
  1. \n

    All the profileKeys in the ProfileToBeMerged will be moved to the\n main profile.

    \n
  2. \n
  3. \n

    All the objects in the ProfileToBeMerged will be moved to the main\n profile.

    \n
  4. \n
  5. \n

    All the ProfileToBeMerged will be deleted at the end.

    \n
  6. \n
  7. \n

    All the profileKeys in the ProfileIdsToBeMerged will be moved to the\n main profile.

    \n
  8. \n
  9. \n

    Standard fields are merged as follows:

    \n
      \n
    1. \n

      Fields are always \"union\"-ed if there are no conflicts in standard fields or\n attributeKeys.

      \n
    2. \n
    3. \n

      When there are conflicting fields:

      \n\n
        \n
      1. \n

        If no SourceProfileIds entry is specified, the main\n Profile value is always taken.

        \n
      2. \n
      3. \n

        If a SourceProfileIds entry is specified, the specified\n profileId is always taken, even if it is a NULL value.

        \n
      4. \n
      \n
    4. \n
    \n
  10. \n
\n

You can use MergeProfiles together with GetMatches, which\n returns potentially matching profiles, or use it with the results of another matching\n system. After profiles have been merged, they cannot be separated (unmerged).

", "smithy.api#http": { "method": "POST", "uri": "/domains/{DomainName}/profiles/objects/merge", @@ -3662,7 +3672,7 @@ "KeyName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A searchable identifier of a standard profile object. The predefined keys you can use to\n search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can\n use to search for _case include: _caseId.

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

A searchable identifier of a standard profile object. The predefined keys you can use to\n search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can\n use to search for _case include: _caseId. The predefined keys you can use to search for\n _order include: _orderId.

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

The filter applied to ListProfileObjects response to include profile objects with the\n specified index values. This filter is only supported for ObjectTypeName _asset and\n _case.

" + "smithy.api#documentation": "

The filter applied to ListProfileObjects response to include profile objects with the\n specified index values. This filter is only supported for ObjectTypeName _asset, _case and\n _order.

" } }, "com.amazonaws.customerprofiles#ObjectTypeField": { @@ -3710,7 +3720,7 @@ "StandardIdentifiers": { "target": "com.amazonaws.customerprofiles#StandardIdentifierList", "traits": { - "smithy.api#documentation": "

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1\n UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be\n used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be\n used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to\n search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is\n only used to match a profile but is not persisted to be used for searching of the profile.\n A NEW_ONLY key is only used if the profile does not already exist before the object is\n ingested, otherwise it is only used for matching objects to profiles.

" + "smithy.api#documentation": "

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1\n UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key can be\n used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means that it can be\n used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to\n search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is\n only used to match a profile but is not persisted to be used for searching of the profile.\n A NEW_ONLY key is only used if the profile does not already exist before the object is\n ingested, otherwise it is only used for matching objects to profiles.

" } }, "FieldNames": { @@ -3730,6 +3740,15 @@ "target": "com.amazonaws.customerprofiles#ObjectTypeKey" } }, + "com.amazonaws.customerprofiles#ObjectTypeNames": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "value": { + "target": "com.amazonaws.customerprofiles#typeName" + } + }, "com.amazonaws.customerprofiles#OperatorPropertiesKeys": { "type": "string", "traits": { @@ -4058,8 +4077,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The name of the profile object type.

" } }, "Tags": { @@ -4073,6 +4091,12 @@ "traits": { "smithy.api#documentation": "

The configuration that controls how Customer Profiles retrieves data from the\n source.

" } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" + } } } }, @@ -4096,8 +4120,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The name of the profile object type.

" } }, "CreatedAt": { @@ -4119,6 +4142,12 @@ "traits": { "smithy.api#documentation": "

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

" } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" + } } } }, @@ -4281,7 +4310,7 @@ "SourceLastUpdatedTimestampFormat": { "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set up.\n

" + "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set up.\n

" } }, "Fields": { @@ -4796,7 +4825,7 @@ "KeyName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId,\n _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId,\n _salesforceContactId, _zendeskUserId, _zendeskExternalId, _serviceNowSystemId.

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

A searchable identifier of a customer profile. The predefined keys you can use\n to search include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone,\n _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId,\n _salesforceAssetId, _zendeskUserId, _zendeskExternalId, _zendeskTicketId,\n _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId,\n _shopifyOrderId.

", "smithy.api#required": {} } }, @@ -5068,6 +5097,10 @@ { "value": "NEW_ONLY", "name": "NEW_ONLY" + }, + { + "value": "ORDER", + "name": "ORDER" } ] } diff --git a/codegen/sdk-codegen/aws-models/datasync.2018-11-09.json b/codegen/sdk-codegen/aws-models/datasync.2018-11-09.json index 793683e68ba..f8c9a4309b6 100644 --- a/codegen/sdk-codegen/aws-models/datasync.2018-11-09.json +++ b/codegen/sdk-codegen/aws-models/datasync.2018-11-09.json @@ -318,6 +318,68 @@ "smithy.api#documentation": "

CreateLocationEfs

" } }, + "com.amazonaws.datasync#CreateLocationFsxLustre": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#CreateLocationFsxLustreRequest" + }, + "output": { + "target": "com.amazonaws.datasync#CreateLocationFsxLustreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an endpoint for an Amazon FSx for Lustre file system.

" + } + }, + "com.amazonaws.datasync#CreateLocationFsxLustreRequest": { + "type": "structure", + "members": { + "FsxFilesystemArn": { + "target": "com.amazonaws.datasync#FsxFilesystemArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the FSx for Lustre file system.

", + "smithy.api#required": {} + } + }, + "SecurityGroupArns": { + "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security groups that are used to configure the FSx for Lustre file system.

", + "smithy.api#required": {} + } + }, + "Subdirectory": { + "target": "com.amazonaws.datasync#FsxLustreSubdirectory", + "traits": { + "smithy.api#documentation": "

A subdirectory in the location's path. This subdirectory in the FSx for Lustre file system is used to read data from the FSx for Lustre source location or write data to the FSx for Lustre destination.

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

The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

" + } + } + } + }, + "com.amazonaws.datasync#CreateLocationFsxLustreResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the FSx for Lustre file system location that's\n created.

" + } + } + } + }, "com.amazonaws.datasync#CreateLocationFsxWindows": { "type": "operation", "input": { @@ -344,7 +406,7 @@ "Subdirectory": { "target": "com.amazonaws.datasync#FsxWindowsSubdirectory", "traits": { - "smithy.api#documentation": "

A subdirectory in the location’s path. This subdirectory in the Amazon FSx for Windows\n File Server file system is used to read data from the Amazon FSx for Windows File Server\n source location or write data to the FSx for Windows File Server destination.

" + "smithy.api#documentation": "

A subdirectory in the location's path. This subdirectory in the Amazon FSx for Windows\n File Server file system is used to read data from the Amazon FSx for Windows File Server\n source location or write data to the FSx for Windows File Server destination.

" } }, "FsxFilesystemArn": { @@ -357,7 +419,7 @@ "SecurityGroupArns": { "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security groups that are to use to configure the\n FSx for Windows File Server file system.

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

The Amazon Resource Names (ARNs) of the security groups that are used to configure the\n FSx for Windows File Server file system.

", "smithy.api#required": {} } }, @@ -1229,6 +1291,67 @@ "smithy.api#documentation": "

DescribeLocationEfsResponse

" } }, + "com.amazonaws.datasync#DescribeLocationFsxLustre": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustreRequest" + }, + "output": { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns metadata, such as the path information about an Amazon FSx for Lustre\n location.

" + } + }, + "com.amazonaws.datasync#DescribeLocationFsxLustreRequest": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the FSx for Lustre location to describe.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.datasync#DescribeLocationFsxLustreResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the FSx for Lustre location that was described.

" + } + }, + "LocationUri": { + "target": "com.amazonaws.datasync#LocationUri", + "traits": { + "smithy.api#documentation": "

The URI of the FSx for Lustre location that was described.

" + } + }, + "SecurityGroupArns": { + "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security groups that are configured for the FSx for Lustre file system.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.datasync#Time", + "traits": { + "smithy.api#documentation": "

The time that the FSx for Lustre location was created.

" + } + } + } + }, "com.amazonaws.datasync#DescribeLocationFsxWindows": { "type": "operation", "input": { @@ -2198,6 +2321,9 @@ { "target": "com.amazonaws.datasync#CreateLocationEfs" }, + { + "target": "com.amazonaws.datasync#CreateLocationFsxLustre" + }, { "target": "com.amazonaws.datasync#CreateLocationFsxWindows" }, @@ -2234,6 +2360,9 @@ { "target": "com.amazonaws.datasync#DescribeLocationEfs" }, + { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustre" + }, { "target": "com.amazonaws.datasync#DescribeLocationFsxWindows" }, @@ -2315,6 +2444,16 @@ "smithy.api#pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$" } }, + "com.amazonaws.datasync#FsxLustreSubdirectory": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$" + } + }, "com.amazonaws.datasync#FsxWindowsSubdirectory": { "type": "string", "traits": { @@ -3024,7 +3163,7 @@ "LocationUri": { "target": "com.amazonaws.datasync#LocationUri", "traits": { - "smithy.api#documentation": "

Represents a list of URLs of a location. LocationUri returns an array that\n contains a list of locations when the ListLocations operation is\n called.

\n

Format: TYPE://GLOBAL_ID/SUBDIR.

\n

TYPE designates the type of location. Valid values: NFS | EFS | S3.

\n

GLOBAL_ID is the globally unique identifier of the resource that backs the location. An\n example for EFS is us-east-2.fs-abcd1234. An example for Amazon S3 is the bucket\n name, such as myBucket. An example for NFS is a valid IPv4 address or a host name\n compliant with Domain Name Service (DNS).

\n

SUBDIR is a valid file system path, delimited by forward slashes as is the *nix\n convention. For NFS and Amazon EFS, it's the export path to mount the location. For\n Amazon S3, it's the prefix path that you mount to and treat as the root of the\n location.

\n

" + "smithy.api#documentation": "

Represents a list of URIs of a location. LocationUri returns an array that\n contains a list of locations when the ListLocations operation is\n called.

\n

Format: TYPE://GLOBAL_ID/SUBDIR.

\n

TYPE designates the type of location. Valid values: NFS | EFS | S3.

\n

GLOBAL_ID is the globally unique identifier of the resource that backs the location. An\n example for EFS is us-east-2.fs-abcd1234. An example for Amazon S3 is the bucket\n name, such as myBucket. An example for NFS is a valid IPv4 address or a host name\n compliant with Domain Name Service (DNS).

\n

SUBDIR is a valid file system path, delimited by forward slashes as is the *nix\n convention. For NFS and Amazon EFS, it's the export path to mount the location. For\n Amazon S3, it's the prefix path that you mount to and treat as the root of the\n location.

\n

" } } }, @@ -3039,7 +3178,7 @@ "min": 0, "max": 4356 }, - "smithy.api#pattern": "^(efs|nfs|s3|smb|fsxw)://[a-zA-Z0-9.\\-]+$" + "smithy.api#pattern": "^(efs|nfs|s3|smb|fsxw|fsxl)://[a-zA-Z0-9.\\-]+$" } }, "com.amazonaws.datasync#LogGroupArn": { diff --git a/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json b/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json index cb3eb4d29ee..74db84bada5 100644 --- a/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json +++ b/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json @@ -1439,6 +1439,12 @@ "traits": { "smithy.api#documentation": "

The pagination token to use to retrieve \n the next page of results for this operation. If there are no more pages, this value is null.

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

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support\n \t\ttagging, so you can assign the same tag to resources from different services to indicate\n \t\tthat the resources are related. For example, you can assign the same tag to an Amazon DynamoDB\n \t\ttable resource that you assign to an Lambda function. For more information about\n \t\tusing tags, see the Tagging\n \t\t\tbest practices whitepaper.

\n \t

Each Amazon Web Services tag has two parts.

\n \t \n \t

Together these are known as key-value pairs.

\n \t \n\t\t

The string used for a key in a tag that you use to define your resource coverage must begin with the\n\t\t\tprefix Devops-guru-. The tag key might be\n\t\t\tDevops-guru-deployment-application or\n\t\t\tDevops-guru-rds-application. While keys are case-sensitive, the\n\t\t\tcase of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a\n\t\t\tkey named devops-guru-rds and a key named\n\t\t\tDevOps-Guru-RDS. Possible key/value pairs in your\n\t\t\tapplication might be Devops-Guru-production-application/RDS or\n\t\t\tDevops-Guru-production-application/containers.

\n\t
" + } } } }, @@ -3070,6 +3076,10 @@ { "value": "AWS_ACCOUNT", "name": "AWS_ACCOUNT" + }, + { + "value": "AWS_TAGS", + "name": "AWS_TAGS" } ] } 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 585d0735a6c..63d1e4986f3 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -23013,6 +23013,32 @@ "outputToken": "NextToken", "items": "InternetGateways", "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "InternetGatewayExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(InternetGateways[].InternetGatewayId) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInternetGateway.NotFound" + } + } + ], + "minDelay": 5 + } } } }, @@ -32363,7 +32389,7 @@ "type": "structure", "members": { "ElasticGpuId": { - "target": "com.amazonaws.ec2#String", + "target": "com.amazonaws.ec2#ElasticGpuId", "traits": { "aws.protocols#ec2QueryName": "ElasticGpuId", "smithy.api#documentation": "

The ID of the Elastic Graphics accelerator.

", diff --git a/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json b/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json index 2f28ffa467d..1ebe692d233 100644 --- a/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json +++ b/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json @@ -250,6 +250,12 @@ "smithy.api#documentation": "

Time until which the Changeset is active. The value is determined as Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

" } }, + "activeFromTimestamp": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#box": {} + } + }, "updatesChangesetId": { "target": "com.amazonaws.finspacedata#ChangesetId", "traits": { @@ -696,8 +702,7 @@ "datasetDescription": { "target": "com.amazonaws.finspacedata#DatasetDescription", "traits": { - "smithy.api#documentation": "

Description of a Dataset.

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

Description of a Dataset.

" } }, "ownerInfo": { @@ -716,8 +721,7 @@ "alias": { "target": "com.amazonaws.finspacedata#AliasString", "traits": { - "smithy.api#documentation": "

The unique resource identifier for a Dataset.

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

The unique resource identifier for a Dataset.

" } }, "schemaDefinition": { @@ -792,6 +796,12 @@ "smithy.api#documentation": "

Destination type for a Dataview.

\n ", "smithy.api#required": {} } + }, + "s3DestinationExportFileFormat": { + "target": "com.amazonaws.finspacedata#ExportFileFormat" + }, + "s3DestinationExportFileFormatOptions": { + "target": "com.amazonaws.finspacedata#S3DestinationFormatOptions" } }, "traits": { @@ -1038,7 +1048,7 @@ "smithy.api#documentation": "Description of a dataset", "smithy.api#length": { "min": 1, - "max": 256 + "max": 1000 }, "smithy.api#pattern": "^[\\s\\S]*\\S[\\s\\S]*$" } @@ -1281,6 +1291,22 @@ "com.amazonaws.finspacedata#ErrorMessage2": { "type": "string" }, + "com.amazonaws.finspacedata#ExportFileFormat": { + "type": "string", + "traits": { + "smithy.api#documentation": "Data View Export File Format", + "smithy.api#enum": [ + { + "value": "PARQUET", + "name": "PARQUET" + }, + { + "value": "DELIMITED_TEXT", + "name": "DELIMITED_TEXT" + } + ] + } + }, "com.amazonaws.finspacedata#FormatParams": { "type": "map", "key": { @@ -1418,6 +1444,12 @@ "smithy.api#documentation": "

Time until which the Changeset is active. The value is determined as Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

" } }, + "activeFromTimestamp": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#box": {} + } + }, "updatesChangesetId": { "target": "com.amazonaws.finspacedata#ChangesetId", "traits": { @@ -2272,6 +2304,15 @@ } } }, + "com.amazonaws.finspacedata#S3DestinationFormatOptions": { + "type": "map", + "key": { + "target": "com.amazonaws.finspacedata#StringMapKey" + }, + "value": { + "target": "com.amazonaws.finspacedata#StringMapValue" + } + }, "com.amazonaws.finspacedata#SchemaDefinition": { "type": "structure", "members": { @@ -2582,8 +2623,7 @@ "alias": { "target": "com.amazonaws.finspacedata#AliasString", "traits": { - "smithy.api#documentation": "

The unique resource identifier for a Dataset.

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

The unique resource identifier for a Dataset.

" } }, "schemaDefinition": { diff --git a/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json b/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json index 05c0c39cf14..50182d1a4b6 100644 --- a/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json +++ b/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json @@ -42,7 +42,7 @@ "Configuration": { "target": "com.amazonaws.forecast#Configuration", "traits": { - "smithy.api#documentation": "

\n Weather Index\n

\n

To enable the Weather Index, do not specify a value for\n Configuration.

\n

\n Holidays\n

\n

To enable Holidays, specify a country with one of the following two-letter country\n codes:

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

\n Weather Index\n

\n

To enable the Weather Index, do not specify a value for\n Configuration.

\n

\n Holidays\n

\n

To enable Holidays, set CountryCode to one of the following two-letter country\n codes:

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

Creates an Amazon Forecast predictor.

\n

Amazon Forecast creates predictors with AutoPredictor, which involves applying the\n optimal combination of algorithms to each time series in your datasets. You can use\n CreateAutoPredictor to create new predictors or upgrade/retrain existing\n predictors.

\n

\n Creating new predictors\n

\n

The following parameters are required when creating a new predictor:

\n \n

When creating a new predictor, do not specify a value for\n ReferencePredictorArn.

\n

\n Upgrading and retraining predictors\n

\n

The following parameters are required when retraining or upgrading a predictor:

\n \n

When upgrading or retraining a predictor, only specify values for the\n ReferencePredictorArn and PredictorName.

" + "smithy.api#documentation": "

Creates an Amazon Forecast predictor.

\n

Amazon Forecast creates predictors with AutoPredictor, which involves applying the\n optimal combination of algorithms to each time series in your datasets. You can use\n CreateAutoPredictor to create new predictors or upgrade/retrain existing\n predictors.

\n

\n Creating new predictors\n

\n

The following parameters are required when creating a new predictor:

\n \n

When creating a new predictor, do not specify a value for\n ReferencePredictorArn.

\n

\n Upgrading and retraining predictors\n

\n

The following parameters are required when retraining or upgrading a predictor:

\n \n

When upgrading or retraining a predictor, only specify values for the\n ReferencePredictorArn and PredictorName.

" } }, "com.amazonaws.forecast#CreateAutoPredictorRequest": { @@ -491,7 +491,10 @@ } }, "ExplainPredictor": { - "target": "com.amazonaws.forecast#Boolean" + "target": "com.amazonaws.forecast#Boolean", + "traits": { + "smithy.api#documentation": "

Create an Explainability resource for the predictor.

" + } }, "Tags": { "target": "com.amazonaws.forecast#Tags", @@ -590,7 +593,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the dataset group to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the dataset group to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

\n

The following basic restrictions apply to tags:

\n " } } } @@ -686,7 +689,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the dataset import job to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

\n

The following basic restrictions apply to tags:

\n " } } } @@ -748,7 +751,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the dataset to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

Explainability is only available for Forecasts and Predictors generated from an\n AutoPredictor (CreateAutoPredictor)

\n
\n

Creates an Amazon Forecast Explainability.

\n

Explainability helps you better understand how the attributes in your datasets impact\n forecast. Amazon Forecast uses a metric called Impact scores to quantify the relative\n impact of each attribute and determine whether they increase or decrease forecast\n values.

\n

To enable Forecast Explainability, your predictor must include at least one of the\n following: related time series, item metadata, or additional datasets like Holidays and\n the Weather Index.

\n

CreateExplainability accepts either a Predictor ARN or Forecast ARN. To receive\n aggregated Impact scores for all time series and time points in your datasets, provide a\n Predictor ARN. To receive Impact scores for specific time series and time points,\n provide a Forecast ARN.

\n

\n CreateExplainability with a Predictor ARN\n

\n \n

You can only have one Explainability resource per predictor. If you already\n enabled ExplainPredictor in CreateAutoPredictor, that\n predictor already has an Explainability resource.

\n
\n

The following parameters are required when providing a Predictor ARN:

\n \n

Do not specify a value for the following parameters:

\n \n

\n CreateExplainability with a Forecast ARN\n

\n \n

You can specify a maximum of 50 time series and 1500 time points.

\n
\n

The following parameters are required when providing a Predictor ARN:

\n \n

If you set TimeSeriesGranularity to “SPECIFIC”, you must also provide the\n following:

\n \n

If you set TimePointGranularity to “SPECIFIC”, you must also provide the\n following:

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

Explainability is only available for Forecasts and Predictors generated from an\n AutoPredictor (CreateAutoPredictor)

\n
\n

Creates an Amazon Forecast Explainability.

\n

Explainability helps you better understand how the attributes in your datasets impact\n forecast. Amazon Forecast uses a metric called Impact scores to quantify the relative\n impact of each attribute and determine whether they increase or decrease forecast\n values.

\n

To enable Forecast Explainability, your predictor must include at least one of the\n following: related time series, item metadata, or additional datasets like Holidays and\n the Weather Index.

\n

CreateExplainability accepts either a Predictor ARN or Forecast ARN. To receive\n aggregated Impact scores for all time series and time points in your datasets, provide a\n Predictor ARN. To receive Impact scores for specific time series and time points,\n provide a Forecast ARN.

\n

\n CreateExplainability with a Predictor ARN\n

\n \n

You can only have one Explainability resource per predictor. If you already\n enabled ExplainPredictor in CreateAutoPredictor, that\n predictor already has an Explainability resource.

\n
\n

The following parameters are required when providing a Predictor ARN:

\n \n

Do not specify a value for the following parameters:

\n \n

\n CreateExplainability with a Forecast ARN\n

\n \n

You can specify a maximum of 50 time series and 500 time points.

\n
\n

The following parameters are required when providing a Predictor ARN:

\n \n

If you set TimeSeriesGranularity to “SPECIFIC”, you must also provide the\n following:

\n \n

If you set TimePointGranularity to “SPECIFIC”, you must also provide the\n following:

\n " } }, "com.amazonaws.forecast#CreateExplainabilityExport": { @@ -903,13 +906,13 @@ "StartDateTime": { "target": "com.amazonaws.forecast#LocalDateTime", "traits": { - "smithy.api#documentation": "

If TimePointGranularity is set to SPECIFIC, define the first\n point for the Explainability.

" + "smithy.api#documentation": "

If TimePointGranularity is set to SPECIFIC, define the first\n point for the Explainability.

\n

Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

" } }, "EndDateTime": { "target": "com.amazonaws.forecast#LocalDateTime", "traits": { - "smithy.api#documentation": "

If TimePointGranularity is set to SPECIFIC, define the last\n time point for the Explainability.

" + "smithy.api#documentation": "

If TimePointGranularity is set to SPECIFIC, define the last\n time point for the Explainability.

\n

Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

" } }, "Tags": { @@ -1016,7 +1019,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the forecast export job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the forecast export job to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

\n

The following basic restrictions apply to tags:

\n " } } } @@ -1058,7 +1061,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the forecast to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the forecast to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

This operation creates a legacy predictor that does not include all the predictor\n functionalities provided by Amazon Forecast. To create a predictor that is compatible with all\n aspects of Forecast, use CreateAutoPredictor.

\n
\n

Creates an Amazon Forecast predictor.

\n

In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast\n choose an algorithm for you using AutoML. If you specify an algorithm, you also can override\n algorithm-specific hyperparameters.

\n

Amazon Forecast uses the algorithm to train a predictor using the latest version of the datasets\n in the specified dataset group. You can then generate a forecast using the CreateForecast operation.

\n

To see the evaluation metrics, use the GetAccuracyMetrics operation.

\n

You can specify a featurization configuration to fill and aggregate the data fields in the\n TARGET_TIME_SERIES dataset to improve model training. For more information, see\n FeaturizationConfig.

\n

For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the\n DataFrequency specified when the dataset was created matches the\n ForecastFrequency. TARGET_TIME_SERIES datasets don't have this restriction.\n Amazon Forecast also verifies the delimiter and timestamp format. For more information, see howitworks-datasets-groups.

\n

By default, predictors are trained and evaluated at the 0.1 (P10), 0.5 (P50), and 0.9\n (P90) quantiles. You can choose custom forecast types to train and evaluate your predictor by\n setting the ForecastTypes.

\n

\n AutoML\n

\n

If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the\n objective function, set PerformAutoML to true. The\n objective function is defined as the mean of the weighted losses over the\n forecast types. By default, these are the p10, p50, and p90 quantile losses. For more\n information, see EvaluationResult.

\n

When AutoML is enabled, the following properties are disallowed:

\n \n\n \n\n

To get a list of all of your predictors, use the ListPredictors\n operation.

\n \n

Before you can use the predictor to create a forecast, the Status of the\n predictor must be ACTIVE, signifying that training has completed. To get the\n status, use the DescribePredictor operation.

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

This operation creates a legacy predictor that does not include all the predictor\n functionalities provided by Amazon Forecast. To create a predictor that is compatible with all\n aspects of Forecast, use CreateAutoPredictor.

\n
\n

Creates an Amazon Forecast predictor.

\n

In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast\n choose an algorithm for you using AutoML. If you specify an algorithm, you also can override\n algorithm-specific hyperparameters.

\n

Amazon Forecast uses the algorithm to train a predictor using the latest version of the datasets\n in the specified dataset group. You can then generate a forecast using the CreateForecast operation.

\n

To see the evaluation metrics, use the GetAccuracyMetrics operation.

\n

You can specify a featurization configuration to fill and aggregate the data fields in the\n TARGET_TIME_SERIES dataset to improve model training. For more information, see\n FeaturizationConfig.

\n

For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the\n DataFrequency specified when the dataset was created matches the\n ForecastFrequency. TARGET_TIME_SERIES datasets don't have this restriction.\n Amazon Forecast also verifies the delimiter and timestamp format. For more information, see howitworks-datasets-groups.

\n

By default, predictors are trained and evaluated at the 0.1 (P10), 0.5 (P50), and 0.9\n (P90) quantiles. You can choose custom forecast types to train and evaluate your predictor by\n setting the ForecastTypes.

\n

\n AutoML\n

\n

If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the\n objective function, set PerformAutoML to true. The\n objective function is defined as the mean of the weighted losses over the\n forecast types. By default, these are the p10, p50, and p90 quantile losses. For more\n information, see EvaluationResult.

\n

When AutoML is enabled, the following properties are disallowed:

\n \n\n \n\n

To get a list of all of your predictors, use the ListPredictors\n operation.

\n \n

Before you can use the predictor to create a forecast, the Status of the\n predictor must be ACTIVE, signifying that training has completed. To get the\n status, use the DescribePredictor operation.

\n
" } }, "com.amazonaws.forecast#CreatePredictorBacktestExportJob": { @@ -1129,7 +1132,7 @@ } ], "traits": { - "smithy.api#documentation": "

Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported\n to your specified S3 bucket.

\n

The export file names will match the following conventions:

\n

\n __.csv\n

\n

The component is in Java SimpleDate format\n (yyyy-MM-ddTHH-mm-ssZ).

\n

You must specify a DataDestination object that includes an Amazon S3\n bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3\n bucket. For more information, see aws-forecast-iam-roles.

\n \n

The Status of the export job must be ACTIVE before\n you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

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

Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two\n folders containing CSV files are exported to your specified S3 bucket.

\n

The export file names will match the following conventions:

\n

\n __.csv\n

\n

The component is in Java SimpleDate format\n (yyyy-MM-ddTHH-mm-ssZ).

\n

You must specify a DataDestination object that includes an Amazon S3\n bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3\n bucket. For more information, see aws-forecast-iam-roles.

\n \n

The Status of the export job must be ACTIVE before you\n can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

\n
" } }, "com.amazonaws.forecast#CreatePredictorBacktestExportJobRequest": { @@ -1158,7 +1161,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

Optional metadata to help you categorize and organize your backtests. Each tag consists\n of a key and an optional value, both of which you define. Tag keys and values are case\n sensitive.

\n

The following restrictions apply to tags:

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

Optional metadata to help you categorize and organize your backtests. Each tag\n consists of a key and an optional value, both of which you define. Tag keys and values\n are case sensitive.

\n

The following restrictions apply to tags:

\n " } } } @@ -1262,7 +1265,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to the predictor to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to the predictor to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n " } }, "OptimizationMetric": { @@ -1332,13 +1335,13 @@ "S3Config": { "target": "com.amazonaws.forecast#S3Config", "traits": { - "smithy.api#documentation": "

The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the\n credentials to access the data.

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

The path to the data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the\n credentials to access the data.

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

The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to\n access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the\n CreateDatasetImportJob request.

" + "smithy.api#documentation": "

The source of your data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to\n access the data and, optionally, an AWS Key Management Service (KMS) key.

" } }, "com.amazonaws.forecast#DatasetGroupSummary": { @@ -1641,7 +1644,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Explainability export job.

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

Deletes an Explainability export.

", "smithy.api#idempotent": {} } }, @@ -1752,7 +1755,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a predictor created using the CreatePredictor operation. You can\n delete only predictor that have a status of ACTIVE or CREATE_FAILED.\n To get the status, use the DescribePredictor operation.

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

Deletes a predictor created using the DescribePredictor or CreatePredictor operations. You can delete only predictor that have a status of\n ACTIVE or CREATE_FAILED. To get the status, use the DescribePredictor operation.

", "smithy.api#idempotent": {} } }, @@ -1900,6 +1903,12 @@ "smithy.api#documentation": "

The frequency of predictions in a forecast.

\n

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30\n minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute).\n For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

" } }, + "ForecastDimensions": { + "target": "com.amazonaws.forecast#ForecastDimensions", + "traits": { + "smithy.api#documentation": "

An array of dimension (field) names that specify the attributes used to group your time series.

" + } + }, "DatasetImportJobArns": { "target": "com.amazonaws.forecast#ArnList", "traits": { @@ -1958,7 +1967,10 @@ } }, "ExplainabilityInfo": { - "target": "com.amazonaws.forecast#ExplainabilityInfo" + "target": "com.amazonaws.forecast#ExplainabilityInfo", + "traits": { + "smithy.api#documentation": "

Provides the status and ARN of the Predictor Explainability.

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

This operation is only valid for legacy predictors created with CreatePredictor. If you\n are not using a legacy predictor, use DescribeAutoPredictor.

\n

To upgrade a legacy predictor to AutoPredictor, see Upgrading to AutoPredictor.

\n
\n

Describes a predictor created using the CreatePredictor\n operation.

\n

In addition to listing the properties provided in the CreatePredictor\n request, this operation lists the following properties:

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

This operation is only valid for legacy predictors created with CreatePredictor. If you\n are not using a legacy predictor, use DescribeAutoPredictor.

\n
\n

Describes a predictor created using the CreatePredictor\n operation.

\n

In addition to listing the properties provided in the CreatePredictor\n request, this operation lists the following properties:

\n ", "smithy.api#idempotent": {} } }, @@ -2689,7 +2701,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

\n

In addition to listing the properties provided by the user in the\n CreatePredictorBacktestExportJob request, this operation lists the\n following properties:

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

Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

\n

In addition to listing the properties provided by the user in the\n CreatePredictorBacktestExportJob request, this operation lists the\n following properties:

\n ", "smithy.api#idempotent": {} } }, @@ -2738,7 +2750,7 @@ "Status": { "target": "com.amazonaws.forecast#Status", "traits": { - "smithy.api#documentation": "

The status of the predictor backtest export job. States include:

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

The status of the predictor backtest export job. States include:

\n " } }, "CreationTime": { @@ -2750,7 +2762,7 @@ "LastModificationTime": { "target": "com.amazonaws.forecast#Timestamp", "traits": { - "smithy.api#documentation": "

The last time the resource was modified. The timestamp depends on the status of the job:

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

The last time the resource was modified. The timestamp depends on the status of the\n job:

\n " } } } @@ -3166,11 +3178,20 @@ "type": "structure", "members": { "ExplainabilityArn": { - "target": "com.amazonaws.forecast#Arn" + "target": "com.amazonaws.forecast#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Explainability.

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

The status of the Explainability. States include:

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

Provides information about the Explainability resource.

" } }, "com.amazonaws.forecast#ExplainabilitySummary": { @@ -3235,7 +3256,7 @@ "AttributeName": { "target": "com.amazonaws.forecast#Name", "traits": { - "smithy.api#documentation": "

The name of the schema attribute that specifies the data field to be featurized. Amazon Forecast supports the target field of \n the TARGET_TIME_SERIES and the RELATED_TIME_SERIES datasets. For example, for the RETAIL domain, the target is\n demand, and for the CUSTOM domain, the target is\n target_value.\n For more information, see howitworks-missing-values.

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

The name of the schema attribute that specifies the data field to be featurized. Amazon\n Forecast supports the target field of the TARGET_TIME_SERIES and the\n RELATED_TIME_SERIES datasets. For example, for the RETAIL domain,\n the target is demand, and for the CUSTOM domain, the target is\n target_value. For more information, see howitworks-missing-values.

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

Provides featurization (transformation) information for a dataset field. This object\n is part of the FeaturizationConfig object.

\n

For example:

\n

\n {\n

\n

\n \"AttributeName\": \"demand\",\n

\n

\n FeaturizationPipeline [ {\n

\n \n

\n \"FeaturizationMethodName\": \"filling\",\n

\n

\n \"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\": \"nan\"}\n

\n

\n } ]\n

\n

\n }\n

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

This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AttributeConfig.

\n
\n

Provides featurization (transformation) information for a dataset field. This object is\n part of the FeaturizationConfig object.

\n

For example:

\n

\n {\n

\n

\n \"AttributeName\": \"demand\",\n

\n

\n FeaturizationPipeline [ {\n

\n \n

\n \"FeaturizationMethodName\": \"filling\",\n

\n

\n \"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\":\n \"nan\"}\n

\n

\n } ]\n

\n

\n }\n

" } }, "com.amazonaws.forecast#FeaturizationConfig": { @@ -3256,14 +3277,14 @@ "ForecastFrequency": { "target": "com.amazonaws.forecast#Frequency", "traits": { - "smithy.api#documentation": "

The frequency of predictions in a forecast.

\n

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes),\n 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute).\n For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

\n

The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset\n frequency.

\n

When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the\n RELATED_TIME_SERIES dataset frequency.

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

The frequency of predictions in a forecast.

\n

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes),\n 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example,\n \"Y\" indicates every year and \"5min\" indicates every five minutes.

\n

The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset\n frequency.

\n

When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the\n RELATED_TIME_SERIES dataset frequency.

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

An array of dimension (field) names that specify how to group the generated forecast.

\n

For example, suppose that you are generating a forecast for item sales across all of\n your stores, and your dataset contains a store_id field. If you want the sales\n forecast for each item by store, you would specify store_id as the dimension.

\n

All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't\n need to be specified in the CreatePredictor request.\n All forecast dimensions specified in the RELATED_TIME_SERIES dataset must\n be specified in the CreatePredictor request.

" + "smithy.api#documentation": "

An array of dimension (field) names that specify how to group the generated\n forecast.

\n

For example, suppose that you are generating a forecast for item sales across all of your\n stores, and your dataset contains a store_id field. If you want the sales\n forecast for each item by store, you would specify store_id as the\n dimension.

\n

All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't\n need to be specified in the CreatePredictor request. All forecast dimensions\n specified in the RELATED_TIME_SERIES dataset must be specified in the\n CreatePredictor request.

" } }, "Featurizations": { @@ -3274,7 +3295,7 @@ } }, "traits": { - "smithy.api#documentation": "

In a CreatePredictor operation, the specified algorithm\n trains a model using the specified dataset group. You can optionally tell the operation\n to modify data fields prior to training a model. These modifications are referred to as\n featurization.

\n

You define featurization using the FeaturizationConfig object.\n You specify an array of transformations, one for each field that you want to\n featurize. You then include the FeaturizationConfig object in your\n CreatePredictor request. Amazon Forecast applies the featurization to the\n TARGET_TIME_SERIES and RELATED_TIME_SERIES datasets before model training.

\n

You can create multiple featurization configurations. For example, you\n might call the CreatePredictor operation twice by specifying different\n featurization configurations.

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

This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AttributeConfig.

\n
\n

In a CreatePredictor operation, the specified algorithm trains a model\n using the specified dataset group. You can optionally tell the operation to modify data fields\n prior to training a model. These modifications are referred to as\n featurization.

\n

You define featurization using the FeaturizationConfig object. You specify an\n array of transformations, one for each field that you want to featurize. You then include the\n FeaturizationConfig object in your CreatePredictor request.\n Amazon Forecast applies the featurization to the TARGET_TIME_SERIES and\n RELATED_TIME_SERIES datasets before model training.

\n

You can create multiple featurization configurations. For example, you might call the\n CreatePredictor operation twice by specifying different featurization\n configurations.

" } }, "com.amazonaws.forecast#FeaturizationMethod": { @@ -3290,12 +3311,12 @@ "FeaturizationMethodParameters": { "target": "com.amazonaws.forecast#FeaturizationMethodParameters", "traits": { - "smithy.api#documentation": "

The method parameters (key-value pairs), which are a map of override parameters. Specify these parameters to override the default values. \n Related Time Series attributes do not accept aggregation parameters.

\n

The following list shows the parameters and their valid values for the \"filling\" featurization method for a Target Time Series dataset. Bold signifies the default\n value.

\n \n\n

The following list shows the parameters and their valid values for a Related Time Series featurization method (there are no defaults):

\n \n

To set a filling method to a specific value, set the fill parameter to value\n and define the value in a corresponding _value parameter. For example, to set\n backfilling to a value of 2, include the following: \"backfill\": \"value\" and\n \"backfill_value\":\"2\".

" + "smithy.api#documentation": "

The method parameters (key-value pairs), which are a map of override parameters. Specify\n these parameters to override the default values. Related Time Series attributes do not accept\n aggregation parameters.

\n

The following list shows the parameters and their valid values for the \"filling\"\n featurization method for a Target Time Series dataset. Bold\n signifies the default value.

\n \n\n

The following list shows the parameters and their valid values for a Related Time Series featurization method (there are no defaults):

\n \n

To set a filling method to a specific value, set the fill parameter to value\n and define the value in a corresponding _value parameter. For example, to set\n backfilling to a value of 2, include the following: \"backfill\": \"value\" and\n \"backfill_value\":\"2\".

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

Provides information about the method that featurizes (transforms) a dataset field.\n The method is part of the FeaturizationPipeline of the\n Featurization object.

\n

The following is an example of how you specify a FeaturizationMethod object.

\n

\n {\n

\n

\n \"FeaturizationMethodName\": \"filling\",\n

\n

\n \"FeaturizationMethodParameters\": {\"aggregation\": \"sum\", \"middlefill\": \"zero\", \"backfill\": \"zero\"}\n

\n

\n }\n

" + "smithy.api#documentation": "

Provides information about the method that featurizes (transforms) a dataset field. The\n method is part of the FeaturizationPipeline of the Featurization object.

\n

The following is an example of how you specify a FeaturizationMethod\n object.

\n

\n {\n

\n

\n \"FeaturizationMethodName\": \"filling\",\n

\n

\n \"FeaturizationMethodParameters\": {\"aggregation\": \"sum\", \"middlefill\": \"zero\",\n \"backfill\": \"zero\"}\n

\n

\n }\n

" } }, "com.amazonaws.forecast#FeaturizationMethodName": { @@ -3497,7 +3518,10 @@ } }, "CreatedUsingAutoPredictor": { - "target": "com.amazonaws.forecast#Boolean" + "target": "com.amazonaws.forecast#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the Forecast was created from an AutoPredictor.

" + } }, "DatasetGroupArn": { "target": "com.amazonaws.forecast#String", @@ -3679,7 +3703,7 @@ } }, "traits": { - "smithy.api#documentation": "

The data used to train a predictor. The data includes a dataset group and any\n supplementary features. You specify this object in the CreatePredictor\n request.

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

This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see DataConfig.

\n
\n

The data used to train a predictor. The data includes a dataset group and any\n supplementary features. You specify this object in the CreatePredictor\n request.

" } }, "com.amazonaws.forecast#Integer": { @@ -4006,7 +4030,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the resources that match the statement from the list. The match\n statement consists of a key and a value.

\n

\n Filter properties\n

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

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the resources that match the statement from the list. The match\n statement consists of a key and a value.

\n

\n Filter properties\n

\n " } } } @@ -4067,7 +4091,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude resources that match the statement from the list. The match statement\n consists of a key and a value.

\n

\n Filter properties\n

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

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude resources that match the statement from the list. The match statement\n consists of a key and a value.

\n

\n Filter properties\n

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

Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a summary\n for each backtest export job. You can filter the list using an array of Filter objects.

\n

To retrieve the complete set of properties for a particular backtest export job, use the\n ARN with the DescribePredictorBacktestExportJob operation.

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

Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a\n summary for each backtest export job. You can filter the list using an array of Filter objects.

\n

To retrieve the complete set of properties for a particular backtest export job, use\n the ARN with the DescribePredictorBacktestExportJob operation.

", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -4256,7 +4280,7 @@ "NextToken": { "target": "com.amazonaws.forecast#NextToken", "traits": { - "smithy.api#documentation": "

If the result of the previous request was truncated, the response includes a NextToken.\n To retrieve the next set of results, use the token in the next request. Tokens expire after\n 24 hours.

" + "smithy.api#documentation": "

If the result of the previous request was truncated, the response includes a\n NextToken. To retrieve the next set of results, use the token in the next request.\n Tokens expire after 24 hours.

" } }, "MaxResults": { @@ -4268,7 +4292,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the predictor backtest export jobs that match the statement from the\n list. The match statement consists of a key and a value.

\n

\n Filter properties\n

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

An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the predictor backtest export jobs that match the statement from the\n list. The match statement consists of a key and a value.

\n

\n Filter properties\n

\n " } } } @@ -4285,7 +4309,7 @@ "NextToken": { "target": "com.amazonaws.forecast#NextToken", "traits": { - "smithy.api#documentation": "

Returns this token if the response is truncated. To retrieve the next\n set of results, use the token in the next request.

" + "smithy.api#documentation": "

Returns this token if the response is truncated. To retrieve the next set of results,\n use the token in the next request.

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

Returns a list of predictors created using the CreatePredictor\n operation. For each predictor, this operation returns a summary of its properties, including\n its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the\n ARN with the DescribePredictor operation. You can filter the list using an\n array of Filter objects.

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

Returns a list of predictors created using the CreateAutoPredictor or\n CreatePredictor operations. For each predictor, this operation returns a\n summary of its properties, including its Amazon Resource Name (ARN).

\n

You can retrieve the complete set of properties by using the ARN with the DescribeAutoPredictor and DescribePredictor operations. You\n can filter the list using an array of Filter objects.

", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -4383,7 +4407,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

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

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

", "smithy.api#required": {} } } @@ -4578,7 +4602,7 @@ "Status": { "target": "com.amazonaws.forecast#Status", "traits": { - "smithy.api#documentation": "

The status of the predictor backtest export job. States include:

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

The status of the predictor backtest export job. States include:

\n " } }, "Message": { @@ -4596,12 +4620,12 @@ "LastModificationTime": { "target": "com.amazonaws.forecast#Timestamp", "traits": { - "smithy.api#documentation": "

The last time the resource was modified. The timestamp depends on the status of the job:

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

The last time the resource was modified. The timestamp depends on the status of the\n job:

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

Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of properties, call\n the DescribePredictorBacktestExportJob operation, and provide the listed\n PredictorBacktestExportJobArn.

" + "smithy.api#documentation": "

Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of\n properties, call the DescribePredictorBacktestExportJob operation, and\n provide the listed PredictorBacktestExportJobArn.

" } }, "com.amazonaws.forecast#PredictorBacktestExportJobs": { @@ -4861,7 +4885,7 @@ } }, "traits": { - "smithy.api#documentation": "

Defines the fields of a dataset. You specify this object in the CreateDataset request.

" + "smithy.api#documentation": "

Defines the fields of a dataset.

" } }, "com.amazonaws.forecast#SchemaAttribute": { @@ -5017,7 +5041,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops a resource.

\n

The resource undergoes the following states:\n CREATE_STOPPING and CREATE_STOPPED. You cannot resume\n a resource once it has been stopped.

\n

This operation can be applied to the following resources (and their corresponding child\n resources):

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

Stops a resource.

\n

The resource undergoes the following states: CREATE_STOPPING and\n CREATE_STOPPED. You cannot resume a resource once it has been\n stopped.

\n

This operation can be applied to the following resources (and their corresponding child\n resources):

\n ", "smithy.api#idempotent": {} } }, @@ -5027,7 +5051,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs\n are DatasetImportJobArn, PredictorArn,\n PredictorBacktestExportJobArn, ForecastArn, and\n ForecastExportJobArn.

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

The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs\n are DatasetImportJobArn, PredictorArn,\n PredictorBacktestExportJobArn, ForecastArn,\n ForecastExportJobArn, ExplainabilityArn, and\n ExplainabilityExportArn.

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

Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in\n featurizations.

\n

\n Weather Index\n

\n

The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and\n projected weather information into your model. The Weather Index supplements your datasets\n with over two years of historical weather data and up to 14 days of projected weather data.\n For more information, see Amazon Forecast Weather\n Index.

\n

\n Holidays\n

\n

Holidays is a built-in featurization that incorporates a feature-engineered dataset of\n national holiday information into your model. It provides native support for the holiday\n calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more\n information, see Holidays Featurization.

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

This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AdditionalDataset.

\n
\n

Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in\n featurizations.

\n

\n Weather Index\n

\n

The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and\n projected weather information into your model. The Weather Index supplements your datasets\n with over two years of historical weather data and up to 14 days of projected weather data.\n For more information, see Amazon Forecast Weather\n Index.

\n

\n Holidays\n

\n

Holidays is a built-in featurization that incorporates a feature-engineered dataset of\n national holiday information into your model. It provides native support for the holiday\n calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more\n information, see Holidays Featurization.

" } }, "com.amazonaws.forecast#SupplementaryFeatures": { @@ -5083,20 +5107,20 @@ "Key": { "target": "com.amazonaws.forecast#TagKey", "traits": { - "smithy.api#documentation": "

One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

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

One part of a key-value pair that makes up a tag. A key is a general label\n that acts like a category for more specific tag values.

", "smithy.api#required": {} } }, "Value": { "target": "com.amazonaws.forecast#TagValue", "traits": { - "smithy.api#documentation": "

The optional part of a key-value pair that makes up a tag. A value acts as a descriptor within a tag category (key).

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

The optional part of a key-value pair that makes up a tag. A value acts as a\n descriptor within a tag category (key).

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

The optional metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

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

The optional metadata that you apply to a resource to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

\n

The following basic restrictions apply to tags:

\n " } }, "com.amazonaws.forecast#TagKey": { @@ -5142,7 +5166,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

" + "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn.\n If existing tags on a resource are not specified in the request parameters, they are not\n changed. When a resource is deleted, the tags associated with that resource are also\n deleted.

" } }, "com.amazonaws.forecast#TagResourceRequest": { @@ -5151,14 +5175,14 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

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

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

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

The tags to add to the resource. A tag is an array of key-value pairs.

\n

The following basic restrictions apply to tags:

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

The tags to add to the resource. A tag is an array of key-value pairs.

\n

The following basic restrictions apply to tags:

\n ", "smithy.api#required": {} } } @@ -5344,7 +5368,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast exports.

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

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/health.2016-08-04.json b/codegen/sdk-codegen/aws-models/health.2016-08-04.json index 19416997dc1..2afabe8f383 100644 --- a/codegen/sdk-codegen/aws-models/health.2016-08-04.json +++ b/codegen/sdk-codegen/aws-models/health.2016-08-04.json @@ -43,7 +43,7 @@ "name": "health" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Health\n \n

The Health API provides programmatic access to the Health information that\n appears in the Personal Health Dashboard. You\n can use the API operations to get information about events that might affect your Amazon Web Services\n services and resources.

\n \n \n \n

For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

\n

If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

\n \n

When you use the Health API operations to return Health events, see the\n following recommendations:

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

The Health API provides programmatic access to the Health information that\n appears in the Personal Health Dashboard. You\n can use the API operations to get information about events that might affect your Amazon Web Services services and resources.

\n \n \n \n

For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

\n

If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

\n \n

When you use the Health API operations to return Health events, see the\n following recommendations:

\n \n
", "smithy.api#title": "AWS Health APIs and Notifications" }, "version": "2016-08-04", @@ -265,7 +265,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of entities that have been affected by the specified events, based on the\n specified filter criteria. Entities can refer to individual customer resources, groups of\n customer resources, or any other construct, depending on the Amazon Web Services service. Events that\n have impact beyond that of the affected entities, or where the extent of impact is unknown,\n include at least one entity indicating this.

\n

At least one event ARN is required.

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

Returns a list of entities that have been affected by the specified events, based on the\n specified filter criteria. Entities can refer to individual customer resources, groups of\n customer resources, or any other construct, depending on the Amazon Web Services service. Events that\n have impact beyond that of the affected entities, or where the extent of impact is unknown,\n include at least one entity indicating this.

\n

At least one event ARN is required.

\n\n \n \n ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -292,7 +292,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of entities that have been affected by one or more events for one or more\n accounts in your organization in Organizations, based on the filter criteria. Entities can refer\n to individual customer resources, groups of customer resources, or any other construct,\n depending on the Amazon Web Services service.

\n

At least one event Amazon Resource Name (ARN) and account ID are required.

\n

Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization\n operation from your organization's management account.

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

Returns a list of entities that have been affected by one or more events for one or more\n accounts in your organization in Organizations, based on the filter criteria. Entities can refer\n to individual customer resources, groups of customer resources, or any other construct,\n depending on the Amazon Web Services service.

\n

At least one event Amazon Resource Name (ARN) and account ID are required.

\n

Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

\n \n \n\n ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -552,7 +552,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns detailed information about one or more specified events for one or more\n Amazon Web Services accounts in your organization. This information includes standard event data (such as the\n Amazon Web Services Region and service), an event description, and (depending on the event) possible\n metadata. This operation doesn't return affected entities, such as the resources related to\n the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

\n \n

Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

\n
\n

When you call the DescribeEventDetailsForOrganization operation, specify\n the organizationEventDetailFilters object in the request. Depending on the\n Health event type, note the following differences:

\n \n

For more information, see Event.

\n\n \n

This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

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

Returns detailed information about one or more specified events for one or more\n Amazon Web Services accounts in your organization. This information includes standard event data (such as\n the Amazon Web Services Region and service), an event description, and (depending on the event) possible\n metadata. This operation doesn't return affected entities, such as the resources related to\n the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

\n \n

Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

\n
\n

When you call the DescribeEventDetailsForOrganization operation, specify\n the organizationEventDetailFilters object in the request. Depending on the\n Health event type, note the following differences:

\n \n

For more information, see Event.

\n\n \n

This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

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

Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Services\n service, and event code. The metadata for each event appears in the EventType object.

\n

If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

\n \n

This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

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

Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Services\n service, and event code. The metadata for each event appears in the EventType object.

\n

If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

\n \n

This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

\n
", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -879,7 +879,7 @@ "healthServiceAccessStatusForOrganization": { "target": "com.amazonaws.health#healthServiceAccessStatusForOrganization", "traits": { - "smithy.api#documentation": "

Information about the status of enabling or disabling the Health organizational\n view feature in\n your organization.

\n

Valid values are ENABLED | DISABLED | PENDING.

" + "smithy.api#documentation": "

Information about the status of enabling or disabling the Health organizational\n view feature in your organization.

\n

Valid values are ENABLED | DISABLED | PENDING.

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

Disables Health from working with Organizations. To call this operation, you must sign\n in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not\n recommended) in the organization's management account. For more information, see Aggregating\n Health events in the\n Health User Guide.

\n

This operation doesn't remove the service-linked role from the management account in your organization. You must use the IAM console, API, or Command Line Interface (CLI) to\n remove the service-linked role. For more information, see Deleting a Service-Linked Role in the\n IAM User Guide.

\n \n

You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation,\n Health stops aggregating events for all other Amazon Web Services accounts in your organization.\n If you call the Health API operations for organizational view, Health returns\n an error. Health continues to aggregate health events for your Amazon Web Services account.

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

Disables Health from working with Organizations. To call this operation, you must sign\n in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not\n recommended) in the organization's management account. For more information, see Aggregating\n Health events in the Health User Guide.

\n

This operation doesn't remove the service-linked role from the management account in your\n organization. You must use the IAM console, API, or Command Line Interface (CLI) to remove the\n service-linked role. For more information, see Deleting a Service-Linked Role in the\n IAM User Guide.

\n \n

You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation,\n Health stops aggregating events for all other Amazon Web Services accounts in your organization.\n If you call the Health API operations for organizational view, Health returns\n an error. Health continues to aggregate health events for your\n Amazon Web Services account.

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

Enables Health to work with Organizations. You can use the organizational view feature\n to aggregate events from all Amazon Web Services accounts in your organization in a centralized location.

\n

This operation also creates a service-linked role for the management account in the\n organization.

\n \n

To call this operation, you must meet the following requirements:

\n \n
\n

If you don't have the required support plan, you can instead use the Health console\n to enable the organizational view feature. For more information, see Aggregating\n Health events in the Health User Guide.

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

Enables Health to work with Organizations. You can use the organizational view feature\n to aggregate events from all Amazon Web Services accounts in your organization in a centralized location.

\n

This operation also creates a service-linked role for the management account in the\n organization.

\n \n

To call this operation, you must meet the following requirements:

\n \n
\n

If you don't have the required support plan, you can instead use the Health console\n to enable the organizational view feature. For more information, see Aggregating\n Health events in the Health User Guide.

", "smithy.api#idempotent": {} } }, @@ -976,7 +976,7 @@ } }, "traits": { - "smithy.api#documentation": "

The values to use to filter results from the DescribeAffectedEntities\n operation.

" + "smithy.api#documentation": "

The values to use to filter results from the DescribeAffectedEntities operation.

" } }, "com.amazonaws.health#EntityList": { @@ -1056,7 +1056,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summary information about an Health event.

\n

Health events can be public or account-specific:

\n \n

You can determine if an event is public or account-specific by using the\n eventScopeCode parameter. For more information, see eventScopeCode.

" + "smithy.api#documentation": "

Summary information about an Health event.

\n

Health events can be public or account-specific:

\n \n

You can determine if an event is public or account-specific by using the\n eventScopeCode parameter. For more information, see eventScopeCode.

" } }, "com.amazonaws.health#EventAccountFilter": { @@ -1557,7 +1557,7 @@ "errorMessage": { "target": "com.amazonaws.health#string", "traits": { - "smithy.api#documentation": "

A message that describes the error.

\n

If you call the DescribeEventDetailsForOrganization operation and receive one of the following errors, follow the recommendations in the message:

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

A message that describes the error.

\n

If you call the DescribeEventDetailsForOrganization operation and receive one of the following errors, follow the recommendations in the message:

\n " } } }, diff --git a/codegen/sdk-codegen/aws-models/imagebuilder.2019-12-02.json b/codegen/sdk-codegen/aws-models/imagebuilder.2019-12-02.json index f6285fd1f3d..1eee9f9140a 100644 --- a/codegen/sdk-codegen/aws-models/imagebuilder.2019-12-02.json +++ b/codegen/sdk-codegen/aws-models/imagebuilder.2019-12-02.json @@ -174,6 +174,25 @@ "com.amazonaws.imagebuilder#Boolean": { "type": "boolean" }, + "com.amazonaws.imagebuilder#BuildType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "USER_INITIATED", + "name": "USER_INITIATED" + }, + { + "value": "SCHEDULED", + "name": "SCHEDULED" + }, + { + "value": "IMPORT", + "name": "IMPORT" + } + ] + } + }, "com.amazonaws.imagebuilder#CallRateLimitExceededException": { "type": "structure", "members": { @@ -243,7 +262,7 @@ "clientToken": { "target": "com.amazonaws.imagebuilder#ClientToken", "traits": { - "smithy.api#documentation": "

The idempotency token used to make this request idempotent.

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

Unique, case-sensitive identifier you provide to ensure\n idempotency of the request. For more information, see Ensuring idempotency \n in the Amazon EC2 API Reference.

", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } @@ -262,7 +281,7 @@ "clientToken": { "target": "com.amazonaws.imagebuilder#ClientToken", "traits": { - "smithy.api#documentation": "

The idempotency token used to make this request idempotent.

" + "smithy.api#documentation": "

The idempotency token that was used for this request.

" } }, "imageBuildVersionArn": { @@ -2018,7 +2037,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#SnsTopicArn", "traits": { - "smithy.api#documentation": "

The SNS topic on which to send image build events.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

\n\t\t \n\t\t\t

EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

\n\t\t
" } }, "resourceTags": { @@ -2565,6 +2584,25 @@ } } }, + "com.amazonaws.imagebuilder#DiskImageFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "VMDK", + "name": "VMDK" + }, + { + "value": "RAW", + "name": "RAW" + }, + { + "value": "VHD", + "name": "VHD" + } + ] + } + }, "com.amazonaws.imagebuilder#Distribution": { "type": "structure", "members": { @@ -2598,6 +2636,12 @@ "traits": { "smithy.api#documentation": "

A group of launchTemplateConfiguration settings that apply to image distribution \n\t\t\tfor specified accounts.

" } + }, + "s3ExportConfiguration": { + "target": "com.amazonaws.imagebuilder#S3ExportConfiguration", + "traits": { + "smithy.api#documentation": "

Configure export settings to deliver disk images created from your image build, \n\t\t\tusing a file format that is compatible with your VMs in that Region.

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

The tags of the image.

" } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

\n\t\t " + } } }, "traits": { @@ -4285,6 +4335,12 @@ "traits": { "smithy.api#documentation": "

The tags of the image.

" } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

\n\t\t " + } } }, "traits": { @@ -4303,7 +4359,7 @@ "imageTestsEnabled": { "target": "com.amazonaws.imagebuilder#NullableBoolean", "traits": { - "smithy.api#documentation": "

Defines if tests should be executed when building this image.

" + "smithy.api#documentation": "

Determines if tests should run after building the image. Image Builder defaults \n\t\t\tto enable tests to run following the image build, before image distribution.

" } }, "timeoutMinutes": { @@ -4314,7 +4370,7 @@ } }, "traits": { - "smithy.api#documentation": "

Image tests configuration.

" + "smithy.api#documentation": "

Configure image tests for your pipeline build. Tests run after building \n\t\t\tthe image, to verify that the AMI or container image is valid before \n\t\t\tdistributing it.

" } }, "com.amazonaws.imagebuilder#ImageTestsTimeoutMinutes": { @@ -4392,6 +4448,12 @@ "traits": { "smithy.api#documentation": "

The date on which this specific version of the Image Builder image was created.

" } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

\n\t\t " + } } }, "traits": { @@ -4572,6 +4634,116 @@ } } }, + "com.amazonaws.imagebuilder#ImportVmImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.imagebuilder#ImportVmImageRequest" + }, + "output": { + "target": "com.amazonaws.imagebuilder#ImportVmImageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.imagebuilder#ClientException" + }, + { + "target": "com.amazonaws.imagebuilder#ServiceException" + }, + { + "target": "com.amazonaws.imagebuilder#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

When you export your virtual machine (VM) from its virtualization environment, \n\t\t\tthat process creates a set of one or more disk container files that act as \n\t\t\tsnapshots of your VM’s environment, settings, and data. The Amazon EC2 API \n\t\t\tImportImage \n\t\t\taction uses those files to import your VM and create an AMI. To import using the \n\t\t\tCLI command, see import-image\n\t\t

\n\t\t

You can reference the task ID from the VM import to pull in the AMI that \n\t\t\tthe import created as the base image for your Image Builder recipe.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/ImportVmImage", + "code": 200 + } + } + }, + "com.amazonaws.imagebuilder#ImportVmImageRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the base image that is created by the import process.

", + "smithy.api#required": {} + } + }, + "semanticVersion": { + "target": "com.amazonaws.imagebuilder#VersionNumber", + "traits": { + "smithy.api#documentation": "

The semantic version to attach to the base image that was created during the \n\t\t\timport process. This version follows the semantic version syntax.

\n\t\t \n\t\t\t

The semantic version has four nodes: ../. \n\tYou can assign values for the first three, and can filter on all of them.

\n\t\t\t

\n Assignment: For the first three nodes you can assign any positive integer value, including \n\tzero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the \n\tbuild number to the fourth node.

\n\t\t\t

\n Patterns: You can use any numeric pattern that adheres to the assignment requirements for \n\tthe nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or \n\ta date, such as 2021.01.01.

\n\t\t
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The description for the base image that is created by the import process.

" + } + }, + "platform": { + "target": "com.amazonaws.imagebuilder#Platform", + "traits": { + "smithy.api#documentation": "

The operating system platform for the imported VM.

", + "smithy.api#required": {} + } + }, + "osVersion": { + "target": "com.amazonaws.imagebuilder#OsVersion", + "traits": { + "smithy.api#documentation": "

The operating system version for the imported VM.

" + } + }, + "vmImportTaskId": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The importTaskId (API) or ImportTaskId (CLI) from the \n\t\t\tAmazon EC2 VM import process. Image Builder retrieves information from the import process to pull \n\t\t\tin the AMI that is created from the VM source as the base image for your recipe.

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

Tags that are attached to the import resources.

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

Unique, case-sensitive identifier you provide to ensure\n idempotency of the request. For more information, see Ensuring idempotency \n in the Amazon EC2 API Reference.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.imagebuilder#ImportVmImageResponse": { + "type": "structure", + "members": { + "requestId": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The request ID that uniquely identifies this request.

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

The Amazon Resource Name (ARN) of the AMI that was created during the VM \n\t\t\timport process. This AMI is used as the base image for the recipe that \n\t\t\timported the VM.

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

The idempotency token that was used for this request.

" + } + } + } + }, "com.amazonaws.imagebuilder#InfrastructureConfiguration": { "type": "structure", "members": { @@ -4638,7 +4810,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

The SNS topic Amazon Resource Name (ARN) of the infrastructure configuration.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

\n\t\t \n\t\t\t

EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

\n\t\t
" } }, "dateCreated": { @@ -6759,19 +6931,54 @@ } } }, + "com.amazonaws.imagebuilder#S3ExportConfiguration": { + "type": "structure", + "members": { + "roleName": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the role that grants VM Import/Export permission to \n\t\t\texport images to your S3 bucket.

", + "smithy.api#required": {} + } + }, + "diskImageFormat": { + "target": "com.amazonaws.imagebuilder#DiskImageFormat", + "traits": { + "smithy.api#documentation": "

Export the updated image to one of the following supported disk \n\t\t\timage formats:

\n\t\t ", + "smithy.api#required": {} + } + }, + "s3Bucket": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The S3 bucket in which to store the output disk images for your VM.

", + "smithy.api#required": {} + } + }, + "s3Prefix": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon S3 path for the bucket where the output disk images for your VM are stored.

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

Properties that configure export from your build instance \n\t\t\tto a compatible file format for your VM.

" + } + }, "com.amazonaws.imagebuilder#S3Logs": { "type": "structure", "members": { "s3BucketName": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

The Amazon S3 bucket in which to store the logs.

" + "smithy.api#documentation": "

The S3 bucket in which to store the logs.

" } }, "s3KeyPrefix": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

The Amazon S3 path in which to store the logs.

" + "smithy.api#documentation": "

The Amazon S3 path to the bucket where the logs are stored.

" } } }, @@ -7496,7 +7703,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#SnsTopicArn", "traits": { - "smithy.api#documentation": "

The SNS topic on which to send image build events.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

\n\t\t \n\t\t\t

EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

\n\t\t
" } }, "clientToken": { @@ -7663,6 +7870,9 @@ { "target": "com.amazonaws.imagebuilder#ImportComponent" }, + { + "target": "com.amazonaws.imagebuilder#ImportVmImage" + }, { "target": "com.amazonaws.imagebuilder#ListComponentBuildVersions" }, diff --git a/codegen/sdk-codegen/aws-models/iot.2015-05-28.json b/codegen/sdk-codegen/aws-models/iot.2015-05-28.json index 2141166c1b1..a42a7d1e9da 100644 --- a/codegen/sdk-codegen/aws-models/iot.2015-05-28.json +++ b/codegen/sdk-codegen/aws-models/iot.2015-05-28.json @@ -2827,6 +2827,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether IoT validates the token signature in an authorization request.

" } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

When true, the result from the authorizer’s Lambda function is\n\t cached for the time specified in refreshAfterInSeconds. The cached\n\t result is used while the device reuses the same HTTP connection.

" + } } }, "traits": { @@ -2839,7 +2845,8 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#AuthorizerName": { @@ -4222,15 +4229,18 @@ "smithy.api#length": { "min": 1, "max": 65536 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#CertificateSigningRequest": { "type": "string", "traits": { "smithy.api#length": { - "min": 1 - } + "min": 1, + "max": 4096 + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#CertificateStateException": { @@ -4969,6 +4979,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether IoT validates the token signature in an authorization request.

" } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

When true, the result from the authorizer’s Lambda function is\n\t cached for clients that use persistent HTTP connections. The results are cached for the time\n\t specified by the Lambda function in refreshAfterInSeconds. This value\n does not affect authorization of clients that use MQTT connections.

\n

The default value is false.

" + } } } }, @@ -13077,7 +13093,8 @@ "smithy.api#length": { "min": 1, "max": 253 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#DomainType": { @@ -13326,6 +13343,12 @@ "com.amazonaws.iot#ElasticsearchType": { "type": "string" }, + "com.amazonaws.iot#EnableCachingForHttp": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.iot#EnableIoTLoggingParams": { "type": "structure", "members": { @@ -13407,7 +13430,8 @@ "smithy.api#length": { "min": 0, "max": 128 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#Environment": { @@ -15327,7 +15351,8 @@ "smithy.api#length": { "min": 1, "max": 8192 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpHeaderValue": { @@ -15336,7 +15361,8 @@ "smithy.api#length": { "min": 1, "max": 8192 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpHeaders": { @@ -15354,7 +15380,8 @@ "smithy.api#length": { "min": 1, "max": 4096 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpUrlDestinationConfiguration": { @@ -16466,7 +16493,8 @@ "smithy.api#length": { "min": 0, "max": 5120 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#KinesisAction": { @@ -21638,7 +21666,8 @@ "smithy.api#length": { "min": 0, "max": 128 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#MessageFormat": { @@ -21996,7 +22025,8 @@ "smithy.api#length": { "min": 1, "max": 65535 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#MqttContext": { @@ -22040,7 +22070,8 @@ "smithy.api#length": { "min": 1, "max": 65535 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#NamedShadowIndexingMode": { @@ -22512,7 +22543,14 @@ } }, "com.amazonaws.iot#Parameter": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#ParameterKey": { "type": "string", @@ -22654,7 +22692,14 @@ "type": "string" }, "com.amazonaws.iot#PolicyDocument": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 404600 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#PolicyDocuments": { "type": "list", @@ -24051,7 +24096,8 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#ResourceAlreadyExistsException": { @@ -24844,7 +24890,8 @@ "smithy.api#length": { "min": 1, "max": 253 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#ServiceName": { @@ -26391,7 +26438,14 @@ "type": "string" }, "com.amazonaws.iot#TemplateBody": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10240 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#TemplateDescription": { "type": "string", @@ -27368,7 +27422,8 @@ "smithy.api#length": { "min": 1, "max": 6144 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#TokenKeyName": { @@ -28172,6 +28227,12 @@ "traits": { "smithy.api#documentation": "

The status of the update authorizer request.

" } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

When true, the result from the authorizer’s Lambda function is\n\t cached for the time specified in refreshAfterInSeconds. The cached\n\t result is used while the device reuses the same HTTP connection.

" + } } } }, @@ -30047,7 +30108,14 @@ } }, "com.amazonaws.iot#Value": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#Variance": { "type": "double" diff --git a/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json b/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json index b4dd730e102..d6eac96c83a 100644 --- a/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json +++ b/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json @@ -3073,8 +3073,7 @@ "valueSelectionSetting": { "target": "com.amazonaws.lexmodelsv2#SlotValueSelectionSetting", "traits": { - "smithy.api#documentation": "

Determines the strategy that Amazon Lex uses to select a value from the\n list of possible values. The field can be set to one of the following\n values:

\n \n

If you don't specify the valueSelectionSetting\n parameter, the default is OriginalValue.

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

Determines the strategy that Amazon Lex uses to select a value from the\n list of possible values. The field can be set to one of the following\n values:

\n \n

If you don't specify the valueSelectionSetting\n parameter, the default is OriginalValue.

" } }, "parentSlotTypeSignature": { @@ -3106,6 +3105,12 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting", + "traits": { + "smithy.api#documentation": "

Sets the type of external information used to create the slot\n type.

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

A timestamp of the date and time that the slot type was\n created.

" } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting", + "traits": { + "smithy.api#documentation": "

The type of external information used to create the slot\n type.

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

History of changes, such as when a locale is used in an alias, that\n have taken place for the locale.

" } + }, + "recommendedActions": { + "target": "com.amazonaws.lexmodelsv2#RecommendedActions", + "traits": { + "smithy.api#documentation": "

Recommended actions to take to resolve an error in the\n failureReasons field.

" + } } } }, @@ -5961,6 +5978,9 @@ "traits": { "smithy.api#documentation": "

A timestamp of the date and time that the slot type was last\n updated.

" } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -6235,6 +6255,20 @@ "target": "com.amazonaws.lexmodelsv2#ExportSummary" } }, + "com.amazonaws.lexmodelsv2#ExternalSourceSetting": { + "type": "structure", + "members": { + "grammarSlotTypeSetting": { + "target": "com.amazonaws.lexmodelsv2#GrammarSlotTypeSetting", + "traits": { + "smithy.api#documentation": "

Settings required for a slot type based on a grammar that you\n provide.

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

Provides information about the external source of the slot type's\n definition.

" + } + }, "com.amazonaws.lexmodelsv2#FailureReason": { "type": "string" }, @@ -6422,6 +6456,48 @@ "smithy.api#documentation": "

Provides information for updating the user on the progress of\n fulfilling an intent.

" } }, + "com.amazonaws.lexmodelsv2#GrammarSlotTypeSetting": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.lexmodelsv2#GrammarSlotTypeSource", + "traits": { + "smithy.api#documentation": "

The source of the grammar used to create the slot type.

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

Settings requried for a slot type based on a grammar that you\n provide.

" + } + }, + "com.amazonaws.lexmodelsv2#GrammarSlotTypeSource": { + "type": "structure", + "members": { + "s3BucketName": { + "target": "com.amazonaws.lexmodelsv2#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket that contains the grammar source.

", + "smithy.api#required": {} + } + }, + "s3ObjectKey": { + "target": "com.amazonaws.lexmodelsv2#S3ObjectPath", + "traits": { + "smithy.api#documentation": "

The path to the grammar in the S3 bucket.

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

The Amazon KMS key required to decrypt the contents of the grammar,\n if any.

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

Describes the Amazon S3 bucket name and location for the grammar\n that is the source for the slot type.

" + } + }, "com.amazonaws.lexmodelsv2#HitCount": { "type": "integer", "traits": { @@ -9331,6 +9407,15 @@ } } }, + "com.amazonaws.lexmodelsv2#RecommendedAction": { + "type": "string" + }, + "com.amazonaws.lexmodelsv2#RecommendedActions": { + "type": "list", + "member": { + "target": "com.amazonaws.lexmodelsv2#RecommendedAction" + } + }, "com.amazonaws.lexmodelsv2#RecommendedIntentSummary": { "type": "structure", "members": { @@ -9545,6 +9630,16 @@ "smithy.api#documentation": "

The object representing the Amazon S3 bucket containing the transcript,\n as well as the associated metadata.

" } }, + "com.amazonaws.lexmodelsv2#S3ObjectPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$" + } + }, "com.amazonaws.lexmodelsv2#SSMLMessage": { "type": "structure", "members": { @@ -10084,6 +10179,25 @@ "target": "com.amazonaws.lexmodelsv2#SlotSummary" } }, + "com.amazonaws.lexmodelsv2#SlotTypeCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Custom", + "name": "Custom" + }, + { + "value": "Extended", + "name": "Extended" + }, + { + "value": "ExternalGrammar", + "name": "ExternalGrammar" + } + ] + } + }, "com.amazonaws.lexmodelsv2#SlotTypeFilter": { "type": "structure", "members": { @@ -10120,6 +10234,10 @@ { "value": "SlotTypeName", "name": "SlotTypeName" + }, + { + "value": "ExternalSourceType", + "name": "ExternalSourceType" } ] } @@ -10237,6 +10355,12 @@ "traits": { "smithy.api#documentation": "

A timestamp of the date and time that the slot type was last\n updated.

" } + }, + "slotTypeCategory": { + "target": "com.amazonaws.lexmodelsv2#SlotTypeCategory", + "traits": { + "smithy.api#documentation": "

Indicates the type of the slot type.

\n " + } } }, "traits": { @@ -11342,6 +11466,12 @@ "traits": { "smithy.api#documentation": "

A timestamp of the date and time that the locale was last\n updated.

" } + }, + "recommendedActions": { + "target": "com.amazonaws.lexmodelsv2#RecommendedActions", + "traits": { + "smithy.api#documentation": "

Recommended actions to take to resolve an error in the\n failureReasons field.

" + } } } }, @@ -12306,8 +12436,7 @@ "valueSelectionSetting": { "target": "com.amazonaws.lexmodelsv2#SlotValueSelectionSetting", "traits": { - "smithy.api#documentation": "

The strategy that Amazon Lex should use when deciding on a value from the\n list of slot type values.

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

The strategy that Amazon Lex should use when deciding on a value from the\n list of slot type values.

" } }, "parentSlotTypeSignature": { @@ -12339,6 +12468,9 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -12410,6 +12542,9 @@ "traits": { "smithy.api#documentation": "

A timestamp of the date and time that the slot type was last\n updated.

" } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -12484,7 +12619,7 @@ "engine": { "target": "com.amazonaws.lexmodelsv2#VoiceEngine", "traits": { - "smithy.api#documentation": "

Indicates the type of Amazon Polly\n voice that Amazon Lex should use for voice interaction with the user. \n For more information, see Voices in Amazon Polly.

" + "smithy.api#documentation": "

Indicates the type of Amazon Polly voice that Amazon Lex should use for voice interaction with the user. For more\n information, see the \n engine parameter of the\n SynthesizeSpeech operation in the\n Amazon Polly developer guide.

\n

If you do not specify a value, the default is\n standard.

" } } }, 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 8ed79ebc436..ed9ad3d1199 100644 --- a/codegen/sdk-codegen/aws-models/location.2020-11-19.json +++ b/codegen/sdk-codegen/aws-models/location.2020-11-19.json @@ -328,8 +328,7 @@ } ], "traits": { - "smithy.api#auth": [], - "smithy.api#documentation": "

Evaluates device positions against the geofence geometries from a given geofence\n collection.

\n

This operation always returns an empty response because geofences are asynchronously\n evaluated. The evaluation determines if the device has entered or exited a geofenced\n area, and then publishes one of the following events to Amazon EventBridge:

\n \n \n

The last geofence that a device was observed within is tracked for 30 days after\n the most recent device position update.

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

Evaluates device positions against the geofence geometries from a given geofence\n collection.

\n

This operation always returns an empty response because geofences are asynchronously\n evaluated. The evaluation determines if the device has entered or exited a geofenced\n area, and then publishes one of the following events to Amazon EventBridge:

\n \n \n

The last geofence that a device was observed within is tracked for 30 days after\n the most recent device position update.

\n
\n \n

Geofence evaluation uses the given device position. It does not account for the \n optional Accuracy of a DevicePositionUpdate.

\n
", "smithy.api#endpoint": { "hostPrefix": "geofencing." }, @@ -771,7 +770,7 @@ } ], "traits": { - "smithy.api#documentation": "

Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when it reports the last known device position and position history. Amazon Location retains location data for 30 \n days.

\n \n

Position updates are handled based on the PositionFiltering property of the tracker. \n When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, \n and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than \n every 30 seconds, only one update per 30 seconds is stored for each unique device ID.\n When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence \n collections only if the device has moved more than 30 m (98.4 ft).

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

Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when it reports the last known device position and position history. Amazon Location retains location data for 30 \n days.

\n \n

Position updates are handled based on the PositionFiltering property of the tracker. \n When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, \n and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than \n every 30 seconds, only one update per 30 seconds is stored for each unique device ID.

\n

When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence \n collections only if the device has moved more than 30 m (98.4 ft).

\n

When PositionFiltering is set to AccuracyBased filtering,\n location data is stored and evaluated against linked geofence collections only if the\n device has moved more than the measured accuracy. For example, if two consecutive\n updates from a device have a horizontal accuracy of 5 m and 10 m, the second update\n is neither stored or evaluated if the device has moved less than 15 m. If\n PositionFiltering is set to AccuracyBased filtering, Amazon Location\n uses the default value { \"Horizontal\": 0} when accuracy is not provided on\n a DevicePositionUpdate.

\n
", "smithy.api#endpoint": { "hostPrefix": "tracking." }, @@ -1194,8 +1193,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for the 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#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.

" } }, "PricingPlanDataSource": { @@ -1308,8 +1306,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for your map resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "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.

" } }, "Description": { @@ -1378,7 +1375,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.

", + "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#endpoint": { "hostPrefix": "places." }, @@ -1410,8 +1407,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for your place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "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.

" } }, "Description": { @@ -1518,8 +1514,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for your route calculator resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "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.

" } }, "Description": { @@ -1613,8 +1608,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for the tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", - "smithy.api#required": {} + "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.

" } }, "KmsKeyId": { @@ -1644,7 +1638,7 @@ "PositionFiltering": { "target": "com.amazonaws.location#PositionFiltering", "traits": { - "smithy.api#documentation": "

Specifies the position filtering for the tracker resource.

\n

Valid values:

\n \n

This field is optional. If not specified, the default value is TimeBased.

" + "smithy.api#documentation": "

Specifies the position filtering for the tracker resource.

\n

Valid values:

\n \n

This field is optional. If not specified, the default value is TimeBased.

" } } } @@ -1990,7 +1984,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

Retrieves the geofence collection details.

", "smithy.api#endpoint": { "hostPrefix": "geofencing." @@ -2107,7 +2100,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

Retrieves the map resource details.

", "smithy.api#endpoint": { "hostPrefix": "maps." @@ -2226,7 +2218,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

Retrieves the place index resource details.

", "smithy.api#endpoint": { "hostPrefix": "places." @@ -2345,7 +2336,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

Retrieves the route calculator resource details.

", "smithy.api#endpoint": { "hostPrefix": "routes." @@ -2457,7 +2447,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

Retrieves the tracker resource details.

", "smithy.api#endpoint": { "hostPrefix": "tracking." @@ -2589,6 +2578,18 @@ "smithy.api#documentation": "

The last known device position.

", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

The accuracy of the device position.

" + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

The properties associated with the position.

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

The latest device position defined in WGS 84 format:\n [X or longitude, Y or latitude].

", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

The accuracy of the device position.

" + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

Associates one of more properties with the position update. A property is a key-value\n pair stored with the position update and added to any geofence event the update may\n trigger.

\n

Format: \"key\" : \"value\"\n

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

The last known device position.

", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

The accuracy of the device position.

" + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

The properties associated with the position.

" + } } } }, @@ -3735,6 +3760,18 @@ "smithy.api#documentation": "

The last known device position. Empty if no positions currently stored.

", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

The accuracy of the device position.

" + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

The properties associated with the position.

" + } } }, "traits": { @@ -4937,6 +4974,9 @@ { "target": "com.amazonaws.location#SearchPlaceIndexForPosition" }, + { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestions" + }, { "target": "com.amazonaws.location#SearchPlaceIndexForText" } @@ -4995,6 +5035,25 @@ ] } }, + "com.amazonaws.location#PositionalAccuracy": { + "type": "structure", + "members": { + "Horizontal": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Estimated maximum distance, in meters, between the measured position and the true\n position of a device, along the Earth's surface.

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

Defines the level of certainty of the position.

" + } + }, "com.amazonaws.location#PricingPlan": { "type": "string", "traits": { @@ -5014,6 +5073,34 @@ ] } }, + "com.amazonaws.location#PropertyMap": { + "type": "map", + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.location#PutGeofence": { "type": "operation", "input": { @@ -5212,6 +5299,27 @@ "target": "com.amazonaws.location#SearchForPositionResult" } }, + "com.amazonaws.location#SearchForSuggestionsResult": { + "type": "structure", + "members": { + "Text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The text of the place suggestion, typically formatted as an address string.

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

Contains a place suggestion resulting from a place suggestion query that is run on a place index resource.

" + } + }, + "com.amazonaws.location#SearchForSuggestionsResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.location#SearchForSuggestionsResult" + } + }, "com.amazonaws.location#SearchForTextResult": { "type": "structure", "members": { @@ -5375,6 +5483,175 @@ "smithy.api#documentation": "

A summary of the request sent by using SearchPlaceIndexForPosition.

" } }, + "com.amazonaws.location#SearchPlaceIndexForSuggestions": { + "type": "operation", + "input": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest" + }, + "output": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsResponse" + }, + "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": "

Generates suggestions for addresses and points of interest based on partial or\n misspelled free-form text. This operation is also known as autocomplete, autosuggest,\n or fuzzy matching.

\n

Optional parameters let you narrow your search results by bounding box or\n country, or bias your search toward a specific position on the globe.

\n \n

You can search for suggested place names near a specified position by using BiasPosition, or\n filter results within a bounding box by using FilterBBox. These parameters are mutually exclusive; \n using both BiasPosition and FilterBBox in the same command returns an error.

\n
", + "smithy.api#endpoint": { + "hostPrefix": "places." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/places/v0/indexes/{IndexName}/search/suggestions", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest": { + "type": "structure", + "members": { + "IndexName": { + "target": "com.amazonaws.location#ResourceName", + "traits": { + "smithy.api#documentation": "

The name of the place index resource you want to use for the search.

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

The free-form partial text to use to generate place suggestions. For example,\n eiffel tow.

", + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "BiasPosition": { + "target": "com.amazonaws.location#Position", + "traits": { + "smithy.api#documentation": "

An optional parameter that indicates a preference for place suggestions that are closer to a specified position.

\n

\n If provided, this parameter must contain a pair of numbers. The first number represents the X coordinate, or longitude; \n the second number represents the Y coordinate, or latitude.

\n

For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and\n latitude 49.2847.

\n \n

\n BiasPosition and FilterBBox are mutually exclusive. Specifying both options results in an error.\n

\n
" + } + }, + "FilterBBox": { + "target": "com.amazonaws.location#BoundingBox", + "traits": { + "smithy.api#documentation": "

An optional parameter that limits the search results by returning only suggestions within a specified bounding box.

\n

\n If provided, this parameter must contain a total of four consecutive numbers in two pairs.\n The first pair of numbers represents the X and Y coordinates (longitude and latitude, respectively)\n of the southwest corner of the bounding box; the second pair of numbers represents the X and Y coordinates (longitude and latitude, respectively)\n of the northeast corner of the bounding box.

\n

For example, [-12.7935, -37.4835, -12.0684, -36.9542] represents\n a bounding box where the southwest corner has longitude -12.7935 and latitude -37.4835, \n and the northeast corner has longitude -12.0684 and latitude -36.9542.

\n \n

\n FilterBBox and BiasPosition are mutually exclusive. Specifying both options results in an error.\n

\n
" + } + }, + "FilterCountries": { + "target": "com.amazonaws.location#CountryCodeList", + "traits": { + "smithy.api#documentation": "

An optional parameter that limits the search results by returning only suggestions within the provided list of countries.

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

An optional parameter. The maximum number of results returned per request.

\n

The default: 5\n

", + "smithy.api#range": { + "min": 1, + "max": 15 + } + } + }, + "Language": { + "target": "com.amazonaws.location#LanguageTag", + "traits": { + "smithy.api#documentation": "

The preferred language used to return results. The value must be a valid BCP 47 language tag, for example,\n en for English.

\n

This setting affects the languages used in the results. It does not change which \n results are returned. If the language is not specified, or not supported for a \n particular result, the partner automatically chooses a language for the result.

\n

Used only when the partner selected is Here.

" + } + } + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsResponse": { + "type": "structure", + "members": { + "Summary": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsSummary", + "traits": { + "smithy.api#documentation": "

Contains a summary of the request. Echoes the input values for BiasPosition,\n FilterBBox, FilterCountries, Language, MaxResults,\n and Text. Also includes the DataSource of the place index.\n

", + "smithy.api#required": {} + } + }, + "Results": { + "target": "com.amazonaws.location#SearchForSuggestionsResultList", + "traits": { + "smithy.api#documentation": "

A list of place suggestions that best match the search text.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsSummary": { + "type": "structure", + "members": { + "Text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The free-form partial text input specified in the request.

", + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "BiasPosition": { + "target": "com.amazonaws.location#Position", + "traits": { + "smithy.api#documentation": "

Contains the coordinates for the optional bias position specified in the request.

\n

This parameter contains a pair of numbers. The first number represents the X \n coordinate, or longitude; the second number represents the Y coordinate, or latitude.

\n

For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and latitude 49.2847.

" + } + }, + "FilterBBox": { + "target": "com.amazonaws.location#BoundingBox", + "traits": { + "smithy.api#documentation": "

Contains the coordinates for the optional bounding box specified in the request.

" + } + }, + "FilterCountries": { + "target": "com.amazonaws.location#CountryCodeList", + "traits": { + "smithy.api#documentation": "

Contains the optional country filter specified in the request.

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

Contains the optional result count limit specified in the request.

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

The geospatial data provider attached to the place index resource specified in the request.\n Values can be one of the following:

\n \n

For more information about data providers, see Amazon Location Service data providers.

", + "smithy.api#required": {} + } + }, + "Language": { + "target": "com.amazonaws.location#LanguageTag", + "traits": { + "smithy.api#documentation": "

The preferred language used to return results. Matches the language in the request. \n The value is a valid BCP 47 language tag, for example,\n en for English.

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

A summary of the request sent by using SearchPlaceIndexForSuggestions.

" + } + }, "com.amazonaws.location#SearchPlaceIndexForText": { "type": "operation", "input": { @@ -5501,7 +5778,7 @@ "BiasPosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

Contains the coordinates for the optional bias position specified in the request.

" + "smithy.api#documentation": "

Contains the coordinates for the optional bias position specified in the request.

\n

This parameter contains a pair of numbers. The first number represents the X \n coordinate, or longitude; the second number represents the Y coordinate, or latitude.

\n

For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and latitude 49.2847.

" } }, "FilterBBox": { @@ -6427,7 +6704,7 @@ "PositionFiltering": { "target": "com.amazonaws.location#PositionFiltering", "traits": { - "smithy.api#documentation": "

Updates the position filtering for the tracker resource.

\n

Valid values:

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

Updates the position filtering for the tracker resource.

\n

Valid values:

\n " } } } 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 34a4825b8b2..44b7951dc15 100644 --- a/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json +++ b/codegen/sdk-codegen/aws-models/lookoutmetrics.2017-07-25.json @@ -2168,6 +2168,44 @@ "com.amazonaws.lookoutmetrics#Integer": { "type": "integer" }, + "com.amazonaws.lookoutmetrics#InterMetricImpactDetails": { + "type": "structure", + "members": { + "MetricName": { + "target": "com.amazonaws.lookoutmetrics#MetricName", + "traits": { + "smithy.api#documentation": "

The name of the measure.

" + } + }, + "AnomalyGroupId": { + "target": "com.amazonaws.lookoutmetrics#UUID", + "traits": { + "smithy.api#documentation": "

The ID of the anomaly group.

" + } + }, + "RelationshipType": { + "target": "com.amazonaws.lookoutmetrics#RelationshipType", + "traits": { + "smithy.api#documentation": "

Whether a measure is a potential cause of the anomaly group\n (CAUSE_OF_INPUT_ANOMALY_GROUP), or whether the measure is impacted by the\n anomaly group (EFFECT_OF_INPUT_ANOMALY_GROUP).

" + } + }, + "ContributionPercentage": { + "target": "com.amazonaws.lookoutmetrics#MetricChangePercentage", + "traits": { + "smithy.api#documentation": "

For potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP), the percentage\n contribution the measure has in causing the anomalies.

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

Aggregated details about the measures contributing to the anomaly group, and the measures\n potentially impacted by the anomaly group.

\n

" + } + }, + "com.amazonaws.lookoutmetrics#InterMetricImpactList": { + "type": "list", + "member": { + "target": "com.amazonaws.lookoutmetrics#InterMetricImpactDetails" + } + }, "com.amazonaws.lookoutmetrics#InternalServerException": { "type": "structure", "members": { @@ -2431,6 +2469,100 @@ } } }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetrics": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsRequest" + }, + "output": { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutmetrics#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutmetrics#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutmetrics#TooManyRequestsException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of measures that are potential causes or effects of an\n anomaly group.

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListAnomalyGroupRelatedMetrics", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsRequest": { + "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": {} + } + }, + "AnomalyGroupId": { + "target": "com.amazonaws.lookoutmetrics#UUID", + "traits": { + "smithy.api#documentation": "

The ID of the anomaly group.

", + "smithy.api#required": {} + } + }, + "RelationshipTypeFilter": { + "target": "com.amazonaws.lookoutmetrics#RelationshipType", + "traits": { + "smithy.api#documentation": "

Filter for potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP) or\n downstream effects (EFFECT_OF_INPUT_ANOMALY_GROUP) of the anomaly group.

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

The maximum number of results to return.

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

Specify the pagination token that's returned by a previous request to retrieve the next\n page of results.

" + } + } + } + }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsResponse": { + "type": "structure", + "members": { + "InterMetricImpactList": { + "target": "com.amazonaws.lookoutmetrics#InterMetricImpactList", + "traits": { + "smithy.api#documentation": "

Aggregated details about the measures contributing to the anomaly group, and the measures\n potentially impacted by the anomaly group.

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

The pagination token that's included if more results are available.

" + } + } + } + }, "com.amazonaws.lookoutmetrics#ListAnomalyGroupSummaries": { "type": "operation", "input": { @@ -2774,6 +2906,21 @@ }, "com.amazonaws.lookoutmetrics#LookoutMetrics": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "LookoutMetrics", + "arnNamespace": "lookoutmetrics", + "cloudFormationName": "LookoutMetrics", + "cloudTrailEventSource": "lookoutmetrics.amazonaws.com", + "endpointPrefix": "lookoutmetrics" + }, + "aws.auth#sigv4": { + "name": "lookoutmetrics" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

This is the Amazon Lookout for Metrics API Reference. For an introduction to the service\n with tutorials for getting started, visit Amazon\n Lookout for Metrics Developer Guide.

", + "smithy.api#title": "Amazon Lookout for Metrics" + }, "version": "2017-07-25", "operations": [ { @@ -2824,6 +2971,9 @@ { "target": "com.amazonaws.lookoutmetrics#ListAnomalyDetectors" }, + { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetrics" + }, { "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupSummaries" }, @@ -2851,22 +3001,7 @@ { "target": "com.amazonaws.lookoutmetrics#UpdateMetricSet" } - ], - "traits": { - "aws.api#service": { - "sdkId": "LookoutMetrics", - "arnNamespace": "lookoutmetrics", - "cloudFormationName": "LookoutMetrics", - "cloudTrailEventSource": "lookoutmetrics.amazonaws.com", - "endpointPrefix": "lookoutmetrics" - }, - "aws.auth#sigv4": { - "name": "lookoutmetrics" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

This is the Amazon Lookout for Metrics API Reference. For an introduction to the service\n with tutorials for getting started, visit Amazon\n Lookout for Metrics Developer Guide.

", - "smithy.api#title": "Amazon Lookout for Metrics" - } + ] }, "com.amazonaws.lookoutmetrics#MaxResults": { "type": "integer", @@ -2908,6 +3043,16 @@ "smithy.api#documentation": "

A calculation made by contrasting a measure and a dimension from your source data.

" } }, + "com.amazonaws.lookoutmetrics#MetricChangePercentage": { + "type": "double", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0.0, + "max": 100.0 + } + } + }, "com.amazonaws.lookoutmetrics#MetricLevelImpact": { "type": "structure", "members": { @@ -3363,6 +3508,21 @@ "smithy.api#documentation": "

Provides information about the Amazon Redshift database configuration.

" } }, + "com.amazonaws.lookoutmetrics#RelationshipType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CAUSE_OF_INPUT_ANOMALY_GROUP", + "name": "CAUSE_OF_INPUT_ANOMALY_GROUP" + }, + { + "value": "EFFECT_OF_INPUT_ANOMALY_GROUP", + "name": "EFFECT_OF_INPUT_ANOMALY_GROUP" + } + ] + } + }, "com.amazonaws.lookoutmetrics#ResourceId": { "type": "string" }, diff --git a/codegen/sdk-codegen/aws-models/lookoutvision.2020-11-20.json b/codegen/sdk-codegen/aws-models/lookoutvision.2020-11-20.json index 563e7543008..1a7529defea 100644 --- a/codegen/sdk-codegen/aws-models/lookoutvision.2020-11-20.json +++ b/codegen/sdk-codegen/aws-models/lookoutvision.2020-11-20.json @@ -52,7 +52,7 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "(normal|anomaly)" + "smithy.api#pattern": "^(normal|anomaly)$" } }, "com.amazonaws.lookoutvision#Boolean": { @@ -68,6 +68,52 @@ "smithy.api#pattern": "^[a-zA-Z0-9-]+$" } }, + "com.amazonaws.lookoutvision#CompilerOptions": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 1024 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.lookoutvision#ComponentDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_. ()':,;?]+$" + } + }, + "com.amazonaws.lookoutvision#ComponentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_.]+$" + } + }, + "com.amazonaws.lookoutvision#ComponentVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^([0-9]{1,6})\\.([0-9]{1,6})\\.([0-9]{1,6})$" + } + }, + "com.amazonaws.lookoutvision#ComponentVersionArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:[^:]*:greengrass:[^:]*:aws:components:[^:]+$" + } + }, "com.amazonaws.lookoutvision#ConflictException": { "type": "structure", "members": { @@ -175,7 +221,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to CreateDataset\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateDataset.\n In this case, safely retry your call\n to CreateDataset by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateDataset. An idempotency\n token is active for 8 hours.\n

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

ClientToken is an idempotency token that ensures a call to CreateDataset\n completes only once. You choose the value to pass. For example, An issue might prevent you\n from getting a response from CreateDataset.\n In this case, safely retry your call\n to CreateDataset by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple dataset creation requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateDataset. An idempotency\n token is active for 8 hours.\n

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -253,7 +299,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to CreateModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateModel.\n In this case, safely retry your call\n to CreateModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateModel. An idempotency\n token is active for 8 hours.

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

ClientToken is an idempotency token that ensures a call to CreateModel\n completes only once. You choose the value to pass. For example, An issue\n might prevent you from getting a response from CreateModel.\n In this case, safely retry your call\n to CreateModel by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from starting multiple training jobs. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateModel. An idempotency\n token is active for 8 hours.

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -268,7 +314,7 @@ "KmsKeyId": { "target": "com.amazonaws.lookoutvision#KmsKeyId", "traits": { - "smithy.api#documentation": "

The identifier for your AWS Key Management Service (AWS KMS) customer master key (CMK).\n The key is used to encrypt training and test images copied into the service for model training. Your \n source images are unaffected.\n If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.

" + "smithy.api#documentation": "

The identifier for your AWS KMS key.\n The key is used to encrypt training and test images copied into the service for model training. Your \n source images are unaffected.\n If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.

" } }, "Tags": { @@ -343,7 +389,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to CreateProject\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateProject.\n In this case, safely retry your call\n to CreateProject by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateProject. An idempotency\n token is active for 8 hours.

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

ClientToken is an idempotency token that ensures a call to CreateProject\n completes only once. You choose the value to pass. For example, An issue might prevent you from \n getting a response from CreateProject.\n In this case, safely retry your call\n to CreateProject by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple project creation requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateProject. An idempotency\n token is active for 8 hours.

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -412,7 +458,7 @@ "ImageStats": { "target": "com.amazonaws.lookoutvision#DatasetImageStats", "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

Statistics about the images in a dataset.

" } } }, @@ -511,7 +557,7 @@ } }, "traits": { - "smithy.api#documentation": "

Sumary information for an Amazon Lookout for Vision dataset.

" + "smithy.api#documentation": "

Summary information for an Amazon Lookout for Vision dataset. For more information,\n see DescribeDataset and ProjectDescription.

" } }, "com.amazonaws.lookoutvision#DatasetMetadataList": { @@ -591,7 +637,7 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "train|test" + "smithy.api#pattern": "^train|test$" } }, "com.amazonaws.lookoutvision#DateTime": { @@ -656,7 +702,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to DeleteDataset\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteDataset.\n In this case, safely retry your call\n to DeleteDataset by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteDataset. An idempotency\n token is active for 8 hours.

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

ClientToken is an idempotency token that ensures a call to DeleteDataset\n completes only once. You choose the value to pass. For example, An issue might prevent you from getting a response from DeleteDataset.\n In this case, safely retry your call\n to DeleteDataset by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple deletetion requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteDataset. An idempotency\n token is active for 8 hours.

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -696,7 +742,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model,\n use the StopModel operation.

\n

It might take a few seconds to delete a model. To determine if a model has been deleted, call\n ListProjects and check if the version of the model (ModelVersion) is in the\n Models array.

\n

This operation requires permissions to perform the\n lookoutvision:DeleteModel operation.

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

Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model,\n use the StopModel operation.

\n

It might take a few seconds to delete a model. To determine if a model has been deleted, call\n ListModels and check if the version of the model (ModelVersion) is in the\n Models array.

\n

\n

This operation requires permissions to perform the\n lookoutvision:DeleteModel operation.

", "smithy.api#http": { "method": "DELETE", "uri": "/2020-11-20/projects/{ProjectName}/models/{ModelVersion}", @@ -716,7 +762,7 @@ } }, "ModelVersion": { - "target": "com.amazonaws.lookoutvision#ModelVersion", + "target": "com.amazonaws.lookoutvision#ModelVersionNoLatest", "traits": { "smithy.api#documentation": "

The version of the model that you want to delete.

", "smithy.api#httpLabel": {}, @@ -726,7 +772,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to DeleteModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteModel.\n In this case, safely retry your call\n to DeleteModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteModel. An idempotency\n token is active for 8 hours.

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

ClientToken is an idempotency token that ensures a call to DeleteModel\n completes only once. You choose the value to pass. For example, an issue might prevent\n you from getting a response from DeleteModel.\n In this case, safely retry your call\n to DeleteModel by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple model deletion requests. You'll need to\n provide your own value for other use cases.

\n \n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteModel. An idempotency\n token is active for 8 hours.

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -795,7 +841,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to DeleteProject\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteProject.\n In this case, safely retry your call\n to DeleteProject by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteProject. An idempotency\n token is active for 8 hours.

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

ClientToken is an idempotency token that ensures a call to DeleteProject\n completes only once. You choose the value to pass. For example, An issue\n might prevent you from getting a response from DeleteProject.\n In this case, safely retry your call\n to DeleteProject by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple project deletion requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteProject. An idempotency\n token is active for 8 hours.

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -919,6 +965,72 @@ } } }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJobRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes an Amazon Lookout for Vision model packaging job.\n

\n

This operation requires permissions to perform the\n lookoutvision:DescribeModelPackagingJob operation.

\n \n

For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs/{JobName}", + "code": 200 + } + } + }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJobRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

The name of the project that contains the model packaging job that you want to describe. \n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

The job name for the model packaging job. \n\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJobResponse": { + "type": "structure", + "members": { + "ModelPackagingDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingDescription", + "traits": { + "smithy.api#documentation": "

The description of the model packaging job.\n

" + } + } + } + }, "com.amazonaws.lookoutvision#DescribeModelRequest": { "type": "structure", "members": { @@ -1132,6 +1244,91 @@ "smithy.api#box": {} } }, + "com.amazonaws.lookoutvision#GreengrassConfiguration": { + "type": "structure", + "members": { + "CompilerOptions": { + "target": "com.amazonaws.lookoutvision#CompilerOptions", + "traits": { + "smithy.api#documentation": "

Additional compiler options for the Greengrass component. Currently, \n only NVIDIA Graphics Processing Units (GPU) are supported.

\n \n \n

For more information, see \n Compiler options in the Amazon Lookout for Vision Developer Guide.

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

The target device for the model. Currently the only supported value is jetson_xavier.\n If you specify TargetDevice, you can't specify\n TargetPlatform.\n\n

" + } + }, + "TargetPlatform": { + "target": "com.amazonaws.lookoutvision#TargetPlatform", + "traits": { + "smithy.api#documentation": "

The target platform for the model. If you specify TargetPlatform, you can't specify\n TargetDevice.\n

" + } + }, + "S3OutputLocation": { + "target": "com.amazonaws.lookoutvision#S3Location", + "traits": { + "smithy.api#documentation": "

\n An S3 location in which Lookout for Vision stores the component artifacts. \n

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

\n A name for the AWS IoT Greengrass component. \n

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

A Version for the AWS IoT Greengrass component. If you don't provide a\n value, a default value of \n Model Version.0.0 is used.\n

" + } + }, + "ComponentDescription": { + "target": "com.amazonaws.lookoutvision#ComponentDescription", + "traits": { + "smithy.api#documentation": "

\n A description for the AWS IoT Greengrass component.\n

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

\n A set of tags (key-value pairs) that you want to attach to the AWS IoT Greengrass component.\n

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

Configuration information for the AWS IoT Greengrass component created in a model packaging job. \n For more information, see StartModelPackagingJob.\n

\n \n

You can't specify a component with the same ComponentName and Componentversion as\n an existing component with the same component name and component version.

\n
" + } + }, + "com.amazonaws.lookoutvision#GreengrassOutputDetails": { + "type": "structure", + "members": { + "ComponentVersionArn": { + "target": "com.amazonaws.lookoutvision#ComponentVersionArn", + "traits": { + "smithy.api#documentation": "

\nThe Amazon Resource Name (ARN) of the component.\n

" + } + }, + "ComponentName": { + "target": "com.amazonaws.lookoutvision#ComponentName", + "traits": { + "smithy.api#documentation": "

\nThe name of the component.\n

" + } + }, + "ComponentVersion": { + "target": "com.amazonaws.lookoutvision#ComponentVersion", + "traits": { + "smithy.api#documentation": "

\nThe version of the component.\n

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

Information about the AWS IoT Greengrass component created by a model packaging job.\n\n

" + } + }, "com.amazonaws.lookoutvision#ImageSource": { "type": "structure", "members": { @@ -1149,7 +1346,7 @@ "com.amazonaws.lookoutvision#ImageSourceType": { "type": "string", "traits": { - "smithy.api#pattern": "direct" + "smithy.api#pattern": "^direct$" } }, "com.amazonaws.lookoutvision#InferenceUnits": { @@ -1363,6 +1560,89 @@ } } }, + "com.amazonaws.lookoutvision#ListModelPackagingJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobsRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nLists the model packaging jobs created for an Amazon Lookout for Vision project.\n

\n

This operation requires permissions to perform the\n lookoutvision:ListModelPackagingJobs operation.\n

\n \n

For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.lookoutvision#ListModelPackagingJobsRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

\nThe name of the project for which you want to list the model packaging jobs.\n

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

If the previous response was incomplete (because there is more\n results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination \n token to retrieve the next set of results.

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

The maximum number of results to return per paginated call. The largest value you can specify is 100. \n If you specify a value greater than 100, a ValidationException\n error occurs. The default value is 100.

", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.lookoutvision#ListModelPackagingJobsResponse": { + "type": "structure", + "members": { + "ModelPackagingJobs": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobsList", + "traits": { + "smithy.api#documentation": "

\nA list of the model packaging jobs created for the specified Amazon Lookout for Vision project.\n

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

If the previous response was incomplete (because there is more\n results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination \n token to retrieve the next set of results.\n

" + } + } + } + }, "com.amazonaws.lookoutvision#ListModels": { "type": "operation", "input": { @@ -1392,7 +1672,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the versions of a model in an Amazon Lookout for Vision project.

\n

This operation requires permissions to perform the\n lookoutvision:ListModels operation.

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

Lists the versions of a model in an Amazon Lookout for Vision project.

\n

The ListModels operation is eventually consistent. \n Recent calls to CreateModel might\n take a while to appear in the response from ListProjects.

\n

This operation requires permissions to perform the\n lookoutvision:ListModels operation.

", "smithy.api#http": { "method": "GET", "uri": "/2020-11-20/projects/{ProjectName}/models", @@ -1478,7 +1758,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Amazon Lookout for Vision projects in your AWS account.

\n

This operation requires permissions to perform the\n lookoutvision:ListProjects operation.

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

Lists the Amazon Lookout for Vision projects in your AWS account.

\n

The ListProjects operation is eventually consistent. \n Recent calls to CreateProject and DeleteProject might\n take a while to appear in the response from ListProjects.

\n

This operation requires permissions to perform the\n lookoutvision:ListProjects operation.

", "smithy.api#http": { "method": "GET", "uri": "/2020-11-20/projects", @@ -1590,6 +1870,21 @@ }, "com.amazonaws.lookoutvision#LookoutVisionService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "LookoutVision", + "arnNamespace": "lookoutvision", + "cloudFormationName": "LookoutVision", + "cloudTrailEventSource": "lookoutvision.amazonaws.com", + "endpointPrefix": "lookoutvision" + }, + "aws.auth#sigv4": { + "name": "lookoutvision" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, \n data types, common parameters, and common errors.

\n

Amazon Lookout for Vision enables you to find visual defects in industrial products,\n accurately and at scale. It uses computer vision to identify missing components in an industrial product,\n damage to vehicles or structures, irregularities in production lines, and even minuscule defects in\n silicon wafers — or any other physical item where quality is important such as a missing capacitor\n on printed circuit boards.

", + "smithy.api#title": "Amazon Lookout for Vision" + }, "version": "2020-11-20", "operations": [ { @@ -1616,6 +1911,9 @@ { "target": "com.amazonaws.lookoutvision#DescribeModel" }, + { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJob" + }, { "target": "com.amazonaws.lookoutvision#DescribeProject" }, @@ -1625,6 +1923,9 @@ { "target": "com.amazonaws.lookoutvision#ListDatasetEntries" }, + { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobs" + }, { "target": "com.amazonaws.lookoutvision#ListModels" }, @@ -1637,6 +1938,9 @@ { "target": "com.amazonaws.lookoutvision#StartModel" }, + { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJob" + }, { "target": "com.amazonaws.lookoutvision#StopModel" }, @@ -1649,22 +1953,7 @@ { "target": "com.amazonaws.lookoutvision#UpdateDatasetEntries" } - ], - "traits": { - "aws.api#service": { - "sdkId": "LookoutVision", - "arnNamespace": "lookoutvision", - "cloudFormationName": "LookoutVision", - "cloudTrailEventSource": "lookoutvision.amazonaws.com", - "endpointPrefix": "lookoutvision" - }, - "aws.auth#sigv4": { - "name": "lookoutvision" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, \n data types, common parameters, and common errors.

\n

Amazon Lookout for Vision enables you to find visual defects in industrial products,\n accurately and at scale. It uses computer vision to identify missing components in an industrial product,\n damage to vehicles or structures, irregularities in production lines, and even minuscule defects in\n silicon wafers — or any other physical item where quality is important such as a missing capacitor\n on printed circuit boards.

", - "smithy.api#title": "Amazon Lookout for Vision" - } + ] }, "com.amazonaws.lookoutvision#ModelArn": { "type": "string" @@ -1756,7 +2045,7 @@ "min": 1, "max": 500 }, - "smithy.api#pattern": "[0-9A-Za-z\\.\\-_]*" + "smithy.api#pattern": "^[0-9A-Za-z\\.\\-_]*$" } }, "com.amazonaws.lookoutvision#ModelHostingStatus": { @@ -1842,18 +2131,245 @@ "target": "com.amazonaws.lookoutvision#ModelMetadata" } }, - "com.amazonaws.lookoutvision#ModelPerformance": { + "com.amazonaws.lookoutvision#ModelPackagingConfiguration": { "type": "structure", "members": { - "F1Score": { - "target": "com.amazonaws.lookoutvision#Float", + "Greengrass": { + "target": "com.amazonaws.lookoutvision#GreengrassConfiguration", "traits": { - "smithy.api#documentation": "

The overall F1 score metric for the trained model.

" + "smithy.api#documentation": "

\nConfiguration information for the AWS IoT Greengrass component in a model packaging job.\n

", + "smithy.api#required": {} } - }, - "Recall": { - "target": "com.amazonaws.lookoutvision#Float", - "traits": { + } + }, + "traits": { + "smithy.api#documentation": "

\nConfiguration information for a Amazon Lookout for Vision model packaging job. For more information,\nsee StartModelPackagingJob.\n

" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingDescription": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

\nThe name of the model packaging job.\n

" + } + }, + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

The name of the project that's associated with a model that's in the model package.\n\n

" + } + }, + "ModelVersion": { + "target": "com.amazonaws.lookoutvision#ModelVersion", + "traits": { + "smithy.api#documentation": "

The version of the model used in the model packaging job.\n\n

" + } + }, + "ModelPackagingConfiguration": { + "target": "com.amazonaws.lookoutvision#ModelPackagingConfiguration", + "traits": { + "smithy.api#documentation": "

\nThe configuration information used in the model packaging job.\n

" + } + }, + "ModelPackagingJobDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobDescription", + "traits": { + "smithy.api#documentation": "

The description for the model packaging job.\n\n

" + } + }, + "ModelPackagingMethod": { + "target": "com.amazonaws.lookoutvision#ModelPackagingMethod", + "traits": { + "smithy.api#documentation": "

The AWS service used to package the job. Currently Lookout for Vision can package\njobs with AWS IoT Greengrass.\n

" + } + }, + "ModelPackagingOutputDetails": { + "target": "com.amazonaws.lookoutvision#ModelPackagingOutputDetails", + "traits": { + "smithy.api#documentation": "

Information about the output of the model packaging job. For more information,\n see DescribeModelPackagingJob.\n

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

\nThe status of the model packaging job.\n

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.lookoutvision#ModelPackagingStatusMessage", + "traits": { + "smithy.api#documentation": "

\nThe status message for the model packaging job.\n

" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

\n The Unix timestamp for the time and date that the model packaging job was created.\n

" + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

\n The Unix timestamp for the time and date that the model packaging job was last updated.\n

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

\nInformation about a model packaging job. For more information, see \nDescribeModelPackagingJob.\n

" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_. ()':,;?]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobMetadata": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

\nThe name of the model packaging job.\n

" + } + }, + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

\nThe project that contains the model that is in the model package.\n

" + } + }, + "ModelVersion": { + "target": "com.amazonaws.lookoutvision#ModelVersion", + "traits": { + "smithy.api#documentation": "

\nThe version of the model that is in the model package.\n

" + } + }, + "ModelPackagingJobDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobDescription", + "traits": { + "smithy.api#documentation": "

\nThe description for the model packaging job.\n

" + } + }, + "ModelPackagingMethod": { + "target": "com.amazonaws.lookoutvision#ModelPackagingMethod", + "traits": { + "smithy.api#documentation": "

\nThe AWS service used to package the job. Currently Lookout for Vision can package\n jobs with AWS IoT Greengrass.\n

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

The status of the model packaging job.\n

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.lookoutvision#ModelPackagingStatusMessage", + "traits": { + "smithy.api#documentation": "

The status message for the model packaging job.\n

" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time and date that the model packaging job was created.

" + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time and date that the model packaging job was last updated.

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

\n Metadata for a model packaging job. For more information, see ListModelPackagingJobs.\n

" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATED", + "name": "CREATED" + }, + { + "value": "RUNNING", + "name": "RUNNING" + }, + { + "value": "SUCCEEDED", + "name": "SUCCEEDED" + }, + { + "value": "FAILED", + "name": "FAILED" + } + ] + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobsList": { + "type": "list", + "member": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobMetadata" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingMethod": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingOutputDetails": { + "type": "structure", + "members": { + "Greengrass": { + "target": "com.amazonaws.lookoutvision#GreengrassOutputDetails", + "traits": { + "smithy.api#documentation": "

\nInformation about the AWS IoT Greengrass component in a model packaging job.\n

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

\nInformation about the output from a model packaging job.\n

" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingStatusMessage": { + "type": "string" + }, + "com.amazonaws.lookoutvision#ModelPerformance": { + "type": "structure", + "members": { + "F1Score": { + "target": "com.amazonaws.lookoutvision#Float", + "traits": { + "smithy.api#documentation": "

The overall F1 score metric for the trained model.

" + } + }, + "Recall": { + "target": "com.amazonaws.lookoutvision#Float", + "traits": { "smithy.api#documentation": "

The overall recall metric value for the trained model.

" } }, @@ -1921,7 +2437,17 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "([1-9][0-9]*|latest)" + "smithy.api#pattern": "^([1-9][0-9]*|latest)$" + } + }, + "com.amazonaws.lookoutvision#ModelVersionNoLatest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + }, + "smithy.api#pattern": "^([1-9][0-9]*)$" } }, "com.amazonaws.lookoutvision#OutputConfig": { @@ -2055,7 +2581,7 @@ "min": 1, "max": 255 }, - "smithy.api#pattern": "[a-zA-Z0-9][a-zA-Z0-9_\\-]*" + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-]*$" } }, "com.amazonaws.lookoutvision#QueryString": { @@ -2065,7 +2591,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": ".*\\S.*" + "smithy.api#pattern": "\\S" } }, "com.amazonaws.lookoutvision#ResourceNotFoundException": { @@ -2117,6 +2643,10 @@ { "value": "TRIAL", "name": "TRIAL" + }, + { + "value": "MODEL_PACKAGE_JOB", + "name": "MODEL_PACKAGE_JOB" } ] } @@ -2131,7 +2661,7 @@ "min": 3, "max": 63 }, - "smithy.api#pattern": "[0-9A-Za-z\\.\\-_]*" + "smithy.api#pattern": "^[0-9A-Za-z\\.\\-_]*$" } }, "com.amazonaws.lookoutvision#S3KeyPrefix": { @@ -2150,19 +2680,19 @@ "Bucket": { "target": "com.amazonaws.lookoutvision#S3BucketName", "traits": { - "smithy.api#documentation": "

The S3 bucket that contains the training output.

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

The S3 bucket that contains the training or model packaging job output. If you are training a model,\n the bucket must in your AWS account. If you use an S3 bucket for a model packaging job,\n the S3 bucket must be in the same AWS Region and AWS account in which you use AWS IoT Greengrass.

", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.lookoutvision#S3KeyPrefix", "traits": { - "smithy.api#documentation": "

The path of the folder, within the S3 bucket, that contains the training output.

" + "smithy.api#documentation": "

The path of the folder, within the S3 bucket, that contains the output.

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

Information about the location training output.

" + "smithy.api#documentation": "

Information about the location of training output or the output of a model packaging job.

" } }, "com.amazonaws.lookoutvision#S3ObjectKey": { @@ -2267,6 +2797,104 @@ } } }, + "com.amazonaws.lookoutvision#StartModelPackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJobRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#ConflictException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts an Amazon Lookout for Vision model packaging job. A model packaging job creates an AWS IoT Greengrass component for\n a Lookout for Vision model. You can use the component to deploy your model to an edge device managed by Greengrass.\n

\n \n

Use the DescribeModelPackagingJob API to determine the current status of the job.\n \n The model packaging job is complete if the value of Status is SUCCEEDED.

\n

To deploy the component\n to the target device, use the component name and component version\n with the AWS IoT Greengrass CreateDeployment API.

\n\n

This operation requires the following permissions:

\n \n \n \n

For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs", + "code": 200 + } + } + }, + "com.amazonaws.lookoutvision#StartModelPackagingJobRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

\nThe name of the project which contains the version of the model that you want to package.\n

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

\nThe version of the model within the project that you want to package.\n

", + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

A name for the model packaging job. If you don't supply a value, the service creates\n a job name for you.\n

" + } + }, + "Configuration": { + "target": "com.amazonaws.lookoutvision#ModelPackagingConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the model packaging job.\n

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

A description for the model packaging job.\n

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

ClientToken is an idempotency token that ensures a call to StartModelPackagingJob\n completes only once. You choose the value to pass. For example, An issue might prevent you\n from getting a response from StartModelPackagingJob.\n In this case, safely retry your call\n to StartModelPackagingJob by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple dataset creation requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModelPackagingJob. An idempotency\n token is active for 8 hours.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.lookoutvision#StartModelPackagingJobResponse": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

The job name for the model packaging job. If you don't supply a job name in the JobName input parameter,\n the service creates a job name for you.\n\n

" + } + } + } + }, "com.amazonaws.lookoutvision#StartModelRequest": { "type": "structure", "members": { @@ -2289,14 +2917,14 @@ "MinInferenceUnits": { "target": "com.amazonaws.lookoutvision#InferenceUnits", "traits": { - "smithy.api#documentation": "

The minimum number of inference units to use. A single\n inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS).\n Use a higher number to increase the TPS throughput of your model. You are charged for the number\n of inference units that you use.\n

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

The minimum number of inference units to use. A single\n inference unit represents 1 hour of processing. \n Use a higher number to increase the TPS throughput of your model. You are charged for the number\n of inference units that you use.\n

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

ClientToken is an idempotency token that ensures a call to StartModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from StartModel.\n In this case, safely retry your call\n to StartModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModel. An idempotency\n token is active for 8 hours.\n

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

ClientToken is an idempotency token that ensures a call to StartModel\n completes only once. You choose the value to pass. For example, An issue might prevent \n you from getting a response from StartModel.\n In this case, safely retry your call\n to StartModel by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple start requests. You'll need to\n provide your own value for other use cases.

\n \n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModel. An idempotency\n token is active for 8 hours.\n

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -2373,7 +3001,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to StopModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from StopModel.\n In this case, safely retry your call\n to StopModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StopModel. An idempotency\n token is active for 8 hours.\n \n \n

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

ClientToken is an idempotency token that ensures a call to StopModel\n completes only once. You choose the value to pass. For example, An issue \n might prevent you from getting a response from StopModel.\n In this case, safely retry your call\n to StopModel by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple stop requests. You'll need to\n provide your own value for other use cases.

\n

An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StopModel. An idempotency\n token is active for 8 hours.\n \n \n

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -2537,6 +3165,83 @@ "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" } }, + "com.amazonaws.lookoutvision#TargetDevice": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "jetson_xavier", + "name": "JETSON_XAVIER" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatform": { + "type": "structure", + "members": { + "Os": { + "target": "com.amazonaws.lookoutvision#TargetPlatformOs", + "traits": { + "smithy.api#documentation": "

The target operating system for the model. Linux is the only operating system\n that is currently supported.\n

", + "smithy.api#required": {} + } + }, + "Arch": { + "target": "com.amazonaws.lookoutvision#TargetPlatformArch", + "traits": { + "smithy.api#documentation": "

The target architecture for the model. The currently supported architectures are\n X86_64 (64-bit version of the x86 instruction set) and ARM_64 (ARMv8 64-bit CPU).\n

", + "smithy.api#required": {} + } + }, + "Accelerator": { + "target": "com.amazonaws.lookoutvision#TargetPlatformAccelerator", + "traits": { + "smithy.api#documentation": "

The target accelerator for the model. NVIDIA (Nvidia graphics processing unit) \n is the only accelerator that is currently supported. You must also specify the gpu-code, trt-ver,\n and cuda-ver compiler options.\n \n

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

The platform on which a model runs on an AWS IoT Greengrass core device.

" + } + }, + "com.amazonaws.lookoutvision#TargetPlatformAccelerator": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NVIDIA", + "name": "NVIDIA" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatformArch": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ARM64", + "name": "ARM64" + }, + { + "value": "X86_64", + "name": "X86_64" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatformOs": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LINUX", + "name": "LINUX" + } + ] + } + }, "com.amazonaws.lookoutvision#ThrottlingException": { "type": "structure", "members": { @@ -2663,7 +3368,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds one or more JSON Line entries to a dataset. A JSON Line includes information about an image\n used for training or testing an Amazon Lookout for Vision model. The following is an example JSON Line.

\n \n \n

Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and\n check the Status field in the response.

\n

This operation requires permissions to perform the\n lookoutvision:UpdateDatasetEntries operation.

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

Adds or updates one or more JSON Line entries in a dataset. A JSON Line includes information about an image\n used for training or testing an Amazon Lookout for Vision model.

\n

To update an existing JSON Line, use the source-ref field to identify the JSON Line. The JSON line\n that you supply replaces the existing JSON line. Any existing annotations that are not in the new JSON line are removed from the dataset.\n

\n \n \n

For more information, see \n Defining JSON lines for anomaly classification in the Amazon Lookout for Vision Developer Guide.

\n \n \n

The images you reference in the source-ref field of a JSON line, must be \n in the same S3 bucket as the existing images in the dataset.

\n
\n \n

Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and\n check the Status field in the response.

\n

This operation requires permissions to perform the\n lookoutvision:UpdateDatasetEntries operation.

", "smithy.api#http": { "method": "PATCH", "uri": "/2020-11-20/projects/{ProjectName}/datasets/{DatasetType}/entries", @@ -2700,7 +3405,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from UpdateDatasetEntries.\n In this case, safely retry your call\n to UpdateDatasetEntries by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to UpdateDatasetEntries. An idempotency\n token is active for 8 hours.\n

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

ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries\n completes only once. You choose the value to pass. For example, An issue \n might prevent you from getting a response from UpdateDatasetEntries.\n In this case, safely retry your call\n to UpdateDatasetEntries by using the same ClientToken parameter value.

\n

If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple updates with the same dataset entries. You'll need to\n provide your own value for other use cases.

\n

An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to UpdateDatasetEntries. An idempotency\n token is active for 8 hours.\n

", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } diff --git a/codegen/sdk-codegen/aws-models/mediaconnect.2018-11-14.json b/codegen/sdk-codegen/aws-models/mediaconnect.2018-11-14.json index c7e7e7e6406..02e6b48bb75 100644 --- a/codegen/sdk-codegen/aws-models/mediaconnect.2018-11-14.json +++ b/codegen/sdk-codegen/aws-models/mediaconnect.2018-11-14.json @@ -468,7 +468,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds for Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -515,6 +515,13 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -1500,7 +1507,7 @@ } }, "traits": { - "smithy.api#documentation": "The settings for source failover" + "smithy.api#documentation": "The settings for source failover." } }, "com.amazonaws.mediaconnect#FailoverMode": { @@ -2482,6 +2489,21 @@ }, "com.amazonaws.mediaconnect#MediaConnect": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "MediaConnect", + "arnNamespace": "mediaconnect", + "cloudFormationName": "MediaConnect", + "cloudTrailEventSource": "mediaconnect.amazonaws.com", + "endpointPrefix": "mediaconnect" + }, + "aws.auth#sigv4": { + "name": "mediaconnect" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "API for AWS Elemental MediaConnect", + "smithy.api#title": "AWS MediaConnect" + }, "version": "2018-11-14", "operations": [ { @@ -2574,22 +2596,7 @@ { "target": "com.amazonaws.mediaconnect#UpdateFlowSource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "MediaConnect", - "arnNamespace": "mediaconnect", - "cloudFormationName": "MediaConnect", - "cloudTrailEventSource": "mediaconnect.amazonaws.com", - "endpointPrefix": "mediaconnect" - }, - "aws.auth#sigv4": { - "name": "mediaconnect" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "API for AWS Elemental MediaConnect", - "smithy.api#title": "AWS MediaConnect" - } + ] }, "com.amazonaws.mediaconnect#MediaStream": { "type": "structure", @@ -3129,6 +3136,10 @@ { "value": "srt-listener", "name": "srt_listener" + }, + { + "value": "fujitsu-qos", + "name": "fujitsu_qos" } ] } @@ -3872,7 +3883,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -3911,6 +3922,20 @@ "smithy.api#jsonName": "protocol" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "StreamId": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -3997,6 +4022,20 @@ "smithy.api#required": {} } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SourceArn": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -4381,7 +4420,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -4414,6 +4453,20 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -4582,7 +4635,7 @@ } }, "traits": { - "smithy.api#documentation": "The settings for source failover" + "smithy.api#documentation": "The settings for source failover." } }, "com.amazonaws.mediaconnect#UpdateFlow": { @@ -4925,7 +4978,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds for Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -4972,6 +5025,20 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -5136,7 +5203,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -5168,6 +5235,20 @@ "smithy.api#jsonName": "protocol" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SourceArn": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -5227,7 +5308,7 @@ "Name": { "target": "com.amazonaws.mediaconnect#__string", "traits": { - "smithy.api#documentation": "Immutable and has to be a unique against other VpcInterfaces in this Flow", + "smithy.api#documentation": "Immutable and has to be a unique against other VpcInterfaces in this Flow.", "smithy.api#jsonName": "name", "smithy.api#required": {} } diff --git a/codegen/sdk-codegen/aws-models/networkfirewall.2020-11-12.json b/codegen/sdk-codegen/aws-models/networkfirewall.2020-11-12.json index ce6800cf36e..3fccf706bb5 100644 --- a/codegen/sdk-codegen/aws-models/networkfirewall.2020-11-12.json +++ b/codegen/sdk-codegen/aws-models/networkfirewall.2020-11-12.json @@ -1186,6 +1186,95 @@ "smithy.api#documentation": "

Returns the data objects for the specified rule group.

" } }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataRequest" + }, + "output": { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, + { + "target": "com.amazonaws.networkfirewall#InvalidRequestException" + }, + { + "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

High-level information about a rule group, returned by operations like create and describe. \n You can use the information provided in the metadata to retrieve and manage a rule group. \n You can retrieve all objects for a rule group by calling DescribeRuleGroup.\n

" + } + }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataRequest": { + "type": "structure", + "members": { + "RuleGroupName": { + "target": "com.amazonaws.networkfirewall#ResourceName", + "traits": { + "smithy.api#documentation": "

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

\n

You must specify the ARN or the name, and you can specify both.

" + } + }, + "RuleGroupArn": { + "target": "com.amazonaws.networkfirewall#ResourceArn", + "traits": { + "smithy.api#documentation": "

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

\n

You must specify the ARN or the name, and you can specify both.

" + } + }, + "Type": { + "target": "com.amazonaws.networkfirewall#RuleGroupType", + "traits": { + "smithy.api#documentation": "

Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains \nstateless rules. If it is stateful, it contains stateful rules.

\n \n

This setting is required for requests that do not include the RuleGroupARN.

\n
" + } + } + } + }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataResponse": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.networkfirewall#ResourceArn", + "traits": { + "smithy.api#documentation": "

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

\n

You must specify the ARN or the name, and you can specify both.

", + "smithy.api#required": {} + } + }, + "RuleGroupName": { + "target": "com.amazonaws.networkfirewall#ResourceName", + "traits": { + "smithy.api#documentation": "

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

\n

You must specify the ARN or the name, and you can specify both.

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

Returns the metadata objects for the specified rule group.\n

" + } + }, + "Type": { + "target": "com.amazonaws.networkfirewall#RuleGroupType", + "traits": { + "smithy.api#documentation": "

Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains \nstateless rules. If it is stateful, it contains stateful rules.

\n \n

This setting is required for requests that do not include the RuleGroupARN.

\n
" + } + }, + "Capacity": { + "target": "com.amazonaws.networkfirewall#RuleCapacity", + "traits": { + "smithy.api#documentation": "

The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. \n When you update a rule group, you are limited to this capacity. When you reference a rule group \n from a firewall policy, Network Firewall reserves this capacity for the rule group.

\n

You can retrieve the capacity that would be required for a rule group before you create the rule group by calling \n CreateRuleGroup with DryRun set to TRUE.

" + } + }, + "StatefulRuleOptions": { + "target": "com.amazonaws.networkfirewall#StatefulRuleOptions" + } + } + }, "com.amazonaws.networkfirewall#DescribeRuleGroupRequest": { "type": "structure", "members": { @@ -1530,7 +1619,7 @@ "StatefulDefaultActions": { "target": "com.amazonaws.networkfirewall#StatefulActions", "traits": { - "smithy.api#documentation": "

The default actions to take on a packet that doesn't match any stateful rules.

" + "smithy.api#documentation": "

The default actions to take on a packet that doesn't match any stateful rules. The stateful default action is optional, \n and is only valid when using the strict rule order.

\n

Valid values of the stateful default action:

\n \n

For more information, see \n Strict evaluation order in the AWS Network Firewall Developer Guide.\n

" } }, "StatefulEngineOptions": { @@ -2063,6 +2152,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of objects that you want Network Firewall to return for this request. If more \n objects are available, in the response, Network Firewall provides a \n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } + }, + "Scope": { + "target": "com.amazonaws.networkfirewall#ResourceManagedStatus", + "traits": { + "smithy.api#documentation": "

The scope of the request. The default setting of ACCOUNT or a setting of \n NULL returns all of the rule groups in your account. A setting of \n MANAGED returns all available managed rule groups.

" + } } } }, @@ -2092,11 +2187,17 @@ "target": "com.amazonaws.networkfirewall#ListTagsForResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -2305,6 +2406,21 @@ }, "com.amazonaws.networkfirewall#NetworkFirewall_20201112": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Network Firewall", + "arnNamespace": "network-firewall", + "cloudFormationName": "NetworkFirewall", + "cloudTrailEventSource": "networkfirewall.amazonaws.com", + "endpointPrefix": "network-firewall" + }, + "aws.auth#sigv4": { + "name": "network-firewall" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

This is the API Reference for AWS Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.

\n \n

Network Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source intrusion detection system (IDS) engine. \n AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata, \n see the Suricata website.

\n

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:

\n \n

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

\n

To start using Network Firewall, do the following:

\n
    \n
  1. \n

    (Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.

    \n
  2. \n
  3. \n

    In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.

    \n
  4. \n
  5. \n

    In Network Firewall, create stateless and stateful rule groups, \n to define the components of the network traffic filtering behavior that you want your firewall to have.

    \n
  6. \n
  7. \n

    In Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.

    \n
  8. \n
  9. \n

    In Network Firewall, create a firewall and specify your new firewall policy and \n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.

    \n
  10. \n
  11. \n

    In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.

    \n
  12. \n
", + "smithy.api#title": "AWS Network Firewall" + }, "version": "2020-11-12", "operations": [ { @@ -2349,6 +2465,9 @@ { "target": "com.amazonaws.networkfirewall#DescribeRuleGroup" }, + { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadata" + }, { "target": "com.amazonaws.networkfirewall#DisassociateSubnets" }, @@ -2394,22 +2513,7 @@ { "target": "com.amazonaws.networkfirewall#UpdateSubnetChangeProtection" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Network Firewall", - "arnNamespace": "network-firewall", - "cloudFormationName": "NetworkFirewall", - "cloudTrailEventSource": "networkfirewall.amazonaws.com", - "endpointPrefix": "network-firewall" - }, - "aws.auth#sigv4": { - "name": "network-firewall" - }, - "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "

This is the API Reference for AWS Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.

\n \n

Network Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source intrusion detection system (IDS) engine. \n AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata, \n see the Suricata website.

\n

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:

\n \n

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

\n

To start using Network Firewall, do the following:

\n
    \n
  1. \n

    (Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.

    \n
  2. \n
  3. \n

    In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.

    \n
  4. \n
  5. \n

    In Network Firewall, create stateless and stateful rule groups, \n to define the components of the network traffic filtering behavior that you want your firewall to have.

    \n
  6. \n
  7. \n

    In Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.

    \n
  8. \n
  9. \n

    In Network Firewall, create a firewall and specify your new firewall policy and \n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.

    \n
  10. \n
  11. \n

    In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.

    \n
  12. \n
", - "smithy.api#title": "AWS Network Firewall" - } + ] }, "com.amazonaws.networkfirewall#NumberOfAssociations": { "type": "integer", @@ -2417,6 +2521,17 @@ "smithy.api#box": {} } }, + "com.amazonaws.networkfirewall#OverrideAction": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DROP_TO_ALERT", + "name": "DROP_TO_ALERT" + } + ] + } + }, "com.amazonaws.networkfirewall#PaginationMaxResults": { "type": "integer", "traits": { @@ -2663,6 +2778,21 @@ "smithy.api#pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$" } }, + "com.amazonaws.networkfirewall#ResourceManagedStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MANAGED", + "name": "MANAGED" + }, + { + "value": "ACCOUNT", + "name": "ACCOUNT" + } + ] + } + }, "com.amazonaws.networkfirewall#ResourceName": { "type": "string", "traits": { @@ -2995,7 +3125,7 @@ "Targets": { "target": "com.amazonaws.networkfirewall#RuleTargets", "traits": { - "smithy.api#documentation": "

The domains that you want to inspect for in your traffic flows. To provide multiple\n domains, separate them with commas. Valid domain specifications are the following:

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

The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

\n ", "smithy.api#required": {} } }, @@ -3084,7 +3214,7 @@ "RuleOrder": { "target": "com.amazonaws.networkfirewall#RuleOrder", "traits": { - "smithy.api#documentation": "

Indicates how to manage the order of stateful rule evaluation for the policy. By default, Network Firewall\n leaves the rule evaluation order up to the Suricata rule processing engine. If you set \n this to STRICT_ORDER, your rules are evaluated in the exact order that you provide them\n in the policy. With strict ordering, the rule groups are evaluated by order of priority, starting from the lowest number, and \n the rules in each rule group are processed in the order that they're defined.

" + "smithy.api#documentation": "

Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER is\n the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them\n based on certain settings. For more information, see \n Evaluation order for stateful rules in the AWS Network Firewall Developer Guide.\n

" } } }, @@ -3136,6 +3266,20 @@ ] } }, + "com.amazonaws.networkfirewall#StatefulRuleGroupOverride": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.networkfirewall#OverrideAction", + "traits": { + "smithy.api#documentation": "

The action that changes the rule group from DROP to ALERT. This only applies to\n managed rule groups.

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

The setting that allows the policy owner to change the behavior of the rule group within a policy.

" + } + }, "com.amazonaws.networkfirewall#StatefulRuleGroupReference": { "type": "structure", "members": { @@ -3152,6 +3296,12 @@ "smithy.api#box": {}, "smithy.api#documentation": "

An integer setting that indicates the order in which to run the stateful rule groups in\n a single FirewallPolicy. This setting only applies to firewall policies\n that specify the STRICT_ORDER rule order in the stateful engine options settings.

\n

Network Firewall evalutes each stateful rule group\n against a packet starting with the group that has the lowest priority setting. You must ensure\n that the priority settings are unique within each policy.

\n

You can change the priority settings of your rule groups at any time. To make it easier to\n insert rule groups later, number them so there's a wide range in between, for example use 100,\n 200, and so on.

" } + }, + "Override": { + "target": "com.amazonaws.networkfirewall#StatefulRuleGroupOverride", + "traits": { + "smithy.api#documentation": "

The action that allows the policy owner to override the behavior of the rule group within a policy.

" + } } }, "traits": { @@ -3170,7 +3320,7 @@ "RuleOrder": { "target": "com.amazonaws.networkfirewall#RuleOrder", "traits": { - "smithy.api#documentation": "

Indicates how to manage the order of the rule evaluation for the rule group. By default, Network Firewall\n leaves the rule evaluation order up to the Suricata rule processing engine. If you set \n this to STRICT_ORDER, your rules are evaluated in the exact order that they're listed \n in your Suricata rules string.

" + "smithy.api#documentation": "

Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is\n the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them\n based on certain settings. For more information, see \n Evaluation order for stateful rules in the AWS Network Firewall Developer Guide.\n

" } } }, @@ -3540,11 +3690,17 @@ "target": "com.amazonaws.networkfirewall#TagResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -3648,11 +3804,17 @@ "target": "com.amazonaws.networkfirewall#UntagResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -3762,7 +3924,7 @@ "DeleteProtection": { "target": "com.amazonaws.networkfirewall#Boolean", "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

A flag indicating whether it is possible to delete the firewall. A setting of TRUE indicates\n that the firewall is protected against deletion. Use this setting to protect against\n accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to TRUE.

" } }, "UpdateToken": { @@ -3918,7 +4080,7 @@ } ], "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

Modifies the flag, ChangeProtection, which indicates whether it \n is possible to change the firewall. If the flag is set to TRUE, the firewall is protected \n from changes. This setting helps protect against accidentally changing a firewall that's in use.

" } }, "com.amazonaws.networkfirewall#UpdateFirewallPolicyChangeProtectionRequest": { diff --git a/codegen/sdk-codegen/aws-models/nimble.2020-08-01.json b/codegen/sdk-codegen/aws-models/nimble.2020-08-01.json index 19e9be4d10c..73755e93bc0 100644 --- a/codegen/sdk-codegen/aws-models/nimble.2020-08-01.json +++ b/codegen/sdk-codegen/aws-models/nimble.2020-08-01.json @@ -67,9 +67,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#AcceptEulasResponse": { @@ -81,9 +78,6 @@ "smithy.api#documentation": "

A collection of EULA acceptances.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#AccessDeniedException": { @@ -195,10 +189,7 @@ } }, "com.amazonaws.nimble#ActiveDirectoryDnsIpAddress": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#ActiveDirectoryDnsIpAddressList": { "type": "list", @@ -206,7 +197,6 @@ "target": "com.amazonaws.nimble#ActiveDirectoryDnsIpAddress" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 10 @@ -314,9 +304,18 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a launch profile", + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], "aws.iam#requiredActions": [ "ec2:CreateNetworkInterface", - "ec2:RunInstances" + "ec2:RunInstances", + "ec2:DescribeSubnets", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkAcls", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeNatGateways" ], "smithy.api#documentation": "

Create a launch profile.

", "smithy.api#http": { @@ -398,7 +397,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -415,9 +413,6 @@ "smithy.api#documentation": "

The launch profile.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingImage": { @@ -453,6 +448,10 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming image", + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], "aws.iam#requiredActions": [ "ec2:ModifyInstanceAttribute", "ec2:ModifySnapshotAttribute", @@ -520,7 +519,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -537,9 +535,6 @@ "smithy.api#documentation": "

The streaming image.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingSession": { @@ -575,6 +570,10 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming session", + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], "aws.iam#requiredActions": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", @@ -641,7 +640,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#LaunchProfileResource" @@ -658,9 +656,6 @@ "smithy.api#documentation": "

The session.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingSessionStream": { @@ -696,6 +691,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming session stream", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "smithy.api#documentation": "

Creates a streaming session stream for a streaming session.

\n

After invoking this API, invoke GetStreamingSessionStream with the returned streamId\n to poll the resource until it is in state READY.

", "smithy.api#http": { "method": "POST", @@ -740,7 +738,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StreamingSessionResource" @@ -757,9 +754,6 @@ "smithy.api#documentation": "

The stream.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStudio": { @@ -795,6 +789,10 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a studio", + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], "aws.iam#requiredActions": [ "sso:CreateManagedApplicationInstance", "iam:PassRole" @@ -840,6 +838,10 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a studio component. A studio component designates a network resource to which a launch profile will provide access", + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], "aws.iam#requiredActions": [ "ec2:DescribeSecurityGroups", "fsx:DescribeFileSystems", @@ -934,7 +936,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -951,9 +952,6 @@ "smithy.api#documentation": "

Information about the studio component.

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

" } }, "com.amazonaws.nimble#CreateStudioRequest": { @@ -1012,9 +1010,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStudioResponse": { @@ -1026,9 +1021,6 @@ "smithy.api#documentation": "

Information about a studio.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteLaunchProfile": { @@ -1154,10 +1146,7 @@ }, "com.amazonaws.nimble#DeleteLaunchProfileMemberResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#DeleteLaunchProfileRequest": { "type": "structure", @@ -1198,9 +1187,6 @@ "smithy.api#documentation": "

The launch profile.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStreamingImage": { @@ -1290,9 +1276,6 @@ "smithy.api#documentation": "

The streaming image.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStreamingSession": { @@ -1328,6 +1311,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to delete a streaming session", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "aws.iam#requiredActions": [ "ec2:DeleteNetworkInterface" ], @@ -1378,9 +1364,6 @@ "smithy.api#documentation": "

The session.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStudio": { @@ -1509,9 +1492,6 @@ "smithy.api#documentation": "

Information about the studio component.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStudioMember": { @@ -1587,10 +1567,7 @@ }, "com.amazonaws.nimble#DeleteStudioMemberResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#DeleteStudioRequest": { "type": "structure", @@ -1623,29 +1600,19 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DirectoryId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#EC2ImageId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#pattern": "^ami-[0-9A-z]+$" } }, "com.amazonaws.nimble#EC2SubnetId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#EC2SubnetIdList": { "type": "list", @@ -1653,7 +1620,6 @@ "target": "com.amazonaws.nimble#EC2SubnetId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 6 @@ -1751,9 +1717,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#EulaAcceptance" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaAcceptanceResource": { @@ -1801,24 +1764,17 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#String" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaList": { "type": "list", "member": { "target": "com.amazonaws.nimble#Eula" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -1851,7 +1807,7 @@ "aws:TagKeys" ], "aws.iam#disableConditionKeyInference": {}, - "smithy.api#documentation": "Represents a EULA" + "smithy.api#documentation": "Represents a EULA that is required to be accepted before the use of certain streaming images" } }, "com.amazonaws.nimble#ExceptionContext": { @@ -1930,9 +1886,6 @@ "smithy.api#documentation": "

The EULA.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfile": { @@ -2127,9 +2080,6 @@ "smithy.api#documentation": "

A collection of studio component summaries.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileInitialization": { @@ -2233,9 +2183,6 @@ "smithy.api#documentation": "

The launch profile initialization.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileMember": { @@ -2318,9 +2265,6 @@ "smithy.api#documentation": "

The member.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileRequest": { @@ -2354,9 +2298,6 @@ "smithy.api#documentation": "

The launch profile.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingImage": { @@ -2494,9 +2435,6 @@ "smithy.api#documentation": "

The streaming image.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingSession": { @@ -2532,6 +2470,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to get a streaming session", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "smithy.api#documentation": "

Gets StreamingSession resource.

\n

anvoke this operation to poll for a streaming session state while creating or deleting\n a session.

", "smithy.api#http": { "method": "GET", @@ -2664,9 +2605,6 @@ "smithy.api#documentation": "

The session.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingSessionStream": { @@ -2702,6 +2640,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to get a streaming session", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "smithy.api#documentation": "

Gets a StreamingSessionStream for a streaming session.

\n

Invoke this operation to poll the resource after invoking\n CreateStreamingSessionStream.

\n

After the StreamingSessionStream changes to the state READY, the url property will\n contain a stream to be used with the DCV streaming client.

", "smithy.api#http": { "method": "GET", @@ -2778,9 +2719,6 @@ "smithy.api#documentation": "

The stream.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudio": { @@ -3023,9 +2961,6 @@ "smithy.api#documentation": "

Information about the studio component.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudioMember": { @@ -3100,9 +3035,6 @@ "smithy.api#documentation": "

The member.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudioRequest": { @@ -3129,9 +3061,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#InternalServerErrorException": { @@ -3296,7 +3225,6 @@ "com.amazonaws.nimble#LaunchProfileId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -3363,7 +3291,7 @@ } }, "traits": { - "smithy.api#documentation": "

A Launch Profile Initialization contains information required for a workstation or\n server to connect to a launch profile

\n

This includes scripts, endpoints, security groups, subnets, and other\n configuration.

" + "smithy.api#documentation": "

A Launch Profile Initialization contains information required for a workstation or\n server to connect to a launch profile.

\n

This includes scripts, endpoints, security groups, subnets, and other\n configuration.

" } }, "com.amazonaws.nimble#LaunchProfileInitializationActiveDirectory": { @@ -3413,7 +3341,7 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

The Launch Profile Initialization Active Directory contains information required for\n the launch profile to connect to the Active Directory.

" } }, "com.amazonaws.nimble#LaunchProfileInitializationScript": { @@ -3439,25 +3367,19 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

The Launch Profile Initialization Script is used when start streaming session\n runs.

" } }, "com.amazonaws.nimble#LaunchProfileInitializationScriptList": { "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfileInitializationScript" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileList": { "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfile" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileMembership": { @@ -3489,7 +3411,7 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

Launch profile membership enables your studio admins to delegate launch profile access\n to other studio users in the Nimble Studio portal without needing to write or\n maintain complex IAM policies. A launch profile member is a user association from your\n studio identity source who is granted permissions to a launch profile.

\n

A launch profile member (type USER) provides the following permissions to that launch\n profile:

\n " } }, "com.amazonaws.nimble#LaunchProfileMembershipList": { @@ -3498,7 +3420,6 @@ "target": "com.amazonaws.nimble#LaunchProfileMembership" }, "traits": { - "smithy.api#documentation": "

", "smithy.api#length": { "min": 0, "max": 20 @@ -3508,7 +3429,6 @@ "com.amazonaws.nimble#LaunchProfileName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 64 @@ -3519,7 +3439,6 @@ "com.amazonaws.nimble#LaunchProfilePersona": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "USER", @@ -3531,7 +3450,6 @@ "com.amazonaws.nimble#LaunchProfilePlatform": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "LINUX", @@ -3559,9 +3477,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfileProtocolVersion" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileResource": { @@ -3641,7 +3556,6 @@ "target": "com.amazonaws.nimble#SecurityGroupId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1 } @@ -3650,7 +3564,6 @@ "com.amazonaws.nimble#LaunchProfileState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -3690,7 +3603,6 @@ "com.amazonaws.nimble#LaunchProfileStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "LAUNCH_PROFILE_CREATED", @@ -3753,7 +3665,6 @@ "target": "com.amazonaws.nimble#String" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 100 @@ -3789,7 +3700,6 @@ "com.amazonaws.nimble#LinuxMountPoint": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 128 @@ -3887,9 +3797,6 @@ "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

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

" } }, "com.amazonaws.nimble#ListEulas": { @@ -3973,9 +3880,6 @@ "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListLaunchProfileMembers": { @@ -4076,9 +3980,6 @@ "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListLaunchProfiles": { @@ -4114,6 +4015,10 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list launch profiles", + "aws.iam#conditionKeys": [ + "nimble:principalId", + "nimble:requesterPrincipalId" + ], "smithy.api#documentation": "

List all the launch profiles a studio.

", "smithy.api#http": { "method": "GET", @@ -4185,9 +4090,6 @@ "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStreamingImages": { @@ -4279,9 +4181,6 @@ "smithy.api#documentation": "

A collection of streaming images.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStreamingSessions": { @@ -4319,7 +4218,8 @@ "aws.iam#actionPermissionDescription": "Grants permission to list streaming sessions", "aws.iam#conditionKeys": [ "nimble:createdBy", - "nimble:ownedBy" + "nimble:ownedBy", + "nimble:requesterPrincipalId" ], "smithy.api#documentation": "

Lists the streaming image resources in a studio.

", "smithy.api#http": { @@ -4391,9 +4291,6 @@ "smithy.api#documentation": "

A collection of streaming sessions.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudioComponents": { @@ -4500,9 +4397,6 @@ "smithy.api#documentation": "

A collection of studio components.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudioMembers": { @@ -4538,7 +4432,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list studio members", - "smithy.api#documentation": "

Get all users in a given studio membership.

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

Get all users in a given studio membership.

\n \n

\n ListStudioMembers only returns admin members.

\n
", "smithy.api#http": { "method": "GET", "uri": "/2020-08-01/studios/{studioId}/membership", @@ -4586,7 +4480,7 @@ "members": { "target": "com.amazonaws.nimble#StudioMembershipList", "traits": { - "smithy.api#documentation": "

A list of members.

" + "smithy.api#documentation": "

A list of admin members.

" } }, "nextToken": { @@ -4595,9 +4489,6 @@ "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudios": { @@ -4675,9 +4566,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListTagsForResource": { @@ -4778,9 +4666,6 @@ "smithy.api#documentation": "

A collection of labels, in the form of key:value pairs, that apply to this\n resource.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#MaxResults": { @@ -4811,7 +4696,7 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

A new member that is added to a launch profile.

" } }, "com.amazonaws.nimble#NewLaunchProfileMemberList": { @@ -4820,7 +4705,6 @@ "target": "com.amazonaws.nimble#NewLaunchProfileMember" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 20 @@ -4846,7 +4730,7 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

A new studio user's membership.

" } }, "com.amazonaws.nimble#NewStudioMemberList": { @@ -4855,7 +4739,6 @@ "target": "com.amazonaws.nimble#NewStudioMember" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 20 @@ -4947,9 +4830,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#PutLaunchProfileMembersResponse": { @@ -5033,22 +4913,15 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#PutStudioMembersResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#Region": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 50 @@ -5126,10 +4999,7 @@ } }, "com.amazonaws.nimble#SecurityGroupId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#ServiceQuotaExceededException": { "type": "structure", @@ -5232,6 +5102,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to start a streaming session", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "aws.iam#requiredActions": [ "nimble:GetLaunchProfile", "nimble:GetLaunchProfileMember" @@ -5362,9 +5235,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StopStreamingSession": { @@ -5400,6 +5270,9 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to stop a streaming session", + "aws.iam#conditionKeys": [ + "nimble:requesterPrincipalId" + ], "aws.iam#requiredActions": [ "nimble:GetLaunchProfile" ], @@ -5472,7 +5345,7 @@ "maxSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates\n or stops the session. The default length of time is 690 minutes, and the maximum length\n of time is 30 days.

" + "smithy.api#documentation": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

" } }, "streamingImageIds": { @@ -5490,6 +5363,15 @@ "stop_start_streaming_session" ] } + }, + "sessionStorage": { + "target": "com.amazonaws.nimble#StreamConfigurationSessionStorage", + "traits": { + "smithy.api#documentation": "

(Optional) The upload storage for a streaming session.

", + "smithy.api#tags": [ + "session_storage" + ] + } } }, "traits": { @@ -5516,7 +5398,7 @@ "maxSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates\n or stops the session. The default length of time is 690 minutes, and the maximum length\n of time is 30 days.

" + "smithy.api#documentation": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

" } }, "streamingImageIds": { @@ -5529,11 +5411,20 @@ "maxStoppedSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxStoppedSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

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

Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

\n

If the value is missing or set to 0, your sessions can’t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

\n

If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

", "smithy.api#tags": [ "stop_start_streaming_session" ] } + }, + "sessionStorage": { + "target": "com.amazonaws.nimble#StreamConfigurationSessionStorage", + "traits": { + "smithy.api#documentation": "

(Optional) The upload storage for a streaming workstation that is created using this\n launch profile.

", + "smithy.api#tags": [ + "session_storage" + ] + } } }, "traits": { @@ -5543,7 +5434,6 @@ "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes": { "type": "integer", "traits": { - "smithy.api#documentation": "", "smithy.api#range": { "min": 1, "max": 43200 @@ -5559,10 +5449,30 @@ } } }, + "com.amazonaws.nimble#StreamConfigurationSessionStorage": { + "type": "structure", + "members": { + "root": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRoot", + "traits": { + "smithy.api#documentation": "

The configuration for the upload storage root of the streaming session.

" + } + }, + "mode": { + "target": "com.amazonaws.nimble#StreamingSessionStorageModeList", + "traits": { + "smithy.api#documentation": "

Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

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

The configuration for a streaming session’s upload storage.

" + } + }, "com.amazonaws.nimble#StreamingClipboardMode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ENABLED", @@ -5709,7 +5619,6 @@ "com.amazonaws.nimble#StreamingImageEncryptionConfigurationKeyArn": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 4 }, @@ -5719,7 +5628,6 @@ "com.amazonaws.nimble#StreamingImageEncryptionConfigurationKeyType": { "type": "string", "traits": { - "smithy.api#documentation": "

", "smithy.api#enum": [ { "value": "CUSTOMER_MANAGED_KEY", @@ -5731,7 +5639,6 @@ "com.amazonaws.nimble#StreamingImageId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -5756,9 +5663,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#StreamingImage" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StreamingImageName": { @@ -5835,7 +5739,6 @@ "com.amazonaws.nimble#StreamingImageState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -5900,6 +5803,10 @@ { "value": "INTERNAL_ERROR", "name": "INTERNAL_ERROR" + }, + { + "value": "ACCESS_DENIED", + "name": "ACCESS_DENIED" } ] } @@ -5907,7 +5814,6 @@ "com.amazonaws.nimble#StreamingInstanceType": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "g4dn.xlarge", @@ -6093,18 +5999,12 @@ } }, "com.amazonaws.nimble#StreamingSessionId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#StreamingSessionList": { "type": "list", "member": { "target": "com.amazonaws.nimble#StreamingSession" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StreamingSessionResource": { @@ -6153,7 +6053,8 @@ "nimble:createdBy", "nimble:ownedBy" ], - "aws.iam#disableConditionKeyInference": {} + "aws.iam#disableConditionKeyInference": {}, + "smithy.api#documentation": "Represents a streaming session that a studio user launches applications and connects to studio components within a studio" } }, "com.amazonaws.nimble#StreamingSessionState": { @@ -6211,7 +6112,6 @@ "com.amazonaws.nimble#StreamingSessionStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "STREAMING_SESSION_READY", @@ -6276,6 +6176,70 @@ ] } }, + "com.amazonaws.nimble#StreamingSessionStorageMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UPLOAD", + "name": "UPLOAD" + } + ] + } + }, + "com.amazonaws.nimble#StreamingSessionStorageModeList": { + "type": "list", + "member": { + "target": "com.amazonaws.nimble#StreamingSessionStorageMode" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRoot": { + "type": "structure", + "members": { + "linux": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRootPathLinux", + "traits": { + "smithy.api#documentation": "

The folder path in Linux workstations where files are uploaded. The default path is\n $HOME/Downloads.

" + } + }, + "windows": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRootPathWindows", + "traits": { + "smithy.api#documentation": "

The folder path in Windows workstations where files are uploaded. The default path is\n %HOMEPATH%\\Downloads.

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

The upload storage root location (folder) on streaming workstations where files are\n uploaded.

" + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRootPathLinux": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRootPathWindows": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.nimble#StreamingSessionStream": { "type": "structure", "members": { @@ -6336,7 +6300,6 @@ "com.amazonaws.nimble#StreamingSessionStreamExpirationInSeconds": { "type": "integer", "traits": { - "smithy.api#documentation": "", "smithy.api#range": { "min": 60, "max": 3600 @@ -6346,7 +6309,6 @@ "com.amazonaws.nimble#StreamingSessionStreamState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "READY", @@ -6378,7 +6340,6 @@ "com.amazonaws.nimble#StreamingSessionStreamStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "STREAM_CREATE_IN_PROGRESS", @@ -6701,7 +6662,6 @@ "com.amazonaws.nimble#StudioComponentDescription": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 256 @@ -6712,7 +6672,6 @@ "com.amazonaws.nimble#StudioComponentId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -6755,7 +6714,6 @@ "com.amazonaws.nimble#StudioComponentInitializationScriptContent": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 5120 @@ -6767,15 +6725,11 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#StudioComponentInitializationScript" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioComponentInitializationScriptRunContext": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "SYSTEM_INITIALIZATION", @@ -6794,7 +6748,6 @@ "target": "com.amazonaws.nimble#StudioComponent" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 50 @@ -6804,7 +6757,6 @@ "com.amazonaws.nimble#StudioComponentName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -6854,7 +6806,7 @@ "nimble:studioId" ], "aws.iam#disableConditionKeyInference": {}, - "smithy.api#documentation": "Represents a studio component which connects a non-Nimble Studio resource in your account to your studio", + "smithy.api#documentation": "Represents a studio component that connects a non-Nimble Studio resource in your account to your studio", "smithy.api#externalDocumentation": { "CFNSourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio" } @@ -6866,7 +6818,6 @@ "target": "com.amazonaws.nimble#ScriptParameterKeyValue" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 30 @@ -6880,9 +6831,8 @@ "target": "com.amazonaws.nimble#SecurityGroupId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { - "min": 1, + "min": 0, "max": 30 } } @@ -6978,7 +6928,6 @@ "com.amazonaws.nimble#StudioComponentSubtype": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "AWS_MANAGED_MICROSOFT_AD", @@ -7058,22 +7007,18 @@ } }, "traits": { - "smithy.api#documentation": "

" + "smithy.api#documentation": "

The studio component's summary.

" } }, "com.amazonaws.nimble#StudioComponentSummaryList": { "type": "list", "member": { "target": "com.amazonaws.nimble#StudioComponentSummary" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioComponentType": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ACTIVE_DIRECTORY", @@ -7101,7 +7046,6 @@ "com.amazonaws.nimble#StudioDisplayName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -7159,9 +7103,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#Studio" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioMembership": { @@ -7202,7 +7143,6 @@ "target": "com.amazonaws.nimble#StudioMembership" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 20 @@ -7212,7 +7152,6 @@ "com.amazonaws.nimble#StudioName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 3, "max": 64 @@ -7223,7 +7162,6 @@ "com.amazonaws.nimble#StudioPersona": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ADMINISTRATOR", @@ -7300,7 +7238,6 @@ "com.amazonaws.nimble#StudioState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -7477,7 +7414,6 @@ } }, "traits": { - "smithy.api#documentation": "

", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource", @@ -7523,9 +7459,6 @@ }, "value": { "target": "com.amazonaws.nimble#String" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ThrottlingException": { @@ -7560,7 +7493,6 @@ "com.amazonaws.nimble#Timestamp": { "type": "timestamp", "traits": { - "smithy.api#documentation": "", "smithy.api#timestampFormat": "date-time" } }, @@ -7698,6 +7630,13 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to update a launch profile", + "aws.iam#requiredActions": [ + "ec2:DescribeSubnets", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkAcls", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeNatGateways" + ], "smithy.api#documentation": "

Update a launch profile.

", "smithy.api#http": { "method": "PATCH", @@ -7789,9 +7728,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "

" } }, "com.amazonaws.nimble#UpdateLaunchProfileMemberResponse": { @@ -7864,9 +7800,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateLaunchProfileResponse": { @@ -7878,9 +7811,6 @@ "smithy.api#documentation": "

The launch profile.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStreamingImage": { @@ -7966,23 +7896,14 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStreamingImageResponse": { "type": "structure", "members": { "streamingImage": { - "target": "com.amazonaws.nimble#StreamingImage", - "traits": { - "smithy.api#documentation": "

" - } + "target": "com.amazonaws.nimble#StreamingImage" } - }, - "traits": { - "smithy.api#documentation": "

" } }, "com.amazonaws.nimble#UpdateStudio": { @@ -8151,9 +8072,6 @@ "smithy.api#documentation": "

The type of the studio component.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioComponentResponse": { @@ -8165,9 +8083,6 @@ "smithy.api#documentation": "

Information about the studio component.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioRequest": { @@ -8209,9 +8124,6 @@ "smithy.api#documentation": "

The IAM role that Studio Users will assume when logging in to the Nimble Studio\n portal.

" } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioResponse": { @@ -8224,9 +8136,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ValidationException": { @@ -8260,7 +8169,6 @@ "com.amazonaws.nimble#WindowsMountDrive": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#pattern": "^[A-Z]$" } }, @@ -8280,22 +8188,22 @@ "aws.iam#defineConditionKeys": { "nimble:ownedBy": { "type": "String", - "documentation": "Filters access based on the ownedBy request parameter or the ID of the owner of the resource", + "documentation": "Filters access by the ownedBy request parameter or the ID of the owner of the resource", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:principalId": { "type": "String", - "documentation": "Filters access based on the principalId request parameter", + "documentation": "Filters access by the principalId request parameter", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:createdBy": { "type": "String", - "documentation": "Filters access based on the createdBy request parameter or the ID of the creator of the resource", + "documentation": "Filters access by the createdBy request parameter or the ID of the creator of the resource", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:studioId": { "type": "String", - "documentation": "Filters access to resources in a specific studio", + "documentation": "Filters access by a specific studio", "externalDocumentation": "${ContextKeysDocRoot}" }, "aws:RequestTag/${TagKey}": { @@ -8310,7 +8218,7 @@ }, "nimble:requesterPrincipalId": { "type": "String", - "documentation": "Filters access to Nimble Studio portal using the ID of the logged in user", + "documentation": "Filters access by the ID of the logged in user", "externalDocumentation": "${ContextKeysDocRoot}" }, "aws:ResourceTag/${TagKey}": { diff --git a/codegen/sdk-codegen/aws-models/outposts.2019-12-03.json b/codegen/sdk-codegen/aws-models/outposts.2019-12-03.json index 4f9d5897a92..06c6ce89a68 100644 --- a/codegen/sdk-codegen/aws-models/outposts.2019-12-03.json +++ b/codegen/sdk-codegen/aws-models/outposts.2019-12-03.json @@ -585,6 +585,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#required": {} } }, @@ -742,7 +743,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

\n The ID of the Outpost.\n

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

\n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -793,6 +794,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1024,7 +1026,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

\n The ID of the Outpost.\n

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

\n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1068,7 +1070,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

\n The ID of the Outpost.\n

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

\n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1183,6 +1185,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1223,6 +1226,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1918,7 +1922,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostIdOnly", "traits": { - "smithy.api#documentation": "

The ID of the Outpost in the order.

" + "smithy.api#documentation": "

\n The ID of the Outpost in the order.\n

" } }, "OrderId": { @@ -2096,7 +2100,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

The ID of the Outpost.

" + "smithy.api#documentation": "

\n The ID of the Outpost.\n

" } }, "OwnerId": { @@ -2282,6 +2286,9 @@ { "target": "com.amazonaws.outposts#UntagResource" }, + { + "target": "com.amazonaws.outposts#UpdateOutpost" + }, { "target": "com.amazonaws.outposts#UpdateSite" }, @@ -2593,7 +2600,7 @@ "com.amazonaws.outposts#SiteId": { "type": "string", "traits": { - "smithy.api#documentation": "

The ID of the site.

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

\n The ID of the site.\n

", "smithy.api#length": { "min": 1, "max": 255 @@ -2860,6 +2867,73 @@ "type": "structure", "members": {} }, + "com.amazonaws.outposts#UpdateOutpost": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#UpdateOutpostInput" + }, + "output": { + "target": "com.amazonaws.outposts#UpdateOutpostOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#ConflictException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Updates an Outpost.\n

", + "smithy.api#http": { + "method": "PATCH", + "uri": "/outposts/{OutpostId}", + "code": 200 + } + } + }, + "com.amazonaws.outposts#UpdateOutpostInput": { + "type": "structure", + "members": { + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.outposts#OutpostName" + }, + "Description": { + "target": "com.amazonaws.outposts#OutpostDescription" + }, + "SupportedHardwareType": { + "target": "com.amazonaws.outposts#SupportedHardwareType", + "traits": { + "smithy.api#documentation": "

\n The type of hardware for this Outpost.\n

" + } + } + } + }, + "com.amazonaws.outposts#UpdateOutpostOutput": { + "type": "structure", + "members": { + "Outpost": { + "target": "com.amazonaws.outposts#Outpost" + } + } + }, "com.amazonaws.outposts#UpdateSite": { "type": "operation", "input": { @@ -2934,6 +3008,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2977,6 +3052,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3043,6 +3119,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

\n The ID or the Amazon Resource Name (ARN) of the site.\n

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } diff --git a/codegen/sdk-codegen/aws-models/qldb.2019-01-02.json b/codegen/sdk-codegen/aws-models/qldb.2019-01-02.json index dfbbdb0c63b..18464dd6083 100644 --- a/codegen/sdk-codegen/aws-models/qldb.2019-01-02.json +++ b/codegen/sdk-codegen/aws-models/qldb.2019-01-02.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.qldb#AmazonQLDB": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "QLDB", + "arnNamespace": "qldb", + "cloudFormationName": "QLDB", + "cloudTrailEventSource": "qldb.amazonaws.com", + "endpointPrefix": "qldb" + }, + "aws.auth#sigv4": { + "name": "qldb" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

The control plane for Amazon QLDB

", + "smithy.api#title": "Amazon QLDB", + "smithy.api#xmlNamespace": { + "uri": "http://ledger.amazonaws.com/doc/2019-01-02/" + } + }, "version": "2019-01-02", "operations": [ { @@ -93,25 +111,7 @@ { "target": "com.amazonaws.qldb#UpdateLedgerPermissionsMode" } - ], - "traits": { - "aws.api#service": { - "sdkId": "QLDB", - "arnNamespace": "qldb", - "cloudFormationName": "QLDB", - "cloudTrailEventSource": "qldb.amazonaws.com", - "endpointPrefix": "qldb" - }, - "aws.auth#sigv4": { - "name": "qldb" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

The control plane for Amazon QLDB

", - "smithy.api#title": "Amazon QLDB", - "smithy.api#xmlNamespace": { - "uri": "http://ledger.amazonaws.com/doc/2019-01-02/" - } - } + ] }, "com.amazonaws.qldb#Arn": { "type": "string", @@ -211,7 +211,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new ledger in your account in the current Region.

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

Creates a new ledger in your Amazon Web Services account in the current Region.

", "smithy.api#http": { "method": "POST", "uri": "/ledgers", @@ -225,7 +225,7 @@ "Name": { "target": "com.amazonaws.qldb#LedgerName", "traits": { - "smithy.api#documentation": "

The name of the ledger that you want to create. The name must be unique among all of\n the ledgers in your account in the current Region.

\n

Naming constraints for ledger names are defined in Quotas in Amazon QLDB\n in the Amazon QLDB Developer Guide.

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

The name of the ledger that you want to create. The name must be unique among all of the\n ledgers in your Amazon Web Services account in the current Region.

\n

Naming constraints for ledger names are defined in Quotas in Amazon QLDB\n in the Amazon QLDB Developer Guide.

", "smithy.api#required": {} } }, @@ -251,7 +251,7 @@ "KmsKey": { "target": "com.amazonaws.qldb#KmsKey", "traits": { - "smithy.api#documentation": "

The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

\n

Use one of the following options to specify this parameter:

\n \n

To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different account, you must use the key\n ARN or alias ARN.

\n

For example:

\n \n

For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

\n

Use one of the following options to specify this parameter:

\n \n

To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different Amazon Web Services account, you must use the key\n ARN or alias ARN.

\n

For example:

\n \n

For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

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

Exports journal contents within a date and time range from a ledger into a specified\n Amazon Simple Storage Service (Amazon S3) bucket. The data is written as files in Amazon Ion format.

\n

If the ledger with the given Name doesn't exist, then throws\n ResourceNotFoundException.

\n

If the ledger with the given Name is in CREATING status, then\n throws ResourcePreconditionNotMetException.

\n

You can initiate up to two concurrent journal export requests for each ledger. Beyond\n this limit, journal export requests throw LimitExceededException.

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

Exports journal contents within a date and time range from a ledger into a specified\n Amazon Simple Storage Service (Amazon S3) bucket. A journal export job can write the data objects in either the text\n or binary representation of Amazon Ion format, or in JSON Lines text\n format.

\n

In JSON Lines format, each journal block in the exported data object is a valid JSON\n object that is delimited by a newline. You can use this format to easily integrate JSON\n exports with analytics tools such as Glue and Amazon Athena\n because these services can parse newline-delimited JSON automatically. For more information\n about the format, see JSON Lines.

\n

If the ledger with the given Name doesn't exist, then throws\n ResourceNotFoundException.

\n

If the ledger with the given Name is in CREATING status, then\n throws ResourcePreconditionNotMetException.

\n

You can initiate up to two concurrent journal export requests for each ledger. Beyond\n this limit, journal export requests throw LimitExceededException.

", "smithy.api#http": { "method": "POST", "uri": "/ledgers/{Name}/journal-s3-exports", @@ -656,9 +656,15 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

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

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

\n \n

To pass a role to QLDB when requesting a journal export, you must have permissions to\n perform the iam:PassRole action on the IAM role resource. This is required for\n all journal export requests.

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

The output format of your exported journal data. If this parameter is not specified, the\n exported data defaults to ION_TEXT format.

" + } } } }, @@ -1053,14 +1059,14 @@ "InclusiveStartTime": { "target": "com.amazonaws.qldb#Timestamp", "traits": { - "smithy.api#documentation": "

The inclusive start date and time for the range of journal contents that are specified\n in the original export request.

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

The inclusive start date and time for the range of journal contents that was specified\n in the original export request.

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

The exclusive end date and time for the range of journal contents that are specified in\n the original export request.

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

The exclusive end date and time for the range of journal contents that was specified in\n the original export request.

", "smithy.api#required": {} } }, @@ -1073,9 +1079,15 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

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

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

\n ", "smithy.api#required": {} } + }, + "OutputFormat": { + "target": "com.amazonaws.qldb#OutputFormat", + "traits": { + "smithy.api#documentation": "

The output format of the exported journal data.

" + } } }, "traits": { @@ -1316,7 +1328,7 @@ "target": "com.amazonaws.qldb#ListJournalS3ExportsResponse" }, "traits": { - "smithy.api#documentation": "

Returns an array of journal export job descriptions for all ledgers that are associated\n with the current account and Region.

\n

This action returns a maximum of MaxResults items, and is paginated so that\n you can retrieve all the items by calling ListJournalS3Exports multiple\n times.

\n

This action does not return any expired export jobs. For more information, see Export job expiration in the Amazon QLDB Developer\n Guide.

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

Returns an array of journal export job descriptions for all ledgers that are associated\n with the current Amazon Web Services account and Region.

\n

This action returns a maximum of MaxResults items, and is paginated so that\n you can retrieve all the items by calling ListJournalS3Exports multiple\n times.

\n

This action does not return any expired export jobs. For more information, see Export job expiration in the Amazon QLDB Developer\n Guide.

", "smithy.api#http": { "method": "GET", "uri": "/journal-s3-exports", @@ -1420,7 +1432,7 @@ "JournalS3Exports": { "target": "com.amazonaws.qldb#JournalS3ExportList", "traits": { - "smithy.api#documentation": "

The array of journal export job descriptions for all ledgers that are associated with\n the current account and Region.

" + "smithy.api#documentation": "

The array of journal export job descriptions for all ledgers that are associated with\n the current Amazon Web Services account and Region.

" } }, "NextToken": { @@ -1440,7 +1452,7 @@ "target": "com.amazonaws.qldb#ListLedgersResponse" }, "traits": { - "smithy.api#documentation": "

Returns an array of ledger summaries that are associated with the current account\n and Region.

\n

This action returns a maximum of 100 items and is paginated so that you can\n retrieve all the items by calling ListLedgers multiple times.

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

Returns an array of ledger summaries that are associated with the current Amazon Web Services account\n and Region.

\n

This action returns a maximum of 100 items and is paginated so that you can\n retrieve all the items by calling ListLedgers multiple times.

", "smithy.api#http": { "method": "GET", "uri": "/ledgers", @@ -1478,7 +1490,7 @@ "Ledgers": { "target": "com.amazonaws.qldb#LedgerList", "traits": { - "smithy.api#documentation": "

The array of ledger summaries that are associated with the current account and\n Region.

" + "smithy.api#documentation": "

The array of ledger summaries that are associated with the current Amazon Web Services account and\n Region.

" } }, "NextToken": { @@ -1558,6 +1570,25 @@ "smithy.api#pattern": "^[A-Za-z-0-9+/=]+$" } }, + "com.amazonaws.qldb#OutputFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ION_BINARY", + "name": "ION_BINARY" + }, + { + "value": "ION_TEXT", + "name": "ION_TEXT" + }, + { + "value": "JSON", + "name": "JSON" + } + ] + } + }, "com.amazonaws.qldb#ParameterName": { "type": "string" }, @@ -1705,7 +1736,7 @@ "KmsKeyArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) in Key Management Service\n (KMS). Amazon S3 does not support asymmetric CMKs.

\n

You must provide a KmsKeyArn if you specify SSE_KMS as the\n ObjectEncryptionType.

\n

\n KmsKeyArn is not required if you specify SSE_S3 as the\n ObjectEncryptionType.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a symmetric key in Key Management Service (KMS). Amazon S3 does not\n support asymmetric KMS keys.

\n

You must provide a KmsKeyArn if you specify SSE_KMS as the\n ObjectEncryptionType.

\n

\n KmsKeyArn is not required if you specify SSE_S3 as the\n ObjectEncryptionType.

" } } }, @@ -1812,7 +1843,7 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal stream to write data records to a Kinesis Data Streams resource.

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

The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal stream to write data records to a Kinesis Data Streams resource.

\n

To pass a role to QLDB when requesting a journal stream, you must have permissions to\n perform the iam:PassRole action on the IAM role resource. This is required for\n all journal stream requests.

", "smithy.api#required": {} } }, @@ -2170,7 +2201,7 @@ "KmsKey": { "target": "com.amazonaws.qldb#KmsKey", "traits": { - "smithy.api#documentation": "

The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

\n

Use one of the following options to specify this parameter:

\n \n

To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different account, you must use the key\n ARN or alias ARN.

\n

For example:

\n \n

For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

\n

Use one of the following options to specify this parameter:

\n \n

To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different Amazon Web Services account, you must use the key\n ARN or alias ARN.

\n

For example:

\n \n

For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

" } } } diff --git a/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json b/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json index 55fe8c09cac..a8138555998 100644 --- a/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json +++ b/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json @@ -616,7 +616,7 @@ } ], "traits": { - "smithy.api#documentation": "

From a data producer account, authorizes the sharing of a datashare with one or more\n consumer accounts. To authorize a datashare for a data consumer, the producer account\n must have the correct access privileges.

" + "smithy.api#documentation": "

From a data producer account, authorizes the sharing of a datashare with one or more\n consumer accounts or managing entities. To authorize a datashare for a data consumer, the producer account\n must have the correct access privileges.

" } }, "com.amazonaws.redshift#AuthorizeDataShareMessage": { @@ -632,7 +632,7 @@ "ConsumerIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID.

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

The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

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

A value that specifies when the datashare has an association between a producer and data consumers.

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

The identifier of a datashare to show its managing entity.

" + } } } }, @@ -3920,7 +3926,7 @@ "ConsumerIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

The identifier of the data consumer that is to have authorization removed from the datashare. \n This identifier is an Amazon Web Services account ID.

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

The identifier of the data consumer that is to have authorization removed from the datashare. \n This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

", "smithy.api#required": {} } } diff --git a/codegen/sdk-codegen/aws-models/route53.2013-04-01.json b/codegen/sdk-codegen/aws-models/route53.2013-04-01.json index e4483074086..b2ec5b08291 100644 --- a/codegen/sdk-codegen/aws-models/route53.2013-04-01.json +++ b/codegen/sdk-codegen/aws-models/route53.2013-04-01.json @@ -34,6 +34,24 @@ }, "com.amazonaws.route53#AWSDnsV20130401": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route 53", + "arnNamespace": "route53", + "cloudFormationName": "Route53", + "cloudTrailEventSource": "route53.amazonaws.com", + "endpointPrefix": "route53" + }, + "aws.auth#sigv4": { + "name": "route53" + }, + "aws.protocols#restXml": {}, + "smithy.api#documentation": "

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

", + "smithy.api#title": "Amazon Route 53", + "smithy.api#xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + } + }, "version": "2013-04-01", "operations": [ { @@ -228,25 +246,7 @@ { "target": "com.amazonaws.route53#UpdateTrafficPolicyInstance" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route 53", - "arnNamespace": "route53", - "cloudFormationName": "Route53", - "cloudTrailEventSource": "route53.amazonaws.com", - "endpointPrefix": "route53" - }, - "aws.auth#sigv4": { - "name": "route53" - }, - "aws.protocols#restXml": {}, - "smithy.api#documentation": "

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

", - "smithy.api#title": "Amazon Route 53", - "smithy.api#xmlNamespace": { - "uri": "https://route53.amazonaws.com/doc/2013-04-01/" - } - } + ] }, "com.amazonaws.route53#AccountLimit": { "type": "structure", @@ -941,6 +941,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-northeast-1", "name": "ap_northeast_1" @@ -989,6 +993,10 @@ "value": "us-iso-east-1", "name": "us_iso_east_1" }, + { + "value": "us-iso-west-1", + "name": "us_iso_west_1" + }, { "value": "us-isob-east-1", "name": "us_isob_east_1" @@ -1199,7 +1207,7 @@ "VPC": { "target": "com.amazonaws.route53#VPC", "traits": { - "smithy.api#documentation": "

(Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone.

\n\t\t

You can specify only one Amazon VPC when you create a private hosted zone. To associate additional Amazon VPCs with the hosted zone, \n\t\t\tuse AssociateVPCWithHostedZone\n\t\t\tafter you create a hosted zone.

" + "smithy.api#documentation": "

(Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone.

\n\t\t

You can specify only one Amazon VPC when you create a private hosted zone. If you are associating a VPC with a hosted zone with this request,\n\t\t\tthe paramaters \n\t\t\tVPCId and VPCRegion are also required.

\n\t\t

To associate additional Amazon VPCs with the hosted zone, \n\t\t\tuse AssociateVPCWithHostedZone\n\t\t\tafter you create a hosted zone.

" } }, "CallerReference": { @@ -1338,7 +1346,7 @@ "KeyManagementServiceArn": { "target": "com.amazonaws.route53#SigningKeyString", "traits": { - "smithy.api#documentation": "

The Amazon resource name (ARN) for a customer managed customer master key (CMK) in Key Management Service (KMS).\n\t\t\tThe KeyManagementServiceArn must be unique for each key-signing key (KSK) in a single hosted zone. \n\t\t\tTo see an example of KeyManagementServiceArn that grants the correct permissions for DNSSEC, \n\t\t\tscroll down to Example.

\n\t\t

You must configure the customer managed CMK as follows:

\n\t\t
\n
Status
\n
\n

Enabled

\n
\n
Key spec
\n
\n

ECC_NIST_P256

\n
\n
Key usage
\n
\n

Sign and verify

\n
\n
Key policy
\n
\n

The key policy must give permission for the following actions:

\n\t\t\t\t\t
    \n
  • \n

    DescribeKey

    \n
  • \n
  • \n

    GetPublicKey

    \n
  • \n
  • \n

    Sign

    \n
  • \n
\n\t\t\t\t\t

The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

\n\t\t\t\t\t
    \n
  • \n

    \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

    \n
  • \n
\n\t\t\t\t
\n
\n\t\t

For more information about working with a customer managed CMK in KMS, see \n\t\t\tKey Management Service concepts.

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

The Amazon resource name (ARN) for a customer managed key in Key Management Service (KMS).\n\t\t\tThe KeyManagementServiceArn must be unique for each key-signing key (KSK) in a single hosted zone. \n\t\t\tTo see an example of KeyManagementServiceArn that grants the correct permissions for DNSSEC, \n\t\t\tscroll down to Example.

\n\t\t

You must configure the customer managed customer managed key as follows:

\n\t\t
\n
Status
\n
\n

Enabled

\n
\n
Key spec
\n
\n

ECC_NIST_P256

\n
\n
Key usage
\n
\n

Sign and verify

\n
\n
Key policy
\n
\n

The key policy must give permission for the following actions:

\n\t\t\t\t\t
    \n
  • \n

    DescribeKey

    \n
  • \n
  • \n

    GetPublicKey

    \n
  • \n
  • \n

    Sign

    \n
  • \n
\n\t\t\t\t\t

The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

\n\t\t\t\t\t
    \n
  • \n

    \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

    \n
  • \n
\n\t\t\t\t
\n
\n\t\t

For more information about working with a customer managed key in KMS, see \n\t\t\tKey Management Service concepts.

", "smithy.api#required": {} } }, @@ -1916,7 +1924,7 @@ "ServeSignature": { "target": "com.amazonaws.route53#ServeSignature", "traits": { - "smithy.api#documentation": "

A string that represents the current hosted zone signing status.

\n\t\t

Status can have one of the following values:

\n\t\t
\n
SIGNING
\n
\n

DNSSEC signing is enabled for the hosted zone.

\n
\n
NOT_SIGNING
\n
\n

DNSSEC signing is not enabled for the hosted zone.

\n
\n
DELETING
\n
\n

DNSSEC signing is in the process of being removed for the hosted zone.

\n
\n
ACTION_NEEDED
\n
\n

There is a problem with signing in the hosted zone that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed customer master key (CMK) might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed CMK might have been changed.

\n
\n
INTERNAL_FAILURE
\n
\n

There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including with key-signing keys (KSKs), you must correct the problem by enabling or \n\t\t\t\t\tdisabling DNSSEC signing for the hosted zone.

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

A string that represents the current hosted zone signing status.

\n\t\t

Status can have one of the following values:

\n\t\t
\n
SIGNING
\n
\n

DNSSEC signing is enabled for the hosted zone.

\n
\n
NOT_SIGNING
\n
\n

DNSSEC signing is not enabled for the hosted zone.

\n
\n
DELETING
\n
\n

DNSSEC signing is in the process of being removed for the hosted zone.

\n
\n
ACTION_NEEDED
\n
\n

There is a problem with signing in the hosted zone that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed key might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed key might have been changed.

\n
\n
INTERNAL_FAILURE
\n
\n

There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including with key-signing keys (KSKs), you must correct the problem by enabling or \n\t\t\t\t\tdisabling DNSSEC signing for the hosted zone.

\n
\n
" } }, "StatusMessage": { @@ -2272,7 +2280,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be\n\t\tdeactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

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

Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be\n\t\tdeactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

\n\t\t

You can use DeactivateKeySigningKey \n\t\t\tto deactivate the key before you delete it.

\n\t\t

Use GetDNSSEC to verify that the KSK is in an INACTIVE\n\t\t\tstatus.

", "smithy.api#http": { "method": "DELETE", "uri": "/2013-04-01/keysigningkey/{HostedZoneId}/{Name}", @@ -4973,7 +4981,7 @@ "KmsArn": { "target": "com.amazonaws.route53#SigningKeyString", "traits": { - "smithy.api#documentation": "

The Amazon resource name (ARN) used to identify the customer managed customer master key (CMK) in Key Management Service (KMS).\n\t\t\tThe KmsArn must be unique for each key-signing key (KSK) in a single hosted zone.

\n\t\t

You must configure the CMK as follows:

\n\t\t
\n
Status
\n
\n

Enabled

\n
\n
Key spec
\n
\n

ECC_NIST_P256

\n
\n
Key usage
\n
\n

Sign and verify

\n
\n
Key policy
\n
\n

The key policy must give permission for the following actions:

\n\t\t\t\t
    \n
  • \n

    DescribeKey

    \n
  • \n
  • \n

    GetPublicKey

    \n
  • \n
  • \n

    Sign

    \n
  • \n
\n\t\t\t\t\t

The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

\n\t\t\t\t\t
    \n
  • \n

    \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

    \n
  • \n
\n\t\t\t\t
\n
\n\t\t

For more information about working with the customer managed CMK in KMS, see \n\t\t\tKey Management Service concepts.

" + "smithy.api#documentation": "

The Amazon resource name (ARN) used to identify the customer managed key in Key Management Service (KMS).\n\t\t\tThe KmsArn must be unique for each key-signing key (KSK) in a single hosted zone.

\n\t\t

You must configure the customer managed key as follows:

\n\t\t
\n
Status
\n
\n

Enabled

\n
\n
Key spec
\n
\n

ECC_NIST_P256

\n
\n
Key usage
\n
\n

Sign and verify

\n
\n
Key policy
\n
\n

The key policy must give permission for the following actions:

\n\t\t\t\t
    \n
  • \n

    DescribeKey

    \n
  • \n
  • \n

    GetPublicKey

    \n
  • \n
  • \n

    Sign

    \n
  • \n
\n\t\t\t\t\t

The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

\n\t\t\t\t\t
    \n
  • \n

    \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

    \n
  • \n
\n\t\t\t\t
\n
\n\t\t

For more information about working with the customer managed key in KMS, see \n\t\t\tKey Management Service concepts.

" } }, "Flag": { @@ -5039,7 +5047,7 @@ "Status": { "target": "com.amazonaws.route53#SigningKeyStatus", "traits": { - "smithy.api#documentation": "

A string that represents the current key-signing key (KSK) status.

\n\t\t

Status can have one of the following values:

\n\t\t
\n
ACTIVE
\n
\n

The KSK is being used for signing.

\n
\n
INACTIVE
\n
\n

The KSK is not being used for signing.

\n
\n
DELETING
\n
\n

The KSK is in the process of being deleted.

\n
\n
ACTION_NEEDED
\n
\n

There is a problem with the KSK that requires you to take action to resolve.\n\t\t\t\tFor example, the customer managed customer master key (CMK) might have been deleted, or the\n\t\t\t\tpermissions for the customer managed CMK might have been changed.

\n
\n
INTERNAL_FAILURE
\n
\n

There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including actions that involve this KSK, you must correct the problem. For example,\n\t\t\t\t\tyou may need to activate or deactivate the KSK.

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

A string that represents the current key-signing key (KSK) status.

\n\t\t

Status can have one of the following values:

\n\t\t
\n
ACTIVE
\n
\n

The KSK is being used for signing.

\n
\n
INACTIVE
\n
\n

The KSK is not being used for signing.

\n
\n
DELETING
\n
\n

The KSK is in the process of being deleted.

\n
\n
ACTION_NEEDED
\n
\n

There is a problem with the KSK that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed key might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed key might have been changed.

\n
\n
INTERNAL_FAILURE
\n
\n

There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including actions that involve this KSK, you must correct the problem. For example,\n\t\t\t\t\tyou may need to activate or deactivate the KSK.

\n
\n
" } }, "StatusMessage": { @@ -5073,7 +5081,7 @@ } }, "traits": { - "smithy.api#documentation": "

You've already created a key-signing key (KSK) with this name or with the same customer managed customer master key (CMK) ARN.

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

You've already created a key-signing key (KSK) with this name or with the same customer managed key ARN.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -7390,6 +7398,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-northeast-1", "name": "ap_northeast_1" @@ -8503,7 +8515,7 @@ "InsufficientDataHealthStatus": { "target": "com.amazonaws.route53#InsufficientDataHealthStatus", "traits": { - "smithy.api#documentation": "

When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign \n\t\t\tto the health check:

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

When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign \n\t\t\tto the health check:

\n\t\t " } }, "ResetElements": { @@ -8546,6 +8558,9 @@ }, { "target": "com.amazonaws.route53#NoSuchHostedZone" + }, + { + "target": "com.amazonaws.route53#PriorRequestNotComplete" } ], "traits": { @@ -8776,7 +8791,7 @@ } }, "traits": { - "smithy.api#documentation": "

(Private hosted zones only) A complex type that contains information about an Amazon VPC.

" + "smithy.api#documentation": "

(Private hosted zones only) A complex type that contains information about an Amazon VPC.

\n\t\t

If you associate a private hosted zone with an Amazon VPC when you make a CreateHostedZone request, the following parameters are also\n\t\t\trequired.

" } }, "com.amazonaws.route53#VPCAssociationAuthorizationNotFound": { @@ -8877,6 +8892,10 @@ "value": "us-iso-east-1", "name": "us_iso_east_1" }, + { + "value": "us-iso-west-1", + "name": "us_iso_west_1" + }, { "value": "us-isob-east-1", "name": "us_isob_east_1" @@ -8889,6 +8908,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-south-1", "name": "ap_south_1" diff --git a/codegen/sdk-codegen/aws-models/route53domains.2014-05-15.json b/codegen/sdk-codegen/aws-models/route53domains.2014-05-15.json index b788a17ce37..8859304000f 100644 --- a/codegen/sdk-codegen/aws-models/route53domains.2014-05-15.json +++ b/codegen/sdk-codegen/aws-models/route53domains.2014-05-15.json @@ -46,10 +46,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

Accepts the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

\n\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" + "smithy.api#documentation": "

Accepts the transfer of a domain from another Amazon Web Services account to the\n\t\t\t\tcurrentAmazon Web Services account. You initiate a transfer between Amazon Web Services accounts using TransferDomainToAnotherAwsAccount.

\n\t\t

If you use the CLI command at accept-domain-transfer-from-another-aws-account, use JSON format as input\n\t\t\tinstead of text because otherwise CLI will throw an error from domain\n\t\t\ttransfer input that includes single quotes.

\n\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" } }, "com.amazonaws.route53domains#AcceptDomainTransferFromAnotherAwsAccountRequest": { @@ -58,7 +61,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

The name of the domain that was specified when another AWS account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

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

The name of the domain that was specified when another Amazon Web Services account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

", "smithy.api#required": {} } }, @@ -91,6 +94,10 @@ "com.amazonaws.route53domains#AccountId": { "type": "string", "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, "smithy.api#pattern": "^(\\d{12})$" } }, @@ -167,10 +174,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

Cancels the transfer of a domain from the current AWS account to another AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

\n\t\t\n\t\t \n\t\t\t

You must cancel the transfer before the other AWS account accepts the transfer using \n\t\t\t\tAcceptDomainTransferFromAnotherAwsAccount.

\n\t\t
\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" + "smithy.api#documentation": "

Cancels the transfer of a domain from the current Amazon Web Services account to another Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

\n\t\t\n\t\t \n\t\t\t

You must cancel the transfer before the other Amazon Web Services account accepts the transfer using \n\t\t\t\tAcceptDomainTransferFromAnotherAwsAccount.

\n\t\t
\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" } }, "com.amazonaws.route53domains#CancelDomainTransferToAnotherAwsAccountRequest": { @@ -179,7 +189,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

The name of the domain for which you want to cancel the transfer to another AWS account.

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

The name of the domain for which you want to cancel the transfer to another Amazon Web Services account.

", "smithy.api#required": {} } } @@ -341,7 +351,7 @@ "ContactType": { "target": "com.amazonaws.route53domains#ContactType", "traits": { - "smithy.api#documentation": "

Indicates whether the contact is a person, company, association, or public organization. Note the following:

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

Indicates whether the contact is a person, company, association, or public organization. Note the following:

\n\t\t " } }, "OrganizationName": { @@ -465,6 +475,10 @@ "type": "string", "traits": { "smithy.api#enum": [ + { + "value": "AC", + "name": "AC" + }, { "value": "AD", "name": "AD" @@ -525,6 +539,10 @@ "value": "AW", "name": "AW" }, + { + "value": "AX", + "name": "AX" + }, { "value": "AZ", "name": "AZ" @@ -581,6 +599,10 @@ "value": "BO", "name": "BO" }, + { + "value": "BQ", + "name": "BQ" + }, { "value": "BR", "name": "BR" @@ -593,6 +615,10 @@ "value": "BT", "name": "BT" }, + { + "value": "BV", + "name": "BV" + }, { "value": "BW", "name": "BW" @@ -665,6 +691,10 @@ "value": "CV", "name": "CV" }, + { + "value": "CW", + "name": "CW" + }, { "value": "CX", "name": "CX" @@ -713,6 +743,10 @@ "value": "EG", "name": "EG" }, + { + "value": "EH", + "name": "EH" + }, { "value": "ER", "name": "ER" @@ -765,6 +799,14 @@ "value": "GE", "name": "GE" }, + { + "value": "GF", + "name": "GF" + }, + { + "value": "GG", + "name": "GG" + }, { "value": "GH", "name": "GH" @@ -785,6 +827,10 @@ "value": "GN", "name": "GN" }, + { + "value": "GP", + "name": "GP" + }, { "value": "GQ", "name": "GQ" @@ -793,6 +839,10 @@ "value": "GR", "name": "GR" }, + { + "value": "GS", + "name": "GS" + }, { "value": "GT", "name": "GT" @@ -813,6 +863,10 @@ "value": "HK", "name": "HK" }, + { + "value": "HM", + "name": "HM" + }, { "value": "HN", "name": "HN" @@ -849,6 +903,10 @@ "value": "IN", "name": "IN" }, + { + "value": "IO", + "name": "IO" + }, { "value": "IQ", "name": "IQ" @@ -865,6 +923,10 @@ "value": "IT", "name": "IT" }, + { + "value": "JE", + "name": "JE" + }, { "value": "JM", "name": "JM" @@ -1017,6 +1079,10 @@ "value": "MP", "name": "MP" }, + { + "value": "MQ", + "name": "MQ" + }, { "value": "MR", "name": "MR" @@ -1065,6 +1131,10 @@ "value": "NE", "name": "NE" }, + { + "value": "NF", + "name": "NF" + }, { "value": "NG", "name": "NG" @@ -1141,6 +1211,10 @@ "value": "PR", "name": "PR" }, + { + "value": "PS", + "name": "PS" + }, { "value": "PT", "name": "PT" @@ -1157,6 +1231,10 @@ "value": "QA", "name": "QA" }, + { + "value": "RE", + "name": "RE" + }, { "value": "RO", "name": "RO" @@ -1205,6 +1283,10 @@ "value": "SI", "name": "SI" }, + { + "value": "SJ", + "name": "SJ" + }, { "value": "SK", "name": "SK" @@ -1229,6 +1311,10 @@ "value": "SR", "name": "SR" }, + { + "value": "SS", + "name": "SS" + }, { "value": "ST", "name": "ST" @@ -1237,6 +1323,10 @@ "value": "SV", "name": "SV" }, + { + "value": "SX", + "name": "SX" + }, { "value": "SY", "name": "SY" @@ -1253,6 +1343,10 @@ "value": "TD", "name": "TD" }, + { + "value": "TF", + "name": "TF" + }, { "value": "TG", "name": "TG" @@ -1285,6 +1379,10 @@ "value": "TO", "name": "TO" }, + { + "value": "TP", + "name": "TP" + }, { "value": "TR", "name": "TR" @@ -1384,12 +1482,70 @@ ] } }, + "com.amazonaws.route53domains#Currency": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + } + } + }, "com.amazonaws.route53domains#CurrentExpiryYear": { "type": "integer" }, "com.amazonaws.route53domains#DNSSec": { "type": "string" }, + "com.amazonaws.route53domains#DeleteDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53domains#DeleteDomainRequest" + }, + "output": { + "target": "com.amazonaws.route53domains#DeleteDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53domains#DuplicateRequest" + }, + { + "target": "com.amazonaws.route53domains#InvalidInput" + }, + { + "target": "com.amazonaws.route53domains#TLDRulesViolation" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" + } + ], + "traits": { + "smithy.api#documentation": "

This operation deletes the specified domain. This action is permanent. For more information,\n\t\t\tsee Deleting a domain name registration.

\n\t\t

To transfer the domain registration to another registrar, use the transfer process that’s\n\t\t\tprovided by the registrar to which you want to transfer the registration. Otherwise,\n\t\t\tthe following apply:

\n\t\t
    \n
  1. \n

    You can’t get a refund for the cost of a deleted domain registration.

    \n
  2. \n
  3. \n

    The registry for the top-level domain might hold the domain name for a brief time before releasing it for other users to register (varies by registry).

    \n
  4. \n
  5. \n

    When the registration has been deleted, we'll send you a confirmation to the registrant\n\t\t\t\tcontact. The email will come from\n\t\t\t\tnoreply@domainnameverification.net or\n\t\t\t\tnoreply@registrar.amazon.com.

    \n
  6. \n
" + } + }, + "com.amazonaws.route53domains#DeleteDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.route53domains#DomainName", + "traits": { + "smithy.api#documentation": "

Name of the domain to be deleted.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53domains#DeleteDomainResponse": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.route53domains#OperationId", + "traits": { + "smithy.api#documentation": "

Identifier for tracking the progress of the request. \n\t\t\tTo query the operation status, use GetOperationDetail.

" + } + } + } + }, "com.amazonaws.route53domains#DeleteTagsForDomain": { "type": "operation", "input": { @@ -1608,6 +1764,65 @@ } } }, + "com.amazonaws.route53domains#DomainPrice": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#DomainPriceName", + "traits": { + "smithy.api#documentation": "

The name of the TLD for which the prices apply.

" + } + }, + "RegistrationPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

The price for domain registration with Route 53.

" + } + }, + "TransferPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

The price for transferring the domain registration to Route 53.

" + } + }, + "RenewalPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

The price for renewing domain registration with Route 53.

" + } + }, + "ChangeOwnershipPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

The price for changing domain ownership.

" + } + }, + "RestorationPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

The price for restoring the domain with Route 53.

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

Information about the domain price associated with a TLD.

" + } + }, + "com.amazonaws.route53domains#DomainPriceList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#DomainPrice" + } + }, + "com.amazonaws.route53domains#DomainPriceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.route53domains#DomainStatus": { "type": "string" }, @@ -1748,7 +1963,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. \n\t\t\tThe cost of renewing your domain registration is billed to your AWS account.

\n\t\t

The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \n\t\t\tDomains That You Can Register with Amazon Route 53 \n\t\t\tin the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period \n\t\t\tso we can complete processing before the deadline.

" + "smithy.api#documentation": "

This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. \n\t\t\tThe cost of renewing your domain registration is billed to your Amazon Web Services account.

\n\t\t

The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \n\t\t\tDomains That You Can Register with Amazon Route 53 \n\t\t\tin the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period \n\t\t\tso we can complete processing before the deadline.

" } }, "com.amazonaws.route53domains#EnableDomainAutoRenewRequest": { @@ -1835,7 +2050,7 @@ "Name": { "target": "com.amazonaws.route53domains#ExtraParamName", "traits": { - "smithy.api#documentation": "

The name of an additional parameter that is required by a top-level domain. Here are the top-level domains that require \n\t\t\tadditional parameters and the names of the parameters that they require:

\n\n\t\t
\n
.com.au and .net.au
\n
\n\t\t\t\t\t
    \n
  • \n

    \n AU_ID_NUMBER\n

    \n
  • \n
  • \n

    \n AU_ID_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ABN (Australian business number)

      \n
    • \n
    • \n

      \n ACN (Australian company number)

      \n
    • \n
    • \n

      \n TM (Trademark number)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.ca
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BRAND_NUMBER\n

    \n
  • \n
  • \n

    \n CA_BUSINESS_ENTITY_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n BANK (Bank)

      \n
    • \n
    • \n

      \n COMMERCIAL_COMPANY (Commercial company)

      \n
    • \n
    • \n

      \n COMPANY (Company)

      \n
    • \n
    • \n

      \n COOPERATION (Cooperation)

      \n
    • \n
    • \n

      \n COOPERATIVE (Cooperative)

      \n
    • \n
    • \n

      \n COOPRIX (Cooprix)

      \n
    • \n
    • \n

      \n CORP (Corporation)

      \n
    • \n
    • \n

      \n CREDIT_UNION (Credit union)

      \n
    • \n
    • \n

      \n FOMIA (Federation of mutual insurance associations)

      \n
    • \n
    • \n

      \n INC (Incorporated)

      \n
    • \n
    • \n

      \n LTD (Limited)

      \n
    • \n
    • \n

      \n LTEE (Limitée)

      \n
    • \n
    • \n

      \n LLC (Limited liability corporation)

      \n
    • \n
    • \n

      \n LLP (Limited liability partnership)

      \n
    • \n
    • \n

      \n LTE (Lte.)

      \n
    • \n
    • \n

      \n MBA (Mutual benefit association)

      \n
    • \n
    • \n

      \n MIC (Mutual insurance company)

      \n
    • \n
    • \n

      \n NFP (Not-for-profit corporation)

      \n
    • \n
    • \n

      \n SA (S.A.)

      \n
    • \n
    • \n

      \n SAVINGS_COMPANY (Savings company)

      \n
    • \n
    • \n

      \n SAVINGS_UNION (Savings union)

      \n
    • \n
    • \n

      \n SARL (Société à responsabilité limitée)

      \n
    • \n
    • \n

      \n TRUST (Trust)

      \n
    • \n
    • \n

      \n ULC (Unlimited liability corporation)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n CA_LEGAL_TYPE\n

    \n\t\t\t\t\t\t\t

    When ContactType is PERSON, valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ABO (Aboriginal Peoples indigenous to Canada)

      \n
    • \n
    • \n

      \n CCT (Canadian citizen)

      \n
    • \n
    • \n

      \n LGR (Legal Representative of a Canadian Citizen or Permanent Resident)

      \n
    • \n
    • \n

      \n RES (Permanent resident of Canada)

      \n
    • \n
    \n\n\t\t\t\t\t\t\t

    When ContactType is a value other than PERSON, valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ASS (Canadian unincorporated association)

      \n
    • \n
    • \n

      \n CCO (Canadian corporation)

      \n
    • \n
    • \n

      \n EDU (Canadian educational institution)

      \n
    • \n
    • \n

      \n GOV (Government or government entity in Canada)

      \n
    • \n
    • \n

      \n HOP (Canadian Hospital)

      \n
    • \n
    • \n

      \n INB (Indian Band recognized by the Indian Act of Canada)

      \n
    • \n
    • \n

      \n LAM (Canadian Library, Archive, or Museum)

      \n
    • \n
    • \n

      \n MAJ (Her/His Majesty the Queen/King)

      \n
    • \n
    • \n

      \n OMK (Official mark registered in Canada)

      \n
    • \n
    • \n

      \n PLT (Canadian Political Party)

      \n
    • \n
    • \n

      \n PRT (Partnership Registered in Canada)

      \n
    • \n
    • \n

      \n TDM (Trademark registered in Canada)

      \n
    • \n
    • \n

      \n TRD (Canadian Trade Union)

      \n
    • \n
    • \n

      \n TRS (Trust established in Canada)

      \n
    • \n
    \n\n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.es
\n
\n\t\t\t\t\t
    \n
  • \n

    \n ES_IDENTIFICATION\n

    \n\t\t\t\t\t\t\t

    Specify the applicable value:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n For contacts inside Spain: Enter your passport ID.

      \n
    • \n
    • \n

      \n For contacts outside of Spain: Enter the VAT identification number \n\t\t\t\t\t\t\t\t\tfor the company.

      \n\t\t\t\t\t\t\t\t\t \n

      For .es domains, the value of ContactType must be PERSON.

      \n
      \n\t\t\t\t\t\t\t\t
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n ES_IDENTIFICATION_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n DNI_AND_NIF (For Spanish contacts)

      \n
    • \n
    • \n

      \n NIE (For foreigners with legal residence)

      \n
    • \n
    • \n

      \n OTHER (For contacts outside of Spain)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n ES_LEGAL_FORM\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ASSOCIATION\n

      \n
    • \n
    • \n

      \n CENTRAL_GOVERNMENT_BODY\n

      \n
    • \n
    • \n

      \n CIVIL_SOCIETY\n

      \n
    • \n
    • \n

      \n COMMUNITY_OF_OWNERS\n

      \n
    • \n
    • \n

      \n COMMUNITY_PROPERTY\n

      \n
    • \n
    • \n

      \n CONSULATE\n

      \n
    • \n
    • \n

      \n COOPERATIVE\n

      \n
    • \n
    • \n

      \n DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL\n

      \n
    • \n
    • \n

      \n ECONOMIC_INTEREST_GROUP\n

      \n
    • \n
    • \n

      \n EMBASSY\n

      \n
    • \n
    • \n

      \n ENTITY_MANAGING_NATURAL_AREAS\n

      \n
    • \n
    • \n

      \n FARM_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n FOUNDATION\n

      \n
    • \n
    • \n

      \n GENERAL_AND_LIMITED_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n GENERAL_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n INDIVIDUAL\n

      \n
    • \n
    • \n

      \n LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n LOCAL_AUTHORITY\n

      \n
    • \n
    • \n

      \n LOCAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n MUTUAL_INSURANCE_COMPANY\n

      \n
    • \n
    • \n

      \n NATIONAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n ORDER_OR_RELIGIOUS_INSTITUTION\n

      \n
    • \n
    • \n

      \n OTHERS (Only for contacts outside of Spain)\n

      \n
    • \n
    • \n

      \n POLITICAL_PARTY\n

      \n
    • \n
    • \n

      \n PROFESSIONAL_ASSOCIATION\n

      \n
    • \n
    • \n

      \n PUBLIC_LAW_ASSOCIATION\n

      \n
    • \n
    • \n

      \n PUBLIC_LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n REGIONAL_GOVERNMENT_BODY\n

      \n
    • \n
    • \n

      \n REGIONAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n SAVINGS_BANK\n

      \n
    • \n
    • \n

      \n SPANISH_OFFICE\n

      \n
    • \n
    • \n

      \n SPORTS_ASSOCIATION\n

      \n
    • \n
    • \n

      \n SPORTS_FEDERATION\n

      \n
    • \n
    • \n

      \n SPORTS_LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n TEMPORARY_ALLIANCE_OF_ENTERPRISES\n

      \n
    • \n
    • \n

      \n TRADE_UNION\n

      \n
    • \n
    • \n

      \n WORKER_OWNED_COMPANY\n

      \n
    • \n
    • \n

      \n WORKER_OWNED_LIMITED_COMPANY\n

      \n
    • \n
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.fi
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n FI_BUSINESS_NUMBER\n

    \n
  • \n
  • \n

    \n FI_ID_NUMBER\n

    \n
  • \n
  • \n

    \n FI_NATIONALITY\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n FINNISH\n

      \n
    • \n
    • \n

      \n NOT_FINNISH\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n FI_ORGANIZATION_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n COMPANY\n

      \n
    • \n
    • \n

      \n CORPORATION\n

      \n
    • \n
    • \n

      \n GOVERNMENT\n

      \n
    • \n
    • \n

      \n INSTITUTION\n

      \n
    • \n
    • \n

      \n POLITICAL_PARTY\n

      \n
    • \n
    • \n

      \n PUBLIC_COMMUNITY\n

      \n
    • \n
    • \n

      \n TOWNSHIP\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.fr
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_CITY\n

    \n
  • \n
  • \n

    \n BIRTH_COUNTRY\n

    \n
  • \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n BIRTH_DEPARTMENT: Specify the INSEE code that corresponds with the department where the contact was born. \n\t\t\t\t\t\t\tIf the contact was born somewhere other than France or its overseas departments, specify 99. For more information, \n\t\t\t\t\t\t\tincluding a list of departments and the corresponding INSEE numbers, see the Wikipedia entry \n\t\t\t\t\t\t\tDepartments of France.

    \n
  • \n
  • \n

    \n BRAND_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.it
\n
\n\t\t\t\t\t
    \n
  • \n

    \n IT_NATIONALITY\n

    \n
  • \n
  • \n

    \n IT_PIN\n

    \n
  • \n
  • \n

    \n IT_REGISTRANT_ENTITY_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n FOREIGNERS\n

      \n
    • \n
    • \n

      \n FREELANCE_WORKERS (Freelance workers and professionals)

      \n
    • \n
    • \n

      \n ITALIAN_COMPANIES (Italian companies and one-person companies)

      \n
    • \n
    • \n

      \n NON_PROFIT_ORGANIZATIONS\n

      \n
    • \n
    • \n

      \n OTHER_SUBJECTS\n

      \n
    • \n
    • \n

      \n PUBLIC_ORGANIZATIONS\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.ru
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n RU_PASSPORT_DATA\n

    \n
  • \n
\n\t\t\t\t
\n
.se
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_COUNTRY\n

    \n
  • \n
  • \n

    \n SE_ID_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.sg
\n
\n\t\t\t\t\t
    \n
  • \n

    \n SG_ID_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.co.uk, .me.uk, and .org.uk
\n
\n\t\t\t\t\t
    \n
  • \n

    \n UK_CONTACT_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n CRC (UK Corporation by Royal Charter)

      \n
    • \n
    • \n

      \n FCORP (Non-UK Corporation)

      \n
    • \n
    • \n

      \n FIND (Non-UK Individual, representing self)

      \n
    • \n
    • \n

      \n FOTHER (Non-UK Entity that does not fit into any other category)

      \n
    • \n
    • \n

      \n GOV (UK Government Body)

      \n
    • \n
    • \n

      \n IND (UK Individual (representing self))

      \n
    • \n
    • \n

      \n IP (UK Industrial/Provident Registered Company)

      \n
    • \n
    • \n

      \n LLP (UK Limited Liability Partnership)

      \n
    • \n
    • \n

      \n LTD (UK Limited Company)

      \n
    • \n
    • \n

      \n OTHER (UK Entity that does not fit into any other category)

      \n
    • \n
    • \n

      \n PLC (UK Public Limited Company)

      \n
    • \n
    • \n

      \n PTNR (UK Partnership)

      \n
    • \n
    • \n

      \n RCHAR (UK Registered Charity)

      \n
    • \n
    • \n

      \n SCH (UK School)

      \n
    • \n
    • \n

      \n STAT (UK Statutory Body)

      \n
    • \n
    • \n

      \n STRA (UK Sole Trader)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n UK_COMPANY_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
\n\n\t\t

In addition, many TLDs require a VAT_NUMBER.

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

The name of an additional parameter that is required by a top-level domain. Here are the top-level domains that require \n\t\t\tadditional parameters and the names of the parameters that they require:

\n\n\t\t
\n
.com.au and .net.au
\n
\n\t\t\t\t\t
    \n
  • \n

    \n AU_ID_NUMBER\n

    \n
  • \n
  • \n

    \n AU_ID_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ABN (Australian business number)

      \n
    • \n
    • \n

      \n ACN (Australian company number)

      \n
    • \n
    • \n

      \n TM (Trademark number)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.ca
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BRAND_NUMBER\n

    \n
  • \n
  • \n

    \n CA_BUSINESS_ENTITY_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n BANK (Bank)

      \n
    • \n
    • \n

      \n COMMERCIAL_COMPANY (Commercial company)

      \n
    • \n
    • \n

      \n COMPANY (Company)

      \n
    • \n
    • \n

      \n COOPERATION (Cooperation)

      \n
    • \n
    • \n

      \n COOPERATIVE (Cooperative)

      \n
    • \n
    • \n

      \n COOPRIX (Cooprix)

      \n
    • \n
    • \n

      \n CORP (Corporation)

      \n
    • \n
    • \n

      \n CREDIT_UNION (Credit union)

      \n
    • \n
    • \n

      \n FOMIA (Federation of mutual insurance associations)

      \n
    • \n
    • \n

      \n INC (Incorporated)

      \n
    • \n
    • \n

      \n LTD (Limited)

      \n
    • \n
    • \n

      \n LTEE (Limitée)

      \n
    • \n
    • \n

      \n LLC (Limited liability corporation)

      \n
    • \n
    • \n

      \n LLP (Limited liability partnership)

      \n
    • \n
    • \n

      \n LTE (Lte.)

      \n
    • \n
    • \n

      \n MBA (Mutual benefit association)

      \n
    • \n
    • \n

      \n MIC (Mutual insurance company)

      \n
    • \n
    • \n

      \n NFP (Not-for-profit corporation)

      \n
    • \n
    • \n

      \n SA (S.A.)

      \n
    • \n
    • \n

      \n SAVINGS_COMPANY (Savings company)

      \n
    • \n
    • \n

      \n SAVINGS_UNION (Savings union)

      \n
    • \n
    • \n

      \n SARL (Société à responsabilité limitée)

      \n
    • \n
    • \n

      \n TRUST (Trust)

      \n
    • \n
    • \n

      \n ULC (Unlimited liability corporation)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n CA_LEGAL_TYPE\n

    \n\t\t\t\t\t\t\t

    When ContactType is PERSON, valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ABO (Aboriginal Peoples indigenous to Canada)

      \n
    • \n
    • \n

      \n CCT (Canadian citizen)

      \n
    • \n
    • \n

      \n LGR (Legal Representative of a Canadian Citizen or Permanent Resident)

      \n
    • \n
    • \n

      \n RES (Permanent resident of Canada)

      \n
    • \n
    \n\n\t\t\t\t\t\t\t

    When ContactType is a value other than PERSON, valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ASS (Canadian unincorporated association)

      \n
    • \n
    • \n

      \n CCO (Canadian corporation)

      \n
    • \n
    • \n

      \n EDU (Canadian educational institution)

      \n
    • \n
    • \n

      \n GOV (Government or government entity in Canada)

      \n
    • \n
    • \n

      \n HOP (Canadian Hospital)

      \n
    • \n
    • \n

      \n INB (Indian Band recognized by the Indian Act of Canada)

      \n
    • \n
    • \n

      \n LAM (Canadian Library, Archive, or Museum)

      \n
    • \n
    • \n

      \n MAJ (Her/His Majesty the Queen/King)

      \n
    • \n
    • \n

      \n OMK (Official mark registered in Canada)

      \n
    • \n
    • \n

      \n PLT (Canadian Political Party)

      \n
    • \n
    • \n

      \n PRT (Partnership Registered in Canada)

      \n
    • \n
    • \n

      \n TDM (Trademark registered in Canada)

      \n
    • \n
    • \n

      \n TRD (Canadian Trade Union)

      \n
    • \n
    • \n

      \n TRS (Trust established in Canada)

      \n
    • \n
    \n\n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.es
\n
\n\t\t\t\t\t
    \n
  • \n

    \n ES_IDENTIFICATION\n

    \n\t\t\t\t\t\t\t

    The value of ES_IDENTIFICATION depends on the following values:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      The value of ES_LEGAL_FORM\n

      \n
    • \n
    • \n

      The value of ES_IDENTIFICATION_TYPE\n

      \n
    • \n
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n If ES_LEGAL_FORM is any value other than INDIVIDUAL:\n

    \n\t\t\t\t\t\t\t
      \n
    • \n

      Specify 1 letter + 8 numbers (CIF [Certificado de Identificación Fiscal])

      \n
    • \n
    • \n

      Example: B12345678

      \n
    • \n
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n If ES_LEGAL_FORM is INDIVIDUAL, the value that you specify for \n\t\t\t\t\t\t\t\tES_IDENTIFICATION depends on the value of ES_IDENTIFICATION_TYPE:\n

    \n\t\t\t\t\t\t\t
      \n
    • \n\t\t\t\t\t\t\t\t\t

      If ES_IDENTIFICATION_TYPE is DNI_AND_NIF (for Spanish contacts):

      \n\t\t\t\t\t\t\t\t\t
        \n
      • \n

        Specify 8 numbers + 1 letter (DNI [Documento Nacional de Identidad], NIF [Número de Identificación Fiscal])

        \n
      • \n
      • \n

        Example: 12345678M

        \n
      • \n
      \n\t\t\t\t\t\t\t\t
    • \n
    • \n\t\t\t\t\t\t\t\t\t

      If ES_IDENTIFICATION_TYPE is NIE (for foreigners with legal residence):

      \n\t\t\t\t\t\t\t\t\t
        \n
      • \n

        Specify 1 letter + 7 numbers + 1 letter ( NIE [Número de Identidad de Extranjero])

        \n
      • \n
      • \n

        Example: Y1234567X

        \n
      • \n
      \n\t\t\t\t\t\t\t\t
    • \n
    • \n\t\t\t\t\t\t\t\t\t

      If ES_IDENTIFICATION_TYPE is OTHER (for contacts outside of Spain):

      \n\t\t\t\t\t\t\t\t\t
        \n
      • \n

        Specify a passport number, drivers license number, or national identity card number

        \n
      • \n
      \n\t\t\t\t\t\t\t\t
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n ES_IDENTIFICATION_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n DNI_AND_NIF (For Spanish contacts)

      \n
    • \n
    • \n

      \n NIE (For foreigners with legal residence)

      \n
    • \n
    • \n

      \n OTHER (For contacts outside of Spain)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n ES_LEGAL_FORM\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n ASSOCIATION\n

      \n
    • \n
    • \n

      \n CENTRAL_GOVERNMENT_BODY\n

      \n
    • \n
    • \n

      \n CIVIL_SOCIETY\n

      \n
    • \n
    • \n

      \n COMMUNITY_OF_OWNERS\n

      \n
    • \n
    • \n

      \n COMMUNITY_PROPERTY\n

      \n
    • \n
    • \n

      \n CONSULATE\n

      \n
    • \n
    • \n

      \n COOPERATIVE\n

      \n
    • \n
    • \n

      \n DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL\n

      \n
    • \n
    • \n

      \n ECONOMIC_INTEREST_GROUP\n

      \n
    • \n
    • \n

      \n EMBASSY\n

      \n
    • \n
    • \n

      \n ENTITY_MANAGING_NATURAL_AREAS\n

      \n
    • \n
    • \n

      \n FARM_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n FOUNDATION\n

      \n
    • \n
    • \n

      \n GENERAL_AND_LIMITED_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n GENERAL_PARTNERSHIP\n

      \n
    • \n
    • \n

      \n INDIVIDUAL\n

      \n
    • \n
    • \n

      \n LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n LOCAL_AUTHORITY\n

      \n
    • \n
    • \n

      \n LOCAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n MUTUAL_INSURANCE_COMPANY\n

      \n
    • \n
    • \n

      \n NATIONAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n ORDER_OR_RELIGIOUS_INSTITUTION\n

      \n
    • \n
    • \n

      \n OTHERS (Only for contacts outside of Spain)\n

      \n
    • \n
    • \n

      \n POLITICAL_PARTY\n

      \n
    • \n
    • \n

      \n PROFESSIONAL_ASSOCIATION\n

      \n
    • \n
    • \n

      \n PUBLIC_LAW_ASSOCIATION\n

      \n
    • \n
    • \n

      \n PUBLIC_LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n REGIONAL_GOVERNMENT_BODY\n

      \n
    • \n
    • \n

      \n REGIONAL_PUBLIC_ENTITY\n

      \n
    • \n
    • \n

      \n SAVINGS_BANK\n

      \n
    • \n
    • \n

      \n SPANISH_OFFICE\n

      \n
    • \n
    • \n

      \n SPORTS_ASSOCIATION\n

      \n
    • \n
    • \n

      \n SPORTS_FEDERATION\n

      \n
    • \n
    • \n

      \n SPORTS_LIMITED_COMPANY\n

      \n
    • \n
    • \n

      \n TEMPORARY_ALLIANCE_OF_ENTERPRISES\n

      \n
    • \n
    • \n

      \n TRADE_UNION\n

      \n
    • \n
    • \n

      \n WORKER_OWNED_COMPANY\n

      \n
    • \n
    • \n

      \n WORKER_OWNED_LIMITED_COMPANY\n

      \n
    • \n
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.eu
\n
\n\t\t
    \n
  • \n

    \n EU_COUNTRY_OF_CITIZENSHIP\n

    \n
  • \n
\n\t\t
\n
.fi
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n FI_BUSINESS_NUMBER\n

    \n
  • \n
  • \n

    \n FI_ID_NUMBER\n

    \n
  • \n
  • \n

    \n FI_NATIONALITY\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n FINNISH\n

      \n
    • \n
    • \n

      \n NOT_FINNISH\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n FI_ORGANIZATION_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n COMPANY\n

      \n
    • \n
    • \n

      \n CORPORATION\n

      \n
    • \n
    • \n

      \n GOVERNMENT\n

      \n
    • \n
    • \n

      \n INSTITUTION\n

      \n
    • \n
    • \n

      \n POLITICAL_PARTY\n

      \n
    • \n
    • \n

      \n PUBLIC_COMMUNITY\n

      \n
    • \n
    • \n

      \n TOWNSHIP\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.fr
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_CITY\n

    \n
  • \n
  • \n

    \n BIRTH_COUNTRY\n

    \n
  • \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n BIRTH_DEPARTMENT: Specify the INSEE code that corresponds with the department where the contact was born. \n\t\t\t\t\t\t\tIf the contact was born somewhere other than France or its overseas departments, specify 99. For more information, \n\t\t\t\t\t\t\tincluding a list of departments and the corresponding INSEE numbers, see the Wikipedia entry \n\t\t\t\t\t\t\tDepartments of France.

    \n
  • \n
  • \n

    \n BRAND_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.it
\n
\n\t\t\t\t\t
    \n
  • \n

    \n IT_NATIONALITY\n

    \n
  • \n
  • \n

    \n IT_PIN\n

    \n
  • \n
  • \n

    \n IT_REGISTRANT_ENTITY_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n FOREIGNERS\n

      \n
    • \n
    • \n

      \n FREELANCE_WORKERS (Freelance workers and professionals)

      \n
    • \n
    • \n

      \n ITALIAN_COMPANIES (Italian companies and one-person companies)

      \n
    • \n
    • \n

      \n NON_PROFIT_ORGANIZATIONS\n

      \n
    • \n
    • \n

      \n OTHER_SUBJECTS\n

      \n
    • \n
    • \n

      \n PUBLIC_ORGANIZATIONS\n

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
\n\t\t\t\t
\n
.ru
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_DATE_IN_YYYY_MM_DD\n

    \n
  • \n
  • \n

    \n RU_PASSPORT_DATA\n

    \n
  • \n
\n\t\t\t\t
\n
.se
\n
\n\t\t\t\t\t
    \n
  • \n

    \n BIRTH_COUNTRY\n

    \n
  • \n
  • \n

    \n SE_ID_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.sg
\n
\n\t\t\t\t\t
    \n
  • \n

    \n SG_ID_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
.co.uk, .me.uk, and .org.uk
\n
\n\t\t\t\t\t
    \n
  • \n

    \n UK_CONTACT_TYPE\n

    \n\t\t\t\t\t\t\t

    Valid values include the following:

    \n\t\t\t\t\t\t\t
      \n
    • \n

      \n CRC (UK Corporation by Royal Charter)

      \n
    • \n
    • \n

      \n FCORP (Non-UK Corporation)

      \n
    • \n
    • \n

      \n FIND (Non-UK Individual, representing self)

      \n
    • \n
    • \n

      \n FOTHER (Non-UK Entity that does not fit into any other category)

      \n
    • \n
    • \n

      \n GOV (UK Government Body)

      \n
    • \n
    • \n

      \n IND (UK Individual (representing self))

      \n
    • \n
    • \n

      \n IP (UK Industrial/Provident Registered Company)

      \n
    • \n
    • \n

      \n LLP (UK Limited Liability Partnership)

      \n
    • \n
    • \n

      \n LTD (UK Limited Company)

      \n
    • \n
    • \n

      \n OTHER (UK Entity that does not fit into any other category)

      \n
    • \n
    • \n

      \n PLC (UK Public Limited Company)

      \n
    • \n
    • \n

      \n PTNR (UK Partnership)

      \n
    • \n
    • \n

      \n RCHAR (UK Registered Charity)

      \n
    • \n
    • \n

      \n SCH (UK School)

      \n
    • \n
    • \n

      \n STAT (UK Statutory Body)

      \n
    • \n
    • \n

      \n STRA (UK Sole Trader)

      \n
    • \n
    \n\t\t\t\t\t\t
  • \n
  • \n

    \n UK_COMPANY_NUMBER\n

    \n
  • \n
\n\t\t\t\t
\n
\n\n\t\t

In addition, many TLDs require a VAT_NUMBER.

", "smithy.api#required": {} } }, @@ -1976,6 +2191,10 @@ { "value": "UK_COMPANY_NUMBER", "name": "UK_COMPANY_NUMBER" + }, + { + "value": "EU_COUNTRY_OF_CITIZENSHIP", + "name": "EU_COUNTRY_OF_CITIZENSHIP" } ] } @@ -1986,11 +2205,54 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#sensitive": {} } }, "com.amazonaws.route53domains#FIAuthKey": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.route53domains#FilterCondition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#ListDomainsAttributeName", + "traits": { + "smithy.api#documentation": "

Name of the field which should be used for filtering the list of domains.

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

The operator values for filtering domain names. The values can be:

\n\t\t ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.route53domains#Values", + "traits": { + "smithy.api#documentation": "

An array of strings presenting values to compare. Only 1 item in the list is currently supported.

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

Information for the filtering of a list of domains returned by \n\t\t\tListDomains.

" + } + }, + "com.amazonaws.route53domains#FilterConditions": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#FilterCondition" + } }, "com.amazonaws.route53domains#GetContactReachabilityStatus": { "type": "operation", @@ -2060,7 +2322,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation returns detailed information about a specified domain that is associated with the current AWS account. \n\t\t\tContact information for the domain is also returned as part of the output.

" + "smithy.api#documentation": "

This operation returns detailed information about a specified domain that is associated with the current Amazon Web Services account. \n\t\t\tContact information for the domain is also returned as part of the output.

" } }, "com.amazonaws.route53domains#GetDomainDetailRequest": { @@ -2091,7 +2353,7 @@ "Nameservers": { "target": "com.amazonaws.route53domains#NameserverList", "traits": { - "smithy.api#documentation": "

The name of the domain.

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

The\n\t\t\tname of the domain.

", "smithy.api#required": {} } }, @@ -2125,7 +2387,7 @@ "AdminPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether contact information is concealed from WHOIS queries. If the value is true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If the value is false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

" + "smithy.api#documentation": "

Specifies whether contact information is concealed from WHOIS\n\t\t\tqueries. If the value is true, WHOIS (\"who is\") queries return contact\n\t\t\tinformation either for Amazon Registrar (for .com, .net, and .org domains) or for our\n\t\t\tregistrar associate, Gandi (for all other TLDs). If the value is false,\n\t\t\tWHOIS queries return the information that you entered for the admin contact.

" } }, "RegistrantPrivacy": { @@ -2203,7 +2465,7 @@ "DnsSec": { "target": "com.amazonaws.route53domains#DNSSec", "traits": { - "smithy.api#documentation": "

Reserved for future use.

" + "smithy.api#documentation": "

Deprecated.

" } }, "StatusList": { @@ -2372,7 +2634,7 @@ "min": 0, "max": 255 }, - "smithy.api#pattern": "[a-zA-Z0-9_\\-.]*" + "smithy.api#pattern": "^[a-zA-Z0-9_\\-.]*$" } }, "com.amazonaws.route53domains#Integer": { @@ -2420,7 +2682,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

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

This operation returns all the domain names registered with Amazon Route 53 for the current Amazon Web Services account\n\t\t\t if no filtering conditions are used.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextPageMarker", @@ -2429,13 +2691,40 @@ } } }, + "com.amazonaws.route53domains#ListDomainsAttributeName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DomainName", + "name": "DomainName" + }, + { + "value": "Expiry", + "name": "Expiry" + } + ] + } + }, "com.amazonaws.route53domains#ListDomainsRequest": { "type": "structure", "members": { + "FilterConditions": { + "target": "com.amazonaws.route53domains#FilterConditions", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the filters applied during the ListDomains request. The filter conditions can\n\t\t\tinclude domain name and domain expiration.

" + } + }, + "SortCondition": { + "target": "com.amazonaws.route53domains#SortCondition", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the requested ordering of domains in the returned list.

" + } + }, "Marker": { "target": "com.amazonaws.route53domains#PageMarker", "traits": { - "smithy.api#documentation": "

For an initial request for a list of domains, omit this element. If the number of domains\n\t\t\tthat are associated with the current AWS account is greater than the value that you specified for\n\t\t\tMaxItems, you can use Marker to return additional domains. Get the value of\n\t\t\tNextPageMarker from the previous response, and submit another request that includes the\n\t\t\tvalue of NextPageMarker in the Marker element.

\n\t\t

Constraints: The marker must match the value specified in the previous request.

" + "smithy.api#documentation": "

For an initial request for a list of domains, omit this element. If the number of domains\n\t\t\tthat are associated with the current Amazon Web Services account is greater than the value that you specified for\n\t\t\tMaxItems, you can use Marker to return additional domains. Get the value of\n\t\t\tNextPageMarker from the previous response, and submit another request that includes the\n\t\t\tvalue of NextPageMarker in the Marker element.

\n\t\t

Constraints: The marker must match the value specified in the previous request.

" } }, "MaxItems": { @@ -2455,7 +2744,7 @@ "Domains": { "target": "com.amazonaws.route53domains#DomainSummaryList", "traits": { - "smithy.api#documentation": "

A summary of domains.

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

A list of domains.

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

Returns information about all of the operations that return an operation ID and that have ever been \n\t\t\tperformed on domains that were registered by the current account.

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

Returns information about all of the operations that return an operation ID and that have ever been \n\t\t\tperformed on domains that were registered by the current account.

\n\t\t

This command runs only in the us-east-1 Region.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextPageMarker", @@ -2540,6 +2829,73 @@ "smithy.api#documentation": "

The ListOperations response includes the following elements.

" } }, + "com.amazonaws.route53domains#ListPrices": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53domains#ListPricesRequest" + }, + "output": { + "target": "com.amazonaws.route53domains#ListPricesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53domains#InvalidInput" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the following prices for either all the TLDs supported by Route 53, or the specified TLD:

\n\t\t ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextPageMarker", + "items": "Prices", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.route53domains#ListPricesRequest": { + "type": "structure", + "members": { + "Tld": { + "target": "com.amazonaws.route53domains#TldName", + "traits": { + "smithy.api#documentation": "

The TLD for which you want to receive the pricing information. For example.\n\t\t\t\t.net.

\n\t\t

If a Tld value is not provided, a list of prices for all TLDs supported by Route 53\n\t\tis returned.

" + } + }, + "Marker": { + "target": "com.amazonaws.route53domains#PageMarker", + "traits": { + "smithy.api#documentation": "

For an initial request for a list of prices, omit this element. \n\t\t\tIf the number of prices that are not yet complete is greater than the value that you specified for MaxItems, \n\t\t\tyou can use Marker to return additional prices. Get the value of NextPageMarker from the previous response, \n\t\t\tand submit another request that includes the value of NextPageMarker in the Marker element.

\n\t\t

Used only for all TLDs. If you specify a TLD, don't specify a Marker.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.route53domains#PageMaxItems", + "traits": { + "smithy.api#documentation": "

Number of Prices to be returned.

\n\t\t

Used only for all TLDs. If you specify a TLD, don't specify a MaxItems.

" + } + } + } + }, + "com.amazonaws.route53domains#ListPricesResponse": { + "type": "structure", + "members": { + "Prices": { + "target": "com.amazonaws.route53domains#DomainPriceList", + "traits": { + "smithy.api#documentation": "

A complex type that includes all the pricing information. If you specify a TLD, this array\n\t\t\tcontains only the pricing for that TLD.

", + "smithy.api#required": {} + } + }, + "NextPageMarker": { + "target": "com.amazonaws.route53domains#PageMarker", + "traits": { + "smithy.api#documentation": "

If there are more prices than you specified for MaxItems in the request, submit another request and include the value of \n\t\t\tNextPageMarker in the value of Marker.

\n\t\t

Used only for all TLDs. If you specify a TLD, don't specify a\n\t\t\tNextPageMarker.

" + } + } + } + }, "com.amazonaws.route53domains#ListTagsForDomain": { "type": "operation", "input": { @@ -2793,6 +3149,25 @@ ] } }, + "com.amazonaws.route53domains#Operator": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LE", + "name": "LE" + }, + { + "value": "GE", + "name": "GE" + }, + { + "value": "BEGINS_WITH", + "name": "BEGINS_WITH" + } + ] + } + }, "com.amazonaws.route53domains#PageMarker": { "type": "string", "traits": { @@ -2814,6 +3189,28 @@ "com.amazonaws.route53domains#Price": { "type": "double" }, + "com.amazonaws.route53domains#PriceWithCurrency": { + "type": "structure", + "members": { + "Price": { + "target": "com.amazonaws.route53domains#Price", + "traits": { + "smithy.api#documentation": "

The price of a domain, in a specific currency.

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

The currency specifier.

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

Currency-specific price information.

" + } + }, "com.amazonaws.route53domains#ReachabilityStatus": { "type": "string", "traits": { @@ -2862,7 +3259,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation registers a domain. Domains are registered either by Amazon Registrar (for .com, .net, and .org domains) or by \n\t\t\tour registrar associate, Gandi (for all other domains). For some top-level domains (TLDs), this operation requires extra parameters.

\n\t\t

When you register a domain, Amazon Route 53 does the following:

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

This operation registers a domain. Domains are registered either by Amazon Registrar (for .com, .net, and .org domains) or by \n\t\t\tour registrar associate, Gandi (for all other domains). For some top-level domains (TLDs), this operation requires extra parameters.

\n\t\t

When you register a domain, Amazon Route 53 does the following:

\n\t\t\t " } }, "com.amazonaws.route53domains#RegisterDomainRequest": { @@ -2918,19 +3315,19 @@ "PrivacyProtectAdminContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } }, "PrivacyProtectRegistrantContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (the domain owner).

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (the domain owner).

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } }, "PrivacyProtectTechContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } } }, @@ -2979,10 +3376,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

Rejects the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" + "smithy.api#documentation": "

Rejects the transfer of a domain from another Amazon Web Services account to the current Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" } }, "com.amazonaws.route53domains#RejectDomainTransferFromAnotherAwsAccountRequest": { @@ -2991,7 +3391,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

The name of the domain that was specified when another AWS account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

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

The name of the domain that was specified when another Amazon Web Services account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

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

This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

\n\t\t

We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the \n\t\t\texpiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see \n\t\t\tRenewing Registration for a Domain \n\t\t\tin the Amazon Route 53 Developer Guide.

" + "smithy.api#documentation": "

This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your Amazon Web Services account.

\n\t\t

We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the \n\t\t\texpiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see \n\t\t\tRenewing Registration for a Domain \n\t\t\tin the Amazon Route 53 Developer Guide.

" } }, "com.amazonaws.route53domains#RenewDomainRequest": { @@ -3195,6 +3595,24 @@ }, "com.amazonaws.route53domains#Route53Domains_v20140515": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route 53 Domains", + "arnNamespace": "route53domains", + "cloudFormationName": "Route53Domains", + "cloudTrailEventSource": "route53domains.amazonaws.com", + "endpointPrefix": "route53domains" + }, + "aws.auth#sigv4": { + "name": "route53domains" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

Amazon Route 53 API actions let you register domain names and perform related operations.

", + "smithy.api#title": "Amazon Route 53 Domains", + "smithy.api#xmlNamespace": { + "uri": "https://route53domains.amazonaws.com/doc/2014-05-15/" + } + }, "version": "2014-05-15", "operations": [ { @@ -3209,6 +3627,9 @@ { "target": "com.amazonaws.route53domains#CheckDomainTransferability" }, + { + "target": "com.amazonaws.route53domains#DeleteDomain" + }, { "target": "com.amazonaws.route53domains#DeleteTagsForDomain" }, @@ -3242,6 +3663,9 @@ { "target": "com.amazonaws.route53domains#ListOperations" }, + { + "target": "com.amazonaws.route53domains#ListPrices" + }, { "target": "com.amazonaws.route53domains#ListTagsForDomain" }, @@ -3281,24 +3705,43 @@ { "target": "com.amazonaws.route53domains#ViewBilling" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route 53 Domains", - "arnNamespace": "route53domains", - "cloudFormationName": "Route53Domains", - "cloudTrailEventSource": "route53domains.amazonaws.com", - "endpointPrefix": "route53domains" - }, - "aws.auth#sigv4": { - "name": "route53domains" + ] + }, + "com.amazonaws.route53domains#SortCondition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#ListDomainsAttributeName", + "traits": { + "smithy.api#documentation": "

Field to be used for sorting the list of domains. It can be either the name or the expiration for a domain. Note that if \n\t\t\tfilterCondition is used in the same \n\t\t\tListDomains\n\t\t\t call, the field used for sorting has to be the same as the field used for filtering.

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

Amazon Route 53 API actions let you register domain names and perform related operations.

", - "smithy.api#title": "Amazon Route 53 Domains", - "smithy.api#xmlNamespace": { - "uri": "https://route53domains.amazonaws.com/doc/2014-05-15/" + "SortOrder": { + "target": "com.amazonaws.route53domains#SortOrder", + "traits": { + "smithy.api#documentation": "

The sort order for a list of domains. Either ascending (ASC) or descending (DES).

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

Information for sorting a list of domains.

" + } + }, + "com.amazonaws.route53domains#SortOrder": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ASC", + "name": "ASC" + }, + { + "value": "DESC", + "name": "DESC" + } + ] } }, "com.amazonaws.route53domains#State": { @@ -3350,7 +3793,13 @@ } }, "com.amazonaws.route53domains#TagKey": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } }, "com.amazonaws.route53domains#TagKeyList": { "type": "list", @@ -3365,11 +3814,26 @@ } }, "com.amazonaws.route53domains#TagValue": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } }, "com.amazonaws.route53domains#Timestamp": { "type": "timestamp" }, + "com.amazonaws.route53domains#TldName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.route53domains#TransferDomain": { "type": "operation", "input": { @@ -3399,7 +3863,7 @@ } ], "traits": { - "smithy.api#documentation": "

Transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered either with \n\t\t\tAmazon Registrar (for .com, .net, and .org domains) or with our registrar associate, Gandi (for all other TLDs).

\n\t\t

For more information about transferring domains, see the following topics:

\n\t\t \n\t\t

If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you \n\t\t\ttransfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars \n\t\t\tprovide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar \n\t\t\twill not renew your domain registration and could end your DNS service at any time.

\n\t\t\n\t\t\t \n\t\t\t\t

If the registrar for your domain is also the DNS service provider for the domain and you don't \n\t\t\t\t\ttransfer DNS service to another provider, your website, email, and the web applications associated with the domain \n\t\t\t\t\tmight become unavailable.

\n\t\t\t
\n\t\t\n\t\t

If the transfer is successful, this method returns an operation ID that you can use to track the progress and \n\t\t\tcompletion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

" + "smithy.api#documentation": "

Transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered either with \n\t\t\tAmazon Registrar (for .com, .net, and .org domains) or with our registrar associate, Gandi (for all other TLDs).

\n\t\t

For more information about transferring domains, see the following topics:

\n\t\t \n\t\t

If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you \n\t\t\ttransfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars \n\t\t\tprovide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar \n\t\t\twill not renew your domain registration and could end your DNS service at any time.

\n\t\t\n\t\t\t \n\t\t\t\t

If the registrar for your domain is also the DNS service provider for the domain and you don't \n\t\t\t\t\ttransfer DNS service to another provider, your website, email, and the web applications associated with the domain \n\t\t\t\t\tmight become unavailable.

\n\t\t\t
\n\t\t\n\t\t

If the transfer is successful, this method returns an operation ID that you can use to track the progress and \n\t\t\tcompletion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

" } }, "com.amazonaws.route53domains#TransferDomainRequest": { @@ -3467,19 +3931,19 @@ "PrivacyProtectAdminContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } }, "PrivacyProtectRegistrantContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } }, "PrivacyProtectTechContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

\n\t\t

Default: true\n

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

Default: true\n

" } } }, @@ -3519,10 +3983,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

Transfers a domain from the current AWS account to another AWS account. Note the following:

\n\t\t \n\t\t\n\t\t \n\t\t\t

When you transfer a domain from one AWS account to another, Route 53 doesn't transfer the hosted zone that is associated \n\t\t\t\twith the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, \n\t\t\t\tso transferring the hosted zone is optional. For information about transferring the hosted zone to another AWS account, see \n\t\t\t\tMigrating a Hosted Zone to a \n\t\t\t\tDifferent AWS Account in the Amazon Route 53 Developer Guide.

\n\t\t
\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" + "smithy.api#documentation": "

Transfers a domain from the current Amazon Web Services account to another Amazon Web Services account. Note the following:

\n\t\t \n\t\t\n\t\t \n\t\t\t

When you transfer a domain from one Amazon Web Services account to another, Route 53 doesn't transfer the hosted zone that is associated \n\t\t\t\twith the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, \n\t\t\t\tso transferring the hosted zone is optional. For information about transferring the hosted zone to another Amazon Web Services account, see \n\t\t\t\tMigrating a Hosted Zone to a \n\t\t\t\t\tDifferent Amazon Web Services Account in the Amazon Route 53 Developer Guide.

\n\t\t
\n\t\t\n\t\t

Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

" } }, "com.amazonaws.route53domains#TransferDomainToAnotherAwsAccountRequest": { @@ -3531,14 +3998,14 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

The name of the domain that you want to transfer from the current AWS account to another account.

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

The name of the domain that you want to transfer from the current Amazon Web Services account to another account.

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

The account ID of the AWS account that you want to transfer the domain to, for example, 111122223333.

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

The account ID of the Amazon Web Services account that you want to transfer the domain to, for example, 111122223333.

", "smithy.api#required": {} } } @@ -3559,7 +4026,7 @@ "Password": { "target": "com.amazonaws.route53domains#String", "traits": { - "smithy.api#documentation": "

To finish transferring a domain to another AWS account, the account that the domain is being transferred to must submit an \n\t\t\tAcceptDomainTransferFromAnotherAwsAccount\n\t\t\trequest. The request must include the value of the Password element that was returned in the \n\t\t\tTransferDomainToAnotherAwsAccount response.

" + "smithy.api#documentation": "

To finish transferring a domain to another Amazon Web Services account, the account that the domain is being transferred to must submit an \n\t\t\tAcceptDomainTransferFromAnotherAwsAccount\n\t\t\trequest. The request must include the value of the Password element that was returned in the \n\t\t\tTransferDomainToAnotherAwsAccount response.

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

This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, \n\t\t\tcontact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org \n\t\t\tdomains) or with contact information for our registrar associate, Gandi.

\n\t\t

This operation affects only the contact information for the specified contact type (registrant, administrator, or tech). \n\t\t\tIf the request succeeds, Amazon Route 53 returns an operation ID that you can use with \n\t\t\tGetOperationDetail\n\t\t\tto track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

\n\t\t \n

By disabling the privacy service via API, you consent to the publication of the contact information provided for this domain \n\t\t\tvia the public WHOIS database. You certify that you are the registrant of this domain name and have the authority to make this decision. \n\t\t\tYou may withdraw your consent at any time by enabling privacy protection using either UpdateDomainContactPrivacy or the \n\t\t\tRoute 53 console. Enabling privacy protection removes the contact information provided for this domain from the WHOIS database. \n\t\t\tFor more information on our privacy practices, see \n\t\t\thttps://aws.amazon.com/privacy/.

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

This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, \n\t\t\tcontact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org \n\t\t\tdomains) or with contact information for our registrar associate, Gandi.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
\n\t\t

This operation affects only the contact information for the specified contact type (administrative, registrant, or technical). \n\t\t\tIf the request succeeds, Amazon Route 53 returns an operation ID that you can use with \n\t\t\tGetOperationDetail\n\t\t\tto track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

\n\t\t \n

By disabling the privacy service via API, you consent to the publication of the contact information provided for this domain \n\t\t\tvia the public WHOIS database. You certify that you are the registrant of this domain name and have the authority to make this decision. \n\t\t\tYou may withdraw your consent at any time by enabling privacy protection using either UpdateDomainContactPrivacy or the \n\t\t\tRoute 53 console. Enabling privacy protection removes the contact information provided for this domain from the WHOIS database. \n\t\t\tFor more information on our privacy practices, see \n\t\t\thttps://aws.amazon.com/privacy/.

\n
" } }, "com.amazonaws.route53domains#UpdateDomainContactPrivacyRequest": { @@ -3674,19 +4141,19 @@ "AdminPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
" } }, "RegistrantPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
" } }, "TechPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

" + "smithy.api#documentation": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

\n\t\t \n\t\t\t

You must specify the same privacy setting for the administrative, registrant, and technical contacts.

\n\t\t
" } } }, @@ -3878,6 +4345,27 @@ "type": "structure", "members": {} }, + "com.amazonaws.route53domains#Value": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.route53domains#Values": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#Value" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.route53domains#ViewBilling": { "type": "operation", "input": { @@ -3892,7 +4380,13 @@ } ], "traits": { - "smithy.api#documentation": "

Returns all the domain-related billing records for the current AWS account for a specified period

" + "smithy.api#documentation": "

Returns all the domain-related billing records for the current Amazon Web Services account for a specified period

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextPageMarker", + "items": "BillingRecords", + "pageSize": "MaxItems" + } } }, "com.amazonaws.route53domains#ViewBillingRequest": { @@ -3913,7 +4407,7 @@ "Marker": { "target": "com.amazonaws.route53domains#PageMarker", "traits": { - "smithy.api#documentation": "

For an initial request for a list of billing records, omit this element. If the number of billing records \n\t\t\tthat are associated with the current AWS account during the specified period is greater than the value that \n\t\t\tyou specified for MaxItems, you can use Marker to return additional billing records. \n\t\t\tGet the value of NextPageMarker from the previous response, and submit another request that includes \n\t\t\tthe value of NextPageMarker in the Marker element.\n\t\t

\n\t\t

Constraints: The marker must match the value of NextPageMarker that was returned in the previous response.

" + "smithy.api#documentation": "

For an initial request for a list of billing records, omit this element. If the number of billing records \n\t\t\tthat are associated with the current Amazon Web Services account during the specified period is greater than the value that \n\t\t\tyou specified for MaxItems, you can use Marker to return additional billing records. \n\t\t\tGet the value of NextPageMarker from the previous response, and submit another request that includes \n\t\t\tthe value of NextPageMarker in the Marker element.\n\t\t

\n\t\t

Constraints: The marker must match the value of NextPageMarker that was returned in the previous response.

" } }, "MaxItems": { diff --git a/codegen/sdk-codegen/aws-models/route53recoverycontrolconfig.2020-11-02.json b/codegen/sdk-codegen/aws-models/route53recoverycontrolconfig.2020-11-02.json index 8f988dcc62c..9f24c04a853 100644 --- a/codegen/sdk-codegen/aws-models/route53recoverycontrolconfig.2020-11-02.json +++ b/codegen/sdk-codegen/aws-models/route53recoverycontrolconfig.2020-11-02.json @@ -41,7 +41,7 @@ } }, "traits": { - "smithy.api#documentation": "

403 response - AccessDeniedException. You do not have sufficient access to perform this action.

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

403 response - You do not have sufficient access to perform this action.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -50,14 +50,14 @@ "type": "structure", "members": { "AssertedControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed. For example, you might include three routing controls, one for each of three Amazon Web Services Regions.

", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#required": {} @@ -73,12 +73,12 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

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

The criteria that you set for specific assertion routing controls (AssertedControls) that designate how many routing control states must be ON as the result of a transaction. For example, if you have three assertion routing controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion routing control states must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the assertion rule.

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

An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

" + "smithy.api#documentation": "

An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met. Otherwise, the change to the routing control is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

" } }, "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate": { @@ -114,7 +114,7 @@ } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the assertion rule.

", "smithy.api#required": {} @@ -136,7 +136,7 @@ "type": "structure", "members": { "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

" } @@ -144,7 +144,7 @@ "ClusterEndpoints": { "target": "com.amazonaws.route53recoverycontrolconfig#__listOfClusterEndpoint", "traits": { - "smithy.api#documentation": "

Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

" + "smithy.api#documentation": "

Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

" } }, "Name": { @@ -161,20 +161,20 @@ } }, "traits": { - "smithy.api#documentation": "

A cluster is a set of five consensus-forming Regional endpoints that represent the infrastructure that hosts your routing controls. Typically, you host together on one cluster all of the routing controls for your applications.

" + "smithy.api#documentation": "

A set of five redundant Regional endpoints against which you can execute API calls to update or get the state of routing controls. You can host multiple control panels and routing controls on one cluster.

" } }, "com.amazonaws.route53recoverycontrolconfig#ClusterEndpoint": { "type": "structure", "members": { "Endpoint": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128PatternAZaZ09", "traits": { - "smithy.api#documentation": "

A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

" + "smithy.api#documentation": "

A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

" } }, "Region": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32PatternS", "traits": { "smithy.api#documentation": "

The Amazon Web Services Region for a cluster endpoint.

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

409 response - ConflictException.

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

409 response - ConflictException. You might be using a predefined variable.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -205,13 +205,13 @@ "type": "structure", "members": { "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that includes the control panel.

" } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel.

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

Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the Amazon Route 53 Application Recovery Controller cluster data plane.

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

Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the cluster data plane.

", "smithy.api#http": { "method": "POST", "uri": "/cluster", @@ -289,9 +289,9 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

Unique client idempotency token.

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

A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

", "smithy.api#idempotencyToken": {} } }, @@ -301,6 +301,12 @@ "smithy.api#documentation": "

The name of the cluster.

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

The tags associated with the cluster.

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

Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or AWS Region.

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

Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or Amazon Web Services Region.

", "smithy.api#http": { "method": "POST", "uri": "/controlpanel", @@ -362,14 +368,14 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

Unique client idempotency token.

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

A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

", "smithy.api#idempotencyToken": {} } }, "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster for the control panel.

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

The name of the control panel.

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

The tags associated with the control panel.

" + } } }, "traits": { @@ -442,21 +454,21 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

Unique client idempotency token.

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

A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

", "smithy.api#idempotencyToken": {} } }, "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that includes the routing control.

", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that includes the routing control.

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

Creates a safety rule in a control panel. Safety rules let you add safeguards around enabling and disabling routing controls, to help prevent unexpected outcomes.

There are two types of safety rules: assertion rules and gating rules.

Assertion rule: An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

Gating rule: A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

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

Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.

There are two types of safety rules: assertion rules and gating rules.

Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria is met. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

Gating rule: A gating rule lets you configure a gating routing control as an overall \"on/off\" switch for a group of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple gating routing controls.

For more information, see Safety rules in the Amazon Route 53 Application Recovery Controller Developer Guide.

", "smithy.api#http": { "method": "POST", "uri": "/safetyrule", @@ -513,17 +525,29 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#NewAssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#NewAssertionRule", + "traits": { + "smithy.api#documentation": "

The assertion rule requested.

" + } }, "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

Unique client idempotency token.

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

A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

", "smithy.api#idempotencyToken": {} } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#NewGatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#NewGatingRule", + "traits": { + "smithy.api#documentation": "

The gating rule requested.

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

The tags associated with the safety rule.

" + } } }, "traits": { @@ -534,10 +558,16 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

The assertion rule created.

" + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

The gating rule created.

" + } } } }, @@ -638,7 +668,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that you're deleting.

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

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -737,7 +767,7 @@ "SafetyRuleArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The request body that you include when you update a safety rule.

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

The ARN of the safety rule.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -853,7 +883,7 @@ "ClusterArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that you're getting details for.

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

The Amazon Resource Name (ARN) of the cluster.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -976,7 +1006,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that you're getting details for.

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

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1099,7 +1129,7 @@ "RoutingControlArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the routing control that you're getting details for.

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

The Amazon Resource Name (ARN) of the routing control.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1134,7 +1164,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the safety rules (that is, the assertion rules and gating rules) for the routing controls in a control panel.

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

Returns information about a safety rule.

", "smithy.api#http": { "method": "GET", "uri": "/safetyrule/{SafetyRuleArn}", @@ -1148,7 +1178,7 @@ "SafetyRuleArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The request body that you include when you update a safety rule.

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

The ARN of the safety rule.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1159,10 +1189,16 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

The assertion rule in the response.

" + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

The gating rule in the response.

" + } } } }, @@ -1170,35 +1206,35 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#required": {} } }, "GatingControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { - "smithy.api#documentation": "

The gating controls for the gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

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

An array of gating routing control Amazon Resource Names (ARNs). For a simple \"on/off\" switch, specify the ARN for one routing control. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed.

", "smithy.api#required": {} } }, "Name": { "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

The name for the gating rule.

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

The name for the gating rule. You can use any non-white space character in the name.

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

The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

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

The criteria that you set for gating routing controls that designates how many of the routing control states must be ON to allow you to update target routing control states.

", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gating rule.

", "smithy.api#required": {} @@ -1212,9 +1248,9 @@ } }, "TargetControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { - "smithy.api#documentation": "

Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three Amazon Web Services Regions. Now you specify ATLEAST 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.

In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.

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

An array of target routing control Amazon Resource Names (ARNs) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control. As a simple example, if you have a single gating control, it acts as an overall \"on/off\" switch for a set of target routing controls. You can use this to manually override automated fail over, for example.

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

A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

" + "smithy.api#documentation": "

A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

" } }, "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate": { @@ -1236,12 +1272,12 @@ "Name": { "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

The name for the gating rule.

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

The name for the gating rule. You can use any non-white space character in the name.

", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gating rule.

", "smithy.api#required": {} @@ -1329,7 +1365,7 @@ "RoutingControlArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the routing control that you're getting details for.

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

The Amazon Resource Name (ARN) of the routing control.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1340,15 +1376,15 @@ "type": "structure", "members": { "HealthCheckIds": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMax36PatternS", "traits": { "smithy.api#documentation": "

Identifiers for the health checks.

" } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { - "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

" + "smithy.api#documentation": "

Next token for listing health checks.

" } } } @@ -1421,7 +1457,7 @@ } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

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

Returns an array of control panels for a cluster.

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

Returns an array of control panels in an account or in a cluster.

", "smithy.api#http": { "method": "GET", "uri": "/controlpanels", @@ -1503,7 +1539,7 @@ } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

" } @@ -1555,7 +1591,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that you're getting routing control details for.

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

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1580,7 +1616,7 @@ "type": "structure", "members": { "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

" } @@ -1638,7 +1674,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that you're getting details for.

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

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1663,7 +1699,7 @@ "type": "structure", "members": { "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

The token that identifies which batch of results you want to see.

" } @@ -1676,6 +1712,58 @@ } } }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags for a resource.

", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource that's tagged.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

The tags associated with the resource.

" + } + } + } + }, "com.amazonaws.route53recoverycontrolconfig#MaxResults": { "type": "integer", "traits": { @@ -1689,14 +1777,14 @@ "type": "structure", "members": { "AssertedControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed. For example, you might include three routing controls, one for each of three Amazon Web Services Regions.

", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the control panel.

", "smithy.api#required": {} @@ -1712,7 +1800,7 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

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

The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction. For example, if you have three assertion controls, you might specify ATLEAST 2for your rule configuration. This means that at least two assertion controls must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

", "smithy.api#required": {} } }, @@ -1732,14 +1820,14 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#required": {} } }, "GatingControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

", "smithy.api#required": {} @@ -1755,12 +1843,12 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

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

The criteria that you set for specific gating controls (routing controls) that designates how many control states must be ON to allow you to change (set or unset) the target control states.

", "smithy.api#required": {} } }, "TargetControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three Amazon Web Services Regions. Now you specify AtLeast 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.

In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.

", "smithy.api#required": {} @@ -1790,13 +1878,28 @@ } }, "traits": { - "smithy.api#documentation": "

404 response - The query string contains a syntax error or resource not found.

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

404 response - MalformedQueryString. The query string contains a syntax error or resource not found..

", "smithy.api#error": "client", "smithy.api#httpError": 404 } }, "com.amazonaws.route53recoverycontrolconfig#Route53RecoveryControlConfig": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route53 Recovery Control Config", + "arnNamespace": "route53-recovery-control-config", + "cloudFormationName": "Route53RecoveryControlConfig", + "cloudTrailEventSource": "route53recoverycontrolconfig.amazonaws.com", + "endpointPrefix": "route53-recovery-control-config" + }, + "aws.auth#sigv4": { + "name": "route53-recovery-control-config" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller

", + "smithy.api#title": "AWS Route53 Recovery Control Config" + }, "version": "2020-11-02", "operations": [ { @@ -1850,6 +1953,15 @@ { "target": "com.amazonaws.route53recoverycontrolconfig#ListSafetyRules" }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResource" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResource" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResource" + }, { "target": "com.amazonaws.route53recoverycontrolconfig#UpdateControlPanel" }, @@ -1859,28 +1971,13 @@ { "target": "com.amazonaws.route53recoverycontrolconfig#UpdateSafetyRule" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route53 Recovery Control Config", - "arnNamespace": "route53-recovery-control-config", - "cloudFormationName": "Route53RecoveryControlConfig", - "cloudTrailEventSource": "route53recoverycontrolconfig.amazonaws.com", - "endpointPrefix": "route53-recovery-control-config" - }, - "aws.auth#sigv4": { - "name": "route53-recovery-control-config" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller

", - "smithy.api#title": "AWS Route53 Recovery Control Config" - } + ] }, "com.amazonaws.route53recoverycontrolconfig#RoutingControl": { "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel that includes the routing control.

" } @@ -1892,7 +1989,7 @@ } }, "RoutingControlArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the routing control.

" } @@ -1914,13 +2011,13 @@ "ASSERTION": { "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", "traits": { - "smithy.api#documentation": "

An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

" + "smithy.api#documentation": "

An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control state is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

" } }, "GATING": { "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", "traits": { - "smithy.api#documentation": "

A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

" + "smithy.api#documentation": "

A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

" } } }, @@ -1954,7 +2051,7 @@ } }, "traits": { - "smithy.api#documentation": "

The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many controls must be enabled after a transaction completes.

" + "smithy.api#documentation": "

The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many control states must be ON after a transaction completes.

" } }, "com.amazonaws.route53recoverycontrolconfig#RuleType": { @@ -1989,7 +2086,7 @@ } }, "traits": { - "smithy.api#documentation": "

402 response

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

402 response - You attempted to create more resources than the service allows based on service quotas.

", "smithy.api#error": "client", "smithy.api#httpError": 402 } @@ -2014,6 +2111,61 @@ ] } }, + "com.amazonaws.route53recoverycontrolconfig#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds a tag to a resource.

", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource that's tagged.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

The tags associated with the resource.

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

Request of adding tag to the resource

" + } + }, + "com.amazonaws.route53recoverycontrolconfig#TagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.route53recoverycontrolconfig#ThrottlingException": { "type": "structure", "members": { @@ -2026,11 +2178,64 @@ } }, "traits": { - "smithy.api#documentation": "

429 response - ThrottlingException.

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

429 response - LimitExceededException or TooManyRequestsException.

", "smithy.api#error": "client", "smithy.api#httpError": 429 } }, + "com.amazonaws.route53recoverycontrolconfig#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes a tag from a resource.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the resource that's tagged.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "traits": { + "smithy.api#documentation": "

Keys for the tags to be removed.

", + "smithy.api#httpQuery": "TagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#UntagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.route53recoverycontrolconfig#UpdateControlPanel": { "type": "operation", "input": { @@ -2072,7 +2277,7 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the control panel.

", "smithy.api#required": {} @@ -2142,7 +2347,7 @@ "type": "structure", "members": { "RoutingControlArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the routing control.

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

Update a safety rule (an assertion rule or gating rule) for the routing controls in a control panel. You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new safety rule.

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

Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new one.

", "smithy.api#http": { "method": "PUT", "uri": "/safetyrule", @@ -2203,21 +2408,36 @@ "type": "structure", "members": { "AssertionRuleUpdate": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate", + "traits": { + "smithy.api#documentation": "

The assertion rule to update.

" + } }, "GatingRuleUpdate": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate", + "traits": { + "smithy.api#documentation": "

The gating rule to update.

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

A rule that you add to Application Recovery Controller to ensure that recovery actions don't accidentally impair your application's availability.

" } }, "com.amazonaws.route53recoverycontrolconfig#UpdateSafetyRuleResponse": { "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

The assertion rule updated.

" + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

The gating rule updated.

" + } } } }, @@ -2233,7 +2453,7 @@ } }, "traits": { - "smithy.api#documentation": "

400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you used parameters together incorrectly.

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

400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you might have used parameters together incorrectly.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2280,43 +2500,78 @@ "target": "com.amazonaws.route53recoverycontrolconfig#__string" } }, + "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMax36PatternS": { + "type": "list", + "member": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax36PatternS" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09": { + "type": "list", + "member": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS": { + "type": "map", + "key": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string" + }, + "value": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin0Max256PatternS" + } + }, "com.amazonaws.route53recoverycontrolconfig#__string": { "type": "string" }, - "com.amazonaws.route53recoverycontrolconfig#__stringMax64": { + "com.amazonaws.route53recoverycontrolconfig#__stringMax36PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 0, - "max": 64 - } + "max": 36 + }, + "smithy.api#pattern": "^\\S+$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMax8096": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin0Max256PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 0, - "max": 8096 - } + "max": 256 + }, + "smithy.api#pattern": "^\\S+$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128PatternAZaZ09": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 128 - } + }, + "smithy.api#pattern": "^[A-Za-z0-9:.\\/_-]*$" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[A-Za-z0-9:\\/_-]*$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 32 - } + }, + "smithy.api#pattern": "^\\S+$" } }, "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS": { @@ -2328,6 +2583,16 @@ }, "smithy.api#pattern": "^\\S+$" } + }, + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8096 + }, + "smithy.api#pattern": "^[\\S]*$" + } } } } 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 97ebbc27379..e3913c43a6b 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json @@ -1899,6 +1899,12 @@ "smithy.api#documentation": "

The name of the target variable in supervised learning, usually represented by\n 'y'.

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

The content type of the data from the input source. You can use\n text/csv;header=present or x-application/vnd.amazon+parquet.\n The default value is text/csv;header=present.

" + } } }, "traits": { @@ -7982,7 +7988,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 30 + "max": 200 } } }, @@ -20430,6 +20436,9 @@ } } }, + "com.amazonaws.sagemaker#IntegerValue": { + "type": "integer" + }, "com.amazonaws.sagemaker#InvocationsMaxRetries": { "type": "integer", "traits": { @@ -30749,6 +30758,9 @@ "smithy.api#documentation": "

If this pipeline execution step was cached, details on the cache hit.

" } }, + "AttemptCount": { + "target": "com.amazonaws.sagemaker#IntegerValue" + }, "FailureReason": { "target": "com.amazonaws.sagemaker#FailureReason", "traits": { @@ -37311,6 +37323,10 @@ "value": "sitara_am57x", "name": "SITARA_AM57X" }, + { + "value": "amba_cv2", + "name": "AMBA_CV2" + }, { "value": "amba_cv22", "name": "AMBA_CV22" diff --git a/codegen/sdk-codegen/aws-models/savingsplans.2019-06-28.json b/codegen/sdk-codegen/aws-models/savingsplans.2019-06-28.json index 616add24fd5..3ffaef2ae5b 100644 --- a/codegen/sdk-codegen/aws-models/savingsplans.2019-06-28.json +++ b/codegen/sdk-codegen/aws-models/savingsplans.2019-06-28.json @@ -31,6 +31,21 @@ "shapes": { "com.amazonaws.savingsplans#AWSSavingsPlan": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "savingsplans", + "arnNamespace": "savingsplans", + "cloudFormationName": "Savingsplans", + "cloudTrailEventSource": "savingsplans.amazonaws.com", + "endpointPrefix": "savingsplans" + }, + "aws.auth#sigv4": { + "name": "savingsplans" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Savings Plans are a pricing model that offer significant savings on AWS usage (for\n example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD\n per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For\n more information, see the AWS Savings Plans User Guide.

", + "smithy.api#title": "AWS Savings Plans" + }, "version": "2019-06-28", "operations": [ { @@ -60,22 +75,7 @@ { "target": "com.amazonaws.savingsplans#UntagResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "savingsplans", - "arnNamespace": "savingsplans", - "cloudFormationName": "Savingsplans", - "cloudTrailEventSource": "savingsplans.amazonaws.com", - "endpointPrefix": "savingsplans" - }, - "aws.auth#sigv4": { - "name": "savingsplans" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Savings Plans are a pricing model that offer significant savings on AWS usage (for\n example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD\n per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For\n more information, see the AWS Savings Plans User Guide.

", - "smithy.api#title": "AWS Savings Plans" - } + ] }, "com.amazonaws.savingsplans#Amount": { "type": "string" @@ -127,7 +127,7 @@ "commitment": { "target": "com.amazonaws.savingsplans#Amount", "traits": { - "smithy.api#documentation": "

The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more\n than three digits after the decimal point.

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

The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more\n than five digits after the decimal point.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json b/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json index 0172190a2c8..db6095628ea 100644 --- a/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json +++ b/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json @@ -75,7 +75,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables automatic scheduled rotation and cancels the rotation of a secret if currently in\n progress.

\n

To re-enable scheduled rotation, call RotateSecret with\n AutomaticallyRotateAfterDays set to a value greater than 0. This immediately\n rotates your secret and then enables the automatic schedule.

\n \n

If you cancel a rotation while in progress, it can leave the VersionStage\n labels in an unexpected state. Depending on the step of the rotation in progress, you might\n need to remove the staging label AWSPENDING from the partially created version, specified\n by the VersionId response value. You should also evaluate the partially rotated\n new version to see if it should be deleted, which you can do by removing all staging labels\n from the new version VersionStage field.

\n
\n

To successfully start a rotation, the staging label AWSPENDING must be in one of the\n following states:

\n \n

If the staging label AWSPENDING attached to a different version than the version with\n AWSCURRENT then the attempt to rotate fails.

\n\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Turns off automatic rotation, and if a rotation is currently in\n progress, cancels the rotation.

\n

To turn on automatic rotation again, call RotateSecret.

\n \n

If you cancel a rotation in progress, it can leave the VersionStage\n labels in an unexpected state. Depending on the step of the rotation in progress, you might\n need to remove the staging label AWSPENDING from the partially created version, specified\n by the VersionId response value. We recommend you also evaluate the partially rotated\n new version to see if it should be deleted. You can delete a version by removing all staging labels\n from it.

\n
" } }, "com.amazonaws.secretsmanager#CancelRotateSecretRequest": { @@ -84,7 +84,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to cancel a rotation request. You can specify either the Amazon\n Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -96,19 +96,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The ARN of the secret for which rotation was canceled.

" + "smithy.api#documentation": "

The ARN of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret for which rotation was canceled.

" + "smithy.api#documentation": "

The name of the secret.

" } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

The unique identifier of the version of the secret created during the rotation. This\n version might not be complete, and should be evaluated for possible deletion. At the very\n least, you should remove the VersionStage value AWSPENDING to enable this\n version to be deleted. Failing to clean up a cancelled rotation can block you from\n successfully starting future rotations.

" + "smithy.api#documentation": "

The unique identifier of the version of the secret created during the rotation. This\n version might not be complete, and should be evaluated for possible deletion. We recommend \n that you remove the VersionStage value AWSPENDING from this version so that \n Secrets Manager can delete it. Failing to clean up a cancelled rotation can block you from\n starting future rotations.

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

Creates a new secret. A secret in Secrets Manager consists of both the protected secret data and the\n important information needed to manage the secret.

\n

Secrets Manager stores the encrypted secret data in one of a collection of \"versions\"\n associated with the secret. Each version contains a copy of the encrypted secret data. Each\n version is associated with one or more \"staging labels\" that identify where the version is in\n the rotation cycle. The SecretVersionsToStages field of the secret contains the\n mapping of staging labels to the active versions of the secret. Versions without a staging\n label are considered deprecated and not included in the list.

\n

You provide the secret data to be encrypted by putting text in either the\n SecretString parameter or binary data in the SecretBinary\n parameter, but not both. If you include SecretString or SecretBinary\n then Secrets Manager also creates an initial secret version and automatically attaches the staging\n label AWSCURRENT to the new version.

\n \n \n \n

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Creates a new secret. A secret is a set of credentials, such as a \n user name and password, that you store in an encrypted form in Secrets Manager. The secret also \n includes the connection information to access a database or other service, which Secrets Manager \n doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the\n important information needed to manage the secret.

\n

For information about creating a secret in the console, see Create a secret.

\n

To create a secret, you can provide the secret value to be encrypted in either the\n SecretString parameter or the SecretBinary parameter, but not both. \n If you include SecretString or SecretBinary\n then Secrets Manager creates an initial secret version and automatically attaches the staging\n label AWSCURRENT to it.

\n

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key \n aws/secretsmanager. If this key \n doesn't already exist in your account, then Secrets Manager creates it for you automatically. All\n users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. \n Creating aws/secretsmanager can result in a one-time significant delay in returning the \n result.

\n

If the secret is in a different Amazon Web Services account from the credentials calling the API, then \n you can't use aws/secretsmanager to encrypt the secret, and you must create \n and use a customer managed KMS key.

" } }, "com.amazonaws.secretsmanager#CreateSecretRequest": { @@ -169,57 +169,57 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

Specifies the friendly name of the new secret.

\n

The secret name must be ASCII letters, digits, or the following characters :\n /_+=.@-

\n \n

Do not end your secret name with a hyphen followed by six characters. If you do so, you\n risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager\n automatically adds a hyphen and six random characters at the end of the ARN.

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

The name of the new secret.

\n

The secret name can contain ASCII letters, numbers, and the following characters:\n /_+=.@-

\n \n

Do not end your secret name with a hyphen followed by six characters. If you do so, you\n risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager\n automatically adds a hyphen and six random characters after the secret name at the end of the ARN.

", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

(Optional) If you include SecretString or SecretBinary, then an\n initial version is created as part of the secret, and this parameter specifies a unique\n identifier for the new version.

\n \n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

\n
\n

This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during a rotation. We\n recommend that you generate a UUID-type value to\n ensure uniqueness of your versions within the specified secret.

\n \n

This value becomes the VersionId of the new version.

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

If you include SecretString or SecretBinary, then \n Secrets Manager creates an initial version for the secret, and this parameter specifies the unique\n identifier for the new version.

\n \n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

\n
\n

This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during a rotation. We\n recommend that you generate a UUID-type value to\n ensure uniqueness of your versions within the specified secret.

\n \n

This value becomes the VersionId of the new version.

", "smithy.api#idempotencyToken": {} } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies a user-provided description of the secret.

" + "smithy.api#documentation": "

The description of the secret.

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

(Optional) Specifies the ARN, Key ID, or alias of the Amazon Web Services KMS customer master key (CMK) to\n be used to encrypt the SecretString or SecretBinary values in the\n versions stored in this secret.

\n

You can specify any of the supported ways to identify a Amazon Web Services KMS key ID. If you need to\n reference a CMK in a different account, you can use only the key ARN or the alias ARN.

\n

If you don't specify this value, then Secrets Manager defaults to using the Amazon Web Services account's\n default CMK (the one named aws/secretsmanager). If a Amazon Web Services KMS CMK with that name doesn't yet\n exist, then Secrets Manager creates it for you automatically the first time it needs to encrypt a\n version's SecretString or SecretBinary fields.

\n \n

You can use the account default CMK to encrypt and decrypt only if you call this\n operation using credentials from the same account that owns the secret. If the secret\n resides in a different account, then you must create a custom CMK and specify the ARN in\n this field.

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

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to\n encrypt the secret value in the secret.

\n

To use a KMS key in a different account, use the key ARN or the alias ARN.

\n

If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. \n If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it \n encrypts the secret value.

\n

If the secret is in a different Amazon Web Services account from the credentials calling the API, then \n you can't use aws/secretsmanager to encrypt the secret, and you must create \n and use a customer managed KMS key.

" } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies binary data that you want to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then use the appropriate technique for your tool to pass the\n contents of the file as a parameter.

\n

Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

\n

This parameter is not available using the Secrets Manager console. It can be accessed only by\n using the Amazon Web Services CLI or one of the Amazon Web Services SDKs.

" + "smithy.api#documentation": "

The binary data to encrypt and store in the new version of\n the secret. We recommend that you store your binary data in a file and then pass the\n contents of the file as a parameter.

\n

Either SecretString or SecretBinary must have a value, but not\n both.

\n

This parameter is not available in the Secrets Manager console.

" } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret.

\n

Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

\n

If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that the Lambda rotation function knows how\n to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" + "smithy.api#documentation": "

The text data to encrypt and store in this new version of\n the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

\n

Either SecretString or SecretBinary must have a value, but not\n both.

\n

If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that a Lambda rotation function can parse.

" } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies a list of user-defined tags that are attached to the secret. Each tag\n is a \"Key\" and \"Value\" pair of strings. This operation only appends tags to the existing list\n of tags. To remove tags, you must use UntagResource.

\n \n \n \n

This parameter requires a JSON text string argument. For information on how to format a\n JSON parameter for the various command line tool environments, see Using JSON for\n Parameters in the CLI User Guide. For example:

\n

\n [{\"Key\":\"CostCenter\",\"Value\":\"12345\"},{\"Key\":\"environment\",\"Value\":\"production\"}]\n

\n

If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

\n

The following basic restrictions apply to tags:

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

A list of tags to attach to the secret. Each tag\n is a key and value pair of strings in a JSON text string, for example:

\n

\n [{\"Key\":\"CostCenter\",\"Value\":\"12345\"},{\"Key\":\"environment\",\"Value\":\"production\"}]\n

\n

Secrets Manager tag key names are case sensitive. A tag with the key \"ABC\" is a different tag\n from one with key \"abc\".

\n

If you check tags in permissions policies as part of your\n security strategy, then adding or removing a tag can change permissions. If the\n completion of this operation would result in you losing your permissions for\n this secret, then Secrets Manager blocks the operation and returns an Access Denied\n error. For more information, see Control \n access to secrets using tags and Limit access to identities with tags that match secrets' tags.

\n

For information about how to format a\n JSON parameter for the various command line tool environments, see Using JSON for\n Parameters. If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

\n

The following restrictions apply to tags:

\n " } }, "AddReplicaRegions": { "target": "com.amazonaws.secretsmanager#AddReplicaRegionListType", "traits": { - "smithy.api#documentation": "

(Optional) Add a list of regions to replicate secrets. Secrets Manager replicates the KMSKeyID objects to the list of regions specified in\n the parameter.

" + "smithy.api#documentation": "

A list of Regions and KMS keys to replicate secrets.

" } }, "ForceOverwriteReplicaSecret": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

(Optional) If set, the replication overwrites a secret with the same name in the\n destination region.

" + "smithy.api#documentation": "

Specifies whether to overwrite a secret with the same name in the\n destination Region.

" } } } @@ -230,25 +230,25 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret that you just created.

\n \n

Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

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

The ARN of the new secret. The ARN includes the name of the secret followed by six random \n characters. This ensures that if you create a new secret with the same name as a deleted secret, \n then users with access to the old secret don't get access to the new secret because the ARNs \n are different.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret that you just created.

" + "smithy.api#documentation": "

The name of the new secret.

" } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

The unique identifier associated with the version of the secret you just created.

" + "smithy.api#documentation": "

The unique identifier associated with the version of the new secret.

" } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

Describes a list of replication status objects as InProgress, Failed or InSync.

" + "smithy.api#documentation": "

A list of the replicas of this secret and their status:

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

Deletes the resource-based permission policy attached to the secret.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Deletes the resource-based permission policy attached to the secret. To attach a policy to \n a secret, use PutResourcePolicy.

" } }, "com.amazonaws.secretsmanager#DeleteResourcePolicyRequest": { @@ -300,7 +300,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to delete the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to delete the attached resource-based policy for.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -318,7 +318,7 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret that the resource-based policy was deleted for.

" + "smithy.api#documentation": "

The name of the secret that the resource-based policy was deleted for.

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

Deletes an entire secret and all of the versions. You can optionally include a recovery\n window during which you can restore the secret. If you don't specify a recovery window value,\n the operation defaults to 30 days. Secrets Manager attaches a DeletionDate stamp to\n the secret that specifies the end of the recovery window. At the end of the recovery window,\n Secrets Manager deletes the secret permanently.

\n

At any time before recovery window ends, you can use RestoreSecret to\n remove the DeletionDate and cancel the deletion of the secret.

\n

You cannot access the encrypted secret information in any secret scheduled for deletion.\n If you need to access that information, you must cancel the deletion with RestoreSecret and then retrieve the information.

\n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Deletes a secret and all of its versions. You can specify a recovery\n window during which you can restore the secret. The minimum recovery window is 7 days. \n The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to\n the secret that specifies the end of the recovery window. At the end of the recovery window,\n Secrets Manager deletes the secret permanently.

\n

For information about deleting a secret in the console, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html.

\n

Secrets Manager performs the permanent secret deletion at the end of the waiting period as a\n background task with low priority. There is no guarantee of a specific time after the\n recovery window for the permanent delete to occur.

\n

At any time before recovery window ends, you can use RestoreSecret to\n remove the DeletionDate and cancel the deletion of the secret.

\n

In a secret scheduled for deletion, you cannot access the encrypted secret value.\n To access that information, first cancel the deletion with RestoreSecret and then retrieve the information.

" } }, "com.amazonaws.secretsmanager#DeleteSecretRequest": { @@ -355,7 +355,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or\n the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to delete.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -363,14 +363,14 @@ "target": "com.amazonaws.secretsmanager#RecoveryWindowInDaysType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) Specifies the number of days that Secrets Manager waits before Secrets Manager can delete the\n secret. You can't use both this parameter and the ForceDeleteWithoutRecovery\n parameter in the same API call.

\n

This value can range from 7 to 30 days with a default value of 30.

" + "smithy.api#documentation": "

The number of days from 7 to 30 that Secrets Manager waits before permanently deleting the\n secret. You can't use both this parameter and ForceDeleteWithoutRecovery\n in the same call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

" } }, "ForceDeleteWithoutRecovery": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) Specifies that the secret is to be deleted without any recovery window. You\n can't use both this parameter and the RecoveryWindowInDays parameter in the same\n API call.

\n

An asynchronous background process performs the actual deletion, so there can be a short\n delay before the operation completes. If you write code to delete and then immediately\n recreate a secret with the same name, ensure that your code includes appropriate back off and\n retry logic.

\n \n

Use this parameter with caution. This parameter causes the operation to skip the normal\n waiting period before the permanent deletion that Amazon Web Services would normally impose with the\n RecoveryWindowInDays parameter. If you delete a secret with the\n ForceDeleteWithouRecovery parameter, then you have no opportunity to recover\n the secret. You lose the secret permanently.

\n
\n \n

If you use this parameter and include a previously deleted or nonexistent secret, the\n operation does not return the error ResourceNotFoundException in order to\n correctly handle retries.

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

Specifies whether to delete the secret without any recovery window. You\n can't use both this parameter and RecoveryWindowInDays in the same\n call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

\n

Secrets Manager performs the actual deletion with an asynchronous background process, so there might \n be a short delay before the secret is permanently deleted. If you delete a secret and then \n immediately create a secret with the same name, use appropriate back off and retry logic.

\n \n

Use this parameter with caution. This parameter causes the operation to skip the normal\n recovery window before the permanent deletion that Secrets Manager would normally impose with the\n RecoveryWindowInDays parameter. If you delete a secret with the\n ForceDeleteWithouRecovery parameter, then you have no opportunity to recover\n the secret. You lose the secret permanently.

\n
" } } } @@ -381,19 +381,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The ARN of the secret that is now scheduled for deletion.

" + "smithy.api#documentation": "

The ARN of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret currently scheduled for deletion.

" + "smithy.api#documentation": "

The name of the secret.

" } }, "DeletionDate": { "target": "com.amazonaws.secretsmanager#DeletionDateType", "traits": { - "smithy.api#documentation": "

The date and time after which this secret can be deleted by Secrets Manager and can no longer be\n restored. This value is the date and time of the delete request plus the number of days\n specified in RecoveryWindowInDays.

" + "smithy.api#documentation": "

The date and time after which this secret Secrets Manager can permanently delete this secret, \n and it can no longer be restored. This value is the date and time of the delete request \n plus the number of days in RecoveryWindowInDays.

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

Retrieves the details of a secret. It does not include the encrypted fields. Secrets\n Manager only returns fields populated with a value in the response.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager\n only returns fields that have a value in the response.

" } }, "com.amazonaws.secretsmanager#DescribeSecretRequest": { @@ -433,7 +433,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier of the secret whose details you want to retrieve. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -451,44 +451,44 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The user-provided friendly name of the secret.

" + "smithy.api#documentation": "

The name of the secret.

" } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

The user-provided description of the secret.

" + "smithy.api#documentation": "

The description of the secret.

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

The ARN or alias of the Amazon Web Services KMS customer master key (CMK) that's used to encrypt the\n SecretString or SecretBinary fields in each version of the secret.\n If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with the\n default Amazon Web Services KMS CMK (the one named awssecretsmanager) for this account.

" + "smithy.api#documentation": "

The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with \n the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

" } }, "RotationEnabled": { "target": "com.amazonaws.secretsmanager#RotationEnabledType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies whether automatic rotation is enabled for this secret.

\n

To enable rotation, use RotateSecret with\n AutomaticallyRotateAfterDays set to a value greater than 0. To disable\n rotation, use CancelRotateSecret.

" + "smithy.api#documentation": "

Specifies whether automatic rotation is turned on for this secret.

\n

To turn on rotation, use RotateSecret. To turn off\n rotation, use CancelRotateSecret.

" } }, "RotationLambdaARN": { "target": "com.amazonaws.secretsmanager#RotationLambdaARNType", "traits": { - "smithy.api#documentation": "

The ARN of a Lambda function that's invoked by Secrets Manager to rotate the\n secret either automatically per the schedule or manually by a call to\n RotateSecret.

" + "smithy.api#documentation": "

The ARN of the Lambda function that Secrets Manager invokes to rotate the\n secret.

" } }, "RotationRules": { "target": "com.amazonaws.secretsmanager#RotationRulesType", "traits": { - "smithy.api#documentation": "

A structure with the rotation configuration for this secret. This field is only populated \n if rotation is configured.

" + "smithy.api#documentation": "

The rotation schedule and Lambda function for this secret. If the secret previously had rotation turned on, but \n it is now turned off, this field shows the previous rotation schedule and rotation function. If the secret never had \n rotation turned on, this field is omitted.

" } }, "LastRotatedDate": { "target": "com.amazonaws.secretsmanager#LastRotatedDateType", "traits": { - "smithy.api#documentation": "

The last date and time that the rotation process for this secret was invoked.

\n

The most recent date and time that the Secrets Manager rotation process successfully\n completed. If the secret doesn't rotate, Secrets Manager returns a null value.

" + "smithy.api#documentation": "

The last date and time that Secrets Manager rotated the secret. \n If the secret isn't configured for rotation, Secrets Manager returns null.

" } }, "LastChangedDate": { @@ -500,49 +500,49 @@ "LastAccessedDate": { "target": "com.amazonaws.secretsmanager#LastAccessedDateType", "traits": { - "smithy.api#documentation": "

The last date that this secret was accessed. This value is truncated to midnight of the\n date and therefore shows only the date, not the time.

" + "smithy.api#documentation": "

The last date that the secret value was retrieved. This value does not include the time. This field is omitted if the secret has never been retrieved.

" } }, "DeletedDate": { "target": "com.amazonaws.secretsmanager#DeletedDateType", "traits": { - "smithy.api#documentation": "

This value exists if the secret is scheduled for deletion. Some time after the specified\n date and time, Secrets Manager deletes the secret and all of its versions.

\n

If a secret is scheduled for deletion, then its details, including the encrypted secret\n information, is not accessible. To cancel a scheduled deletion and restore access, use RestoreSecret.

" + "smithy.api#documentation": "

The date the secret is scheduled for deletion. If it is not scheduled for deletion, this \n field is omitted. When you delete a secret, Secrets Manager requires a \n recovery window of at least 7 days before deleting the secret. Some time after the deleted date, \n Secrets Manager deletes the secret, including all of its versions.

\n

If a secret is scheduled for deletion, then its details, including the encrypted secret\n value, is not accessible. To cancel a scheduled deletion and restore access to the secret, use RestoreSecret.

" } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

The list of user-defined tags that are associated with the secret. To add tags to a\n secret, use TagResource. To remove tags, use UntagResource.

" + "smithy.api#documentation": "

The list of tags attached to the secret. To add tags to a\n secret, use TagResource. To remove tags, use UntagResource.

" } }, "VersionIdsToStages": { "target": "com.amazonaws.secretsmanager#SecretVersionsToStagesMapType", "traits": { - "smithy.api#documentation": "

A list of all of the currently assigned VersionStage staging labels and the\n VersionId that each is attached to. Staging labels are used to keep track of\n the different versions during the rotation process.

\n \n

A version that does not have any staging labels attached is considered deprecated and\n subject to deletion. Such versions are not included in this list.

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

A list of the versions of the secret that have staging labels attached.\n Versions that don't have staging labels are considered deprecated and Secrets Manager \n can delete them.

\n

Secrets Manager uses staging labels to indicate the status of a secret version during rotation. The three \n staging labels for rotation are:

\n \n

For more information about rotation and staging labels, see How rotation works.

" } }, "OwningService": { "target": "com.amazonaws.secretsmanager#OwningServiceType", "traits": { - "smithy.api#documentation": "

Returns the name of the service that created this secret.

" + "smithy.api#documentation": "

The name of the service that created this secret.

" } }, "CreatedDate": { "target": "com.amazonaws.secretsmanager#TimestampType", "traits": { - "smithy.api#documentation": "

The date you created the secret.

" + "smithy.api#documentation": "

The date the secret was created.

" } }, "PrimaryRegion": { "target": "com.amazonaws.secretsmanager#RegionType", "traits": { - "smithy.api#documentation": "

Specifies the primary region for secret replication.

" + "smithy.api#documentation": "

The Region the secret is in. If a secret is replicated to other Regions, the replicas are listed in ReplicationStatus.

" } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

Describes a list of replication status objects as InProgress, Failed or InSync.P\n

" + "smithy.api#documentation": "

A list of the replicas of this secret and their status:

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

Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the\n customer master key (CMK) is available, enabled, and not in an invalid state. For more\n information, see How Key State Affects Use of a\n Customer Master Key.

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

Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the\n KMS key is available, enabled, and not in an invalid state. For more\n information, see Key state: Effect on your KMS key.

", "smithy.api#error": "client" } }, @@ -598,18 +598,18 @@ "Key": { "target": "com.amazonaws.secretsmanager#FilterNameStringType", "traits": { - "smithy.api#documentation": "

Filters your list of secrets by a specific key.

" + "smithy.api#documentation": "

The following are keys you can use:

\n " } }, "Values": { "target": "com.amazonaws.secretsmanager#FilterValuesStringList", "traits": { - "smithy.api#documentation": "

Filters your list of secrets by a specific value.

\n

You can prefix your search value with an exclamation mark (!) in order to perform negation filters.

" + "smithy.api#documentation": "

The keyword to filter for.

\n

You can prefix your search value with an exclamation mark (!) in order to perform negation filters.

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

Allows you to add filters when you use the search function in Secrets Manager.

" + "smithy.api#documentation": "

Allows you to add filters when you use the search function in Secrets Manager. For more information, see Find secrets in Secrets Manager.

" } }, "com.amazonaws.secretsmanager#FilterNameStringType": { @@ -697,7 +697,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a random password of the specified complexity. This operation is intended for\n use in the Lambda rotation function. Per best practice, we recommend that you specify the\n maximum length and include every character type that the system you are generating a password\n for can support.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

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

Generates a random password. We recommend that you specify the\n maximum length and include every character type that the system you are generating a password\n for can support.

" } }, "com.amazonaws.secretsmanager#GetRandomPasswordRequest": { @@ -707,55 +707,55 @@ "target": "com.amazonaws.secretsmanager#PasswordLengthType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

The desired length of the generated password. The default value if you do not include this\n parameter is 32 characters.

" + "smithy.api#documentation": "

The length of the password. If you don't include this parameter, the \n default length is 32 characters.

" } }, "ExcludeCharacters": { "target": "com.amazonaws.secretsmanager#ExcludeCharactersType", "traits": { - "smithy.api#documentation": "

A string that includes characters that should not be included in the generated password.\n The default is that all characters from the included sets can be used.

" + "smithy.api#documentation": "

A string of the characters that you don't want in the password.

" } }, "ExcludeNumbers": { "target": "com.amazonaws.secretsmanager#ExcludeNumbersType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies that the generated password should not include digits. The default if you do not\n include this switch parameter is that digits can be included.

" + "smithy.api#documentation": "

Specifies whether to exclude numbers from the password. If you don't \n include this switch, the password can contain numbers.

" } }, "ExcludePunctuation": { "target": "com.amazonaws.secretsmanager#ExcludePunctuationType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies that the generated password should not include punctuation characters. The\n default if you do not include this switch parameter is that punctuation characters can be\n included.

\n

The following are the punctuation characters that can be included in\n the generated password if you don't explicitly exclude them with\n ExcludeCharacters or ExcludePunctuation:

\n

\n ! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | }\n ~\n

" + "smithy.api#documentation": "

Specifies whether to exclude the following punctuation characters from the password: \n ! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~. \n If you don't include this switch, the password can contain punctuation.

" } }, "ExcludeUppercase": { "target": "com.amazonaws.secretsmanager#ExcludeUppercaseType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies that the generated password should not include uppercase letters. The default if\n you do not include this switch parameter is that uppercase letters can be included.

" + "smithy.api#documentation": "

Specifies whether to exclude uppercase letters from the password. If you \n don't include this switch, the password can contain uppercase letters.

" } }, "ExcludeLowercase": { "target": "com.amazonaws.secretsmanager#ExcludeLowercaseType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies that the generated password should not include lowercase letters. The default if\n you do not include this switch parameter is that lowercase letters can be included.

" + "smithy.api#documentation": "

Specifies whether to exclude lowercase letters from the password. If\n you don't include this switch, the password can contain lowercase letters.

" } }, "IncludeSpace": { "target": "com.amazonaws.secretsmanager#IncludeSpaceType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies that the generated password can include the space character. The default if you\n do not include this switch parameter is that the space character is not included.

" + "smithy.api#documentation": "

Specifies whether to include the space character. If you \n include this switch, the password can contain space characters.

" } }, "RequireEachIncludedType": { "target": "com.amazonaws.secretsmanager#RequireEachIncludedTypeType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

A boolean value that specifies whether the generated password must include at least one of\n every allowed character type. The default value is True and the operation\n requires at least one of every character type.

" + "smithy.api#documentation": "

Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation. \n If you don't include this switch, the password contains at least one of every character type.

" } } } @@ -766,7 +766,7 @@ "RandomPassword": { "target": "com.amazonaws.secretsmanager#RandomPasswordType", "traits": { - "smithy.api#documentation": "

A string with the generated password.

" + "smithy.api#documentation": "

A string with the password.

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

Retrieves the JSON text of the resource-based policy document attached to the specified\n secret. The JSON request string input and response output displays formatted code\n with white space and line breaks for better readability. Submit your input as a single line \n JSON string.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Retrieves the JSON text of the resource-based policy document attached to the\n secret. For more information about permissions policies attached to a secret, see \n Permissions \n policies attached to a secret.

" } }, "com.amazonaws.secretsmanager#GetResourcePolicyRequest": { @@ -803,7 +803,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to retrieve the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to retrieve the attached resource-based policy for.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -821,13 +821,13 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret that the resource-based policy was retrieved for.

" + "smithy.api#documentation": "

The name of the secret that the resource-based policy was retrieved for.

" } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

A JSON-formatted string that describes the permissions that are associated with the\n attached secret. These permissions are combined with any permissions that are associated with\n the user or role that attempts to access this secret. The combined permissions specify who can\n access the secret and what actions they can perform. For more information, see Authentication and Access Control for\n Amazon Web Services Secrets Manager in the Amazon Web Services Secrets Manager User Guide.

" + "smithy.api#documentation": "

A JSON-formatted string that contains the permissions policy \n attached to the secret. For more information about permissions policies, see Authentication and access control for\n Secrets Manager.

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

Retrieves the contents of the encrypted fields SecretString or\n SecretBinary from the specified version of a secret, whichever contains\n content.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Retrieves the contents of the encrypted fields SecretString or\n SecretBinary from the specified version of a secret, whichever contains\n content.

\n

For information about retrieving the secret value in the console, see Retrieve secrets.

\n

To run this command, you must have secretsmanager:GetSecretValue permissions. \n If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key \n aws/secretsmanager, then you also need kms:Decrypt permissions for that key.

" } }, "com.amazonaws.secretsmanager#GetSecretValueRequest": { @@ -867,20 +867,20 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret containing the version that you want to retrieve. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to retrieve.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

Specifies the unique identifier of the version of the secret that you want to retrieve. If\n you specify both this parameter and VersionStage, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId then the default is to perform the operation on the version with the\n VersionStage value of AWSCURRENT.

\n

This value is typically a UUID-type value with\n 32 hexadecimal digits.

" + "smithy.api#documentation": "

The unique identifier of the version of the secret to retrieve. If\n you include both this parameter and VersionStage, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId, then Secrets Manager returns the AWSCURRENT version.

\n

This value is typically a UUID-type value with\n 32 hexadecimal digits.

" } }, "VersionStage": { "target": "com.amazonaws.secretsmanager#SecretVersionStageType", "traits": { - "smithy.api#documentation": "

Specifies the secret version that you want to retrieve by the staging label attached to\n the version.

\n

Staging labels are used to keep track of different versions during the rotation process.\n If you specify both this parameter and VersionId, the two parameters must refer\n to the same secret version . If you don't specify either a VersionStage or\n VersionId, then the default is to perform the operation on the version with the\n VersionStage value of AWSCURRENT.

" + "smithy.api#documentation": "

The staging label of the version of the secret to retrieve.

\n

Secrets Manager uses staging labels to keep track of different versions during the rotation process.\n If you include both this parameter and VersionId, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId, Secrets Manager returns the AWSCURRENT version.

" } } } @@ -909,13 +909,13 @@ "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

The decrypted part of the protected secret information that was originally provided as\n binary data in the form of a byte array. The response parameter represents the binary data as\n a base64-encoded\n string.

\n

This parameter is not used if the secret is created by the Secrets Manager console.

\n

If you store custom information in this field of the secret, then you must code your\n Lambda rotation function to parse and interpret whatever you store in the\n SecretString or SecretBinary fields.

" + "smithy.api#documentation": "

The decrypted secret value, if the secret value was originally provided as\n binary data in the form of a byte array. The response parameter represents the binary data as\n a base64-encoded\n string.

\n

If the secret was created by using the Secrets Manager console, or if the secret value was \n originally provided as a string, then this field is omitted. The secret value appears in \n SecretString instead.

" } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

The decrypted part of the protected secret information that was originally provided as a\n string.

\n

If you create this secret by using the Secrets Manager console then only the\n SecretString parameter contains data. Secrets Manager stores the information as a\n JSON structure of key/value pairs that the Lambda rotation function knows how to parse.

\n

If you store custom information in the secret by using the CreateSecret,\n UpdateSecret, or PutSecretValue API operations instead\n of the Secrets Manager console, or by using the Other secret type in\n the console, then you must code your Lambda rotation function to parse and interpret those\n values.

" + "smithy.api#documentation": "

The decrypted secret value, if the secret value was originally provided as a string or \n through the Secrets Manager console.

\n

If this secret was created by using the console, then Secrets Manager stores the information as a\n JSON structure of key/value pairs.

" } }, "VersionStages": { @@ -927,7 +927,7 @@ "CreatedDate": { "target": "com.amazonaws.secretsmanager#CreatedDateType", "traits": { - "smithy.api#documentation": "

The date and time that this version of the secret was created.

" + "smithy.api#documentation": "

The date and time that this version of the secret was created. If you don't specify \n which version in VersionId or VersionStage, then Secrets Manager uses the \n AWSCURRENT version.

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

You provided an invalid NextToken value.

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

The NextToken value is invalid.

", "smithy.api#error": "client" } }, @@ -967,7 +967,7 @@ } }, "traits": { - "smithy.api#documentation": "

You provided an invalid value for a parameter.

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

The parameter name is invalid value.

", "smithy.api#error": "client" } }, @@ -979,7 +979,7 @@ } }, "traits": { - "smithy.api#documentation": "

You provided a parameter value that is not valid for the current state of the\n resource.

\n

Possible causes:

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

A parameter value is not valid for the current state of the\n resource.

\n

Possible causes:

\n ", "smithy.api#error": "client" } }, @@ -1015,7 +1015,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request failed because it would exceed one of the Secrets Manager internal limits.

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

The request failed because it would exceed one of the Secrets Manager quotas.

", "smithy.api#error": "client" } }, @@ -1042,7 +1042,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all of the versions attached to the specified secret. The output does not include\n the SecretString or SecretBinary fields. By default, the list\n includes only versions that have at least one staging label in VersionStage\n attached.

\n \n

Always check the NextToken response parameter \n when calling any of the List* operations. These operations can occasionally return \n an empty or shorter than expected list of results even when there more results become available. \n When this happens, the NextToken response parameter contains a value to pass to the \n next call to the same API to request the next part of the list.

\n
\n

\n Minimum\n permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Lists the versions for a secret.

\n

To list the secrets in the account, use ListSecrets.

\n

To get the secret value from SecretString or SecretBinary, \n call GetSecretValue.

\n \n

\n Minimum\n permissions\n

\n

To run this command, you must have secretsmanager:ListSecretVersionIds permissions.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1056,7 +1056,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret containing the versions you want to list. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret whose versions you want to list.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -1064,20 +1064,20 @@ "target": "com.amazonaws.secretsmanager#MaxResultsType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) Limits the number of results you want to include in \n the response. If you don't include this parameter, it defaults to a value that's \n specific to the operation. If additional items exist beyond the maximum you specify, the \n NextToken response element is present and has a value (isn't null). Include\n that value as the NextToken request parameter in the next call to the operation to \n get the next part of the results. Note that Secrets Manager might return fewer results than the maximum \n even when there are more results available. You should check NextToken after every \n operation to ensure that you receive all of the results.

" + "smithy.api#documentation": "

The number of results to include in the response.

\n

If there are more results available, in the response, Secrets Manager includes NextToken. \n To get the next results, call ListSecretVersionIds again with the value from NextToken.

" } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

(Optional) Use this parameter in a request if you receive a \n NextToken response in a previous request indicating there's more\n output available. In a subsequent call, set it to the value of the previous call \n NextToken response to indicate where the output should continue from.

" + "smithy.api#documentation": "

A token that indicates where the output should continue from, if a previous call \n did not show all results. To get the next results, call ListSecretVersionIds again with \n this value.

" } }, "IncludeDeprecated": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) Specifies that you want the results to include versions that do not have any\n staging labels attached to them. Such versions are considered deprecated and are subject to\n deletion by Secrets Manager as needed.

" + "smithy.api#documentation": "

Specifies whether to include versions of secrets that don't have any\n staging labels attached to them. Versions without staging labels are considered deprecated and are subject to\n deletion by Secrets Manager.

" } } } @@ -1088,25 +1088,25 @@ "Versions": { "target": "com.amazonaws.secretsmanager#SecretVersionsListType", "traits": { - "smithy.api#documentation": "

The list of the currently available versions of the specified secret.

" + "smithy.api#documentation": "

A list of the versions of the secret.

" } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

If present in the response, this value indicates that \n there's more output available than included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a very long list. Use this value in the NextToken request parameter in a \n subsequent call to the operation to continue processing and get the next part of the output. You \n should repeat this until the NextToken response element comes back empty (as \n null).

" + "smithy.api#documentation": "

Secrets Manager includes this value if there's more output available than what is included \n in the current response. This can occur even when the response includes no values at all, \n such as when you ask for a filtered view of a long list. To get the next results, \n call ListSecretVersionIds again with this value.

" } }, "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the secret.

\n \n

Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

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

The ARN of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret.

" + "smithy.api#documentation": "

The name of the secret.

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

Lists all of the secrets that are stored by Secrets Manager in the Amazon Web Services account. To list the\n versions currently stored for a specific secret, use ListSecretVersionIds.\n The encrypted fields SecretString and SecretBinary are not included\n in the output. To get that information, call the GetSecretValue\n operation.

\n \n

Always check the NextToken response parameter \n when calling any of the List* operations. These operations can occasionally return \n an empty or shorter than expected list of results even when there more results become available. \n When this happens, the NextToken response parameter contains a value to pass to the \n next call to the same API to request the next part of the list.

\n
\n

\n Minimum\n permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account.

\n

To list the versions of a secret, use ListSecretVersionIds.

\n

To get the secret value from SecretString or SecretBinary, \n call GetSecretValue.

\n

For information about finding secrets in the console, see Enhanced search capabilities \n for secrets in Secrets Manager.

\n

\n Minimum\n permissions\n

\n

To run this command, you must have secretsmanager:ListSecrets permissions.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1146,19 +1146,19 @@ "target": "com.amazonaws.secretsmanager#MaxResultsType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) Limits the number of results you want to include in \n the response. If you don't include this parameter, it defaults to a value that's \n specific to the operation. If additional items exist beyond the maximum you specify, the \n NextToken response element is present and has a value (isn't null). Include\n that value as the NextToken request parameter in the next call to the operation to \n get the next part of the results. Note that Secrets Manager might return fewer results than the maximum \n even when there are more results available. You should check NextToken after every \n operation to ensure that you receive all of the results.

" + "smithy.api#documentation": "

The number of results to include in the response.

\n

If there are more results available, in the response, Secrets Manager includes NextToken. \n To get the next results, call ListSecrets again with the value from \n NextToken.

" } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

(Optional) Use this parameter in a request if you receive a \n NextToken response in a previous request indicating there's more\n output available. In a subsequent call, set it to the value of the previous call \n NextToken response to indicate where the output should continue from.

" + "smithy.api#documentation": "

A token that indicates where the output should continue from, if a \n previous call did not show all results. To get the next results, call ListSecrets again \n with this value.

" } }, "Filters": { "target": "com.amazonaws.secretsmanager#FiltersListType", "traits": { - "smithy.api#documentation": "

Lists the secret request filters.

" + "smithy.api#documentation": "

The filters to apply to the list of secrets.

" } }, "SortOrder": { @@ -1181,7 +1181,7 @@ "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

If present in the response, this value indicates that \n there's more output available than included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a very long list. Use this value in the NextToken request parameter in a \n subsequent call to the operation to continue processing and get the next part of the output. You \n should repeat this until the NextToken response element comes back empty (as \n null).

" + "smithy.api#documentation": "

Secrets Manager includes this value if \n there's more output available than what is included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a long list. To get the next results, call ListSecrets again \n with this value.

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

You provided a resource-based policy with syntax errors.

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

The resource policy has syntax errors.

", "smithy.api#error": "client" } }, @@ -1272,7 +1272,7 @@ } }, "traits": { - "smithy.api#documentation": "

The BlockPublicPolicy parameter is set to true and the resource policy did not prevent broad access to the secret.

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

The BlockPublicPolicy parameter is set to true, and the resource policy did not prevent broad access to the secret.

", "smithy.api#error": "client" } }, @@ -1305,7 +1305,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches the contents of the specified resource-based permission policy to a secret. A\n resource-based policy is optional. Alternatively, you can use IAM identity-based policies\n that specify the secret's Amazon Resource Name (ARN) in the policy statement's\n Resources element. You can also use a combination of both identity-based and\n resource-based policies. The affected users and roles receive the permissions that are\n permitted by all of the relevant policies. For more information, see Using Resource-Based\n Policies for Amazon Web Services Secrets Manager. For the complete description of the Amazon Web Services policy syntax and\n grammar, see IAM JSON\n Policy Reference in the IAM User Guide.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Attaches a resource-based permission policy to a secret. A resource-based policy is \n optional. For more information, see Authentication and access control for Secrets Manager\n

\n

For information about attaching a policy in the console, see Attach a \n permissions policy to a secret.

" } }, "com.amazonaws.secretsmanager#PutResourcePolicyRequest": { @@ -1314,14 +1314,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to attach the resource-based policy. You can specify\n either the ARN or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to attach the resource-based policy.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For information on how to format a JSON parameter for the various\n command line tool environments, see Using\n JSON for Parameters in the CLI User Guide.

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

A JSON-formatted string for an Amazon Web Services\n resource-based policy. For example policies, see Permissions \n policy examples.

", "smithy.api#required": {} } }, @@ -1329,7 +1329,7 @@ "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

(Optional) If you set the parameter, BlockPublicPolicy to true, then you\n block resource-based policies that allow broad access to the secret.

" + "smithy.api#documentation": "

Specifies whether to block resource-based policies that allow broad access to the secret. By default, Secrets Manager blocks policies that allow broad access, for example those that use a wildcard for the principal.

" } } } @@ -1340,13 +1340,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The ARN of the secret retrieved by the resource-based policy.

" + "smithy.api#documentation": "

The ARN of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret retrieved by the resource-based policy.

" + "smithy.api#documentation": "

The name of the secret.

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

Stores a new encrypted secret value in the specified secret. To do this, the operation\n creates a new version and attaches it to the secret. The version can contain a new\n SecretString value or a new SecretBinary value. You can also\n specify the staging labels that are initially attached to the new version.

\n

We recommend you avoid calling PutSecretValue at a sustained rate of more than \n once every 10 minutes. When you update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you call PutSecretValue more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Creates a new version with a new encrypted secret value and attaches it to the secret. The \n version can contain a new SecretString value or a new SecretBinary value.

\n

We recommend you avoid calling PutSecretValue at a sustained rate of more than \n once every 10 minutes. When you update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you call PutSecretValue more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n

You can specify the staging labels to attach to the new version in VersionStages. \n If you don't include VersionStages, then Secrets Manager automatically\n moves the staging label AWSCURRENT to this version. If this operation creates \n the first version for the secret, then Secrets Manager\n automatically attaches the staging label AWSCURRENT to it .

\n

If this operation moves the staging label AWSCURRENT from another version to this\n version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to\n the version that AWSCURRENT was removed from.

\n

This operation is idempotent. If a version with a VersionId with the same\n value as the ClientRequestToken parameter already exists, and you specify the\n same secret data, the operation succeeds but does nothing. However, if the secret data is\n different, then the operation fails because you can't modify an existing version; you can\n only create new ones.

" } }, "com.amazonaws.secretsmanager#PutSecretValueRequest": { @@ -1392,33 +1392,33 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to which you want to add a new version. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already\n exist.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to add a new version to.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

\n

If the secret doesn't already exist, use CreateSecret instead.

", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies a unique identifier for the new version of the secret.

\n \n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request. If you don't use the SDK and instead generate a raw HTTP request to the\n Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself\n for new versions and include that value in the request.

\n
\n

This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during the Lambda rotation\n function's processing. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

\n \n

This value becomes the VersionId of the new version.

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

A unique identifier for the new version of the secret.

\n \n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty because they generate a random UUID for you. If you don't \n use the SDK and instead generate a raw HTTP request to the\n Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself\n for new versions and include that value in the request.

\n
\n

This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during the Lambda rotation\n function processing. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

\n \n

This value becomes the VersionId of the new version.

", "smithy.api#idempotencyToken": {} } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies binary data that you want to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then use the appropriate technique for your tool to pass the\n contents of the file as a parameter. Either SecretBinary or\n SecretString must have a value, but not both. They cannot both be empty.

\n \n

This parameter is not accessible if the secret using the Secrets Manager console.

\n

" + "smithy.api#documentation": "

The binary data to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then pass the\n contents of the file as a parameter.

\n

You must include SecretBinary or SecretString, but not both.

\n

You can't access this value from the Secrets Manager console.

" } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret. Either SecretString or SecretBinary must have a value,\n but not both. They cannot both be empty.

\n \n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" + "smithy.api#documentation": "

The text to encrypt and store in the new version of the secret.

\n

You must include SecretBinary or SecretString, but not both.

\n

We recommend you create the secret string as JSON key/value pairs, as shown in the example.

" } }, "VersionStages": { "target": "com.amazonaws.secretsmanager#SecretVersionStagesType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies a list of staging labels that are attached to this version of the\n secret. These staging labels are used to track the versions through the rotation process by\n the Lambda rotation function.

\n

A staging label must be unique to a single version of the secret. If you specify a staging\n label that's already associated with a different version of the same secret then that staging\n label is automatically removed from the other version and attached to this version.

\n

If you do not specify a value for VersionStages then Secrets Manager automatically\n moves the staging label AWSCURRENT to this new version.

" + "smithy.api#documentation": "

A list of staging labels to attach to this version of the\n secret. Secrets Manager uses staging labels to track versions of a secret through the rotation process.

\n

If you specify a staging\n label that's already associated with a different version of the same secret, then Secrets Manager \n removes the label from the other version and attaches it to this version. \n If you specify \n AWSCURRENT, and it is already attached to another version, then Secrets Manager also \n moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

\n

If you don't include VersionStages, then Secrets Manager automatically\n moves the staging label AWSCURRENT to this version.

" } } } @@ -1429,25 +1429,25 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the secret for which you just created a version.

" + "smithy.api#documentation": "

The ARN of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret for which you just created or updated a version.

" + "smithy.api#documentation": "

The name of the secret.

" } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

The unique identifier of the version of the secret you just created or updated.

" + "smithy.api#documentation": "

The unique identifier of the version of the secret.

" } }, "VersionStages": { "target": "com.amazonaws.secretsmanager#SecretVersionStagesType", "traits": { - "smithy.api#documentation": "

The list of staging labels that are currently attached to this version of the secret.\n Staging labels are used to track a version as it progresses through the secret rotation\n process.

" + "smithy.api#documentation": "

The list of staging labels that are currently attached to this version of the secret.\n Secrets Manager uses staging labels to track a version as it progresses through the secret rotation\n process.

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

Remove regions from replication.

" + "smithy.api#documentation": "

For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

" } }, "com.amazonaws.secretsmanager#RemoveRegionsFromReplicationRequest": { @@ -1507,14 +1507,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Remove a secret by SecretId from replica Regions.

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

The ARN or name of the secret.

", "smithy.api#required": {} } }, "RemoveReplicaRegions": { "target": "com.amazonaws.secretsmanager#RemoveReplicaRegionListType", "traits": { - "smithy.api#documentation": "

Remove replication from specific Regions.

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

The Regions of the replicas to remove.

", "smithy.api#required": {} } } @@ -1526,13 +1526,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The secret ARN removed from replication regions.

" + "smithy.api#documentation": "

The ARN of the primary secret.

" } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

Describes the remaining replication status after you remove regions from the replication list.

" + "smithy.api#documentation": "

The status of replicas for this secret after you remove Regions.

" } } } @@ -1554,18 +1554,18 @@ "Region": { "target": "com.amazonaws.secretsmanager#RegionType", "traits": { - "smithy.api#documentation": "

Describes a single instance of Region objects.

" + "smithy.api#documentation": "

A Region code. For a list of Region codes, see Name and code of Regions.

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

Can be an ARN, Key ID, or Alias.

" + "smithy.api#documentation": "

The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager.

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

(Optional) Custom type consisting of a Region (required) and the KmsKeyId which can be an ARN, Key ID, or Alias.

" + "smithy.api#documentation": "

A custom type that specifies a Region and the KmsKeyId for a replica secret.

" } }, "com.amazonaws.secretsmanager#ReplicateSecretToRegions": { @@ -1591,7 +1591,7 @@ } ], "traits": { - "smithy.api#documentation": "

Converts an existing secret to a multi-Region secret and begins replication the secret to a\n list of new regions.

" + "smithy.api#documentation": "

Replicates the secret to a new Regions. See Multi-Region secrets.

" } }, "com.amazonaws.secretsmanager#ReplicateSecretToRegionsRequest": { @@ -1600,21 +1600,21 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Use the Secret Id to replicate a secret to regions.

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

The ARN or name of the secret to replicate.

", "smithy.api#required": {} } }, "AddReplicaRegions": { "target": "com.amazonaws.secretsmanager#AddReplicaRegionListType", "traits": { - "smithy.api#documentation": "

Add Regions to replicate the secret.

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

A list of Regions in which to replicate the secret.

", "smithy.api#required": {} } }, "ForceOverwriteReplicaSecret": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

(Optional) If set, Secrets Manager replication overwrites a secret with the same name in the\n destination region.

" + "smithy.api#documentation": "

Specifies whether to overwrite a secret with the same name in the destination Region.

" } } } @@ -1625,13 +1625,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

Replicate a secret based on the ReplicaRegionType> consisting of a\n Region(required) and a KMSKeyId (optional) which can be the ARN, KeyID, or Alias.

" + "smithy.api#documentation": "

The ARN of the primary secret.

" } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

Describes the secret replication status as PENDING, SUCCESS or FAIL.

" + "smithy.api#documentation": "

The status of replication.

" } } } @@ -1666,7 +1666,7 @@ "StatusMessage": { "target": "com.amazonaws.secretsmanager#StatusMessageType", "traits": { - "smithy.api#documentation": "

Status message such as \"Secret with this name already exists in this\n region\".

" + "smithy.api#documentation": "

Status message such as \"Secret with this name already exists in this\n region\".

" } }, "LastAccessedDate": { @@ -1703,7 +1703,7 @@ } }, "traits": { - "smithy.api#documentation": "

We can't find the resource that you asked for.

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

Secrets Manager can't find the resource that you asked for.

", "smithy.api#error": "client" } }, @@ -1730,7 +1730,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels the scheduled deletion of a secret by removing the DeletedDate time\n stamp. This makes the secret accessible to query once again.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Cancels the scheduled deletion of a secret by removing the DeletedDate time\n stamp. You can access a secret again after it has been restored.

" } }, "com.amazonaws.secretsmanager#RestoreSecretRequest": { @@ -1739,7 +1739,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to restore from a previously scheduled deletion. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to restore.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -1757,7 +1757,7 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret that was restored.

" + "smithy.api#documentation": "

The name of the secret that was restored.

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

Configures and starts the asynchronous process of rotating this secret. If you include the\n configuration parameters, the operation sets those values for the secret and then immediately\n starts a rotation. If you do not include the configuration parameters, the operation starts a\n rotation with the values already stored in the secret. After the rotation completes, the\n protected service and its clients all use the new version of the secret.

\n

This required configuration information includes the ARN of an Amazon Web Services Lambda function and\n optionally, the time between scheduled rotations. The Lambda rotation function creates a new\n version of the secret and creates or updates the credentials on the protected service to\n match. After testing the new credentials, the function marks the new secret with the staging\n label AWSCURRENT so that your clients all immediately begin to use the new version. For more\n information about rotating secrets and how to configure a Lambda function to rotate the\n secrets for your protected service, see Rotating Secrets in Amazon Web Services Secrets Manager in the\n Amazon Web Services Secrets Manager User Guide.

\n

Secrets Manager schedules the next rotation when the previous \n one completes. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

\n

The\n rotation function must end with the versions of the secret in one of two states:

\n \n

If the AWSPENDING staging label is present but not attached to the same version as\n AWSCURRENT then any later invocation of RotateSecret assumes that a previous\n rotation request is still in progress and returns an error.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Configures and starts the asynchronous process of rotating the secret.

\n

If you include the\n configuration parameters, the operation sets the values for the secret and then immediately\n starts a rotation. If you don't include the configuration parameters, the operation starts a\n rotation with the values already stored in the secret. For more information about rotation, \n see Rotate secrets.

\n

To configure rotation, you include the ARN of an Amazon Web Services Lambda function and the schedule \n for the rotation. The Lambda rotation function creates a new\n version of the secret and creates or updates the credentials on the database or service to\n match. After testing the new credentials, the function marks the new secret version with the staging\n label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more\n information, see How rotation works.

\n

When rotation is successful, the AWSPENDING staging label might be attached to the same \n version as the AWSCURRENT version, or it might not be attached to any version.

\n

If the AWSPENDING staging label is present but not attached to the same version as\n AWSCURRENT, then any later invocation of RotateSecret assumes that a previous\n rotation request is still in progress and returns an error.

\n

To run this command, you must have secretsmanager:RotateSecret permissions and \n lambda:InvokeFunction permissions on the function specified in the secret's metadata.

" } }, "com.amazonaws.secretsmanager#RotateSecretRequest": { @@ -1794,21 +1794,21 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to rotate. You can specify either the Amazon Resource\n Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret to rotate.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies a unique identifier for the new version of the secret that helps\n ensure idempotency.

\n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP\n request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for new versions and include that value in the\n request.

\n

You only need to specify your own value if you implement your own retry logic and want to\n ensure that a given secret is not created twice. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

\n

Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during the function's processing. This value becomes the\n VersionId of the new version.

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

A unique identifier for the new version of the secret that helps\n ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during rotation. This value becomes the\n VersionId of the new version.

\n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP\n request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for new versions and include that value in the\n request.

\n

You only need to specify this value if you implement your own retry logic and you want to\n ensure that Secrets Manager doesn't attempt to create a secret version twice. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

", "smithy.api#idempotencyToken": {} } }, "RotationLambdaARN": { "target": "com.amazonaws.secretsmanager#RotationLambdaARNType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies the ARN of the Lambda function that can rotate the secret.

" + "smithy.api#documentation": "

The ARN of the Lambda rotation function that can rotate the secret.

" } }, "RotationRules": { @@ -1831,13 +1831,13 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret.

" + "smithy.api#documentation": "

The name of the secret.

" } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

The ID of the new version of the secret created by the rotation started by this\n request.

" + "smithy.api#documentation": "

The ID of the new version of the secret.

" } } } @@ -1861,7 +1861,7 @@ "target": "com.amazonaws.secretsmanager#AutomaticallyRotateAfterDaysType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Specifies the number of days between automatic scheduled rotations of the secret.

\n

Secrets Manager schedules the next rotation when the previous \n one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

" + "smithy.api#documentation": "

Specifies the number of days between automatic scheduled rotations of the secret.

\n

Secrets Manager schedules the next rotation when the previous \n one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

" } } }, @@ -1903,13 +1903,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret.

\n

For more information about ARNs in Secrets Manager, see Policy Resources in the\n Amazon Web Services Secrets Manager User Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret. You can use forward slashes in the name to represent a\n path hierarchy. For example, /prod/databases/dbserver1 could represent the secret\n for a server named dbserver1 in the folder databases in the folder\n prod.

" + "smithy.api#documentation": "

The friendly name of the secret. You can use forward slashes in the name to represent a\n path hierarchy. For example, /prod/databases/dbserver1 could represent the secret\n for a server named dbserver1 in the folder databases in the folder\n prod.

" } }, "Description": { @@ -1921,7 +1921,7 @@ "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

The ARN or alias of the Amazon Web Services KMS customer master key (CMK) used to encrypt the\n SecretString and SecretBinary fields in each version of the\n secret. If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with\n the default KMS CMK, the key named awssecretsmanager, for this account.

" + "smithy.api#documentation": "

The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with \n the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

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

Removes the secret from replication and promotes the secret to a regional secret in the replica Region.

" + "smithy.api#documentation": "

Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

\n

You must call this operation from the Region in which you want to promote the replica to a primary secret.

" } }, "com.amazonaws.secretsmanager#StopReplicationToReplicaRequest": { @@ -2185,7 +2185,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Response to StopReplicationToReplica of a secret, based on the SecretId.

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

The ARN of the primary secret.

", "smithy.api#required": {} } } @@ -2197,7 +2197,7 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

Response StopReplicationToReplica of a secret, based on the ARN,.

" + "smithy.api#documentation": "

The ARN of the promoted secret. The ARN is the same as the original primary secret except the Region is changed.

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

Attaches one or more tags, each consisting of a key name and a value, to the specified\n secret. Tags are part of the secret's overall metadata, and are not associated with any\n specific version of the secret. This operation only appends tags to the existing list of tags.\n To remove tags, you must use UntagResource.

\n

The following basic restrictions apply to tags:

\n \n \n

If you use tags as part of your security strategy, then adding or removing a tag can\n change permissions. If successfully completing this operation would result in you losing\n your permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

\n
\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the \n secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

\n

The following restrictions apply to tags:

\n \n \n \n

If you use tags as part of your security strategy, then adding or removing a tag can\n change permissions. If successfully completing this operation would result in you losing\n your permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

\n
" } }, "com.amazonaws.secretsmanager#TagResourceRequest": { @@ -2272,14 +2272,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret that you want to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The identifier for the secret to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The tags to attach to the secret. Each element in the list consists of a Key\n and a Value.

\n

This parameter to the API requires a JSON text string argument.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

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

The tags to attach to the secret as a JSON text string argument. Each element in the list consists of a Key\n and a Value.

\n\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

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

Removes one or more tags from the specified secret.

\n

This operation is idempotent. If a requested tag is not attached to the secret, no error\n is returned and the secret metadata is unchanged.

\n \n

If you use tags as part of your security strategy, then removing a tag can change\n permissions. If successfully completing this operation would result in you losing your\n permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

\n
\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Removes specific tags from a secret.

\n

This operation is idempotent. If a requested tag is not attached to the secret, no error\n is returned and the secret metadata is unchanged.

\n \n

If you use tags as part of your security strategy, then removing a tag can change\n permissions. If successfully completing this operation would result in you losing your\n permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

\n
" } }, "com.amazonaws.secretsmanager#UntagResourceRequest": { @@ -2326,14 +2326,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret that you want to remove tags from. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

\n

This parameter to the API requires a JSON text string argument.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

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

A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

\n

This parameter requires a JSON text string argument.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

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

Modifies many of the details of the specified secret.

\n

To change the secret value, you can also use PutSecretValue.

\n

To change the rotation configuration of a secret, use RotateSecret\n instead.

\n \n

We recommend you avoid calling UpdateSecret at a sustained rate of more than \n once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you update the secret value more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n \n

The Secrets Manager console uses only the SecretString parameter and therefore limits\n you to encrypting and storing only a text string. To encrypt and store binary data as part\n of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services\n SDKs.

\n
\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

\n

To change the rotation configuration of a secret, use RotateSecret instead.

\n \n

We recommend you avoid calling UpdateSecret at a sustained rate of more than \n once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you update the secret value more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n

If you include SecretString or SecretBinary to create a new\n secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new\n version.

\n

If you call this operation with a VersionId that matches an existing version's \n ClientRequestToken, the operation results in an error. You can't modify an existing \n version, you can only create a new version. To remove a version, remove all staging labels from it. See \n UpdateSecretVersionStage.

\n

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key \n aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager \n creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access \n to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time \n significant delay in returning the result.

\n

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't \n use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key.

\n \n

To run this command, you must have secretsmanager:UpdateSecret permissions. If you use a \n customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions .

" } }, "com.amazonaws.secretsmanager#UpdateSecretRequest": { @@ -2386,39 +2386,39 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to modify or to which you want to add a new version.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

(Optional) If you want to add a new version to the secret, this parameter specifies a\n unique identifier for the new version that helps ensure idempotency.

\n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager\n service endpoint, then you must generate a ClientRequestToken yourself for new\n versions and include that value in the request.

\n

You typically only need to interact with this value if you implement your own retry logic\n and want to ensure that a given secret is not created twice. We recommend that you generate a\n UUID-type\n value to ensure uniqueness within the specified secret.

\n

Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during the Lambda rotation function's processing.

\n \n

This value becomes the VersionId of the new version.

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

If you include SecretString or SecretBinary, then Secrets Manager creates \n a new version for the secret, and this parameter specifies the unique identifier for the new \n version.

\n \n

If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

\n
\n

This value becomes the VersionId of the new version.

", "smithy.api#idempotencyToken": {} } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies an updated user-provided description of the secret.

" + "smithy.api#documentation": "

The description of the secret.

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

(Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS customer master key (CMK) that Secrets Manager \n uses to encrypt the protected text in new versions of this secret as well as any existing versions of this secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about staging labels, see Staging\n Labels in the Amazon Web Services Secrets Manager User Guide.

\n \n

You can only use the account's default CMK to encrypt and decrypt if you call this\n operation using credentials from the same account that owns the secret. If the secret is in\n a different account, then you must create a custom CMK and provide the ARN of that CMK in\n this field. The user making the call must have permissions to both the secret and the CMK in\n their respective accounts.

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

The ARN, key ID, or alias of the KMS key that Secrets Manager \n uses to encrypt new secret versions as well as any existing versions the staging labels \n AWSCURRENT, AWSPENDING, or AWSPREVIOUS. \n For more information about versions and staging labels, see Concepts: Version.

\n \n

You can only use the Amazon Web Services managed key aws/secretsmanager if you call this\n operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in\n a different account, then you must use a customer managed key and provide the ARN of that KMS key in\n this field. The user making the call must have permissions to both the secret and the KMS key in\n their respective accounts.

\n
" } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies updated binary data that you want to encrypt and store in the new\n version of the secret. To use this parameter in the command-line tools, we recommend that you\n store your binary data in a file and then use the appropriate technique for your tool to pass\n the contents of the file as a parameter. Either SecretBinary or\n SecretString must have a value, but not both. They cannot both be empty.

\n

This parameter is not accessible using the Secrets Manager console.

" + "smithy.api#documentation": "

The binary data to encrypt and store in the new\n version of the secret. We recommend that you\n store your binary data in a file and then pass\n the contents of the file as a parameter.

\n

Either SecretBinary or\n SecretString must have a value, but not both.

\n

You can't access this parameter in the Secrets Manager console.

" } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies updated text data that you want to encrypt and store in this new\n version of the secret. Either SecretBinary or SecretString must have\n a value, but not both. They cannot both be empty.

\n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" + "smithy.api#documentation": "

The text data to encrypt and store in the new\n version of the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

\n

Either SecretBinary or SecretString must have\n a value, but not both.

" } } } @@ -2429,19 +2429,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The ARN of the secret that was updated.

\n \n

Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

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

The ARN of the secret that was updated.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret that was updated.

" + "smithy.api#documentation": "

The name of the secret that was updated.

" } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

If a new version of the secret was created by this operation, then VersionId\n contains the unique identifier of the new version.

" + "smithy.api#documentation": "

If Secrets Manager created a new version of the secret during this operation, then VersionId\n contains the unique identifier of the new version.

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

Modifies the staging labels attached to a version of a secret. Staging labels are used to\n track a version as it progresses through the secret rotation process. You can attach a staging\n label to only one version of a secret at a time. If a staging label to be added is already\n attached to another version, then it is moved--removed from the other version first and\n then attached to this one. For more information about staging labels, see Staging\n Labels in the Amazon Web Services Secrets Manager User Guide.

\n

The staging labels that you specify in the VersionStage parameter are added\n to the existing list of staging labels--they don't replace it.

\n

You can move the AWSCURRENT staging label to this version by including it in this\n call.

\n \n

Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS\n to the version that AWSCURRENT was removed from.

\n
\n

If this action results in the last label being removed from a version, then the version is\n considered to be 'deprecated' and can be deleted by Secrets Manager.

\n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

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

Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to\n track a version as it progresses through the secret rotation process. Each staging label can be \n attached to only one version at a time. To add a staging label to a version when it is already \n attached to another version, Secrets Manager first removes it from the other version first and\n then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

\n

The staging labels that you specify in the VersionStage parameter are added\n to the existing list of staging labels for the version.

\n

You can move the AWSCURRENT staging label to this version by including it in this\n call.

\n \n

Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS\n to the version that AWSCURRENT was removed from.

\n
\n

If this action results in the last label being removed from a version, then the version is\n considered to be 'deprecated' and can be deleted by Secrets Manager.

" } }, "com.amazonaws.secretsmanager#UpdateSecretVersionStageRequest": { @@ -2481,7 +2481,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret with the version with the list of staging labels you want to modify.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

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

The ARN or the name of the secret with the version and staging labelsto modify.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -2495,13 +2495,13 @@ "RemoveFromVersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret version ID of the version that the staging label is to be removed\n from. If the staging label you are trying to attach to one version is already attached to a\n different version, then you must include this parameter and specify the version that the label\n is to be removed from. If the label is attached and you either do not specify this parameter,\n or the version ID does not match, then the operation fails.

" + "smithy.api#documentation": "

The ID of the version that the staging label is to be removed\n from. If the staging label you are trying to attach to one version is already attached to a\n different version, then you must include this parameter and specify the version that the label\n is to be removed from. If the label is attached and you either do not specify this parameter,\n or the version ID does not match, then the operation fails.

" } }, "MoveToVersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

(Optional) The secret version ID that you want to add the staging label. If you want to\n remove a label from a version, then do not specify this parameter.

\n

If the staging label is already attached to a different version of the secret, then you\n must also specify the RemoveFromVersionId parameter.

" + "smithy.api#documentation": "

The ID of the version to add the staging label to. To\n remove a label from a version, then do not specify this parameter.

\n

If the staging label is already attached to a different version of the secret, then you\n must also specify the RemoveFromVersionId parameter.

" } } } @@ -2512,13 +2512,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

The ARN of the secret with the modified staging label.

" + "smithy.api#documentation": "

The ARN of the secret that was updated.

" } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

The friendly name of the secret with the modified staging label.

" + "smithy.api#documentation": "

The name of the secret that was updated.

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

Validates that the resource policy does not grant a wide range of IAM principals access to\n your secret. The JSON request string input and response output displays formatted code\n with white space and line breaks for better readability. Submit your input as a single line \n JSON string. A resource-based policy is optional for secrets.

\n

The API performs three checks when validating the secret:

\n \n\n\n

\n Minimum Permissions\n

\n

You must have the permissions required to access the following APIs:

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

Validates that a resource policy does not grant a wide range of principals access to\n your secret. A resource-based policy is optional for secrets.

\n

The API performs three checks when validating the policy:

\n " } }, "com.amazonaws.secretsmanager#ValidateResourcePolicyRequest": { @@ -2558,13 +2558,13 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

(Optional) The identifier of the secret with the resource-based policy you want to\n validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

" + "smithy.api#documentation": "

This field is reserved for internal use.

" } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For information on how to format a JSON parameter for the various\n command line tool environments, see Using\n JSON for Parameters in the CLI User Guide.publi

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

A JSON-formatted string that contains an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For example policies, see Permissions policy examples.

", "smithy.api#required": {} } } @@ -2576,13 +2576,13 @@ "PolicyValidationPassed": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

Returns a message stating that your Reource Policy passed validation.

" + "smithy.api#documentation": "

True if your policy passes validation, otherwise false.

" } }, "ValidationErrors": { "target": "com.amazonaws.secretsmanager#ValidationErrorsType", "traits": { - "smithy.api#documentation": "

Returns an error message if your policy doesn't pass validatation.

" + "smithy.api#documentation": "

Validation errors if your policy didn't pass validation.

" } } } @@ -2615,6 +2615,21 @@ }, "com.amazonaws.secretsmanager#secretsmanager": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Secrets Manager", + "arnNamespace": "secretsmanager", + "cloudFormationName": "SecretsManager", + "cloudTrailEventSource": "secretsmanager.amazonaws.com", + "endpointPrefix": "secretsmanager" + }, + "aws.auth#sigv4": { + "name": "secretsmanager" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Web Services Secrets Manager\n

Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets.

\n \n

This guide provides descriptions of the Secrets Manager API. For more information about using this\n service, see the Amazon Web Services Secrets Manager User Guide.

\n \n

\n API Version\n

\n \n

This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17.

\n \n

As an alternative to using the API, you can use one of the Amazon Web Services SDKs, which consist of\n libraries and sample code for various programming languages and platforms such as Java,\n Ruby, .NET, iOS, and Android. The SDKs provide a convenient way to create programmatic\n access to Amazon Web Services Secrets Manager. For example, the SDKs provide cryptographically signing requests,\n managing errors, and retrying requests automatically. For more information about the Amazon Web Services\n SDKs, including downloading and installing them, see Tools for Amazon Web Services.

\n
\n

We recommend you use the Amazon Web Services SDKs to make programmatic API calls to Secrets Manager. However, you\n also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn\n more about the Secrets Manager HTTP Query API, see Making Query Requests in the\n Amazon Web Services Secrets Manager User Guide.

\n

Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use\n GET for some actions and POST for others. However, GET requests are subject to the limitation\n size of a URL. Therefore, for operations that require larger sizes, use a POST request.

\n \n \n \n \n \n \n \n

\n Support and Feedback for Amazon Web Services Secrets Manager\n

\n \n

We welcome your feedback. Send your comments to awssecretsmanager-feedback@amazon.com, or post your feedback and questions in the Amazon Web Services Secrets Manager Discussion Forum. For more\n information about the Amazon Web Services Discussion Forums, see Forums\n Help.

\n \n

\n How examples are presented\n

\n \n

The JSON that Amazon Web Services Secrets Manager expects as your request parameters and the service returns as a\n response to HTTP query requests contain single, long strings without line breaks or white\n space formatting. The JSON shown in the examples displays the code formatted with both line\n breaks and white space to improve readability. When example input parameters can also cause\n long strings extending beyond the screen, you can insert line breaks to enhance readability.\n You should always submit the input as a single JSON text string.

\n \n \n

\n Logging API Requests\n

\n

Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services\n account and delivers log files to an Amazon S3 bucket. By using information that's collected\n by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the\n request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services\n CloudTrail, see Logging\n Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide.\n To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

", + "smithy.api#title": "AWS Secrets Manager" + }, "version": "2017-10-17", "operations": [ { @@ -2683,22 +2698,7 @@ { "target": "com.amazonaws.secretsmanager#ValidateResourcePolicy" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Secrets Manager", - "arnNamespace": "secretsmanager", - "cloudFormationName": "SecretsManager", - "cloudTrailEventSource": "secretsmanager.amazonaws.com", - "endpointPrefix": "secretsmanager" - }, - "aws.auth#sigv4": { - "name": "secretsmanager" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Amazon Web Services Secrets Manager\n

Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets.

\n \n

This guide provides descriptions of the Secrets Manager API. For more information about using this\n service, see the Amazon Web Services Secrets Manager User Guide.

\n \n

\n API Version\n

\n \n

This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17.

\n \n

As an alternative to using the API, you can use one of the Amazon Web Services SDKs, which consist of\n libraries and sample code for various programming languages and platforms such as Java,\n Ruby, .NET, iOS, and Android. The SDKs provide a convenient way to create programmatic\n access to Amazon Web Services Secrets Manager. For example, the SDKs provide cryptographically signing requests,\n managing errors, and retrying requests automatically. For more information about the Amazon Web Services\n SDKs, including downloading and installing them, see Tools for Amazon Web Services.

\n
\n

We recommend you use the Amazon Web Services SDKs to make programmatic API calls to Secrets Manager. However, you\n also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn\n more about the Secrets Manager HTTP Query API, see Making Query Requests in the\n Amazon Web Services Secrets Manager User Guide.

\n

Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use\n GET for some actions and POST for others. However, GET requests are subject to the limitation\n size of a URL. Therefore, for operations that require larger sizes, use a POST request.

\n \n \n \n \n \n \n \n

\n Support and Feedback for Amazon Web Services Secrets Manager\n

\n \n

We welcome your feedback. Send your comments to awssecretsmanager-feedback@amazon.com, or post your feedback and questions in the Amazon Web Services Secrets Manager Discussion Forum. For more\n information about the Amazon Web Services Discussion Forums, see Forums\n Help.

\n \n

\n How examples are presented\n

\n \n

The JSON that Amazon Web Services Secrets Manager expects as your request parameters and the service returns as a\n response to HTTP query requests contain single, long strings without line breaks or white\n space formatting. The JSON shown in the examples displays the code formatted with both line\n breaks and white space to improve readability. When example input parameters can also cause\n long strings extending beyond the screen, you can insert line breaks to enhance readability.\n You should always submit the input as a single JSON text string.

\n \n \n

\n Logging API Requests\n

\n

Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services\n account and delivers log files to an Amazon S3 bucket. By using information that's collected\n by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the\n request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services\n CloudTrail, see Logging\n Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide.\n To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

", - "smithy.api#title": "AWS Secrets Manager" - } + ] } } } 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 8b8a344b644..4ce4744a5fe 100644 --- a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json +++ b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json @@ -1051,6 +1051,26 @@ "smithy.api#documentation": "

Contains information about a version 2 stage for Amazon API Gateway.

" } }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the Availability Zone.

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

An Availability Zone for the automatic scaling group.

" + } + }, "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupDetails": { "type": "structure", "members": { @@ -1083,12 +1103,160 @@ "traits": { "smithy.api#documentation": "

Indicates when the auto scaling group was created.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" } + }, + "MixedInstancesPolicy": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails", + "traits": { + "smithy.api#documentation": "

The mixed instances policy for the automatic scaling group.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesList", + "traits": { + "smithy.api#documentation": "

The list of Availability Zones for the automatic scaling group.

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

Provides details about an auto scaling group.

" } }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails": { + "type": "structure", + "members": { + "InstancesDistribution": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails", + "traits": { + "smithy.api#documentation": "

The instances distribution. The instances distribution specifies the distribution of On-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacity.

" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails", + "traits": { + "smithy.api#documentation": "

The launch template to use and the instance types (overrides) to use to provision EC2 instances to fulfill On-Demand and Spot capacities.

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

The mixed instances policy for the automatic scaling group.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails": { + "type": "structure", + "members": { + "OnDemandAllocationStrategy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

How to allocate instance types to fulfill On-Demand capacity.

" + } + }, + "OnDemandBaseCapacity": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances.

" + } + }, + "OnDemandPercentageAboveBaseCapacity": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of On-Demand Instances and Spot Instances for additional capacity beyond OnDemandBaseCapacity.

" + } + }, + "SpotAllocationStrategy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

How to allocate instances across Spot Instance pools.

" + } + }, + "SpotInstancePools": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of Spot Instance pools across which to allocate your Spot Instances.

" + } + }, + "SpotMaxPrice": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance.

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

Information about the instances distribution.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification", + "traits": { + "smithy.api#documentation": "

The launch template to use.

" + } + }, + "Overrides": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList", + "traits": { + "smithy.api#documentation": "

Property values to use to override the values in the launch template.

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

Describes a launch template and overrides for a mixed instances policy.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

" + } + }, + "Version": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Identifies the version of the launch template. You can specify a version identifier, or use the values $Latest or $Default.

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

Details about the launch template to use.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The instance type. For example, m3.xlarge.

" + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The number of capacity units provided by the specified instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic.

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

Property values to use to override the values in the launch template.

" + } + }, "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails": { "type": "structure", "members": { @@ -1281,6 +1449,12 @@ "traits": { "smithy.api#documentation": "

The user data to make available to the launched EC2 instances. Must be base64-encoded\n text.

" } + }, + "MetadataOptions": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationMetadataOptions", + "traits": { + "smithy.api#documentation": "

The metadata options for the instances.

" + } } }, "traits": { @@ -1301,6 +1475,32 @@ "smithy.api#documentation": "

Information about the type of monitoring for instances in the group.

" } }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationMetadataOptions": { + "type": "structure", + "members": { + "HttpEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances. By default, the metadata endpoint is enabled.

" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

" + } + }, + "HttpTokens": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates whether token usage is required or optional for metadata requests. By default, token usage is optional.

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

The metadata options for the instances.

" + } + }, "com.amazonaws.securityhub#AwsCertificateManagerCertificateDetails": { "type": "structure", "members": { @@ -8306,149 +8506,325 @@ "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber": { "type": "long" }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallDetails": { "type": "structure", "members": { - "InstanceCount": { - "target": "com.amazonaws.securityhub#Integer", + "DeleteProtection": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

The number of data nodes to use in the OpenSearch domain.

" + "smithy.api#documentation": "

Whether the firewall is protected from deletion. If set to true, then the firewall cannot be deleted.

" } }, - "WarmEnabled": { - "target": "com.amazonaws.securityhub#Boolean", + "Description": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

Whether UltraWarm is enabled.

" + "smithy.api#documentation": "

A description of the firewall.

" } }, - "WarmCount": { - "target": "com.amazonaws.securityhub#Integer", + "FirewallArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The number of UltraWarm instances.

" + "smithy.api#documentation": "

The ARN of the firewall.

" } }, - "DedicatedMasterEnabled": { + "FirewallId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the firewall.

" + } + }, + "FirewallName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A descriptive name of the firewall.

" + } + }, + "FirewallPolicyArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the firewall policy.

" + } + }, + "FirewallPolicyChangeProtection": { "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

" + "smithy.api#documentation": "

Whether the firewall is protected from a change to the firewall policy. If set to true, you cannot associate a different policy with the firewall.

" } }, - "ZoneAwarenessConfig": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails", + "SubnetChangeProtection": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

" + "smithy.api#documentation": "

Whether the firewall is protected from a change to the subnet associations. If set to true, you cannot map different subnets to the firewall.

" } }, - "DedicatedMasterCount": { - "target": "com.amazonaws.securityhub#Integer", + "SubnetMappings": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsList", "traits": { - "smithy.api#documentation": "

The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

" + "smithy.api#documentation": "

The public subnets that Network Firewall uses for the firewall. Each subnet must belong to a different Availability Zone.

" } }, - "InstanceType": { + "VpcId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The instance type for your data nodes.

" + "smithy.api#documentation": "

The identifier of the VPC where the firewall is used.

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

Details about an Network Firewall firewall.

" + } + }, + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallPolicyDetails": { + "type": "structure", + "members": { + "FirewallPolicy": { + "target": "com.amazonaws.securityhub#FirewallPolicyDetails", + "traits": { + "smithy.api#documentation": "

The firewall policy configuration.

" } }, - "WarmType": { + "FirewallPolicyArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The type of UltraWarm instance.

" + "smithy.api#documentation": "

The ARN of the firewall policy.

" } }, - "ZoneAwarenessEnabled": { - "target": "com.amazonaws.securityhub#Boolean", + "FirewallPolicyId": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

" + "smithy.api#documentation": "

The identifier of the firewall policy.

" } }, - "DedicatedMasterType": { + "FirewallPolicyName": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The hardware configuration of the computer that hosts the dedicated master node.

\n

If this attribute is specified, then DedicatedMasterEnabled must be true.\n

" + "smithy.api#documentation": "

The name of the firewall policy.

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

A description of the firewall policy.

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

Details about the configuration of an OpenSearch cluster.

" + "smithy.api#documentation": "

Details about a firewall policy. A firewall policy defines the behavior of a network firewall.

" } }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsDetails": { "type": "structure", "members": { - "AvailabilityZoneCount": { - "target": "com.amazonaws.securityhub#Integer", + "SubnetId": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

" + "smithy.api#documentation": "

The identifier of the subnet

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

Configuration options for zone awareness.

" + "smithy.api#documentation": "

A public subnet that Network Firewall uses for the firewall.

" } }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsDetails" + } + }, + "com.amazonaws.securityhub#AwsNetworkFirewallRuleGroupDetails": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "Capacity": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

The ARN of the OpenSearch Service domain.

" + "smithy.api#documentation": "

The maximum number of operating resources that this rule group can use.

" } }, - "AccessPolicies": { + "Description": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

IAM policy document that specifies the access policies for the OpenSearch Service domain.

" + "smithy.api#documentation": "

A description of the rule group.

" } }, - "DomainName": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "RuleGroup": { + "target": "com.amazonaws.securityhub#RuleGroupDetails", "traits": { - "smithy.api#documentation": "

The name of the endpoint.

" + "smithy.api#documentation": "

Details about the rule group.

" } }, - "Id": { + "RuleGroupArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The identifier of the domain.

" + "smithy.api#documentation": "

The ARN of the rule group.

" } }, - "DomainEndpoint": { + "RuleGroupId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The domain endpoint.

" + "smithy.api#documentation": "

The identifier of the rule group.

" } }, - "EngineVersion": { + "RuleGroupName": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The version of the domain engine.

" + "smithy.api#documentation": "

The descriptive name of the rule group.

" } }, - "EncryptionAtRestOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails", + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

Details about the configuration for encryption at rest.

" + "smithy.api#documentation": "

The type of rule group. A rule group can be stateful or stateless.

" } - }, - "NodeToNodeEncryptionOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails", + } + }, + "traits": { + "smithy.api#documentation": "

Details about an Network Firewall rule group. Rule groups are used to inspect and control network traffic. Stateless rule groups apply to individual packets. Stateful rule groups apply to packets in the context of their traffic flow.

\n

Rule groups are referenced in firewall policies.\n

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

Details about the configuration for node-to-node encryption.

" + "smithy.api#documentation": "

The number of data nodes to use in the OpenSearch domain.

" } }, - "ServiceSoftwareOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails", + "WarmEnabled": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

Information about the status of a domain relative to the latest service software.

" + "smithy.api#documentation": "

Whether UltraWarm is enabled.

" } }, - "ClusterConfig": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails", + "WarmCount": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

Details about the configuration of an OpenSearch cluster.

" + "smithy.api#documentation": "

The number of UltraWarm instances.

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

Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

" + } + }, + "ZoneAwarenessConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails", + "traits": { + "smithy.api#documentation": "

Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

" + } + }, + "DedicatedMasterCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The instance type for your data nodes.

" + } + }, + "WarmType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of UltraWarm instance.

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

Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

" + } + }, + "DedicatedMasterType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The hardware configuration of the computer that hosts the dedicated master node.

\n

If this attribute is specified, then DedicatedMasterEnabled must be true.\n

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

Details about the configuration of an OpenSearch cluster.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails": { + "type": "structure", + "members": { + "AvailabilityZoneCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

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

Configuration options for zone awareness.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the OpenSearch Service domain.

" + } + }, + "AccessPolicies": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

IAM policy document that specifies the access policies for the OpenSearch Service domain.

" + } + }, + "DomainName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the endpoint.

" + } + }, + "Id": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the domain.

" + } + }, + "DomainEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The domain endpoint.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The version of the domain engine.

" + } + }, + "EncryptionAtRestOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration for encryption at rest.

" + } + }, + "NodeToNodeEncryptionOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration for node-to-node encryption.

" + } + }, + "ServiceSoftwareOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails", + "traits": { + "smithy.api#documentation": "

Information about the status of a domain relative to the latest service software.

" + } + }, + "ClusterConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration of an OpenSearch cluster.

" } }, "DomainEndpointOptions": { @@ -11165,6 +11541,26 @@ "target": "com.amazonaws.securityhub#AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails" } }, + "com.amazonaws.securityhub#AwsS3BucketBucketVersioningConfiguration": { + "type": "structure", + "members": { + "IsMfaDeleteEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether MFA delete is currently enabled in the S3 bucket versioning configuration. If the S3 bucket was never configured with MFA delete, then this attribute is not included.

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

The versioning status of the S3 bucket.

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

Describes the versioning state of an S3 bucket.

" + } + }, "com.amazonaws.securityhub#AwsS3BucketDetails": { "type": "structure", "members": { @@ -11233,6 +11629,12 @@ "traits": { "smithy.api#documentation": "

The notification configuration for the S3 bucket.

" } + }, + "BucketVersioningConfiguration": { + "target": "com.amazonaws.securityhub#AwsS3BucketBucketVersioningConfiguration", + "traits": { + "smithy.api#documentation": "

The versioning state of an S3 bucket.

" + } } }, "traits": { @@ -12431,7 +12833,7 @@ "WorkflowStatus": { "target": "com.amazonaws.securityhub#StringFilterList", "traits": { - "smithy.api#documentation": "

The status of the investigation into a finding. Allowed values are the following.

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

The status of the investigation into a finding. Allowed values are the following.

\n " } }, "RecordState": { @@ -13185,7 +13587,7 @@ } ], "traits": { - "smithy.api#documentation": "

Imports security findings generated from an integrated product into Security Hub.\n This action is requested by the integrated product to import its findings into\n Security Hub.

\n

The maximum allowed size for a finding is 240 Kb. An error is returned for any finding\n larger than 240 Kb.

\n

After a finding is created, BatchImportFindings cannot be used to update\n the following finding fields and objects, which Security Hub customers use to manage their\n investigation workflow.

\n \n

Finding providers also should not use BatchImportFindings to update the following attributes.

\n \n

Instead, finding providers use FindingProviderFields to provide values for these attributes.

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

Imports security findings generated by a finding provider into Security Hub.\n This action is requested by the finding provider to import its findings into\n Security Hub.

\n

\n BatchImportFindings must be called by one of the following:

\n \n

The maximum allowed size for a finding is 240 Kb. An error is returned for any finding\n larger than 240 Kb.

\n

After a finding is created, BatchImportFindings cannot be used to update\n the following finding fields and objects, which Security Hub customers use to manage their\n investigation workflow.

\n \n

Finding providers also should not use BatchImportFindings to update the following attributes.

\n \n

Instead, finding providers use FindingProviderFields to provide values for these attributes.

", "smithy.api#http": { "method": "POST", "uri": "/findings/import", @@ -13914,7 +14316,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

\n

\n CreateMembers is always used to add accounts that are not organization\n members.

\n

For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

\n \n

This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

\n

For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

\n

Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub.

\n \n \n

A permissions policy is added that permits the administrator account to view the findings\n generated in the member account.

\n

To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

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

Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

\n

\n CreateMembers is always used to add accounts that are not organization\n members.

\n

For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

\n \n

This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

\n

For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

\n

Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub.

\n \n

A permissions policy is added that permits the administrator account to view the findings\n generated in the member account.

\n

To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

", "smithy.api#http": { "method": "POST", "uri": "/members", @@ -15452,6 +15854,116 @@ "smithy.api#documentation": "

The severity assigned to the finding by the finding provider.

" } }, + "com.amazonaws.securityhub#FirewallPolicyDetails": { + "type": "structure", + "members": { + "StatefulRuleGroupReferences": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesList", + "traits": { + "smithy.api#documentation": "

The stateful rule groups that are used in the firewall policy.

" + } + }, + "StatelessCustomActions": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsList", + "traits": { + "smithy.api#documentation": "

The custom action definitions that are available to use in the firewall policy's StatelessDefaultActions setting.

" + } + }, + "StatelessDefaultActions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The actions to take on a packet if it doesn't match any of the stateless rules in the policy.

\n

You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions.\n

" + } + }, + "StatelessFragmentDefaultActions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy.

\n

You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions.\n

" + } + }, + "StatelessRuleGroupReferences": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesList", + "traits": { + "smithy.api#documentation": "

The stateless rule groups that are used in the firewall policy.

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

Defines the behavior of the firewall.

" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesDetails": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the stateful rule group.

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

A stateful rule group that is used by the firewall policy.

" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesDetails" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsDetails": { + "type": "structure", + "members": { + "ActionDefinition": { + "target": "com.amazonaws.securityhub#StatelessCustomActionDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the custom action.

" + } + }, + "ActionName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the custom action.

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

A custom action that can be used for stateless packet handling.

" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsDetails" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesDetails": { + "type": "structure", + "members": { + "Priority": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The order in which to run the stateless rule group.

" + } + }, + "ResourceArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the stateless rule group.

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

A stateless rule group that is used by the firewall policy.

" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesDetails" + } + }, "com.amazonaws.securityhub#GeoLocation": { "type": "structure", "members": { @@ -18477,6 +18989,24 @@ "traits": { "smithy.api#documentation": "

Details about an Amazon EKS cluster.

" } + }, + "AwsNetworkFirewallFirewallPolicy": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallPolicyDetails", + "traits": { + "smithy.api#documentation": "

Details about an Network Firewall firewall policy.

" + } + }, + "AwsNetworkFirewallFirewall": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallDetails", + "traits": { + "smithy.api#documentation": "

Details about an Network Firewall firewall.

" + } + }, + "AwsNetworkFirewallRuleGroup": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallRuleGroupDetails", + "traits": { + "smithy.api#documentation": "

Details about an Network Firewall rule group.

" + } } }, "traits": { @@ -18531,21 +19061,530 @@ "target": "com.amazonaws.securityhub#Result" } }, - "com.amazonaws.securityhub#SecurityGroups": { - "type": "list", - "member": { - "target": "com.amazonaws.securityhub#NonEmptyString" + "com.amazonaws.securityhub#RuleGroupDetails": { + "type": "structure", + "members": { + "RuleVariables": { + "target": "com.amazonaws.securityhub#RuleGroupVariables", + "traits": { + "smithy.api#documentation": "

Additional settings to use in the specified rules.

" + } + }, + "RulesSource": { + "target": "com.amazonaws.securityhub#RuleGroupSource", + "traits": { + "smithy.api#documentation": "

The rules and actions for the rule group.

\n

For stateful rule groups, can contain RulesString, RulesSourceList, or StatefulRules.

\n

For stateless rule groups, contains StatelessRulesAndCustomActions.

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

Details about the rule group.

" } }, - "com.amazonaws.securityhub#SecurityHubAPIService": { - "type": "service", - "version": "2018-10-26", - "operations": [ - { - "target": "com.amazonaws.securityhub#AcceptAdministratorInvitation" + "com.amazonaws.securityhub#RuleGroupSource": { + "type": "structure", + "members": { + "RulesSourceList": { + "target": "com.amazonaws.securityhub#RuleGroupSourceListDetails", + "traits": { + "smithy.api#documentation": "

Stateful inspection criteria for a domain list rule group. A domain list rule group determines access by specific protocols to specific domains.

" + } }, - { - "target": "com.amazonaws.securityhub#AcceptInvitation" + "RulesString": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules.

" + } + }, + "StatefulRules": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesList", + "traits": { + "smithy.api#documentation": "

Suricata rule specifications.

" + } + }, + "StatelessRulesAndCustomActions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesAndCustomActionsDetails", + "traits": { + "smithy.api#documentation": "

The stateless rules and custom actions used by a stateless rule group.

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

The rules and actions for the rule group.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceCustomActionsDetails": { + "type": "structure", + "members": { + "ActionDefinition": { + "target": "com.amazonaws.securityhub#StatelessCustomActionDefinition", + "traits": { + "smithy.api#documentation": "

The definition of a custom action.

" + } + }, + "ActionName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A descriptive name of the custom action.

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

A custom action definition. A custom action is an optional, non-standard action to use for stateless packet handling.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceCustomActionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceCustomActionsDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceListDetails": { + "type": "structure", + "members": { + "GeneratedRulesType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates whether to allow or deny access to the domains listed in Targets.

" + } + }, + "TargetTypes": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The protocols that you want to inspect. Specify LS_SNI for HTTPS. Specify HTTP_HOST for HTTP. You can specify either or both.

" + } + }, + "Targets": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The domains that you want to inspect for in your traffic flows. You can provide full domain names, or use the '.' prefix as a wildcard. For example, .example.com matches all domains that end with example.com.

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

Stateful inspection criteria for a domain list rule group.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesDetails": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria.

" + } + }, + "Header": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesHeaderDetails", + "traits": { + "smithy.api#documentation": "

The stateful inspection criteria for the rule.

" + } + }, + "RuleOptions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsList", + "traits": { + "smithy.api#documentation": "

Additional options for the rule.

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

A Suricata rule specification.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesHeaderDetails": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

" + } + }, + "DestinationPort": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The destination port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

" + } + }, + "Direction": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

" + } + }, + "Protocol": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The protocol to inspect for. To inspector for all protocols, use IP.

" + } + }, + "Source": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

" + } + }, + "SourcePort": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The source port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

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

The inspection criteria for a stateful rule.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsDetails": { + "type": "structure", + "members": { + "Keyword": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A keyword to look for.

" + } + }, + "Settings": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesRuleOptionsSettingsList", + "traits": { + "smithy.api#documentation": "

A list of settings.

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

A rule option for a stateful rule.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesRuleOptionsSettingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#NonEmptyString" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleDefinition": { + "type": "structure", + "members": { + "Actions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action (aws:pass, aws:drop, or aws:forward_to_sfe). You can then add custom actions.

" + } + }, + "MatchAttributes": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributes", + "traits": { + "smithy.api#documentation": "

The criteria for Network Firewall to use to inspect an individual packet in a stateless rule inspection.

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

The definition of the stateless rule.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributes": { + "type": "structure", + "members": { + "DestinationPorts": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList", + "traits": { + "smithy.api#documentation": "

A list of port ranges to specify the destination ports to inspect for.

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

The destination IP addresses and address ranges to inspect for, in CIDR notation.

" + } + }, + "Protocols": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesProtocolsList", + "traits": { + "smithy.api#documentation": "

The protocols to inspect for.

" + } + }, + "SourcePorts": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList", + "traits": { + "smithy.api#documentation": "

A list of port ranges to specify the source ports to inspect for.

" + } + }, + "Sources": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcesList", + "traits": { + "smithy.api#documentation": "

The source IP addresses and address ranges to inspect for, in CIDR notation.

" + } + }, + "TcpFlags": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList", + "traits": { + "smithy.api#documentation": "

The TCP flags and masks to inspect for.

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

Criteria for the stateless rule.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The starting port value for the port range.

" + } + }, + "ToPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The ending port value for the port range.

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

A port range to specify the destination ports to inspect for.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinations": { + "type": "structure", + "members": { + "AddressDefinition": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

An IP address or a block of IP addresses.

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

A destination IP address or range.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinations" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesProtocolsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#Integer" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePorts": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The starting port value for the port range.

" + } + }, + "ToPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The ending port value for the port range.

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

A port range to specify the source ports to inspect for.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePorts" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSources": { + "type": "structure", + "members": { + "AddressDefinition": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

An IP address or a block of IP addresses.

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

A source IP addresses and address range to inspect for.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSources" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlags": { + "type": "structure", + "members": { + "Flags": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

Defines the flags from the Masks setting that must be set in order for the packet to match. Flags that are listed must be set. Flags that are not listed must not be set.

" + } + }, + "Masks": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The set of flags to consider in the inspection. If not specified, then all flags are inspected.

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

A set of TCP flags and masks to inspect for.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlags" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesAndCustomActionsDetails": { + "type": "structure", + "members": { + "CustomActions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceCustomActionsList", + "traits": { + "smithy.api#documentation": "

Custom actions for the rule group.

" + } + }, + "StatelessRules": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesList", + "traits": { + "smithy.api#documentation": "

Stateless rules for the rule group.

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

Stateless rules and custom actions for a stateless rule group.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesDetails": { + "type": "structure", + "members": { + "Priority": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

Indicates the order in which to run this rule relative to all of the rules in the stateless rule group.

" + } + }, + "RuleDefinition": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleDefinition", + "traits": { + "smithy.api#documentation": "

Provides the definition of the stateless rule.

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

A stateless rule in the rule group.

" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupVariables": { + "type": "structure", + "members": { + "IpSets": { + "target": "com.amazonaws.securityhub#RuleGroupVariablesIpSetsDetails", + "traits": { + "smithy.api#documentation": "

A list of IP addresses and address ranges, in CIDR notation.

" + } + }, + "PortSets": { + "target": "com.amazonaws.securityhub#RuleGroupVariablesPortSetsDetails", + "traits": { + "smithy.api#documentation": "

A list of port ranges.

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

Additional settings to use in the specified rules.

" + } + }, + "com.amazonaws.securityhub#RuleGroupVariablesIpSetsDetails": { + "type": "structure", + "members": { + "Definition": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The list of IP addresses and ranges.

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

A list of IP addresses and address ranges, in CIDR notation.

" + } + }, + "com.amazonaws.securityhub#RuleGroupVariablesPortSetsDetails": { + "type": "structure", + "members": { + "Definition": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The list of port ranges.

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

A list of port ranges.

" + } + }, + "com.amazonaws.securityhub#SecurityGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#NonEmptyString" + } + }, + "com.amazonaws.securityhub#SecurityHubAPIService": { + "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "SecurityHub", + "arnNamespace": "securityhub", + "cloudFormationName": "SecurityHub", + "cloudTrailEventSource": "securityhub.amazonaws.com", + "endpointPrefix": "securityhub" + }, + "aws.auth#sigv4": { + "name": "securityhub" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status\n of your environment based on controls from supported security standards. Security Hub collects\n security data from Amazon Web Services accounts, services, and integrated third-party products and helps\n you analyze security trends in your environment to identify the highest priority security\n issues. For more information about Security Hub, see the Security HubUser\n Guide\n .

\n

When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services\n Region that is currently active or in the specific Amazon Web Services Region that you specify in your\n request. Any configuration or settings change that results from the operation is applied\n only to that Region. To make the same change in other Regions, execute the same command for\n each Region to apply the change to.

\n

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of\n the member account with the administrator account is created only in the us-west-2\n Region. Security Hub must be enabled for the member account in the same Region that the invitation\n was sent from.

\n

The following throttling limits apply to using Security Hub API operations.

\n ", + "smithy.api#title": "AWS SecurityHub" + }, + "version": "2018-10-26", + "operations": [ + { + "target": "com.amazonaws.securityhub#AcceptAdministratorInvitation" + }, + { + "target": "com.amazonaws.securityhub#AcceptInvitation" }, { "target": "com.amazonaws.securityhub#BatchDisableStandards" @@ -18709,22 +19748,7 @@ { "target": "com.amazonaws.securityhub#UpdateStandardsControl" } - ], - "traits": { - "aws.api#service": { - "sdkId": "SecurityHub", - "arnNamespace": "securityhub", - "cloudFormationName": "SecurityHub", - "cloudTrailEventSource": "securityhub.amazonaws.com", - "endpointPrefix": "securityhub" - }, - "aws.auth#sigv4": { - "name": "securityhub" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status\n of your environment based on controls from supported security standards. Security Hub collects\n security data from Amazon Web Services accounts, services, and integrated third-party products and helps\n you analyze security trends in your environment to identify the highest priority security\n issues. For more information about Security Hub, see the Security HubUser\n Guide\n .

\n

When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services\n Region that is currently active or in the specific Amazon Web Services Region that you specify in your\n request. Any configuration or settings change that results from the operation is applied\n only to that Region. To make the same change in other Regions, execute the same command for\n each Region to apply the change to.

\n

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of\n the member account with the administrator account is created only in the us-west-2\n Region. Security Hub must be enabled for the member account in the same Region that the invitation\n was sent from.

\n

The following throttling limits apply to using Security Hub API operations.

\n ", - "smithy.api#title": "AWS SecurityHub" - } + ] }, "com.amazonaws.securityhub#SensitiveDataDetections": { "type": "structure", @@ -19146,6 +20170,21 @@ ] } }, + "com.amazonaws.securityhub#StandardsStatusReason": { + "type": "structure", + "members": { + "StatusReasonCode": { + "target": "com.amazonaws.securityhub#StatusReasonCode", + "traits": { + "smithy.api#documentation": "

The reason code that represents the reason for the current status of a standard subscription.

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

The reason for the current status of a standard subscription.

" + } + }, "com.amazonaws.securityhub#StandardsSubscription": { "type": "structure", "members": { @@ -19176,6 +20215,12 @@ "smithy.api#documentation": "

The status of the standard subscription.

\n

The status values are as follows:

\n ", "smithy.api#required": {} } + }, + "StandardsStatusReason": { + "target": "com.amazonaws.securityhub#StandardsStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the current status.

" + } } }, "traits": { @@ -19233,6 +20278,54 @@ "target": "com.amazonaws.securityhub#StandardsSubscription" } }, + "com.amazonaws.securityhub#StatelessCustomActionDefinition": { + "type": "structure", + "members": { + "PublishMetricAction": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricAction", + "traits": { + "smithy.api#documentation": "

Information about metrics to publish to CloudWatch.

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

The definition of a custom action that can be used for stateless packet handling.

" + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricAction": { + "type": "structure", + "members": { + "Dimensions": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimensionsList", + "traits": { + "smithy.api#documentation": "

Defines CloudWatch dimension values to publish.

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

Information about metrics to publish to CloudWatch.

" + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimension": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The value to use for the custom metric dimension.

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

Defines a CloudWatch dimension value to publish.

" + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimensionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimension" + } + }, "com.amazonaws.securityhub#StatusReason": { "type": "structure", "members": { @@ -19254,6 +20347,21 @@ "smithy.api#documentation": "

Provides additional context for the value of Compliance.Status.

" } }, + "com.amazonaws.securityhub#StatusReasonCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NO_AVAILABLE_CONFIGURATION_RECORDER", + "name": "NO_AVAILABLE_CONFIGURATION_RECORDER" + }, + { + "value": "INTERNAL_ERROR", + "name": "INTERNAL_ERROR" + } + ] + } + }, "com.amazonaws.securityhub#StatusReasonsList": { "type": "list", "member": { diff --git a/codegen/sdk-codegen/aws-models/sms.2016-10-24.json b/codegen/sdk-codegen/aws-models/sms.2016-10-24.json index b40f085eda1..08398e2bb0e 100644 --- a/codegen/sdk-codegen/aws-models/sms.2016-10-24.json +++ b/codegen/sdk-codegen/aws-models/sms.2016-10-24.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.sms#AWSServerMigrationService_V2016_10_24": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "SMS", + "arnNamespace": "sms", + "cloudFormationName": "SMS", + "cloudTrailEventSource": "sms.amazonaws.com", + "endpointPrefix": "sms" + }, + "aws.auth#sigv4": { + "name": "sms" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "\n

\n Product update\n

\n

As of March 31, 2022, Amazon Web Services will discontinue Server Migration Service (Amazon Web Services SMS).\n Going forward, we recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration\n service for lift-and-shift migrations.

\n

You can initiate new migration jobs in Server Migration Service until January 1, 2022.\n Complete these active migration projects by March 31, 2022. For more information, see\n When\n to Choose AWS Application Migration Service.

\n
\n \n

Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your\n on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following \n resources:

\n ", + "smithy.api#title": "AWS Server Migration Service", + "smithy.api#xmlNamespace": { + "uri": "http://ec2.amazon.com/servermigration/2016-10-24/" + } + }, "version": "2016-10-24", "operations": [ { @@ -138,25 +156,7 @@ { "target": "com.amazonaws.sms#UpdateReplicationJob" } - ], - "traits": { - "aws.api#service": { - "sdkId": "SMS", - "arnNamespace": "sms", - "cloudFormationName": "SMS", - "cloudTrailEventSource": "sms.amazonaws.com", - "endpointPrefix": "sms" - }, - "aws.auth#sigv4": { - "name": "sms" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Server Migration Service\n

AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your\n on-premises workloads to AWS. To learn more about AWS SMS, see the following \n resources:

\n ", - "smithy.api#title": "AWS Server Migration Service", - "smithy.api#xmlNamespace": { - "uri": "http://ec2.amazon.com/servermigration/2016-10-24/" - } - } + ] }, "com.amazonaws.sms#AmiId": { "type": "string" @@ -492,7 +492,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the service role in the customer's account used by AWS SMS.

" + "smithy.api#documentation": "

The name of the service role in the customer's account used by Server Migration Service.

" } }, "totalServerGroups": { @@ -789,7 +789,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the service role in the customer's account to be used by AWS SMS.

" + "smithy.api#documentation": "

The name of the service role in the customer's account to be used by Server Migration Service.

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

Creates a replication job. The replication job schedules periodic replication runs\n to replicate your server to AWS. Each replication run creates an Amazon Machine Image\n (AMI).

" + "smithy.api#documentation": "

Creates a replication job. The replication job schedules periodic replication runs\n to replicate your server to Amazon Web Services. Each replication run creates an Amazon Machine Image\n (AMI).

" } }, "com.amazonaws.sms#CreateReplicationJobRequest": { @@ -914,7 +914,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM role to be used by the AWS SMS.

" + "smithy.api#documentation": "

The name of the IAM role to be used by the Server Migration Service.

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

Deletes the specified application. Optionally deletes the launched stack associated with\n the application and all AWS SMS replication jobs for servers in the application.

" + "smithy.api#documentation": "

Deletes the specified application. Optionally deletes the launched stack associated with\n the application and all Server Migration Service replication jobs for servers in the application.

" } }, "com.amazonaws.sms#DeleteAppLaunchConfiguration": { @@ -1169,7 +1169,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified replication job.

\n

After you delete a replication job, there are no further replication runs. AWS\n deletes the contents of the Amazon S3 bucket used to store AWS SMS artifacts. The AMIs created\n by the replication runs are not deleted.

" + "smithy.api#documentation": "

Deletes the specified replication job.

\n

After you delete a replication job, there are no further replication runs. Amazon Web Services\n deletes the contents of the Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs created\n by the replication runs are not deleted.

" } }, "com.amazonaws.sms#DeleteReplicationJobRequest": { @@ -1248,7 +1248,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disassociates the specified connector from AWS SMS.

\n

After you disassociate a connector, it is no longer available to support\n replication jobs.

" + "smithy.api#documentation": "

Disassociates the specified connector from Server Migration Service.

\n

After you disassociate a connector, it is no longer available to support\n replication jobs.

" } }, "com.amazonaws.sms#DisassociateConnectorRequest": { @@ -1275,6 +1275,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "DryRunOperationException", + "httpResponseCode": 412 + }, "smithy.api#documentation": "

The user has the required permissions, so the request would have succeeded, \n but a dry run was performed.

", "smithy.api#error": "client", "smithy.api#httpError": 412 @@ -1402,7 +1406,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates an AWS CloudFormation template based on the current launch configuration and writes it to\n an Amazon S3 object in the customer’s Amazon S3 bucket.

" + "smithy.api#documentation": "

Generates an CloudFormation template based on the current launch configuration and writes it to\n an Amazon S3 object in the customer’s Amazon S3 bucket.

" } }, "com.amazonaws.sms#GenerateTemplateRequest": { @@ -1411,13 +1415,13 @@ "appId": { "target": "com.amazonaws.sms#AppId", "traits": { - "smithy.api#documentation": "

The ID of the application associated with the AWS CloudFormation template.

" + "smithy.api#documentation": "

The ID of the application associated with the CloudFormation template.

" } }, "templateFormat": { "target": "com.amazonaws.sms#OutputFormat", "traits": { - "smithy.api#documentation": "

The format for generating the AWS CloudFormation template.

" + "smithy.api#documentation": "

The format for generating the CloudFormation template.

" } } } @@ -1514,7 +1518,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the service role in the customer's account that AWS CloudFormation uses to launch the\n application.

" + "smithy.api#documentation": "

The name of the service role in the customer's account that CloudFormation uses to launch the\n application.

" } }, "autoLaunch": { @@ -1740,7 +1744,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the connectors registered with the AWS SMS.

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

Describes the connectors registered with the Server Migration Service.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -2038,7 +2042,7 @@ } ], "traits": { - "smithy.api#documentation": "

Allows application import from AWS Migration Hub.

" + "smithy.api#documentation": "

Allows application import from Migration Hub.

" } }, "com.amazonaws.sms#ImportAppCatalogRequest": { @@ -2047,7 +2051,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the service role. If you omit this parameter, we create a service-linked role\n for AWS Migration Hub in your account. Otherwise, the role that you provide must have the policy\n and trust policy described in the AWS Migration Hub User Guide.

" + "smithy.api#documentation": "

The name of the service role. If you omit this parameter, we create a service-linked role\n for Migration Hub in your account. Otherwise, the role that you provide must have the policy\n and trust policy described in the Migration Hub User Guide.

" } } } @@ -2099,7 +2103,7 @@ "com.amazonaws.sms#InstanceId": { "type": "string", "traits": { - "smithy.api#pattern": "(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)" + "smithy.api#pattern": "^(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)$" } }, "com.amazonaws.sms#InstanceType": { @@ -2113,6 +2117,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InternalError", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

An internal error occurred.

", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -2126,6 +2134,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidParameter", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

A specified parameter is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2163,7 +2175,7 @@ } ], "traits": { - "smithy.api#documentation": "

Launches the specified application as a stack in AWS CloudFormation.

" + "smithy.api#documentation": "

Launches the specified application as a stack in CloudFormation.

" } }, "com.amazonaws.sms#LaunchAppRequest": { @@ -2317,6 +2329,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "MissingRequiredParameter", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

A required parameter is missing.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2333,6 +2349,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "NoConnectorsAvailable", + "httpResponseCode": 430 + }, "smithy.api#documentation": "

There are no connectors available.

", "smithy.api#error": "client", "smithy.api#httpError": 430 @@ -2400,7 +2420,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides information to AWS SMS about whether application validation is successful.

" + "smithy.api#documentation": "

Provides information to Server Migration Service about whether application validation is successful.

" } }, "com.amazonaws.sms#NotifyAppValidationOutputRequest": { @@ -2439,6 +2459,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationNotPermitted", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

This operation is not allowed.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -2500,7 +2524,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of service role in the customer's account that AWS CloudFormation uses to launch the\n application.

" + "smithy.api#documentation": "

The name of service role in the customer's account that CloudFormation uses to launch the\n application.

" } }, "autoLaunch": { @@ -2688,7 +2712,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM role to be used by AWS SMS.

" + "smithy.api#documentation": "

The name of the IAM role to be used by Server Migration Service.

" } }, "latestAmiId": { @@ -2752,6 +2776,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationJobAlreadyExists", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The specified replication job already exists.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2777,6 +2805,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationJobNotFound", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

The specified replication job does not exist.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2915,6 +2947,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationRunLimitExceeded", + "httpResponseCode": 429 + }, "smithy.api#documentation": "

You have exceeded the number of on-demand replication runs you can request in a\n 24-hour period.

", "smithy.api#error": "client", "smithy.api#httpError": 429 @@ -3090,7 +3126,7 @@ "command": { "target": "com.amazonaws.sms#Command", "traits": { - "smithy.api#documentation": "

The command to run the validation script

" + "smithy.api#documentation": "

The command to run the validation script.

" } }, "executionTimeoutSeconds": { @@ -3174,6 +3210,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ServerCannotBeReplicated", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The specified server cannot be replicated.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -3343,7 +3383,7 @@ "logicalId": { "target": "com.amazonaws.sms#LogicalId", "traits": { - "smithy.api#documentation": "

The logical ID of the server in the AWS CloudFormation template.

" + "smithy.api#documentation": "

The logical ID of the server in the CloudFormation template.

" } }, "vpc": { @@ -3829,6 +3869,10 @@ "type": "structure", "members": {}, "traits": { + "aws.protocols#awsQueryError": { + "code": "TemporarilyUnavailable", + "httpResponseCode": 503 + }, "smithy.api#documentation": "

The service is temporarily unavailable.

", "smithy.api#error": "server", "smithy.api#httpError": 503 @@ -3901,6 +3945,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "UnauthorizedOperation", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

You lack permissions needed to perform this operation. Check your IAM policies,\n and ensure that you are using the correct access keys.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -3959,7 +4007,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the service role in the customer's account used by AWS SMS.

" + "smithy.api#documentation": "

The name of the service role in the customer's account used by Server Migration Service.

" } }, "serverGroups": { @@ -4068,7 +4116,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM role to be used by AWS SMS.

" + "smithy.api#documentation": "

The name of the IAM role to be used by Server Migration Service.

" } }, "description": { diff --git a/codegen/sdk-codegen/aws-models/support.2013-04-15.json b/codegen/sdk-codegen/aws-models/support.2013-04-15.json index e7247112f43..00cd9b6facb 100644 --- a/codegen/sdk-codegen/aws-models/support.2013-04-15.json +++ b/codegen/sdk-codegen/aws-models/support.2013-04-15.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.support#AWSSupport_20130415": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Support", + "arnNamespace": "support", + "cloudFormationName": "Support", + "cloudTrailEventSource": "support.amazonaws.com", + "endpointPrefix": "support" + }, + "aws.auth#sigv4": { + "name": "support" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Web Services Support\n

The Amazon Web Services Support API Reference is intended for programmers who need detailed\n information about the Amazon Web Services Support operations and data types. You can use the API to manage\n your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return\n results in JSON format.

\n \n \n \n

The Amazon Web Services Support service also exposes a set of Trusted Advisor features. You can\n retrieve a list of checks and their descriptions, get check results, specify checks to\n refresh, and get the refresh status of checks.

\n

The following list describes the Amazon Web Services Support case management operations:

\n \n

The following list describes the operations available from the Amazon Web Services Support service for\n Trusted Advisor:

\n \n

For authentication of requests, Amazon Web Services Support uses Signature Version 4 Signing\n Process.

\n

See About the\n Amazon Web Services Support API in the Amazon Web Services Support User Guide for\n information about how to use this service to create and manage your support cases, and\n how to call Trusted Advisor for results of checks on your resources.

", + "smithy.api#title": "AWS Support", + "smithy.api#xmlNamespace": { + "uri": "http://support.amazonaws.com/doc/2013-04-15/" + } + }, "version": "2013-04-15", "operations": [ { @@ -75,25 +93,7 @@ { "target": "com.amazonaws.support#ResolveCase" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Support", - "arnNamespace": "support", - "cloudFormationName": "Support", - "cloudTrailEventSource": "support.amazonaws.com", - "endpointPrefix": "support" - }, - "aws.auth#sigv4": { - "name": "support" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Support\n

The AWS Support API Reference is intended for programmers who need detailed\n information about the AWS Support operations and data types. You can use the API to manage\n your support cases programmatically. The AWS Support API uses HTTP methods that return\n results in JSON format.

\n \n \n \n

The AWS Support service also exposes a set of AWS Trusted Advisor features. You can\n retrieve a list of checks and their descriptions, get check results, specify checks to\n refresh, and get the refresh status of checks.

\n

The following list describes the AWS Support case management operations:

\n \n

The following list describes the operations available from the AWS Support service for\n Trusted Advisor:

\n \n

For authentication of requests, AWS Support uses Signature Version 4 Signing\n Process.

\n

See About the\n AWS Support API in the AWS Support User Guide for\n information about how to use this service to create and manage your support cases, and\n how to call Trusted Advisor for results of checks on your resources.

", - "smithy.api#title": "AWS Support", - "smithy.api#xmlNamespace": { - "uri": "http://support.amazonaws.com/doc/2013-04-15/" - } - } + ] }, "com.amazonaws.support#AddAttachmentsToSet": { "type": "operation", @@ -121,7 +121,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds one or more attachments to an attachment set.

\n

An attachment set is a temporary container for attachments that you add to a case or\n case communication. The set is available for 1 hour after it's created. The\n expiryTime returned in the response is when the set expires.

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

Adds one or more attachments to an attachment set.

\n

An attachment set is a temporary container for attachments that you add to a case or\n case communication. The set is available for 1 hour after it's created. The\n expiryTime returned in the response is when the set expires.

\n \n \n " } }, "com.amazonaws.support#AddAttachmentsToSetRequest": { @@ -185,7 +185,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds additional customer communication to an AWS Support case. Use the caseId\n parameter to identify the case to which to add communication. You can list a set of\n email addresses to copy on the communication by using the ccEmailAddresses\n parameter. The communicationBody value contains the text of the\n communication.

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

Adds additional customer communication to an Amazon Web Services Support case. Use the caseId\n parameter to identify the case to which to add communication. You can list a set of\n email addresses to copy on the communication by using the ccEmailAddresses\n parameter. The communicationBody value contains the text of the\n communication.

\n \n \n \n " } }, "com.amazonaws.support#AddCommunicationToCaseRequest": { @@ -401,13 +401,13 @@ "displayId": { "target": "com.amazonaws.support#DisplayId", "traits": { - "smithy.api#documentation": "

The ID displayed for the case in the AWS Support Center. This is a numeric\n string.

" + "smithy.api#documentation": "

The ID displayed for the case in the Amazon Web Services Support Center. This is a numeric\n string.

" } }, "subject": { "target": "com.amazonaws.support#Subject", "traits": { - "smithy.api#documentation": "

The subject line for the case in the AWS Support Center.

" + "smithy.api#documentation": "

The subject line for the case in the Amazon Web Services Support Center.

" } }, "status": { @@ -419,7 +419,7 @@ "serviceCode": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

The code for the AWS service. You can get a list of codes and the corresponding\n service names by calling DescribeServices.

" + "smithy.api#documentation": "

The code for the Amazon Web Services service. You can get a list of codes and the corresponding\n service names by calling DescribeServices.

" } }, "categoryCode": { @@ -443,13 +443,13 @@ "timeCreated": { "target": "com.amazonaws.support#TimeCreated", "traits": { - "smithy.api#documentation": "

The time that the case was created in the AWS Support Center.

" + "smithy.api#documentation": "

The time that the case was created in the Amazon Web Services Support Center.

" } }, "recentCommunications": { "target": "com.amazonaws.support#RecentCaseCommunications", "traits": { - "smithy.api#documentation": "

The five most recent communications between you and AWS Support Center, including the\n IDs of any attachments to the communications. Also includes a nextToken\n that you can use to retrieve earlier communications.

" + "smithy.api#documentation": "

The five most recent communications between you and Amazon Web Services Support Center, including the\n IDs of any attachments to the communications. Also includes a nextToken\n that you can use to retrieve earlier communications.

" } }, "ccEmailAddresses": { @@ -461,12 +461,12 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" + "smithy.api#documentation": "

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

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

A JSON-formatted object that contains the metadata for a support case. It is contained\n in the response from a DescribeCases request. CaseDetails contains the following fields:

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

A JSON-formatted object that contains the metadata for a support case. It is contained\n in the response from a DescribeCases request. CaseDetails contains the following fields:

\n " } }, "com.amazonaws.support#CaseId": { @@ -525,7 +525,7 @@ } }, "traits": { - "smithy.api#documentation": "

A JSON-formatted name/value pair that represents the category name and category code\n of the problem, selected from the DescribeServices response for each\n AWS service.

" + "smithy.api#documentation": "

A JSON-formatted name/value pair that represents the category name and category code\n of the problem, selected from the DescribeServices response for each\n Amazon Web Services service.

" } }, "com.amazonaws.support#CategoryCode": { @@ -561,13 +561,13 @@ "body": { "target": "com.amazonaws.support#CommunicationBody", "traits": { - "smithy.api#documentation": "

The text of the communication between the customer and AWS Support.

" + "smithy.api#documentation": "

The text of the communication between the customer and Amazon Web Services Support.

" } }, "submittedBy": { "target": "com.amazonaws.support#SubmittedBy", "traits": { - "smithy.api#documentation": "

The identity of the account that submitted, or responded to, the support case.\n Customer entries include the role or IAM user as well as the email address. For example,\n \"AdminRole (Role) . Entries from the AWS Support team display\n \"Amazon Web Services,\" and don't show an email address.\n

" + "smithy.api#documentation": "

The identity of the account that submitted, or responded to, the support case.\n Customer entries include the role or IAM user as well as the email address. For example,\n \"AdminRole (Role) . Entries from the Amazon Web Services Support team display\n \"Amazon Web Services,\" and don't show an email address.\n

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

Creates a case in the AWS Support Center. This operation is similar to how you create a case\n in the AWS Support Center Create\n Case page.

\n

The AWS Support API doesn't support requesting service limit increases. You can submit a\n service limit increase in the following ways:

\n \n

A successful CreateCase request returns an AWS Support case number. You can use\n the DescribeCases operation and specify the case number to get\n existing AWS Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or\n attachments to an existing case.

\n

The caseId is separate from the displayId that appears in\n the AWS Support Center. Use the DescribeCases operation to get the displayId.

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

Creates a case in the Amazon Web Services Support Center. This operation is similar to how you create a case\n in the Amazon Web Services Support Center Create\n Case page.

\n

The Amazon Web Services Support API doesn't support requesting service limit increases. You can submit a\n service limit increase in the following ways:

\n \n

A successful CreateCase request returns an Amazon Web Services Support case number. You can use\n the DescribeCases operation and specify the case number to get\n existing Amazon Web Services Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or\n attachments to an existing case.

\n

The caseId is separate from the displayId that appears in\n the Amazon Web Services Support Center. Use the DescribeCases operation to get the displayId.

\n \n \n " } }, "com.amazonaws.support#CreateCaseRequest": { @@ -628,45 +628,45 @@ "subject": { "target": "com.amazonaws.support#Subject", "traits": { - "smithy.api#documentation": "

The title of the support case. The title appears in the Subject field on the AWS Support Center Create Case page.

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

The title of the support case. The title appears in the Subject field on the Amazon Web Services Support Center Create Case page.

", "smithy.api#required": {} } }, "serviceCode": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

The code for the AWS service. You can use the DescribeServices\n operation to get the possible serviceCode values.

" + "smithy.api#documentation": "

The code for the Amazon Web Services service. You can use the DescribeServices\n operation to get the possible serviceCode values.

" } }, "severityCode": { "target": "com.amazonaws.support#SeverityCode", "traits": { - "smithy.api#documentation": "

A value that indicates the urgency of the case. This value determines the response\n time according to your service level agreement with AWS Support. You can use the DescribeSeverityLevels operation to get the possible values for\n severityCode.

\n

For more information, see SeverityLevel and Choosing a\n Severity in the AWS Support User Guide.

\n \n

The availability of severity levels depends on the support plan for the AWS\n account.

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

A value that indicates the urgency of the case. This value determines the response\n time according to your service level agreement with Amazon Web Services Support. You can use the DescribeSeverityLevels operation to get the possible values for\n severityCode.

\n

For more information, see SeverityLevel and Choosing a\n Severity in the Amazon Web Services Support User Guide.

\n \n

The availability of severity levels depends on the support plan for the\n Amazon Web Services account.

\n
" } }, "categoryCode": { "target": "com.amazonaws.support#CategoryCode", "traits": { - "smithy.api#documentation": "

The category of problem for the support case. You also use the DescribeServices operation to get the category code for a service. Each\n AWS service defines its own set of category codes.

" + "smithy.api#documentation": "

The category of problem for the support case. You also use the DescribeServices operation to get the category code for a service. Each\n Amazon Web Services service defines its own set of category codes.

" } }, "communicationBody": { "target": "com.amazonaws.support#CommunicationBody", "traits": { - "smithy.api#documentation": "

The communication body text that describes the issue. This text appears in the\n Description field on the AWS Support Center Create Case page.

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

The communication body text that describes the issue. This text appears in the\n Description field on the Amazon Web Services Support Center Create Case page.

", "smithy.api#required": {} } }, "ccEmailAddresses": { "target": "com.amazonaws.support#CcEmailAddressList", "traits": { - "smithy.api#documentation": "

A list of email addresses that AWS Support copies on case correspondence. AWS Support\n identifies the account that creates the case when you specify your AWS credentials in an\n HTTP POST method or use the AWS SDKs.\n

" + "smithy.api#documentation": "

A list of email addresses that Amazon Web Services Support copies on case correspondence. Amazon Web Services Support\n identifies the account that creates the case when you specify your Amazon Web Services credentials in an\n HTTP POST method or use the Amazon Web Services SDKs.\n

" } }, "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

The language in which AWS Support handles the case. You must specify the ISO 639-1\n code for the language parameter if you want support in that language.\n Currently, English (\"en\") and Japanese (\"ja\") are supported.

" + "smithy.api#documentation": "

The language in which Amazon Web Services Support handles the case. You must specify the ISO 639-1\n code for the language parameter if you want support in that language.\n Currently, English (\"en\") and Japanese (\"ja\") are supported.

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

Returns the attachment that has the specified ID. Attachments can include screenshots,\n error logs, or other files that describe your issue. Attachment IDs are generated by the\n case management system when you add an attachment to a case or case communication.\n Attachment IDs are returned in the AttachmentDetails objects that are\n returned by the DescribeCommunications operation.

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

Returns the attachment that has the specified ID. Attachments can include screenshots,\n error logs, or other files that describe your issue. Attachment IDs are generated by the\n case management system when you add an attachment to a case or case communication.\n Attachment IDs are returned in the AttachmentDetails objects that are\n returned by the DescribeCommunications operation.

\n \n \n " } }, "com.amazonaws.support#DescribeAttachmentLimitExceeded": { @@ -781,7 +781,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of cases that you specify by passing one or more case IDs. You can use\n the afterTime and beforeTime parameters to filter the cases by\n date. You can set values for the includeResolvedCases and\n includeCommunications parameters to specify how much information to\n return.

\n

The response returns the following in JSON format:

\n \n

Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request might return an error.

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

Returns a list of cases that you specify by passing one or more case IDs. You can use\n the afterTime and beforeTime parameters to filter the cases by\n date. You can set values for the includeResolvedCases and\n includeCommunications parameters to specify how much information to\n return.

\n

The response returns the following in JSON format:

\n \n

Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request might return an error.

\n \n \n ", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -802,7 +802,7 @@ "displayId": { "target": "com.amazonaws.support#DisplayId", "traits": { - "smithy.api#documentation": "

The ID displayed for a case in the AWS Support Center user interface.

" + "smithy.api#documentation": "

The ID displayed for a case in the Amazon Web Services Support Center user interface.

" } }, "afterTime": { @@ -838,7 +838,7 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" + "smithy.api#documentation": "

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

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

Returns communications and attachments for one or more support cases. Use the\n afterTime and beforeTime parameters to filter by date. You\n can use the caseId parameter to restrict the results to a specific\n case.

\n

Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request for data might cause an error.

\n

You can use the maxResults and nextToken parameters to\n control the pagination of the results. Set maxResults to the number of\n cases that you want to display on each page, and use nextToken to specify\n the resumption of pagination.

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

Returns communications and attachments for one or more support cases. Use the\n afterTime and beforeTime parameters to filter by date. You\n can use the caseId parameter to restrict the results to a specific\n case.

\n

Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request for data might cause an error.

\n

You can use the maxResults and nextToken parameters to\n control the pagination of the results. Set maxResults to the number of\n cases that you want to display on each page, and use nextToken to specify\n the resumption of pagination.

\n \n \n ", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -965,7 +965,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the current list of AWS services and a list of service categories for each\n service. You then use service names and categories in your CreateCase\n requests. Each AWS service has its own set of categories.

\n

The service codes and category codes correspond to the values that appear in the\n Service and Category lists on the AWS Support Center Create Case page. The values in those fields\n don't necessarily match the service codes and categories returned by the\n DescribeServices operation. Always use the service codes and categories\n that the DescribeServices operation returns, so that you have the most\n recent set of service and category codes.

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

Returns the current list of Amazon Web Services services and a list of service categories for each\n service. You then use service names and categories in your CreateCase\n requests. Each Amazon Web Services service has its own set of categories.

\n

The service codes and category codes correspond to the values that appear in the\n Service and Category lists on the Amazon Web Services Support Center Create Case page. The values in those fields\n don't necessarily match the service codes and categories returned by the\n DescribeServices operation. Always use the service codes and categories\n that the DescribeServices operation returns, so that you have the most\n recent set of service and category codes.

\n \n \n " } }, "com.amazonaws.support#DescribeServicesRequest": { @@ -974,13 +974,13 @@ "serviceCodeList": { "target": "com.amazonaws.support#ServiceCodeList", "traits": { - "smithy.api#documentation": "

A JSON-formatted list of service codes available for AWS services.

" + "smithy.api#documentation": "

A JSON-formatted list of service codes available for Amazon Web Services services.

" } }, "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" + "smithy.api#documentation": "

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" } } } @@ -991,12 +991,12 @@ "services": { "target": "com.amazonaws.support#ServiceList", "traits": { - "smithy.api#documentation": "

A JSON-formatted list of AWS services.

" + "smithy.api#documentation": "

A JSON-formatted list of Amazon Web Services services.

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

The list of AWS services returned by the DescribeServices\n operation.

" + "smithy.api#documentation": "

The list of Amazon Web Services services returned by the DescribeServices\n operation.

" } }, "com.amazonaws.support#DescribeSeverityLevels": { @@ -1013,7 +1013,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the list of severity levels that you can assign to a support case. The severity\n level for a case is also a field in the CaseDetails data type that you\n include for a CreateCase request.

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

Returns the list of severity levels that you can assign to a support case. The severity\n level for a case is also a field in the CaseDetails data type that you\n include for a CreateCase request.

\n \n \n " } }, "com.amazonaws.support#DescribeSeverityLevelsRequest": { @@ -1022,7 +1022,7 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" + "smithy.api#documentation": "

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" } } } @@ -1033,7 +1033,7 @@ "severityLevels": { "target": "com.amazonaws.support#SeverityLevelsList", "traits": { - "smithy.api#documentation": "

The available severity levels for the support case. Available severity levels are\n defined by your service level agreement with AWS.

" + "smithy.api#documentation": "

The available severity levels for the support case. Available severity levels are\n defined by your service level agreement with Amazon Web Services.

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

Returns the refresh status of the AWS Trusted Advisor checks that have the specified check\n IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

\n

Some checks are refreshed automatically, and you can't return their refresh statuses\n by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you\n call this operation for these checks, you might see an\n InvalidParameterValue error.

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

Returns the refresh status of the Trusted Advisor checks that have the specified check\n IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

\n

Some checks are refreshed automatically, and you can't return their refresh statuses\n by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you\n call this operation for these checks, you might see an\n InvalidParameterValue error.

\n \n \n " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckRefreshStatusesRequest": { @@ -1099,7 +1099,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the results of the AWS Trusted Advisor check that has the specified check ID. You\n can get the check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

\n

The response contains a TrustedAdvisorCheckResult object, which\n contains these three objects:

\n \n

In addition, the response contains these fields:

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

Returns the results of the Trusted Advisor check that has the specified check ID. You\n can get the check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

\n

The response contains a TrustedAdvisorCheckResult object, which\n contains these three objects:

\n \n

In addition, the response contains these fields:

\n \n \n \n \n " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckResultRequest": { @@ -1115,7 +1115,7 @@ "language": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

" + "smithy.api#documentation": "

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

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

Returns the results for the AWS Trusted Advisor check summaries for the check IDs that you\n specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

\n

The response contains an array of TrustedAdvisorCheckSummary\n objects.

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

Returns the results for the Trusted Advisor check summaries for the check IDs that you\n specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

\n

The response contains an array of TrustedAdvisorCheckSummary\n objects.

\n \n \n " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckSummariesRequest": { @@ -1195,7 +1195,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about all available AWS Trusted Advisor checks, including the name, ID,\n category, description, and metadata. You must specify a language code. The AWS Support API\n currently supports English (\"en\") and Japanese (\"ja\"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the\n AWS Region to us-east-1.

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

Returns information about all available Trusted Advisor checks, including the name, ID,\n category, description, and metadata. You must specify a language code. The Amazon Web Services Support API\n currently supports English (\"en\") and Japanese (\"ja\"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the\n Amazon Web Services Region to us-east-1.

\n \n \n \n \n " } }, "com.amazonaws.support#DescribeTrustedAdvisorChecksRequest": { @@ -1204,7 +1204,7 @@ "language": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

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

The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

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

Refreshes the AWS Trusted Advisor check that you specify using the check ID. You can get the\n check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

\n \n

Some checks are refreshed automatically. If you call the\n RefreshTrustedAdvisorCheck operation to refresh them, you might see\n the InvalidParameterValue error.

\n
\n

The response contains a TrustedAdvisorCheckRefreshStatus\n object.

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

Refreshes the Trusted Advisor check that you specify using the check ID. You can get the\n check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

\n \n

Some checks are refreshed automatically. If you call the\n RefreshTrustedAdvisorCheck operation to refresh them, you might see\n the InvalidParameterValue error.

\n
\n

The response contains a TrustedAdvisorCheckRefreshStatus\n object.

\n \n \n " } }, "com.amazonaws.support#RefreshTrustedAdvisorCheckRequest": { @@ -1370,7 +1370,7 @@ } ], "traits": { - "smithy.api#documentation": "

Resolves a support case. This operation takes a caseId and returns the\n initial and final state of the case.

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

Resolves a support case. This operation takes a caseId and returns the\n initial and final state of the case.

\n \n \n " } }, "com.amazonaws.support#ResolveCaseRequest": { @@ -1413,30 +1413,30 @@ "code": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

The code for an AWS service returned by the DescribeServices\n response. The name element contains the corresponding friendly name.

" + "smithy.api#documentation": "

The code for an Amazon Web Services service returned by the DescribeServices\n response. The name element contains the corresponding friendly name.

" } }, "name": { "target": "com.amazonaws.support#ServiceName", "traits": { - "smithy.api#documentation": "

The friendly name for an AWS service. The code element contains the\n corresponding code.

" + "smithy.api#documentation": "

The friendly name for an Amazon Web Services service. The code element contains the\n corresponding code.

" } }, "categories": { "target": "com.amazonaws.support#CategoryList", "traits": { - "smithy.api#documentation": "

A list of categories that describe the type of support issue a case describes.\n Categories consist of a category name and a category code. Category names and codes are\n passed to AWS Support when you call CreateCase.

" + "smithy.api#documentation": "

A list of categories that describe the type of support issue a case describes.\n Categories consist of a category name and a category code. Category names and codes are\n passed to Amazon Web Services Support when you call CreateCase.

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

Information about an AWS service returned by the DescribeServices\n operation.

" + "smithy.api#documentation": "

Information about an Amazon Web Services service returned by the DescribeServices\n operation.

" } }, "com.amazonaws.support#ServiceCode": { "type": "string", "traits": { - "smithy.api#pattern": "[0-9a-z\\-_]+" + "smithy.api#pattern": "^[0-9a-z\\-_]+$" } }, "com.amazonaws.support#ServiceCodeList": { @@ -1475,12 +1475,12 @@ "name": { "target": "com.amazonaws.support#SeverityLevelName", "traits": { - "smithy.api#documentation": "

The name of the severity level that corresponds to the severity level code.

\n \n

The values returned by the API are different from the values that appear in the\n AWS Support Center. For example, the API uses the code low, but the name\n appears as General guidance in Support Center.

\n

The following are the API code names and how they appear in the console:

\n \n
\n

For more information, see Choosing a\n severity in the AWS Support User Guide.

" + "smithy.api#documentation": "

The name of the severity level that corresponds to the severity level code.

\n \n

The values returned by the API are different from the values that appear in the\n Amazon Web Services Support Center. For example, the API uses the code low, but the name\n appears as General guidance in Support Center.

\n

The following are the API code names and how they appear in the console:

\n \n
\n

For more information, see Choosing a\n severity in the Amazon Web Services Support User Guide.

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

A code and name pair that represents the severity level of a support case. The\n available values depend on the support plan for the account. For more information, see\n Choosing a\n severity in the AWS Support User Guide.

" + "smithy.api#documentation": "

A code and name pair that represents the severity level of a support case. The\n available values depend on the support plan for the account. For more information, see\n Choosing a\n severity in the Amazon Web Services Support User Guide.

" } }, "com.amazonaws.support#SeverityLevelCode": { @@ -1752,7 +1752,7 @@ "region": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

The AWS Region in which the identified resource is located.

" + "smithy.api#documentation": "

The Amazon Web Services Region in which the identified resource is located.

" } }, "resourceId": { @@ -1765,7 +1765,7 @@ "isSuppressed": { "target": "com.amazonaws.support#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether the AWS resource was ignored by Trusted Advisor because it was\n marked as suppressed by the user.

" + "smithy.api#documentation": "

Specifies whether the Amazon Web Services resource was ignored by Trusted Advisor because it was\n marked as suppressed by the user.

" } }, "metadata": { @@ -1792,34 +1792,34 @@ "resourcesProcessed": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

The number of AWS resources that were analyzed by the Trusted Advisor check.

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

The number of Amazon Web Services resources that were analyzed by the Trusted Advisor check.

", "smithy.api#required": {} } }, "resourcesFlagged": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

The number of AWS resources that were flagged (listed) by the Trusted Advisor\n check.

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

The number of Amazon Web Services resources that were flagged (listed) by the Trusted Advisor\n check.

", "smithy.api#required": {} } }, "resourcesIgnored": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

The number of AWS resources ignored by Trusted Advisor because information was\n unavailable.

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

The number of Amazon Web Services resources ignored by Trusted Advisor because information was\n unavailable.

", "smithy.api#required": {} } }, "resourcesSuppressed": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

The number of AWS resources ignored by Trusted Advisor because they were marked as\n suppressed by the user.

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

The number of Amazon Web Services resources ignored by Trusted Advisor because they were marked as\n suppressed by the user.

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

Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

" + "smithy.api#documentation": "

Details about Amazon Web Services resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

" } } } diff --git a/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json b/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json index 3fe954d1f98..68a4787dbaf 100644 --- a/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json +++ b/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json @@ -301,7 +301,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" } }, "LoggingRole": { @@ -316,6 +316,12 @@ "smithy.api#documentation": "

Specifies the file transfer protocol or protocols over which your file transfer protocol\n client can connect to your server's endpoint. The available protocols are:

\n\n \n\n \n

If you select FTPS, you must choose a certificate stored in Amazon Web Services Certificate\n Manager (ACM) which is used to identify your server when clients connect to it over\n FTPS.

\n\n

If Protocol includes either FTP or FTPS, then the\n EndpointType must be VPC and the\n IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

\n\n

If Protocol includes FTP, then\n AddressAllocationIds cannot be associated.

\n\n

If Protocol is set only to SFTP, the EndpointType\n can be set to PUBLIC and the IdentityProviderType can be set to\n SERVICE_MANAGED.

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

The protocol settings that are configured for your server.

\n

\n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

\n

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

" + } + }, "SecurityPolicyName": { "target": "com.amazonaws.transfer#SecurityPolicyName", "traits": { @@ -427,7 +433,7 @@ "SshPublicKeyBody": { "target": "com.amazonaws.transfer#SshPublicKeyBody", "traits": { - "smithy.api#documentation": "

The public portion of the Secure Shell (SSH) key used to authenticate the user to the\n server.

" + "smithy.api#documentation": "

The public portion of the Secure Shell (SSH) key used to authenticate the user to the\n server.

\n \n

\n Currently, Transfer Family does not accept elliptical curve keys (keys beginning with ecdsa).\n

\n
" } }, "Tags": { @@ -1370,7 +1376,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" } }, "LoggingRole": { @@ -1925,7 +1931,7 @@ "DirectoryId": { "target": "com.amazonaws.transfer#DirectoryId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.

" + "smithy.api#documentation": "

The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

" } }, "Function": { @@ -2738,7 +2744,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "smithy.api#documentation": "

Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

\n

Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

\n

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

\n

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" } }, "EndpointType": { @@ -3057,10 +3063,16 @@ "traits": { "smithy.api#documentation": "

\n Indicates passive mode, for FTP and FTPS protocols.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n For example:\n

\n

\n \n aws transfer update-server --protocol-details PassiveIp=0.0.0.0\n \n

\n

Replace \n 0.0.0.0\n in the example above with the actual IP address you want to use.

\n \n

\n If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family.\n

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

A property used with Transfer servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret\n key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent,\n negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls.\n If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

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

\n The protocol settings that are configured for your server.\n

\n \n

\n This type is only valid in the UpdateServer API.\n

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

\n The protocol settings that are configured for your server.\n

" } }, "com.amazonaws.transfer#Protocols": { @@ -3924,6 +3936,25 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.transfer#TlsSessionResumptionMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "DISABLED" + }, + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "ENFORCED", + "name": "ENFORCED" + } + ] + } + }, "com.amazonaws.transfer#TransferService": { "type": "service", "traits": { @@ -4233,7 +4264,7 @@ "ProtocolDetails": { "target": "com.amazonaws.transfer#ProtocolDetails", "traits": { - "smithy.api#documentation": "

\n The protocol settings that are configured for your server.\n

\n

\n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

" + "smithy.api#documentation": "

\n The protocol settings that are configured for your server.\n

\n

\n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

\n

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

" } }, "EndpointDetails": { diff --git a/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json b/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json index 95afd2ab4b9..607f451dea8 100644 --- a/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json +++ b/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json @@ -1054,6 +1054,46 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the email monitoring configuration for a specified organization.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

The ID of the organization from which the email monitoring configuration is deleted.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.workmail#DeleteGroup": { "type": "operation", "input": { @@ -1604,6 +1644,62 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + }, + { + "target": "com.amazonaws.workmail#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the current email monitoring configuration for a specified organization.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

The ID of the organization for which the email monitoring configuration is described.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": { + "RoleArn": { + "target": "com.amazonaws.workmail#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

" + } + }, + "LogGroupArn": { + "target": "com.amazonaws.workmail#LogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

" + } + } + } + }, "com.amazonaws.workmail#DescribeGroup": { "type": "operation", "input": { @@ -4269,6 +4365,16 @@ } } }, + "com.amazonaws.workmail#LogGroupArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 47, + "max": 562 + }, + "smithy.api#pattern": "^arn:aws:logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([\\.\\-_/#A-Za-z0-9]+):\\*$" + } + }, "com.amazonaws.workmail#MailDomainInUseException": { "type": "structure", "members": { @@ -5062,6 +5168,63 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#PutEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + }, + { + "target": "com.amazonaws.workmail#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates or updates the email monitoring configuration for a specified organization.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#PutEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

The ID of the organization for which the email monitoring configuration is set.

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

The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

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

The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#PutEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.workmail#PutInboundDmarcSettings": { "type": "operation", "input": { @@ -6515,6 +6678,21 @@ }, "com.amazonaws.workmail#WorkMailService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "WorkMail", + "arnNamespace": "workmail", + "cloudFormationName": "WorkMail", + "cloudTrailEventSource": "workmail.amazonaws.com", + "endpointPrefix": "workmail" + }, + "aws.auth#sigv4": { + "name": "workmail" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

Amazon WorkMail is a secure, managed business email and calendaring service with support for\n existing desktop and mobile email clients. You can access your email, contacts, and\n calendars using Microsoft Outlook, your browser, or other native iOS and Android email\n applications. You can integrate WorkMail with your existing corporate directory and control\n both the keys that encrypt your data and the location in which your data is\n stored.

\n

The WorkMail API is designed for the following scenarios:

\n \n \n \n \n

All WorkMail API operations are Amazon-authenticated and certificate-signed. They not\n only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management\n users and roles to help facilitate access, trust, and permission policies. By creating a\n role and allowing an IAM user to access the WorkMail site, the IAM user gains full\n administrative visibility into the entire WorkMail organization (or as set in the IAM\n policy). This includes, but is not limited to, the ability to create, update, and delete\n users, groups, and resources. This allows developers to perform the scenarios listed above,\n as well as give users the ability to grant access on a selective basis using the IAM\n model.

", + "smithy.api#title": "Amazon WorkMail" + }, "version": "2017-10-01", "operations": [ { @@ -6550,6 +6728,9 @@ { "target": "com.amazonaws.workmail#DeleteAlias" }, + { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#DeleteGroup" }, @@ -6580,6 +6761,9 @@ { "target": "com.amazonaws.workmail#DeregisterMailDomain" }, + { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#DescribeGroup" }, @@ -6667,6 +6851,9 @@ { "target": "com.amazonaws.workmail#PutAccessControlRule" }, + { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#PutInboundDmarcSettings" }, @@ -6712,22 +6899,7 @@ { "target": "com.amazonaws.workmail#UpdateResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "WorkMail", - "arnNamespace": "workmail", - "cloudFormationName": "WorkMail", - "cloudTrailEventSource": "workmail.amazonaws.com", - "endpointPrefix": "workmail" - }, - "aws.auth#sigv4": { - "name": "workmail" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

Amazon WorkMail is a secure, managed business email and calendaring service with support for\n existing desktop and mobile email clients. You can access your email, contacts, and\n calendars using Microsoft Outlook, your browser, or other native iOS and Android email\n applications. You can integrate WorkMail with your existing corporate directory and control\n both the keys that encrypt your data and the location in which your data is\n stored.

\n

The WorkMail API is designed for the following scenarios:

\n \n \n \n \n

All WorkMail API operations are Amazon-authenticated and certificate-signed. They not\n only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management\n users and roles to help facilitate access, trust, and permission policies. By creating a\n role and allowing an IAM user to access the WorkMail site, the IAM user gains full\n administrative visibility into the entire WorkMail organization (or as set in the IAM\n policy). This includes, but is not limited to, the ability to create, update, and delete\n users, groups, and resources. This allows developers to perform the scenarios listed above,\n as well as give users the ability to grant access on a selective basis using the IAM\n model.

", - "smithy.api#title": "Amazon WorkMail" - } + ] } } } 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 159094490fb..bbd34ef7881 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 @@ -8226,6 +8226,31 @@ "us-west-2" : { } } }, + "pi" : { + "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" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "me-south-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "pinpoint" : { "defaults" : { "credentialScope" : { @@ -13075,6 +13100,12 @@ "cn-north-1" : { } } }, + "pi" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "polly" : { "endpoints" : { "cn-northwest-1" : { } From 5d4fe25e30d487e8c977761976c200be7d22251f Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Fri, 10 Dec 2021 11:25:23 -0800 Subject: [PATCH 2/7] feature: Updated Service Clients --- service/appsync/api_op_AssociateApi.go | 126 + service/appsync/api_op_CreateApiCache.go | 8 +- service/appsync/api_op_CreateApiKey.go | 5 +- service/appsync/api_op_CreateDataSource.go | 7 +- service/appsync/api_op_CreateDomainName.go | 131 + service/appsync/api_op_CreateFunction.go | 11 +- service/appsync/api_op_CreateGraphqlApi.go | 10 +- service/appsync/api_op_CreateResolver.go | 19 +- service/appsync/api_op_DeleteDomainName.go | 116 + service/appsync/api_op_DisassociateApi.go | 116 + service/appsync/api_op_GetApiAssociation.go | 121 + service/appsync/api_op_GetDomainName.go | 121 + service/appsync/api_op_ListApiKeys.go | 8 +- service/appsync/api_op_ListDataSources.go | 8 +- service/appsync/api_op_ListDomainNames.go | 122 + service/appsync/api_op_ListFunctions.go | 6 +- service/appsync/api_op_ListGraphqlApis.go | 8 +- service/appsync/api_op_ListResolvers.go | 8 +- .../appsync/api_op_ListResolversByFunction.go | 6 +- service/appsync/api_op_ListTagsForResource.go | 2 +- service/appsync/api_op_ListTypes.go | 8 +- service/appsync/api_op_TagResource.go | 2 +- service/appsync/api_op_UntagResource.go | 2 +- service/appsync/api_op_UpdateApiCache.go | 4 +- service/appsync/api_op_UpdateApiKey.go | 4 +- service/appsync/api_op_UpdateDataSource.go | 4 +- service/appsync/api_op_UpdateDomainName.go | 124 + service/appsync/api_op_UpdateFunction.go | 7 +- service/appsync/api_op_UpdateGraphqlApi.go | 6 +- service/appsync/api_op_UpdateResolver.go | 13 +- service/appsync/deserializers.go | 1971 +++++- service/appsync/generated.json | 8 + service/appsync/serializers.go | 529 ++ service/appsync/types/enums.go | 20 + service/appsync/types/errors.go | 4 +- service/appsync/types/types.go | 324 +- service/appsync/validators.go | 279 + .../api_op_ListChannelMemberships.go | 7 +- service/chimesdkmessaging/serializers.go | 14 + service/chimesdkmessaging/types/types.go | 13 +- service/chimesdkmessaging/validators.go | 26 - .../api_op_PutDestinationPolicy.go | 12 + service/cloudwatchlogs/deserializers.go | 3 + service/cloudwatchlogs/serializers.go | 5 + .../api_op_DescribeEntitiesDetectionV2Job.go | 2 +- .../api_op_DescribePHIDetectionJob.go | 2 +- .../api_op_DescribeSNOMEDCTInferenceJob.go | 123 + .../api_op_DetectEntities.go | 2 +- service/comprehendmedical/api_op_DetectPHI.go | 2 +- .../comprehendmedical/api_op_InferSNOMEDCT.go | 146 + .../api_op_ListSNOMEDCTInferenceJobs.go | 125 + .../api_op_StartEntitiesDetectionV2Job.go | 13 +- .../api_op_StartICD10CMInferenceJob.go | 7 +- .../api_op_StartPHIDetectionJob.go | 7 +- .../api_op_StartRxNormInferenceJob.go | 7 +- .../api_op_StartSNOMEDCTInferenceJob.go | 189 + .../api_op_StopSNOMEDCTInferenceJob.go | 121 + service/comprehendmedical/deserializers.go | 3108 ++++++--- service/comprehendmedical/doc.go | 4 +- service/comprehendmedical/generated.json | 5 + service/comprehendmedical/serializers.go | 381 ++ service/comprehendmedical/types/enums.go | 126 + service/comprehendmedical/types/errors.go | 4 +- service/comprehendmedical/types/types.go | 197 +- service/comprehendmedical/validators.go | 173 + .../customerprofiles/api_op_GetIntegration.go | 15 +- service/customerprofiles/api_op_GetMatches.go | 3 +- .../api_op_ListProfileObjects.go | 3 +- .../customerprofiles/api_op_MergeProfiles.go | 3 +- .../customerprofiles/api_op_PutIntegration.go | 30 +- .../customerprofiles/api_op_SearchProfiles.go | 8 +- service/customerprofiles/deserializers.go | 51 + service/customerprofiles/serializers.go | 18 + service/customerprofiles/types/enums.go | 2 + service/customerprofiles/types/types.go | 37 +- service/customerprofiles/validators.go | 3 - .../api_op_CreateLocationFsxLustre.go | 139 + .../api_op_CreateLocationFsxWindows.go | 4 +- .../api_op_DescribeLocationFsxLustre.go | 133 + service/datasync/deserializers.go | 338 + service/datasync/generated.json | 2 + service/datasync/serializers.go | 153 + service/datasync/types/types.go | 2 +- service/datasync/validators.go | 86 + ...ibeOrganizationResourceCollectionHealth.go | 28 + service/devopsguru/deserializers.go | 5 + service/devopsguru/types/enums.go | 2 + .../ec2/api_op_DescribeInternetGateways.go | 184 + service/finspacedata/api_op_CreateDataset.go | 16 +- service/finspacedata/api_op_GetChangeset.go | 3 + service/finspacedata/api_op_UpdateDataset.go | 8 +- service/finspacedata/deserializers.go | 76 + service/finspacedata/serializers.go | 23 + service/finspacedata/types/enums.go | 18 + service/finspacedata/types/types.go | 8 + service/finspacedata/validators.go | 9 - .../forecast/api_op_CreateAutoPredictor.go | 1 + .../forecast/api_op_CreateExplainability.go | 18 +- ...api_op_CreatePredictorBacktestExportJob.go | 20 +- .../api_op_DeleteExplainabilityExport.go | 2 +- service/forecast/api_op_DeletePredictor.go | 6 +- .../forecast/api_op_DescribeAutoPredictor.go | 5 + .../forecast/api_op_DescribeExplainability.go | 10 +- service/forecast/api_op_DescribePredictor.go | 3 +- .../forecast/api_op_ListExplainabilities.go | 2 +- .../api_op_ListExplainabilityExports.go | 2 +- service/forecast/api_op_ListPredictors.go | 11 +- .../forecast/api_op_ListTagsForResource.go | 3 +- service/forecast/api_op_StopResource.go | 8 +- service/forecast/api_op_TagResource.go | 3 +- service/forecast/api_op_UntagResource.go | 3 +- service/forecast/deserializers.go | 5 + service/forecast/types/types.go | 83 +- .../api_op_CancelImageCreation.go | 7 +- ...pi_op_CreateInfrastructureConfiguration.go | 6 +- service/imagebuilder/api_op_ImportVmImage.go | 217 + ...pi_op_UpdateInfrastructureConfiguration.go | 6 +- service/imagebuilder/deserializers.go | 274 + service/imagebuilder/generated.json | 1 + service/imagebuilder/serializers.go | 139 + service/imagebuilder/types/enums.go | 40 + service/imagebuilder/types/types.go | 97 +- service/imagebuilder/validators.go | 77 + service/iot/api_op_CreateAuthorizer.go | 7 + service/iot/api_op_UpdateAuthorizer.go | 5 + service/iot/deserializers.go | 9 + service/iot/serializers.go | 10 + service/iot/types/types.go | 5 + service/lexmodelsv2/api_op_CreateSlotType.go | 36 +- .../lexmodelsv2/api_op_DescribeBotLocale.go | 3 + .../lexmodelsv2/api_op_DescribeSlotType.go | 3 + service/lexmodelsv2/api_op_UpdateBotLocale.go | 3 + service/lexmodelsv2/api_op_UpdateSlotType.go | 16 +- service/lexmodelsv2/deserializers.go | 200 + service/lexmodelsv2/serializers.go | 64 + service/lexmodelsv2/types/enums.go | 24 +- service/lexmodelsv2/types/types.go | 62 +- service/lexmodelsv2/validators.go | 70 +- .../location/api_op_BatchEvaluateGeofences.go | 4 +- .../api_op_BatchUpdateDevicePosition.go | 9 +- .../api_op_CreateGeofenceCollection.go | 13 +- service/location/api_op_CreateMap.go | 13 +- service/location/api_op_CreatePlaceIndex.go | 16 +- .../location/api_op_CreateRouteCalculator.go | 13 +- service/location/api_op_CreateTracker.go | 22 +- service/location/api_op_GetDevicePosition.go | 7 + .../api_op_SearchPlaceIndexForSuggestions.go | 216 + service/location/api_op_UpdateTracker.go | 15 +- service/location/deserializers.go | 455 ++ service/location/generated.json | 1 + service/location/serializers.go | 162 + service/location/types/types.go | 95 +- service/location/validators.go | 77 +- .../api_op_ListAnomalyGroupRelatedMetrics.go | 232 + service/lookoutmetrics/deserializers.go | 294 + service/lookoutmetrics/generated.json | 1 + service/lookoutmetrics/serializers.go | 88 + service/lookoutmetrics/types/enums.go | 18 + service/lookoutmetrics/types/types.go | 22 + service/lookoutmetrics/validators.go | 42 + service/lookoutvision/api_op_CreateDataset.go | 16 +- service/lookoutvision/api_op_CreateModel.go | 24 +- service/lookoutvision/api_op_CreateProject.go | 16 +- service/lookoutvision/api_op_DeleteDataset.go | 16 +- service/lookoutvision/api_op_DeleteModel.go | 23 +- service/lookoutvision/api_op_DeleteProject.go | 16 +- .../api_op_DescribeModelPackagingJob.go | 130 + .../api_op_ListModelPackagingJobs.go | 235 + service/lookoutvision/api_op_ListModels.go | 7 +- service/lookoutvision/api_op_ListProjects.go | 7 +- service/lookoutvision/api_op_StartModel.go | 22 +- .../api_op_StartModelPackagingJob.go | 217 + service/lookoutvision/api_op_StopModel.go | 15 +- .../api_op_UpdateDatasetEntries.go | 33 +- service/lookoutvision/deserializers.go | 2281 +++++-- service/lookoutvision/generated.json | 3 + service/lookoutvision/serializers.go | 325 + service/lookoutvision/types/enums.go | 98 +- service/lookoutvision/types/types.go | 206 +- service/lookoutvision/validators.go | 205 + service/mediaconnect/api_op_CreateFlow.go | 2 +- service/mediaconnect/api_op_UpdateFlow.go | 2 +- .../mediaconnect/api_op_UpdateFlowOutput.go | 11 +- .../mediaconnect/api_op_UpdateFlowSource.go | 12 +- service/mediaconnect/deserializers.go | 44 + service/mediaconnect/serializers.go | 35 + service/mediaconnect/types/enums.go | 2 + service/mediaconnect/types/types.go | 47 +- .../api_op_DescribeRuleGroupMetadata.go | 164 + .../networkfirewall/api_op_ListRuleGroups.go | 5 + .../api_op_UpdateFirewallDeleteProtection.go | 5 +- ...op_UpdateFirewallPolicyChangeProtection.go | 5 +- service/networkfirewall/deserializers.go | 268 + service/networkfirewall/generated.json | 1 + service/networkfirewall/serializers.go | 101 + service/networkfirewall/types/enums.go | 34 + service/networkfirewall/types/types.go | 70 +- service/nimble/api_op_AcceptEulas.go | 2 - service/nimble/api_op_CreateLaunchProfile.go | 2 - service/nimble/api_op_CreateStreamingImage.go | 2 - .../nimble/api_op_CreateStreamingSession.go | 2 - .../api_op_CreateStreamingSessionStream.go | 2 - service/nimble/api_op_CreateStudio.go | 2 - .../nimble/api_op_CreateStudioComponent.go | 2 - service/nimble/api_op_DeleteLaunchProfile.go | 1 - .../api_op_DeleteLaunchProfileMember.go | 1 - service/nimble/api_op_DeleteStreamingImage.go | 1 - .../nimble/api_op_DeleteStreamingSession.go | 1 - service/nimble/api_op_DeleteStudio.go | 1 - .../nimble/api_op_DeleteStudioComponent.go | 1 - service/nimble/api_op_DeleteStudioMember.go | 1 - service/nimble/api_op_GetEula.go | 1 - service/nimble/api_op_GetLaunchProfile.go | 1 - .../nimble/api_op_GetLaunchProfileDetails.go | 1 - .../api_op_GetLaunchProfileInitialization.go | 1 - .../nimble/api_op_GetLaunchProfileMember.go | 1 - service/nimble/api_op_GetStreamingImage.go | 1 - service/nimble/api_op_GetStreamingSession.go | 1 - .../api_op_GetStreamingSessionStream.go | 1 - service/nimble/api_op_GetStudio.go | 1 - service/nimble/api_op_GetStudioComponent.go | 1 - service/nimble/api_op_GetStudioMember.go | 1 - service/nimble/api_op_ListEulaAcceptances.go | 1 - service/nimble/api_op_ListEulas.go | 1 - .../nimble/api_op_ListLaunchProfileMembers.go | 1 - service/nimble/api_op_ListLaunchProfiles.go | 1 - service/nimble/api_op_ListStreamingImages.go | 1 - .../nimble/api_op_ListStreamingSessions.go | 1 - service/nimble/api_op_ListStudioComponents.go | 1 - service/nimble/api_op_ListStudioMembers.go | 6 +- service/nimble/api_op_ListStudios.go | 1 - service/nimble/api_op_ListTagsForResource.go | 1 - .../nimble/api_op_PutLaunchProfileMembers.go | 1 - service/nimble/api_op_PutStudioMembers.go | 2 - ...pi_op_StartStudioSSOConfigurationRepair.go | 1 - service/nimble/api_op_TagResource.go | 1 - service/nimble/api_op_UpdateLaunchProfile.go | 2 - .../api_op_UpdateLaunchProfileMember.go | 1 - service/nimble/api_op_UpdateStreamingImage.go | 9 +- service/nimble/api_op_UpdateStudio.go | 2 - .../nimble/api_op_UpdateStudioComponent.go | 2 - service/nimble/deserializers.go | 131 + service/nimble/serializers.go | 56 + service/nimble/types/enums.go | 18 + service/nimble/types/types.go | 84 +- service/nimble/validators.go | 20 + service/outposts/api_op_CreateOutpost.go | 2 +- service/outposts/api_op_DeleteOutpost.go | 2 +- service/outposts/api_op_DeleteSite.go | 2 +- service/outposts/api_op_GetOutpost.go | 2 +- .../api_op_GetOutpostInstanceTypes.go | 2 +- service/outposts/api_op_GetSite.go | 2 +- service/outposts/api_op_GetSiteAddress.go | 2 +- service/outposts/api_op_UpdateOutpost.go | 130 + service/outposts/api_op_UpdateSite.go | 2 +- service/outposts/api_op_UpdateSiteAddress.go | 2 +- ...api_op_UpdateSiteRackPhysicalProperties.go | 2 +- service/outposts/deserializers.go | 159 + service/outposts/generated.json | 1 + service/outposts/serializers.go | 91 + service/outposts/validators.go | 39 + service/pi/internal/endpoints/endpoints.go | 73 + service/qldb/api_op_CreateLedger.go | 12 +- service/qldb/api_op_ExportJournalToS3.go | 26 +- service/qldb/api_op_ListJournalS3Exports.go | 11 +- service/qldb/api_op_ListLedgers.go | 11 +- service/qldb/api_op_StreamJournalToKinesis.go | 5 +- service/qldb/api_op_UpdateLedger.go | 6 +- service/qldb/deserializers.go | 9 + service/qldb/serializers.go | 5 + service/qldb/types/enums.go | 20 + service/qldb/types/types.go | 19 +- .../api_op_AssociateDataShareConsumer.go | 3 + service/redshift/api_op_AuthorizeDataShare.go | 9 +- .../redshift/api_op_DeauthorizeDataShare.go | 6 +- .../api_op_DisassociateDataShareConsumer.go | 3 + service/redshift/api_op_RejectDataShare.go | 3 + service/redshift/deserializers.go | 78 + service/redshift/types/types.go | 3 + service/route53/api_op_CreateHostedZone.go | 6 +- service/route53/api_op_CreateKeySigningKey.go | 26 +- service/route53/api_op_DeleteKeySigningKey.go | 7 +- service/route53/api_op_UpdateHealthCheck.go | 8 +- service/route53/deserializers.go | 3 + service/route53/types/enums.go | 10 + service/route53/types/errors.go | 2 +- service/route53/types/types.go | 39 +- ...ceptDomainTransferFromAnotherAwsAccount.go | 16 +- ...CancelDomainTransferToAnotherAwsAccount.go | 14 +- service/route53domains/api_op_DeleteDomain.go | 138 + .../api_op_EnableDomainAutoRenew.go | 6 +- .../route53domains/api_op_GetDomainDetail.go | 6 +- service/route53domains/api_op_ListDomains.go | 27 +- .../route53domains/api_op_ListOperations.go | 2 +- service/route53domains/api_op_ListPrices.go | 241 + .../route53domains/api_op_RegisterDomain.go | 27 +- ...jectDomainTransferFromAnotherAwsAccount.go | 10 +- service/route53domains/api_op_RenewDomain.go | 10 +- .../route53domains/api_op_TransferDomain.go | 14 +- ...pi_op_TransferDomainToAnotherAwsAccount.go | 35 +- .../api_op_UpdateDomainContactPrivacy.go | 19 +- service/route53domains/api_op_ViewBilling.go | 108 +- service/route53domains/deserializers.go | 504 ++ service/route53domains/generated.json | 2 + service/route53domains/serializers.go | 223 + service/route53domains/types/enums.go | 102 + service/route53domains/types/types.go | 236 +- service/route53domains/validators.go | 141 + .../api_op_CreateCluster.go | 9 +- .../api_op_CreateControlPanel.go | 8 +- .../api_op_CreateRoutingControl.go | 3 +- .../api_op_CreateSafetyRule.go | 41 +- .../api_op_DeleteControlPanel.go | 2 +- .../api_op_DeleteSafetyRule.go | 2 +- .../api_op_DescribeCluster.go | 2 +- .../api_op_DescribeControlPanel.go | 3 +- .../api_op_DescribeRoutingControl.go | 3 +- .../api_op_DescribeSafetyRule.go | 14 +- ...pi_op_ListAssociatedRoute53HealthChecks.go | 5 +- .../api_op_ListControlPanels.go | 2 +- .../api_op_ListRoutingControls.go | 3 +- .../api_op_ListSafetyRules.go | 3 +- .../api_op_ListTagsForResource.go | 120 + .../api_op_TagResource.go | 122 + .../api_op_UntagResource.go | 121 + .../api_op_UpdateSafetyRule.go | 25 +- .../deserializers.go | 447 +- .../generated.json | 3 + .../serializers.go | 245 +- .../types/errors.go | 17 +- .../types/types.go | 110 +- .../validators.go | 123 + service/sagemaker/deserializers.go | 22 + service/sagemaker/serializers.go | 5 + service/sagemaker/types/enums.go | 2 + service/sagemaker/types/types.go | 6 + .../securityhub/api_op_BatchImportFindings.go | 16 +- service/securityhub/deserializers.go | 5587 ++++++++++++----- service/securityhub/serializers.go | 1380 +++- service/securityhub/types/enums.go | 18 + service/securityhub/types/types.go | 667 +- service/transfer/api_op_CreateServer.go | 16 +- service/transfer/api_op_CreateUser.go | 3 +- service/transfer/api_op_UpdateServer.go | 4 +- service/transfer/deserializers.go | 9 + service/transfer/serializers.go | 12 + service/transfer/types/enums.go | 20 + service/transfer/types/types.go | 48 +- ...i_op_DeleteEmailMonitoringConfiguration.go | 117 + ...op_DescribeEmailMonitoringConfiguration.go | 127 + .../api_op_PutEmailMonitoringConfiguration.go | 129 + service/workmail/deserializers.go | 468 ++ service/workmail/generated.json | 3 + service/workmail/serializers.go | 211 + service/workmail/validators.go | 123 + 355 files changed, 27705 insertions(+), 4408 deletions(-) create mode 100644 service/appsync/api_op_AssociateApi.go create mode 100644 service/appsync/api_op_CreateDomainName.go create mode 100644 service/appsync/api_op_DeleteDomainName.go create mode 100644 service/appsync/api_op_DisassociateApi.go create mode 100644 service/appsync/api_op_GetApiAssociation.go create mode 100644 service/appsync/api_op_GetDomainName.go create mode 100644 service/appsync/api_op_ListDomainNames.go create mode 100644 service/appsync/api_op_UpdateDomainName.go create mode 100644 service/comprehendmedical/api_op_DescribeSNOMEDCTInferenceJob.go create mode 100644 service/comprehendmedical/api_op_InferSNOMEDCT.go create mode 100644 service/comprehendmedical/api_op_ListSNOMEDCTInferenceJobs.go create mode 100644 service/comprehendmedical/api_op_StartSNOMEDCTInferenceJob.go create mode 100644 service/comprehendmedical/api_op_StopSNOMEDCTInferenceJob.go create mode 100644 service/datasync/api_op_CreateLocationFsxLustre.go create mode 100644 service/datasync/api_op_DescribeLocationFsxLustre.go create mode 100644 service/imagebuilder/api_op_ImportVmImage.go create mode 100644 service/location/api_op_SearchPlaceIndexForSuggestions.go create mode 100644 service/lookoutmetrics/api_op_ListAnomalyGroupRelatedMetrics.go create mode 100644 service/lookoutvision/api_op_DescribeModelPackagingJob.go create mode 100644 service/lookoutvision/api_op_ListModelPackagingJobs.go create mode 100644 service/lookoutvision/api_op_StartModelPackagingJob.go create mode 100644 service/networkfirewall/api_op_DescribeRuleGroupMetadata.go create mode 100644 service/outposts/api_op_UpdateOutpost.go create mode 100644 service/route53domains/api_op_DeleteDomain.go create mode 100644 service/route53domains/api_op_ListPrices.go create mode 100644 service/route53recoverycontrolconfig/api_op_ListTagsForResource.go create mode 100644 service/route53recoverycontrolconfig/api_op_TagResource.go create mode 100644 service/route53recoverycontrolconfig/api_op_UntagResource.go create mode 100644 service/workmail/api_op_DeleteEmailMonitoringConfiguration.go create mode 100644 service/workmail/api_op_DescribeEmailMonitoringConfiguration.go create mode 100644 service/workmail/api_op_PutEmailMonitoringConfiguration.go diff --git a/service/appsync/api_op_AssociateApi.go b/service/appsync/api_op_AssociateApi.go new file mode 100644 index 00000000000..6a634037274 --- /dev/null +++ b/service/appsync/api_op_AssociateApi.go @@ -0,0 +1,126 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Maps an endpoint to your custom domain. +func (c *Client) AssociateApi(ctx context.Context, params *AssociateApiInput, optFns ...func(*Options)) (*AssociateApiOutput, error) { + if params == nil { + params = &AssociateApiInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateApi", params, optFns, c.addOperationAssociateApiMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateApiOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateApiInput struct { + + // The API ID. + // + // This member is required. + ApiId *string + + // The domain name. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type AssociateApiOutput struct { + + // The ApiAssociation object. + ApiAssociation *types.ApiAssociation + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateApiMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpAssociateApi{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpAssociateApi{}, 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 = addOpAssociateApiValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateApi(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_opAssociateApi(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "AssociateApi", + } +} diff --git a/service/appsync/api_op_CreateApiCache.go b/service/appsync/api_op_CreateApiCache.go index 5204aa30434..3b985b35917 100644 --- a/service/appsync/api_op_CreateApiCache.go +++ b/service/appsync/api_op_CreateApiCache.go @@ -40,12 +40,12 @@ type CreateApiCacheInput struct { // This member is required. ApiCachingBehavior types.ApiCachingBehavior - // The GraphQL API Id. + // The GraphQL API ID. // // This member is required. ApiId *string - // TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + // TTL in seconds for cache entries. Valid values are 1–3,600 seconds. // // This member is required. Ttl int64 @@ -95,11 +95,11 @@ type CreateApiCacheInput struct { // This member is required. Type types.ApiCacheType - // At rest encryption flag for cache. This setting cannot be updated after + // At-rest encryption flag for cache. You cannot update this setting after // creation. AtRestEncryptionEnabled bool - // Transit encryption flag when connecting to cache. This setting cannot be updated + // Transit encryption flag when connecting to cache. You cannot update this setting // after creation. TransitEncryptionEnabled bool diff --git a/service/appsync/api_op_CreateApiKey.go b/service/appsync/api_op_CreateApiKey.go index d90758149c0..9629cf0c869 100644 --- a/service/appsync/api_op_CreateApiKey.go +++ b/service/appsync/api_op_CreateApiKey.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a unique key that you can distribute to clients who are executing your -// API. +// Creates a unique key that you can distribute to clients who invoke your API. func (c *Client) CreateApiKey(ctx context.Context, params *CreateApiKeyInput, optFns ...func(*Options)) (*CreateApiKeyOutput, error) { if params == nil { params = &CreateApiKeyInput{} @@ -38,7 +37,7 @@ type CreateApiKeyInput struct { // A description of the purpose of the API key. Description *string - // The time from creation time after which the API key expires. The date is + // From the creation time, the time after which the API key expires. The date is // represented as seconds since the epoch, rounded down to the nearest hour. The // default value for this parameter is 7 days from creation time. For more // information, see . diff --git a/service/appsync/api_op_CreateDataSource.go b/service/appsync/api_op_CreateDataSource.go index 9da3adbd29a..0095ca3ce7d 100644 --- a/service/appsync/api_op_CreateDataSource.go +++ b/service/appsync/api_op_CreateDataSource.go @@ -59,7 +59,7 @@ type CreateDataSourceInput struct { // HTTP endpoint settings. HttpConfig *types.HttpDataSourceConfig - // Amazon Web Services Lambda settings. + // Lambda settings. LambdaConfig *types.LambdaDataSourceConfig // Amazon OpenSearch Service settings. @@ -68,8 +68,9 @@ type CreateDataSourceInput struct { // Relational database settings. RelationalDatabaseConfig *types.RelationalDatabaseDataSourceConfig - // The Identity and Access Management service role ARN for the data source. The - // system assumes this role when accessing the data source. + // The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) + // for the data source. The system assumes this role when accessing the data + // source. ServiceRoleArn *string noSmithyDocumentSerde diff --git a/service/appsync/api_op_CreateDomainName.go b/service/appsync/api_op_CreateDomainName.go new file mode 100644 index 00000000000..ab4d9663d0b --- /dev/null +++ b/service/appsync/api_op_CreateDomainName.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a custom DomainName object. +func (c *Client) CreateDomainName(ctx context.Context, params *CreateDomainNameInput, optFns ...func(*Options)) (*CreateDomainNameOutput, error) { + if params == nil { + params = &CreateDomainNameInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateDomainName", params, optFns, c.addOperationCreateDomainNameMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateDomainNameOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateDomainNameInput struct { + + // The Amazon Resource Name (ARN) of the certificate. This can be an Certificate + // Manager (ACM) certificate or an Identity and Access Management (IAM) server + // certificate. + // + // This member is required. + CertificateArn *string + + // The domain name. + // + // This member is required. + DomainName *string + + // A description of the DomainName. + Description *string + + noSmithyDocumentSerde +} + +type CreateDomainNameOutput struct { + + // The configuration for the DomainName. + DomainNameConfig *types.DomainNameConfig + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateDomainNameMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateDomainName{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateDomainName{}, 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 = addOpCreateDomainNameValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateDomainName(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_opCreateDomainName(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "CreateDomainName", + } +} diff --git a/service/appsync/api_op_CreateFunction.go b/service/appsync/api_op_CreateFunction.go index 123262ec3ac..3ce3aa9bbc8 100644 --- a/service/appsync/api_op_CreateFunction.go +++ b/service/appsync/api_op_CreateFunction.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a Function object. A function is a reusable entity. Multiple functions -// can be used to compose the resolver logic. +// Creates a Function object. A function is a reusable entity. You can use multiple +// functions to compose the resolver logic. func (c *Client) CreateFunction(ctx context.Context, params *CreateFunctionInput, optFns ...func(*Options)) (*CreateFunctionOutput, error) { if params == nil { params = &CreateFunctionInput{} @@ -40,7 +40,7 @@ type CreateFunctionInput struct { // This member is required. DataSourceName *string - // The version of the request mapping template. Currently the supported value is + // The version of the request mapping template. Currently, the supported value is // 2018-05-29. // // This member is required. @@ -61,9 +61,8 @@ type CreateFunctionInput struct { // The Function response mapping template. ResponseMappingTemplate *string - // Describes a Sync configuration for a resolver. Contains information on which - // Conflict Detection as well as Resolution strategy should be performed when the - // resolver is invoked. + // Describes a Sync configuration for a resolver. Specifies which Conflict + // Detection strategy and Resolution strategy to use when the resolver is invoked. SyncConfig *types.SyncConfig noSmithyDocumentSerde diff --git a/service/appsync/api_op_CreateGraphqlApi.go b/service/appsync/api_op_CreateGraphqlApi.go index 329caf11bcf..80511d3384d 100644 --- a/service/appsync/api_op_CreateGraphqlApi.go +++ b/service/appsync/api_op_CreateGraphqlApi.go @@ -29,8 +29,8 @@ func (c *Client) CreateGraphqlApi(ctx context.Context, params *CreateGraphqlApiI type CreateGraphqlApiInput struct { - // The authentication type: API key, Identity and Access Management, OIDC, Amazon - // Cognito user pools, or Amazon Web Services Lambda. + // The authentication type: API key, Identity and Access Management (IAM), OpenID + // Connect (OIDC), Amazon Cognito user pools, or Lambda. // // This member is required. AuthenticationType types.AuthenticationType @@ -43,13 +43,13 @@ type CreateGraphqlApiInput struct { // A list of additional authentication providers for the GraphqlApi API. AdditionalAuthenticationProviders []types.AdditionalAuthenticationProvider - // Configuration for Amazon Web Services Lambda function authorization. + // Configuration for Lambda function authorization. LambdaAuthorizerConfig *types.LambdaAuthorizerConfig // The Amazon CloudWatch Logs configuration. LogConfig *types.LogConfig - // The OpenID Connect configuration. + // The OIDC configuration. OpenIDConnectConfig *types.OpenIDConnectConfig // A TagMap object. @@ -58,7 +58,7 @@ type CreateGraphqlApiInput struct { // The Amazon Cognito user pool configuration. UserPoolConfig *types.UserPoolConfig - // A flag indicating whether to enable X-Ray tracing for the GraphqlApi. + // A flag indicating whether to use X-Ray tracing for the GraphqlApi. XrayEnabled bool noSmithyDocumentSerde diff --git a/service/appsync/api_op_CreateResolver.go b/service/appsync/api_op_CreateResolver.go index 665707907e7..3044ea10420 100644 --- a/service/appsync/api_op_CreateResolver.go +++ b/service/appsync/api_op_CreateResolver.go @@ -12,7 +12,7 @@ import ( ) // Creates a Resolver object. A resolver converts incoming requests into a format -// that a data source can understand and converts the data source's responses into +// that a data source can understand, and converts the data source's responses into // GraphQL. func (c *Client) CreateResolver(ctx context.Context, params *CreateResolverInput, optFns ...func(*Options)) (*CreateResolverOutput, error) { if params == nil { @@ -55,29 +55,30 @@ type CreateResolverInput struct { // The resolver type. // // * UNIT: A UNIT resolver type. A UNIT resolver is the default - // resolver type. A UNIT resolver enables you to execute a GraphQL query against a + // resolver type. You can use a UNIT resolver to run a GraphQL query against a // single data source. // - // * PIPELINE: A PIPELINE resolver type. A PIPELINE resolver - // enables you to execute a series of Function in a serial manner. You can use a - // pipeline resolver to execute a GraphQL query against multiple data sources. + // * PIPELINE: A PIPELINE resolver type. You can use a + // PIPELINE resolver to invoke a series of Function objects in a serial manner. You + // can use a pipeline resolver to run a GraphQL query against multiple data + // sources. Kind types.ResolverKind // The PipelineConfig. PipelineConfig *types.PipelineConfig - // The mapping template to be used for requests. A resolver uses a request mapping + // The mapping template to use for requests. A resolver uses a request mapping // template to convert a GraphQL expression into a format that a data source can // understand. Mapping templates are written in Apache Velocity Template Language - // (VTL). VTL request mapping templates are optional when using a Lambda data + // (VTL). VTL request mapping templates are optional when using an Lambda data // source. For all other data sources, VTL request and response mapping templates // are required. RequestMappingTemplate *string - // The mapping template to be used for responses from the data source. + // The mapping template to use for responses from the data source. ResponseMappingTemplate *string - // The SyncConfig for a resolver attached to a versioned datasource. + // The SyncConfig for a resolver attached to a versioned data source. SyncConfig *types.SyncConfig noSmithyDocumentSerde diff --git a/service/appsync/api_op_DeleteDomainName.go b/service/appsync/api_op_DeleteDomainName.go new file mode 100644 index 00000000000..3897837ecb0 --- /dev/null +++ b/service/appsync/api_op_DeleteDomainName.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a custom DomainName object. +func (c *Client) DeleteDomainName(ctx context.Context, params *DeleteDomainNameInput, optFns ...func(*Options)) (*DeleteDomainNameOutput, error) { + if params == nil { + params = &DeleteDomainNameInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteDomainName", params, optFns, c.addOperationDeleteDomainNameMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteDomainNameOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteDomainNameInput struct { + + // The domain name. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type DeleteDomainNameOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteDomainNameMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteDomainName{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteDomainName{}, 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 = addOpDeleteDomainNameValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteDomainName(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_opDeleteDomainName(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "DeleteDomainName", + } +} diff --git a/service/appsync/api_op_DisassociateApi.go b/service/appsync/api_op_DisassociateApi.go new file mode 100644 index 00000000000..66ba6406b2e --- /dev/null +++ b/service/appsync/api_op_DisassociateApi.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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" +) + +// Removes an ApiAssociation object from a custom domain. +func (c *Client) DisassociateApi(ctx context.Context, params *DisassociateApiInput, optFns ...func(*Options)) (*DisassociateApiOutput, error) { + if params == nil { + params = &DisassociateApiInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisassociateApi", params, optFns, c.addOperationDisassociateApiMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisassociateApiOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisassociateApiInput struct { + + // The domain name. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type DisassociateApiOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisassociateApiMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDisassociateApi{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDisassociateApi{}, 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 = addOpDisassociateApiValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisassociateApi(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_opDisassociateApi(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "DisassociateApi", + } +} diff --git a/service/appsync/api_op_GetApiAssociation.go b/service/appsync/api_op_GetApiAssociation.go new file mode 100644 index 00000000000..55eef11331c --- /dev/null +++ b/service/appsync/api_op_GetApiAssociation.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves an ApiAssociation object. +func (c *Client) GetApiAssociation(ctx context.Context, params *GetApiAssociationInput, optFns ...func(*Options)) (*GetApiAssociationOutput, error) { + if params == nil { + params = &GetApiAssociationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetApiAssociation", params, optFns, c.addOperationGetApiAssociationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetApiAssociationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetApiAssociationInput struct { + + // The domain name. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type GetApiAssociationOutput struct { + + // The ApiAssociation object. + ApiAssociation *types.ApiAssociation + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetApiAssociationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetApiAssociation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetApiAssociation{}, 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 = addOpGetApiAssociationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetApiAssociation(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_opGetApiAssociation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "GetApiAssociation", + } +} diff --git a/service/appsync/api_op_GetDomainName.go b/service/appsync/api_op_GetDomainName.go new file mode 100644 index 00000000000..e872e7d0b07 --- /dev/null +++ b/service/appsync/api_op_GetDomainName.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a custom DomainName object. +func (c *Client) GetDomainName(ctx context.Context, params *GetDomainNameInput, optFns ...func(*Options)) (*GetDomainNameOutput, error) { + if params == nil { + params = &GetDomainNameInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetDomainName", params, optFns, c.addOperationGetDomainNameMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetDomainNameOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetDomainNameInput struct { + + // The domain name. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type GetDomainNameOutput struct { + + // The configuration for the DomainName. + DomainNameConfig *types.DomainNameConfig + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetDomainNameMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetDomainName{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetDomainName{}, 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 = addOpGetDomainNameValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetDomainName(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_opGetDomainName(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "GetDomainName", + } +} diff --git a/service/appsync/api_op_ListApiKeys.go b/service/appsync/api_op_ListApiKeys.go index 55aab6a8e18..a1a49548025 100644 --- a/service/appsync/api_op_ListApiKeys.go +++ b/service/appsync/api_op_ListApiKeys.go @@ -37,11 +37,11 @@ type ListApiKeysInput struct { // This member is required. ApiId *string - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -52,8 +52,8 @@ type ListApiKeysOutput struct { // The ApiKey objects. ApiKeys []types.ApiKey - // An identifier to be passed in the next request to this operation to return the - // next set of items in the list. + // An identifier to pass in the next request to this operation to return the next + // set of items in the list. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/appsync/api_op_ListDataSources.go b/service/appsync/api_op_ListDataSources.go index 983e0cb7c7e..2dd900a4058 100644 --- a/service/appsync/api_op_ListDataSources.go +++ b/service/appsync/api_op_ListDataSources.go @@ -34,11 +34,11 @@ type ListDataSourcesInput struct { // This member is required. ApiId *string - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -49,8 +49,8 @@ type ListDataSourcesOutput struct { // The DataSource objects. DataSources []types.DataSource - // An identifier to be passed in the next request to this operation to return the - // next set of items in the list. + // An identifier to pass in the next request to this operation to return the next + // set of items in the list. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/appsync/api_op_ListDomainNames.go b/service/appsync/api_op_ListDomainNames.go new file mode 100644 index 00000000000..a8b7101bfc2 --- /dev/null +++ b/service/appsync/api_op_ListDomainNames.go @@ -0,0 +1,122 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists multiple custom domain names. +func (c *Client) ListDomainNames(ctx context.Context, params *ListDomainNamesInput, optFns ...func(*Options)) (*ListDomainNamesOutput, error) { + if params == nil { + params = &ListDomainNamesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListDomainNames", params, optFns, c.addOperationListDomainNamesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListDomainNamesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListDomainNamesInput struct { + + // The maximum number of results that you want the request to return. + MaxResults int32 + + // The API token. + NextToken *string + + noSmithyDocumentSerde +} + +type ListDomainNamesOutput struct { + + // Lists configurations for multiple domain names. + DomainNameConfigs []types.DomainNameConfig + + // The API token. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListDomainNamesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListDomainNames{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListDomainNames{}, 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_opListDomainNames(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_opListDomainNames(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "ListDomainNames", + } +} diff --git a/service/appsync/api_op_ListFunctions.go b/service/appsync/api_op_ListFunctions.go index 5fe27bfe99a..5119c587556 100644 --- a/service/appsync/api_op_ListFunctions.go +++ b/service/appsync/api_op_ListFunctions.go @@ -34,11 +34,11 @@ type ListFunctionsInput struct { // This member is required. ApiId *string - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -50,7 +50,7 @@ type ListFunctionsOutput struct { Functions []types.FunctionConfiguration // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/appsync/api_op_ListGraphqlApis.go b/service/appsync/api_op_ListGraphqlApis.go index 8cd430fc2af..ebb14377e14 100644 --- a/service/appsync/api_op_ListGraphqlApis.go +++ b/service/appsync/api_op_ListGraphqlApis.go @@ -29,11 +29,11 @@ func (c *Client) ListGraphqlApis(ctx context.Context, params *ListGraphqlApisInp type ListGraphqlApisInput struct { - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -44,8 +44,8 @@ type ListGraphqlApisOutput struct { // The GraphqlApi objects. GraphqlApis []types.GraphqlApi - // An identifier to be passed in the next request to this operation to return the - // next set of items in the list. + // An identifier to pass in the next request to this operation to return the next + // set of items in the list. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/appsync/api_op_ListResolvers.go b/service/appsync/api_op_ListResolvers.go index b37d6cf55d9..6ff020befe5 100644 --- a/service/appsync/api_op_ListResolvers.go +++ b/service/appsync/api_op_ListResolvers.go @@ -39,11 +39,11 @@ type ListResolversInput struct { // This member is required. TypeName *string - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -51,8 +51,8 @@ type ListResolversInput struct { type ListResolversOutput struct { - // An identifier to be passed in the next request to this operation to return the - // next set of items in the list. + // An identifier to pass in the next request to this operation to return the next + // set of items in the list. NextToken *string // The Resolver objects. diff --git a/service/appsync/api_op_ListResolversByFunction.go b/service/appsync/api_op_ListResolversByFunction.go index 141def4bc32..9fb21c14c2c 100644 --- a/service/appsync/api_op_ListResolversByFunction.go +++ b/service/appsync/api_op_ListResolversByFunction.go @@ -34,12 +34,12 @@ type ListResolversByFunctionInput struct { // This member is required. ApiId *string - // The Function ID. + // The function ID. // // This member is required. FunctionId *string - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which @@ -51,7 +51,7 @@ type ListResolversByFunctionInput struct { type ListResolversByFunctionOutput struct { - // An identifier that can be used to return the next set of items in the list. + // An identifier that you can use to return the next set of items in the list. NextToken *string // The list of resolvers. diff --git a/service/appsync/api_op_ListTagsForResource.go b/service/appsync/api_op_ListTagsForResource.go index 2977c89a72f..a1a7c8c5be0 100644 --- a/service/appsync/api_op_ListTagsForResource.go +++ b/service/appsync/api_op_ListTagsForResource.go @@ -28,7 +28,7 @@ func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForRes type ListTagsForResourceInput struct { - // The GraphqlApi ARN. + // The GraphqlApi Amazon Resource Name (ARN). // // This member is required. ResourceArn *string diff --git a/service/appsync/api_op_ListTypes.go b/service/appsync/api_op_ListTypes.go index b0e88fc17ab..c3d0417b450 100644 --- a/service/appsync/api_op_ListTypes.go +++ b/service/appsync/api_op_ListTypes.go @@ -39,11 +39,11 @@ type ListTypesInput struct { // This member is required. Format types.TypeDefinitionFormat - // The maximum number of results you want the request to return. + // The maximum number of results that you want the request to return. MaxResults int32 // An identifier that was returned from the previous call to this operation, which - // can be used to return the next set of items in the list. + // you can use to return the next set of items in the list. NextToken *string noSmithyDocumentSerde @@ -51,8 +51,8 @@ type ListTypesInput struct { type ListTypesOutput struct { - // An identifier to be passed in the next request to this operation to return the - // next set of items in the list. + // An identifier to pass in the next request to this operation to return the next + // set of items in the list. NextToken *string // The Type objects. diff --git a/service/appsync/api_op_TagResource.go b/service/appsync/api_op_TagResource.go index 4f03f58f10d..ab362caf2c0 100644 --- a/service/appsync/api_op_TagResource.go +++ b/service/appsync/api_op_TagResource.go @@ -28,7 +28,7 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { - // The GraphqlApi ARN. + // The GraphqlApi Amazon Resource Name (ARN). // // This member is required. ResourceArn *string diff --git a/service/appsync/api_op_UntagResource.go b/service/appsync/api_op_UntagResource.go index 5f3d0f6f79a..b64e36b9bec 100644 --- a/service/appsync/api_op_UntagResource.go +++ b/service/appsync/api_op_UntagResource.go @@ -28,7 +28,7 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { - // The GraphqlApi ARN. + // The GraphqlApi Amazon Resource Name (ARN). // // This member is required. ResourceArn *string diff --git a/service/appsync/api_op_UpdateApiCache.go b/service/appsync/api_op_UpdateApiCache.go index 36a04d2fa51..25611699122 100644 --- a/service/appsync/api_op_UpdateApiCache.go +++ b/service/appsync/api_op_UpdateApiCache.go @@ -40,12 +40,12 @@ type UpdateApiCacheInput struct { // This member is required. ApiCachingBehavior types.ApiCachingBehavior - // The GraphQL API Id. + // The GraphQL API ID. // // This member is required. ApiId *string - // TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + // TTL in seconds for cache entries. Valid values are 1–3,600 seconds. // // This member is required. Ttl int64 diff --git a/service/appsync/api_op_UpdateApiKey.go b/service/appsync/api_op_UpdateApiKey.go index 86caa2a1a7c..01f85f777f1 100644 --- a/service/appsync/api_op_UpdateApiKey.go +++ b/service/appsync/api_op_UpdateApiKey.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an API key. The key can be updated while it is not deleted. +// Updates an API key. You can update the key as long as it's not deleted. func (c *Client) UpdateApiKey(ctx context.Context, params *UpdateApiKeyInput, optFns ...func(*Options)) (*UpdateApiKeyOutput, error) { if params == nil { params = &UpdateApiKeyInput{} @@ -42,7 +42,7 @@ type UpdateApiKeyInput struct { // A description of the purpose of the API key. Description *string - // The time from update time after which the API key expires. The date is + // From the update time, the time after which the API key expires. The date is // represented as seconds since the epoch. For more information, see . Expires int64 diff --git a/service/appsync/api_op_UpdateDataSource.go b/service/appsync/api_op_UpdateDataSource.go index ad76a8eb960..ac8aa570804 100644 --- a/service/appsync/api_op_UpdateDataSource.go +++ b/service/appsync/api_op_UpdateDataSource.go @@ -59,7 +59,7 @@ type UpdateDataSourceInput struct { // The new HTTP endpoint configuration. HttpConfig *types.HttpDataSourceConfig - // The new Amazon Web Services Lambda configuration. + // The new Lambda configuration. LambdaConfig *types.LambdaDataSourceConfig // The new OpenSearch configuration. @@ -68,7 +68,7 @@ type UpdateDataSourceInput struct { // The new relational database configuration. RelationalDatabaseConfig *types.RelationalDatabaseDataSourceConfig - // The new service role ARN for the data source. + // The new service role Amazon Resource Name (ARN) for the data source. ServiceRoleArn *string noSmithyDocumentSerde diff --git a/service/appsync/api_op_UpdateDomainName.go b/service/appsync/api_op_UpdateDomainName.go new file mode 100644 index 00000000000..853354d3bae --- /dev/null +++ b/service/appsync/api_op_UpdateDomainName.go @@ -0,0 +1,124 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package appsync + +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/appsync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates a custom DomainName object. +func (c *Client) UpdateDomainName(ctx context.Context, params *UpdateDomainNameInput, optFns ...func(*Options)) (*UpdateDomainNameOutput, error) { + if params == nil { + params = &UpdateDomainNameInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateDomainName", params, optFns, c.addOperationUpdateDomainNameMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateDomainNameOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateDomainNameInput struct { + + // The domain name. + // + // This member is required. + DomainName *string + + // A description of the DomainName. + Description *string + + noSmithyDocumentSerde +} + +type UpdateDomainNameOutput struct { + + // The configuration for the DomainName. + DomainNameConfig *types.DomainNameConfig + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateDomainNameMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateDomainName{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateDomainName{}, 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 = addOpUpdateDomainNameValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateDomainName(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_opUpdateDomainName(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "appsync", + OperationName: "UpdateDomainName", + } +} diff --git a/service/appsync/api_op_UpdateFunction.go b/service/appsync/api_op_UpdateFunction.go index 90d9be87a45..23f78a7d66a 100644 --- a/service/appsync/api_op_UpdateFunction.go +++ b/service/appsync/api_op_UpdateFunction.go @@ -44,7 +44,7 @@ type UpdateFunctionInput struct { // This member is required. FunctionId *string - // The version of the request mapping template. Currently the supported value is + // The version of the request mapping template. Currently, the supported value is // 2018-05-29. // // This member is required. @@ -65,9 +65,8 @@ type UpdateFunctionInput struct { // The Function request mapping template. ResponseMappingTemplate *string - // Describes a Sync configuration for a resolver. Contains information on which - // Conflict Detection as well as Resolution strategy should be performed when the - // resolver is invoked. + // Describes a Sync configuration for a resolver. Specifies which Conflict + // Detection strategy and Resolution strategy to use when the resolver is invoked. SyncConfig *types.SyncConfig noSmithyDocumentSerde diff --git a/service/appsync/api_op_UpdateGraphqlApi.go b/service/appsync/api_op_UpdateGraphqlApi.go index 15a08560516..b7252beba02 100644 --- a/service/appsync/api_op_UpdateGraphqlApi.go +++ b/service/appsync/api_op_UpdateGraphqlApi.go @@ -45,7 +45,7 @@ type UpdateGraphqlApiInput struct { // The new authentication type for the GraphqlApi object. AuthenticationType types.AuthenticationType - // Configuration for Amazon Web Services Lambda function authorization. + // Configuration for Lambda function authorization. LambdaAuthorizerConfig *types.LambdaAuthorizerConfig // The Amazon CloudWatch Logs configuration for the GraphqlApi object. @@ -54,10 +54,10 @@ type UpdateGraphqlApiInput struct { // The OpenID Connect configuration for the GraphqlApi object. OpenIDConnectConfig *types.OpenIDConnectConfig - // The new Amazon Cognito user pool configuration for the GraphqlApi object. + // The new Amazon Cognito user pool configuration for the ~GraphqlApi object. UserPoolConfig *types.UserPoolConfig - // A flag indicating whether to enable X-Ray tracing for the GraphqlApi. + // A flag indicating whether to use X-Ray tracing for the GraphqlApi. XrayEnabled bool noSmithyDocumentSerde diff --git a/service/appsync/api_op_UpdateResolver.go b/service/appsync/api_op_UpdateResolver.go index 17fe3567c02..2307e484782 100644 --- a/service/appsync/api_op_UpdateResolver.go +++ b/service/appsync/api_op_UpdateResolver.go @@ -53,12 +53,13 @@ type UpdateResolverInput struct { // The resolver type. // // * UNIT: A UNIT resolver type. A UNIT resolver is the default - // resolver type. A UNIT resolver enables you to execute a GraphQL query against a + // resolver type. You can use a UNIT resolver to run a GraphQL query against a // single data source. // - // * PIPELINE: A PIPELINE resolver type. A PIPELINE resolver - // enables you to execute a series of Function in a serial manner. You can use a - // pipeline resolver to execute a GraphQL query against multiple data sources. + // * PIPELINE: A PIPELINE resolver type. You can use a + // PIPELINE resolver to invoke a series of Function objects in a serial manner. You + // can use a pipeline resolver to run a GraphQL query against multiple data + // sources. Kind types.ResolverKind // The PipelineConfig. @@ -67,14 +68,14 @@ type UpdateResolverInput struct { // The new request mapping template. A resolver uses a request mapping template to // convert a GraphQL expression into a format that a data source can understand. // Mapping templates are written in Apache Velocity Template Language (VTL). VTL - // request mapping templates are optional when using a Lambda data source. For all + // request mapping templates are optional when using an Lambda data source. For all // other data sources, VTL request and response mapping templates are required. RequestMappingTemplate *string // The new response mapping template. ResponseMappingTemplate *string - // The SyncConfig for a resolver attached to a versioned datasource. + // The SyncConfig for a resolver attached to a versioned data source. SyncConfig *types.SyncConfig noSmithyDocumentSerde diff --git a/service/appsync/deserializers.go b/service/appsync/deserializers.go index ca95cc50c32..72496148ab3 100644 --- a/service/appsync/deserializers.go +++ b/service/appsync/deserializers.go @@ -19,14 +19,14 @@ import ( "strings" ) -type awsRestjson1_deserializeOpCreateApiCache struct { +type awsRestjson1_deserializeOpAssociateApi struct { } -func (*awsRestjson1_deserializeOpCreateApiCache) ID() string { +func (*awsRestjson1_deserializeOpAssociateApi) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpAssociateApi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40,9 +40,9 @@ func (m *awsRestjson1_deserializeOpCreateApiCache) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateApiCache(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorAssociateApi(response, &metadata) } - output := &CreateApiCacheOutput{} + output := &AssociateApiOutput{} out.Result = output var buff [1024]byte @@ -63,7 +63,7 @@ func (m *awsRestjson1_deserializeOpCreateApiCache) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentAssociateApiOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -76,7 +76,7 @@ func (m *awsRestjson1_deserializeOpCreateApiCache) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorAssociateApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -117,21 +117,18 @@ func awsRestjson1_deserializeOpErrorCreateApiCache(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -142,7 +139,7 @@ func awsRestjson1_deserializeOpErrorCreateApiCache(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(v **CreateApiCacheOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentAssociateApiOutput(v **AssociateApiOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -155,17 +152,17 @@ func awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(v **CreateApiCacheOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateApiCacheOutput + var sv *AssociateApiOutput if *v == nil { - sv = &CreateApiCacheOutput{} + sv = &AssociateApiOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiCache": - if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { + case "apiAssociation": + if err := awsRestjson1_deserializeDocumentApiAssociation(&sv.ApiAssociation, value); err != nil { return err } @@ -178,14 +175,14 @@ func awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(v **CreateApiCacheOu return nil } -type awsRestjson1_deserializeOpCreateApiKey struct { +type awsRestjson1_deserializeOpCreateApiCache struct { } -func (*awsRestjson1_deserializeOpCreateApiKey) ID() string { +func (*awsRestjson1_deserializeOpCreateApiCache) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -199,9 +196,9 @@ func (m *awsRestjson1_deserializeOpCreateApiKey) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateApiKey(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateApiCache(response, &metadata) } - output := &CreateApiKeyOutput{} + output := &CreateApiCacheOutput{} out.Result = output var buff [1024]byte @@ -222,7 +219,7 @@ func (m *awsRestjson1_deserializeOpCreateApiKey) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -235,7 +232,7 @@ func (m *awsRestjson1_deserializeOpCreateApiKey) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -276,21 +273,15 @@ func awsRestjson1_deserializeOpErrorCreateApiKey(response *smithyhttp.Response, } switch { - case strings.EqualFold("ApiKeyLimitExceededException", errorCode): - return awsRestjson1_deserializeErrorApiKeyLimitExceededException(response, errorBody) - - case strings.EqualFold("ApiKeyValidityOutOfBoundsException", errorCode): - return awsRestjson1_deserializeErrorApiKeyValidityOutOfBoundsException(response, errorBody) - case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) @@ -307,7 +298,7 @@ func awsRestjson1_deserializeOpErrorCreateApiKey(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(v **CreateApiKeyOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateApiCacheOutput(v **CreateApiCacheOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -320,17 +311,17 @@ func awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(v **CreateApiKeyOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateApiKeyOutput + var sv *CreateApiCacheOutput if *v == nil { - sv = &CreateApiKeyOutput{} + sv = &CreateApiCacheOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiKey": - if err := awsRestjson1_deserializeDocumentApiKey(&sv.ApiKey, value); err != nil { + case "apiCache": + if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { return err } @@ -343,14 +334,14 @@ func awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(v **CreateApiKeyOutput return nil } -type awsRestjson1_deserializeOpCreateDataSource struct { +type awsRestjson1_deserializeOpCreateApiKey struct { } -func (*awsRestjson1_deserializeOpCreateDataSource) ID() string { +func (*awsRestjson1_deserializeOpCreateApiKey) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -364,9 +355,9 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateApiKey(response, &metadata) } - output := &CreateDataSourceOutput{} + output := &CreateApiKeyOutput{} out.Result = output var buff [1024]byte @@ -387,7 +378,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -400,7 +391,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -441,15 +432,21 @@ func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Respon } switch { + case strings.EqualFold("ApiKeyLimitExceededException", errorCode): + return awsRestjson1_deserializeErrorApiKeyLimitExceededException(response, errorBody) + + case strings.EqualFold("ApiKeyValidityOutOfBoundsException", errorCode): + return awsRestjson1_deserializeErrorApiKeyValidityOutOfBoundsException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) @@ -466,7 +463,7 @@ func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateApiKeyOutput(v **CreateApiKeyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -479,17 +476,17 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateDataSourceOutput + var sv *CreateApiKeyOutput if *v == nil { - sv = &CreateDataSourceOutput{} + sv = &CreateApiKeyOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dataSource": - if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { + case "apiKey": + if err := awsRestjson1_deserializeDocumentApiKey(&sv.ApiKey, value); err != nil { return err } @@ -502,14 +499,14 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour return nil } -type awsRestjson1_deserializeOpCreateFunction struct { +type awsRestjson1_deserializeOpCreateDataSource struct { } -func (*awsRestjson1_deserializeOpCreateFunction) ID() string { +func (*awsRestjson1_deserializeOpCreateDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateFunction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -523,9 +520,9 @@ func (m *awsRestjson1_deserializeOpCreateFunction) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateFunction(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSource(response, &metadata) } - output := &CreateFunctionOutput{} + output := &CreateDataSourceOutput{} out.Result = output var buff [1024]byte @@ -546,7 +543,7 @@ func (m *awsRestjson1_deserializeOpCreateFunction) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateFunctionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -559,7 +556,7 @@ func (m *awsRestjson1_deserializeOpCreateFunction) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateFunction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -600,6 +597,9 @@ func awsRestjson1_deserializeOpErrorCreateFunction(response *smithyhttp.Response } switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConcurrentModificationException", errorCode): return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) @@ -622,7 +622,7 @@ func awsRestjson1_deserializeOpErrorCreateFunction(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentCreateFunctionOutput(v **CreateFunctionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -635,17 +635,17 @@ func awsRestjson1_deserializeOpDocumentCreateFunctionOutput(v **CreateFunctionOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateFunctionOutput + var sv *CreateDataSourceOutput if *v == nil { - sv = &CreateFunctionOutput{} + sv = &CreateDataSourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "functionConfiguration": - if err := awsRestjson1_deserializeDocumentFunctionConfiguration(&sv.FunctionConfiguration, value); err != nil { + case "dataSource": + if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { return err } @@ -658,14 +658,14 @@ func awsRestjson1_deserializeOpDocumentCreateFunctionOutput(v **CreateFunctionOu return nil } -type awsRestjson1_deserializeOpCreateGraphqlApi struct { +type awsRestjson1_deserializeOpCreateDomainName struct { } -func (*awsRestjson1_deserializeOpCreateGraphqlApi) ID() string { +func (*awsRestjson1_deserializeOpCreateDomainName) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateGraphqlApi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateDomainName) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -679,9 +679,9 @@ func (m *awsRestjson1_deserializeOpCreateGraphqlApi) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateGraphqlApi(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateDomainName(response, &metadata) } - output := &CreateGraphqlApiOutput{} + output := &CreateDomainNameOutput{} out.Result = output var buff [1024]byte @@ -702,7 +702,7 @@ func (m *awsRestjson1_deserializeOpCreateGraphqlApi) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateDomainNameOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -715,7 +715,7 @@ func (m *awsRestjson1_deserializeOpCreateGraphqlApi) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateGraphqlApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateDomainName(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -756,24 +756,15 @@ func awsRestjson1_deserializeOpErrorCreateGraphqlApi(response *smithyhttp.Respon } switch { - case strings.EqualFold("ApiLimitExceededException", errorCode): - return awsRestjson1_deserializeErrorApiLimitExceededException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -784,7 +775,7 @@ func awsRestjson1_deserializeOpErrorCreateGraphqlApi(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(v **CreateGraphqlApiOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateDomainNameOutput(v **CreateDomainNameOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -797,17 +788,17 @@ func awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(v **CreateGraphqlA return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateGraphqlApiOutput + var sv *CreateDomainNameOutput if *v == nil { - sv = &CreateGraphqlApiOutput{} + sv = &CreateDomainNameOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "graphqlApi": - if err := awsRestjson1_deserializeDocumentGraphqlApi(&sv.GraphqlApi, value); err != nil { + case "domainNameConfig": + if err := awsRestjson1_deserializeDocumentDomainNameConfig(&sv.DomainNameConfig, value); err != nil { return err } @@ -820,14 +811,14 @@ func awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(v **CreateGraphqlA return nil } -type awsRestjson1_deserializeOpCreateResolver struct { +type awsRestjson1_deserializeOpCreateFunction struct { } -func (*awsRestjson1_deserializeOpCreateResolver) ID() string { +func (*awsRestjson1_deserializeOpCreateFunction) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateResolver) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateFunction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -841,9 +832,9 @@ func (m *awsRestjson1_deserializeOpCreateResolver) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateResolver(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateFunction(response, &metadata) } - output := &CreateResolverOutput{} + output := &CreateFunctionOutput{} out.Result = output var buff [1024]byte @@ -864,7 +855,7 @@ func (m *awsRestjson1_deserializeOpCreateResolver) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateResolverOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateFunctionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -877,7 +868,7 @@ func (m *awsRestjson1_deserializeOpCreateResolver) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateResolver(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateFunction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -940,7 +931,7 @@ func awsRestjson1_deserializeOpErrorCreateResolver(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentCreateResolverOutput(v **CreateResolverOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateFunctionOutput(v **CreateFunctionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -953,17 +944,17 @@ func awsRestjson1_deserializeOpDocumentCreateResolverOutput(v **CreateResolverOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateResolverOutput + var sv *CreateFunctionOutput if *v == nil { - sv = &CreateResolverOutput{} + sv = &CreateFunctionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "resolver": - if err := awsRestjson1_deserializeDocumentResolver(&sv.Resolver, value); err != nil { + case "functionConfiguration": + if err := awsRestjson1_deserializeDocumentFunctionConfiguration(&sv.FunctionConfiguration, value); err != nil { return err } @@ -976,14 +967,14 @@ func awsRestjson1_deserializeOpDocumentCreateResolverOutput(v **CreateResolverOu return nil } -type awsRestjson1_deserializeOpCreateType struct { +type awsRestjson1_deserializeOpCreateGraphqlApi struct { } -func (*awsRestjson1_deserializeOpCreateType) ID() string { +func (*awsRestjson1_deserializeOpCreateGraphqlApi) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateGraphqlApi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -997,9 +988,9 @@ func (m *awsRestjson1_deserializeOpCreateType) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateType(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateGraphqlApi(response, &metadata) } - output := &CreateTypeOutput{} + output := &CreateGraphqlApiOutput{} out.Result = output var buff [1024]byte @@ -1020,7 +1011,7 @@ func (m *awsRestjson1_deserializeOpCreateType) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateTypeOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1033,7 +1024,7 @@ func (m *awsRestjson1_deserializeOpCreateType) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateGraphqlApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1074,6 +1065,9 @@ func awsRestjson1_deserializeOpErrorCreateType(response *smithyhttp.Response, me } switch { + case strings.EqualFold("ApiLimitExceededException", errorCode): + return awsRestjson1_deserializeErrorApiLimitExceededException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -1083,8 +1077,8 @@ func awsRestjson1_deserializeOpErrorCreateType(response *smithyhttp.Response, me case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) @@ -1099,7 +1093,7 @@ func awsRestjson1_deserializeOpErrorCreateType(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentCreateTypeOutput(v **CreateTypeOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateGraphqlApiOutput(v **CreateGraphqlApiOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1112,17 +1106,17 @@ func awsRestjson1_deserializeOpDocumentCreateTypeOutput(v **CreateTypeOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateTypeOutput + var sv *CreateGraphqlApiOutput if *v == nil { - sv = &CreateTypeOutput{} + sv = &CreateGraphqlApiOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "type": - if err := awsRestjson1_deserializeDocumentType(&sv.Type, value); err != nil { + case "graphqlApi": + if err := awsRestjson1_deserializeDocumentGraphqlApi(&sv.GraphqlApi, value); err != nil { return err } @@ -1135,14 +1129,14 @@ func awsRestjson1_deserializeOpDocumentCreateTypeOutput(v **CreateTypeOutput, va return nil } -type awsRestjson1_deserializeOpDeleteApiCache struct { +type awsRestjson1_deserializeOpCreateResolver struct { } -func (*awsRestjson1_deserializeOpDeleteApiCache) ID() string { +func (*awsRestjson1_deserializeOpCreateResolver) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateResolver) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1156,15 +1150,43 @@ func (m *awsRestjson1_deserializeOpDeleteApiCache) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteApiCache(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateResolver(response, &metadata) } - output := &DeleteApiCacheOutput{} + output := &CreateResolverOutput{} 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_deserializeOpDocumentCreateResolverOutput(&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_deserializeOpErrorDeleteApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateResolver(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1205,9 +1227,6 @@ func awsRestjson1_deserializeOpErrorDeleteApiCache(response *smithyhttp.Response } switch { - case strings.EqualFold("BadRequestException", errorCode): - return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) @@ -1230,14 +1249,50 @@ func awsRestjson1_deserializeOpErrorDeleteApiCache(response *smithyhttp.Response } } -type awsRestjson1_deserializeOpDeleteApiKey struct { -} - -func (*awsRestjson1_deserializeOpDeleteApiKey) ID() string { - return "OperationDeserializer" -} +func awsRestjson1_deserializeOpDocumentCreateResolverOutput(v **CreateResolverOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } -func (m *awsRestjson1_deserializeOpDeleteApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateResolverOutput + if *v == nil { + sv = &CreateResolverOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resolver": + if err := awsRestjson1_deserializeDocumentResolver(&sv.Resolver, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpCreateType struct { +} + +func (*awsRestjson1_deserializeOpCreateType) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1251,15 +1306,43 @@ func (m *awsRestjson1_deserializeOpDeleteApiKey) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteApiKey(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateType(response, &metadata) } - output := &DeleteApiKeyOutput{} + output := &CreateTypeOutput{} 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_deserializeOpDocumentCreateTypeOutput(&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_deserializeOpErrorDeleteApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1303,6 +1386,9 @@ func awsRestjson1_deserializeOpErrorDeleteApiKey(response *smithyhttp.Response, case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -1322,14 +1408,50 @@ func awsRestjson1_deserializeOpErrorDeleteApiKey(response *smithyhttp.Response, } } -type awsRestjson1_deserializeOpDeleteDataSource struct { +func awsRestjson1_deserializeOpDocumentCreateTypeOutput(v **CreateTypeOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateTypeOutput + if *v == nil { + sv = &CreateTypeOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "type": + if err := awsRestjson1_deserializeDocumentType(&sv.Type, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func (*awsRestjson1_deserializeOpDeleteDataSource) ID() string { +type awsRestjson1_deserializeOpDeleteApiCache struct { +} + +func (*awsRestjson1_deserializeOpDeleteApiCache) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1343,15 +1465,15 @@ func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteApiCache(response, &metadata) } - output := &DeleteDataSourceOutput{} + output := &DeleteApiCacheOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1417,14 +1539,14 @@ func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Respon } } -type awsRestjson1_deserializeOpDeleteFunction struct { +type awsRestjson1_deserializeOpDeleteApiKey struct { } -func (*awsRestjson1_deserializeOpDeleteFunction) ID() string { +func (*awsRestjson1_deserializeOpDeleteApiKey) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteFunction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1438,15 +1560,15 @@ func (m *awsRestjson1_deserializeOpDeleteFunction) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteFunction(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteApiKey(response, &metadata) } - output := &DeleteFunctionOutput{} + output := &DeleteApiKeyOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteFunction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1487,8 +1609,8 @@ func awsRestjson1_deserializeOpErrorDeleteFunction(response *smithyhttp.Response } switch { - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -1509,14 +1631,14 @@ func awsRestjson1_deserializeOpErrorDeleteFunction(response *smithyhttp.Response } } -type awsRestjson1_deserializeOpDeleteGraphqlApi struct { +type awsRestjson1_deserializeOpDeleteDataSource struct { } -func (*awsRestjson1_deserializeOpDeleteGraphqlApi) ID() string { +func (*awsRestjson1_deserializeOpDeleteDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteGraphqlApi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1530,15 +1652,15 @@ func (m *awsRestjson1_deserializeOpDeleteGraphqlApi) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSource(response, &metadata) } - output := &DeleteGraphqlApiOutput{} + output := &DeleteDataSourceOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1579,9 +1701,6 @@ func awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response *smithyhttp.Respon } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -1607,14 +1726,14 @@ func awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response *smithyhttp.Respon } } -type awsRestjson1_deserializeOpDeleteResolver struct { +type awsRestjson1_deserializeOpDeleteDomainName struct { } -func (*awsRestjson1_deserializeOpDeleteResolver) ID() string { +func (*awsRestjson1_deserializeOpDeleteDomainName) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteResolver) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDomainName) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1628,15 +1747,15 @@ func (m *awsRestjson1_deserializeOpDeleteResolver) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteResolver(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDomainName(response, &metadata) } - output := &DeleteResolverOutput{} + output := &DeleteDomainNameOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteResolver(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDomainName(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1677,6 +1796,12 @@ func awsRestjson1_deserializeOpErrorDeleteResolver(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConcurrentModificationException", errorCode): return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) @@ -1686,9 +1811,6 @@ func awsRestjson1_deserializeOpErrorDeleteResolver(response *smithyhttp.Response case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1699,14 +1821,14 @@ func awsRestjson1_deserializeOpErrorDeleteResolver(response *smithyhttp.Response } } -type awsRestjson1_deserializeOpDeleteType struct { +type awsRestjson1_deserializeOpDeleteFunction struct { } -func (*awsRestjson1_deserializeOpDeleteType) ID() string { +func (*awsRestjson1_deserializeOpDeleteFunction) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteFunction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1720,15 +1842,15 @@ func (m *awsRestjson1_deserializeOpDeleteType) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteType(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteFunction(response, &metadata) } - output := &DeleteTypeOutput{} + output := &DeleteFunctionOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteFunction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1769,9 +1891,6 @@ func awsRestjson1_deserializeOpErrorDeleteType(response *smithyhttp.Response, me } switch { - case strings.EqualFold("BadRequestException", errorCode): - return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) @@ -1794,14 +1913,14 @@ func awsRestjson1_deserializeOpErrorDeleteType(response *smithyhttp.Response, me } } -type awsRestjson1_deserializeOpFlushApiCache struct { +type awsRestjson1_deserializeOpDeleteGraphqlApi struct { } -func (*awsRestjson1_deserializeOpFlushApiCache) ID() string { +func (*awsRestjson1_deserializeOpDeleteGraphqlApi) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpFlushApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteGraphqlApi) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1815,15 +1934,674 @@ func (m *awsRestjson1_deserializeOpFlushApiCache) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorFlushApiCache(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response, &metadata) } - output := &FlushApiCacheOutput{} + output := &DeleteGraphqlApiOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorFlushApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteGraphqlApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDeleteResolver struct { +} + +func (*awsRestjson1_deserializeOpDeleteResolver) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteResolver) HandleDeserialize(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_deserializeOpErrorDeleteResolver(response, &metadata) + } + output := &DeleteResolverOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteResolver(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDeleteType struct { +} + +func (*awsRestjson1_deserializeOpDeleteType) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteType) HandleDeserialize(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_deserializeOpErrorDeleteType(response, &metadata) + } + output := &DeleteTypeOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteType(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDisassociateApi struct { +} + +func (*awsRestjson1_deserializeOpDisassociateApi) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDisassociateApi) HandleDeserialize(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_deserializeOpErrorDisassociateApi(response, &metadata) + } + output := &DisassociateApiOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDisassociateApi(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpFlushApiCache struct { +} + +func (*awsRestjson1_deserializeOpFlushApiCache) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpFlushApiCache) HandleDeserialize(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_deserializeOpErrorFlushApiCache(response, &metadata) + } + output := &FlushApiCacheOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorFlushApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpGetApiAssociation struct { +} + +func (*awsRestjson1_deserializeOpGetApiAssociation) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetApiAssociation) HandleDeserialize(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_deserializeOpErrorGetApiAssociation(response, &metadata) + } + output := &GetApiAssociationOutput{} + 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_deserializeOpDocumentGetApiAssociationOutput(&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_deserializeOpErrorGetApiAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetApiAssociationOutput(v **GetApiAssociationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetApiAssociationOutput + if *v == nil { + sv = &GetApiAssociationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiAssociation": + if err := awsRestjson1_deserializeDocumentApiAssociation(&sv.ApiAssociation, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetApiCache struct { +} + +func (*awsRestjson1_deserializeOpGetApiCache) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetApiCache) HandleDeserialize(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_deserializeOpErrorGetApiCache(response, &metadata) + } + output := &GetApiCacheOutput{} + 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_deserializeOpDocumentGetApiCacheOutput(&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_deserializeOpErrorGetApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1889,14 +2667,50 @@ func awsRestjson1_deserializeOpErrorFlushApiCache(response *smithyhttp.Response, } } -type awsRestjson1_deserializeOpGetApiCache struct { +func awsRestjson1_deserializeOpDocumentGetApiCacheOutput(v **GetApiCacheOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetApiCacheOutput + if *v == nil { + sv = &GetApiCacheOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiCache": + if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func (*awsRestjson1_deserializeOpGetApiCache) ID() string { +type awsRestjson1_deserializeOpGetDataSource struct { +} + +func (*awsRestjson1_deserializeOpGetDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1910,9 +2724,9 @@ func (m *awsRestjson1_deserializeOpGetApiCache) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetApiCache(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetDataSource(response, &metadata) } - output := &GetApiCacheOutput{} + output := &GetDataSourceOutput{} out.Result = output var buff [1024]byte @@ -1933,7 +2747,7 @@ func (m *awsRestjson1_deserializeOpGetApiCache) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetApiCacheOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetDataSourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1946,7 +2760,7 @@ func (m *awsRestjson1_deserializeOpGetApiCache) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2012,7 +2826,7 @@ func awsRestjson1_deserializeOpErrorGetApiCache(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpDocumentGetApiCacheOutput(v **GetApiCacheOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetDataSourceOutput(v **GetDataSourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2025,17 +2839,17 @@ func awsRestjson1_deserializeOpDocumentGetApiCacheOutput(v **GetApiCacheOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetApiCacheOutput + var sv *GetDataSourceOutput if *v == nil { - sv = &GetApiCacheOutput{} + sv = &GetDataSourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiCache": - if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { + case "dataSource": + if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { return err } @@ -2048,14 +2862,14 @@ func awsRestjson1_deserializeOpDocumentGetApiCacheOutput(v **GetApiCacheOutput, return nil } -type awsRestjson1_deserializeOpGetDataSource struct { +type awsRestjson1_deserializeOpGetDomainName struct { } -func (*awsRestjson1_deserializeOpGetDataSource) ID() string { +func (*awsRestjson1_deserializeOpGetDomainName) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetDomainName) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2069,9 +2883,9 @@ func (m *awsRestjson1_deserializeOpGetDataSource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetDomainName(response, &metadata) } - output := &GetDataSourceOutput{} + output := &GetDomainNameOutput{} out.Result = output var buff [1024]byte @@ -2092,7 +2906,7 @@ func (m *awsRestjson1_deserializeOpGetDataSource) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetDomainNameOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2105,7 +2919,7 @@ func (m *awsRestjson1_deserializeOpGetDataSource) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetDomainName(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2146,21 +2960,18 @@ func awsRestjson1_deserializeOpErrorGetDataSource(response *smithyhttp.Response, } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2171,7 +2982,7 @@ func awsRestjson1_deserializeOpErrorGetDataSource(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentGetDataSourceOutput(v **GetDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetDomainNameOutput(v **GetDomainNameOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2184,17 +2995,17 @@ func awsRestjson1_deserializeOpDocumentGetDataSourceOutput(v **GetDataSourceOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetDataSourceOutput + var sv *GetDomainNameOutput if *v == nil { - sv = &GetDataSourceOutput{} + sv = &GetDomainNameOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dataSource": - if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { + case "domainNameConfig": + if err := awsRestjson1_deserializeDocumentDomainNameConfig(&sv.DomainNameConfig, value); err != nil { return err } @@ -2919,29 +3730,188 @@ func awsRestjson1_deserializeOpDocumentGetSchemaCreationStatusOutput(v **GetSche var sv *GetSchemaCreationStatusOutput if *v == nil { - sv = &GetSchemaCreationStatusOutput{} + sv = &GetSchemaCreationStatusOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "details": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Details = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SchemaStatus to be of type string, got %T instead", value) + } + sv.Status = types.SchemaStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetType struct { +} + +func (*awsRestjson1_deserializeOpGetType) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetType) HandleDeserialize(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_deserializeOpErrorGetType(response, &metadata) + } + output := &GetTypeOutput{} + 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_deserializeOpDocumentGetTypeOutput(&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_deserializeOpErrorGetType(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetTypeOutput(v **GetTypeOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetTypeOutput + if *v == nil { + sv = &GetTypeOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "details": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Details = ptr.String(jtv) - } - - case "status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SchemaStatus to be of type string, got %T instead", value) - } - sv.Status = types.SchemaStatus(jtv) + case "type": + if err := awsRestjson1_deserializeDocumentType(&sv.Type, value); err != nil { + return err } default: @@ -2953,14 +3923,14 @@ func awsRestjson1_deserializeOpDocumentGetSchemaCreationStatusOutput(v **GetSche return nil } -type awsRestjson1_deserializeOpGetType struct { +type awsRestjson1_deserializeOpListApiKeys struct { } -func (*awsRestjson1_deserializeOpGetType) ID() string { +func (*awsRestjson1_deserializeOpListApiKeys) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListApiKeys) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2974,9 +3944,9 @@ func (m *awsRestjson1_deserializeOpGetType) HandleDeserialize(ctx context.Contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetType(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListApiKeys(response, &metadata) } - output := &GetTypeOutput{} + output := &ListApiKeysOutput{} out.Result = output var buff [1024]byte @@ -2997,7 +3967,7 @@ func (m *awsRestjson1_deserializeOpGetType) HandleDeserialize(ctx context.Contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetTypeOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListApiKeysOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3010,7 +3980,7 @@ func (m *awsRestjson1_deserializeOpGetType) HandleDeserialize(ctx context.Contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListApiKeys(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3054,9 +4024,6 @@ func awsRestjson1_deserializeOpErrorGetType(response *smithyhttp.Response, metad case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -3076,7 +4043,7 @@ func awsRestjson1_deserializeOpErrorGetType(response *smithyhttp.Response, metad } } -func awsRestjson1_deserializeOpDocumentGetTypeOutput(v **GetTypeOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListApiKeysOutput(v **ListApiKeysOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3089,20 +4056,29 @@ func awsRestjson1_deserializeOpDocumentGetTypeOutput(v **GetTypeOutput, value in return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetTypeOutput + var sv *ListApiKeysOutput if *v == nil { - sv = &GetTypeOutput{} + sv = &ListApiKeysOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "type": - if err := awsRestjson1_deserializeDocumentType(&sv.Type, value); err != nil { + case "apiKeys": + if err := awsRestjson1_deserializeDocumentApiKeys(&sv.ApiKeys, value); err != nil { return err } + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + default: _, _ = key, value @@ -3112,14 +4088,14 @@ func awsRestjson1_deserializeOpDocumentGetTypeOutput(v **GetTypeOutput, value in return nil } -type awsRestjson1_deserializeOpListApiKeys struct { +type awsRestjson1_deserializeOpListDataSources struct { } -func (*awsRestjson1_deserializeOpListApiKeys) ID() string { +func (*awsRestjson1_deserializeOpListDataSources) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListApiKeys) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3133,9 +4109,9 @@ func (m *awsRestjson1_deserializeOpListApiKeys) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListApiKeys(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDataSources(response, &metadata) } - output := &ListApiKeysOutput{} + output := &ListDataSourcesOutput{} out.Result = output var buff [1024]byte @@ -3156,7 +4132,7 @@ func (m *awsRestjson1_deserializeOpListApiKeys) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListApiKeysOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDataSourcesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3169,7 +4145,7 @@ func (m *awsRestjson1_deserializeOpListApiKeys) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListApiKeys(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3232,7 +4208,7 @@ func awsRestjson1_deserializeOpErrorListApiKeys(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpDocumentListApiKeysOutput(v **ListApiKeysOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSourcesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3245,17 +4221,17 @@ func awsRestjson1_deserializeOpDocumentListApiKeysOutput(v **ListApiKeysOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListApiKeysOutput + var sv *ListDataSourcesOutput if *v == nil { - sv = &ListApiKeysOutput{} + sv = &ListDataSourcesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiKeys": - if err := awsRestjson1_deserializeDocumentApiKeys(&sv.ApiKeys, value); err != nil { + case "dataSources": + if err := awsRestjson1_deserializeDocumentDataSources(&sv.DataSources, value); err != nil { return err } @@ -3277,14 +4253,14 @@ func awsRestjson1_deserializeOpDocumentListApiKeysOutput(v **ListApiKeysOutput, return nil } -type awsRestjson1_deserializeOpListDataSources struct { +type awsRestjson1_deserializeOpListDomainNames struct { } -func (*awsRestjson1_deserializeOpListDataSources) ID() string { +func (*awsRestjson1_deserializeOpListDomainNames) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDomainNames) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3298,9 +4274,9 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDataSources(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDomainNames(response, &metadata) } - output := &ListDataSourcesOutput{} + output := &ListDomainNamesOutput{} out.Result = output var buff [1024]byte @@ -3321,7 +4297,7 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDataSourcesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDomainNamesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3334,7 +4310,7 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDomainNames(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3375,18 +4351,15 @@ func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Respons } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -3397,7 +4370,7 @@ func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSourcesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDomainNamesOutput(v **ListDomainNamesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3410,17 +4383,17 @@ func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSources return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDataSourcesOutput + var sv *ListDomainNamesOutput if *v == nil { - sv = &ListDataSourcesOutput{} + sv = &ListDomainNamesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dataSources": - if err := awsRestjson1_deserializeDocumentDataSources(&sv.DataSources, value); err != nil { + case "domainNameConfigs": + if err := awsRestjson1_deserializeDocumentDomainNameConfigs(&sv.DomainNameConfigs, value); err != nil { return err } @@ -4772,30 +5745,189 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpUpdateApiCache struct { +} + +func (*awsRestjson1_deserializeOpUpdateApiCache) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateApiCache) HandleDeserialize(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_deserializeOpErrorUpdateApiCache(response, &metadata) + } + output := &UpdateApiCacheOutput{} + 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_deserializeOpDocumentUpdateApiCacheOutput(&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_deserializeOpErrorUpdateApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateApiCacheOutput(v **UpdateApiCacheOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateApiCacheOutput + if *v == nil { + sv = &UpdateApiCacheOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiCache": + if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { + return err + } - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + default: + _, _ = key, value - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, } - return genericError - } + *v = sv + return nil } -type awsRestjson1_deserializeOpUpdateApiCache struct { +type awsRestjson1_deserializeOpUpdateApiKey struct { } -func (*awsRestjson1_deserializeOpUpdateApiCache) ID() string { +func (*awsRestjson1_deserializeOpUpdateApiKey) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateApiCache) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4809,9 +5941,9 @@ func (m *awsRestjson1_deserializeOpUpdateApiCache) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateApiCache(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateApiKey(response, &metadata) } - output := &UpdateApiCacheOutput{} + output := &UpdateApiKeyOutput{} out.Result = output var buff [1024]byte @@ -4832,7 +5964,7 @@ func (m *awsRestjson1_deserializeOpUpdateApiCache) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateApiCacheOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4845,7 +5977,7 @@ func (m *awsRestjson1_deserializeOpUpdateApiCache) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateApiCache(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4886,15 +6018,18 @@ func awsRestjson1_deserializeOpErrorUpdateApiCache(response *smithyhttp.Response } switch { + case strings.EqualFold("ApiKeyValidityOutOfBoundsException", errorCode): + return awsRestjson1_deserializeErrorApiKeyValidityOutOfBoundsException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) - case strings.EqualFold("ConcurrentModificationException", errorCode): - return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) @@ -4911,7 +6046,7 @@ func awsRestjson1_deserializeOpErrorUpdateApiCache(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentUpdateApiCacheOutput(v **UpdateApiCacheOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(v **UpdateApiKeyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4924,17 +6059,17 @@ func awsRestjson1_deserializeOpDocumentUpdateApiCacheOutput(v **UpdateApiCacheOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateApiCacheOutput + var sv *UpdateApiKeyOutput if *v == nil { - sv = &UpdateApiCacheOutput{} + sv = &UpdateApiKeyOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiCache": - if err := awsRestjson1_deserializeDocumentApiCache(&sv.ApiCache, value); err != nil { + case "apiKey": + if err := awsRestjson1_deserializeDocumentApiKey(&sv.ApiKey, value); err != nil { return err } @@ -4947,14 +6082,14 @@ func awsRestjson1_deserializeOpDocumentUpdateApiCacheOutput(v **UpdateApiCacheOu return nil } -type awsRestjson1_deserializeOpUpdateApiKey struct { +type awsRestjson1_deserializeOpUpdateDataSource struct { } -func (*awsRestjson1_deserializeOpUpdateApiKey) ID() string { +func (*awsRestjson1_deserializeOpUpdateDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateApiKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4968,9 +6103,9 @@ func (m *awsRestjson1_deserializeOpUpdateApiKey) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateApiKey(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateDataSource(response, &metadata) } - output := &UpdateApiKeyOutput{} + output := &UpdateDataSourceOutput{} out.Result = output var buff [1024]byte @@ -4991,7 +6126,7 @@ func (m *awsRestjson1_deserializeOpUpdateApiKey) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateDataSourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5004,7 +6139,7 @@ func (m *awsRestjson1_deserializeOpUpdateApiKey) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateApiKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5045,18 +6180,15 @@ func awsRestjson1_deserializeOpErrorUpdateApiKey(response *smithyhttp.Response, } switch { - case strings.EqualFold("ApiKeyValidityOutOfBoundsException", errorCode): - return awsRestjson1_deserializeErrorApiKeyValidityOutOfBoundsException(response, errorBody) - case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConcurrentModificationException", errorCode): + return awsRestjson1_deserializeErrorConcurrentModificationException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) @@ -5073,7 +6205,7 @@ func awsRestjson1_deserializeOpErrorUpdateApiKey(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(v **UpdateApiKeyOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateDataSourceOutput(v **UpdateDataSourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5086,17 +6218,17 @@ func awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(v **UpdateApiKeyOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateApiKeyOutput + var sv *UpdateDataSourceOutput if *v == nil { - sv = &UpdateApiKeyOutput{} + sv = &UpdateDataSourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "apiKey": - if err := awsRestjson1_deserializeDocumentApiKey(&sv.ApiKey, value); err != nil { + case "dataSource": + if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { return err } @@ -5109,14 +6241,14 @@ func awsRestjson1_deserializeOpDocumentUpdateApiKeyOutput(v **UpdateApiKeyOutput return nil } -type awsRestjson1_deserializeOpUpdateDataSource struct { +type awsRestjson1_deserializeOpUpdateDomainName struct { } -func (*awsRestjson1_deserializeOpUpdateDataSource) ID() string { +func (*awsRestjson1_deserializeOpUpdateDomainName) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateDomainName) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5130,9 +6262,9 @@ func (m *awsRestjson1_deserializeOpUpdateDataSource) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateDomainName(response, &metadata) } - output := &UpdateDataSourceOutput{} + output := &UpdateDomainNameOutput{} out.Result = output var buff [1024]byte @@ -5153,7 +6285,7 @@ func (m *awsRestjson1_deserializeOpUpdateDataSource) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateDomainNameOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5166,7 +6298,7 @@ func (m *awsRestjson1_deserializeOpUpdateDataSource) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateDomainName(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5207,6 +6339,9 @@ func awsRestjson1_deserializeOpErrorUpdateDataSource(response *smithyhttp.Respon } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -5219,9 +6354,6 @@ func awsRestjson1_deserializeOpErrorUpdateDataSource(response *smithyhttp.Respon case strings.EqualFold("NotFoundException", errorCode): return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5232,7 +6364,7 @@ func awsRestjson1_deserializeOpErrorUpdateDataSource(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentUpdateDataSourceOutput(v **UpdateDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateDomainNameOutput(v **UpdateDomainNameOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5245,17 +6377,17 @@ func awsRestjson1_deserializeOpDocumentUpdateDataSourceOutput(v **UpdateDataSour return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateDataSourceOutput + var sv *UpdateDomainNameOutput if *v == nil { - sv = &UpdateDataSourceOutput{} + sv = &UpdateDomainNameOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dataSource": - if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { + case "domainNameConfig": + if err := awsRestjson1_deserializeDocumentDomainNameConfig(&sv.DomainNameConfig, value); err != nil { return err } @@ -6426,6 +7558,73 @@ func awsRestjson1_deserializeDocumentAdditionalAuthenticationProviders(v *[]type return nil } +func awsRestjson1_deserializeDocumentApiAssociation(v **types.ApiAssociation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ApiAssociation + if *v == nil { + sv = &types.ApiAssociation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ApiId = ptr.String(jtv) + } + + case "associationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssociationStatus to be of type string, got %T instead", value) + } + sv.AssociationStatus = types.AssociationStatus(jtv) + } + + case "deploymentDetail": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DeploymentDetail = ptr.String(jtv) + } + + case "domainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DomainName to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentApiCache(v **types.ApiCache, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7267,6 +8466,116 @@ func awsRestjson1_deserializeDocumentDeltaSyncConfig(v **types.DeltaSyncConfig, return nil } +func awsRestjson1_deserializeDocumentDomainNameConfig(v **types.DomainNameConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DomainNameConfig + if *v == nil { + sv = &types.DomainNameConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "appsyncDomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AppsyncDomainName = ptr.String(jtv) + } + + case "certificateArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CertificateArn to be of type string, got %T instead", value) + } + sv.CertificateArn = ptr.String(jtv) + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Description to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "domainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DomainName to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + case "hostedZoneId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.HostedZoneId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDomainNameConfigs(v *[]types.DomainNameConfig, 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.DomainNameConfig + if *v == nil { + cv = []types.DomainNameConfig{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DomainNameConfig + destAddr := &col + if err := awsRestjson1_deserializeDocumentDomainNameConfig(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentDynamodbDataSourceConfig(v **types.DynamodbDataSourceConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/appsync/generated.json b/service/appsync/generated.json index 7ce19b0517d..cc0b859bc2d 100644 --- a/service/appsync/generated.json +++ b/service/appsync/generated.json @@ -7,9 +7,11 @@ }, "files": [ "api_client.go", + "api_op_AssociateApi.go", "api_op_CreateApiCache.go", "api_op_CreateApiKey.go", "api_op_CreateDataSource.go", + "api_op_CreateDomainName.go", "api_op_CreateFunction.go", "api_op_CreateGraphqlApi.go", "api_op_CreateResolver.go", @@ -17,13 +19,17 @@ "api_op_DeleteApiCache.go", "api_op_DeleteApiKey.go", "api_op_DeleteDataSource.go", + "api_op_DeleteDomainName.go", "api_op_DeleteFunction.go", "api_op_DeleteGraphqlApi.go", "api_op_DeleteResolver.go", "api_op_DeleteType.go", + "api_op_DisassociateApi.go", "api_op_FlushApiCache.go", + "api_op_GetApiAssociation.go", "api_op_GetApiCache.go", "api_op_GetDataSource.go", + "api_op_GetDomainName.go", "api_op_GetFunction.go", "api_op_GetGraphqlApi.go", "api_op_GetIntrospectionSchema.go", @@ -32,6 +38,7 @@ "api_op_GetType.go", "api_op_ListApiKeys.go", "api_op_ListDataSources.go", + "api_op_ListDomainNames.go", "api_op_ListFunctions.go", "api_op_ListGraphqlApis.go", "api_op_ListResolvers.go", @@ -44,6 +51,7 @@ "api_op_UpdateApiCache.go", "api_op_UpdateApiKey.go", "api_op_UpdateDataSource.go", + "api_op_UpdateDomainName.go", "api_op_UpdateFunction.go", "api_op_UpdateGraphqlApi.go", "api_op_UpdateResolver.go", diff --git a/service/appsync/serializers.go b/service/appsync/serializers.go index 02d3912bc12..772abddb760 100644 --- a/service/appsync/serializers.go +++ b/service/appsync/serializers.go @@ -14,6 +14,87 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) +type awsRestjson1_serializeOpAssociateApi struct { +} + +func (*awsRestjson1_serializeOpAssociateApi) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpAssociateApi) 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.(*AssociateApiInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}/apiassociation") + 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_serializeOpHttpBindingsAssociateApiInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentAssociateApiInput(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_serializeOpHttpBindingsAssociateApiInput(v *AssociateApiInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentAssociateApiInput(v *AssociateApiInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApiId != nil { + ok := object.Key("apiId") + ok.String(*v.ApiId) + } + + return nil +} + type awsRestjson1_serializeOpCreateApiCache struct { } @@ -339,6 +420,84 @@ func awsRestjson1_serializeOpDocumentCreateDataSourceInput(v *CreateDataSourceIn return nil } +type awsRestjson1_serializeOpCreateDomainName struct { +} + +func (*awsRestjson1_serializeOpCreateDomainName) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateDomainName) 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.(*CreateDomainNameInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames") + 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_serializeOpDocumentCreateDomainNameInput(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_serializeOpHttpBindingsCreateDomainNameInput(v *CreateDomainNameInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateDomainNameInput(v *CreateDomainNameInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CertificateArn != nil { + ok := object.Key("certificateArn") + ok.String(*v.CertificateArn) + } + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if v.DomainName != nil { + ok := object.Key("domainName") + ok.String(*v.DomainName) + } + + return nil +} + type awsRestjson1_serializeOpCreateFunction struct { } @@ -981,6 +1140,64 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(v *DeleteDataSour return nil } +type awsRestjson1_serializeOpDeleteDomainName struct { +} + +func (*awsRestjson1_serializeOpDeleteDomainName) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteDomainName) 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.(*DeleteDomainNameInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}") + 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_serializeOpHttpBindingsDeleteDomainNameInput(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_serializeOpHttpBindingsDeleteDomainNameInput(v *DeleteDomainNameInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteFunction struct { } @@ -1249,6 +1466,64 @@ func awsRestjson1_serializeOpHttpBindingsDeleteTypeInput(v *DeleteTypeInput, enc return nil } +type awsRestjson1_serializeOpDisassociateApi struct { +} + +func (*awsRestjson1_serializeOpDisassociateApi) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDisassociateApi) 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.(*DisassociateApiInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}/apiassociation") + 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_serializeOpHttpBindingsDisassociateApiInput(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_serializeOpHttpBindingsDisassociateApiInput(v *DisassociateApiInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpFlushApiCache struct { } @@ -1307,6 +1582,64 @@ func awsRestjson1_serializeOpHttpBindingsFlushApiCacheInput(v *FlushApiCacheInpu return nil } +type awsRestjson1_serializeOpGetApiAssociation struct { +} + +func (*awsRestjson1_serializeOpGetApiAssociation) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetApiAssociation) 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.(*GetApiAssociationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}/apiassociation") + 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_serializeOpHttpBindingsGetApiAssociationInput(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_serializeOpHttpBindingsGetApiAssociationInput(v *GetApiAssociationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetApiCache struct { } @@ -1432,6 +1765,64 @@ func awsRestjson1_serializeOpHttpBindingsGetDataSourceInput(v *GetDataSourceInpu return nil } +type awsRestjson1_serializeOpGetDomainName struct { +} + +func (*awsRestjson1_serializeOpGetDomainName) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetDomainName) 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.(*GetDomainNameInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}") + 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_serializeOpHttpBindingsGetDomainNameInput(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_serializeOpHttpBindingsGetDomainNameInput(v *GetDomainNameInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetFunction struct { } @@ -1960,6 +2351,63 @@ func awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(v *ListDataSources return nil } +type awsRestjson1_serializeOpListDomainNames struct { +} + +func (*awsRestjson1_serializeOpListDomainNames) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListDomainNames) 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.(*ListDomainNamesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames") + 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_serializeOpHttpBindingsListDomainNamesInput(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_serializeOpHttpBindingsListDomainNamesInput(v *ListDomainNamesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != 0 { + encoder.SetQuery("maxResults").Integer(v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListFunctions struct { } @@ -2917,6 +3365,87 @@ func awsRestjson1_serializeOpDocumentUpdateDataSourceInput(v *UpdateDataSourceIn return nil } +type awsRestjson1_serializeOpUpdateDomainName struct { +} + +func (*awsRestjson1_serializeOpUpdateDomainName) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateDomainName) 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.(*UpdateDomainNameInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/domainnames/{domainName}") + 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_serializeOpHttpBindingsUpdateDomainNameInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateDomainNameInput(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_serializeOpHttpBindingsUpdateDomainNameInput(v *UpdateDomainNameInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member domainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("domainName").String(*v.DomainName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateDomainNameInput(v *UpdateDomainNameInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + return nil +} + type awsRestjson1_serializeOpUpdateFunction struct { } diff --git a/service/appsync/types/enums.go b/service/appsync/types/enums.go index bbf6e718827..a846382e978 100644 --- a/service/appsync/types/enums.go +++ b/service/appsync/types/enums.go @@ -88,6 +88,26 @@ func (ApiCachingBehavior) Values() []ApiCachingBehavior { } } +type AssociationStatus string + +// Enum values for AssociationStatus +const ( + AssociationStatusProcessing AssociationStatus = "PROCESSING" + AssociationStatusFailed AssociationStatus = "FAILED" + AssociationStatusSuccess AssociationStatus = "SUCCESS" +) + +// Values returns all known values for AssociationStatus. 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 (AssociationStatus) Values() []AssociationStatus { + return []AssociationStatus{ + "PROCESSING", + "FAILED", + "SUCCESS", + } +} + type AuthenticationType string // Enum values for AuthenticationType diff --git a/service/appsync/types/errors.go b/service/appsync/types/errors.go index dbd0fcb760e..0bab72035ef 100644 --- a/service/appsync/types/errors.go +++ b/service/appsync/types/errors.go @@ -7,7 +7,7 @@ import ( smithy "github.com/aws/smithy-go" ) -// You do not have access to perform this operation on this resource. +// You don't have access to perform this operation on this resource. type AccessDeniedException struct { Message *string @@ -207,7 +207,7 @@ func (e *NotFoundException) ErrorMessage() string { func (e *NotFoundException) ErrorCode() string { return "NotFoundException" } func (e *NotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// You are not authorized to perform this operation. +// You aren't authorized to perform this operation. type UnauthorizedException struct { Message *string diff --git a/service/appsync/types/types.go b/service/appsync/types/types.go index 9dc89853bb0..6f017cca3c4 100644 --- a/service/appsync/types/types.go +++ b/service/appsync/types/types.go @@ -9,14 +9,14 @@ import ( // Describes an additional authentication provider. type AdditionalAuthenticationProvider struct { - // The authentication type: API key, Identity and Access Management, OIDC, Amazon - // Cognito user pools, or Amazon Web Services Lambda. + // The authentication type: API key, Identity and Access Management (IAM), OpenID + // Connect (OIDC), Amazon Cognito user pools, or Lambda. AuthenticationType AuthenticationType - // Configuration for Amazon Web Services Lambda function authorization. + // Configuration for Lambda function authorization. LambdaAuthorizerConfig *LambdaAuthorizerConfig - // The OpenID Connect configuration. + // The OIDC configuration. OpenIDConnectConfig *OpenIDConnectConfig // The Amazon Cognito user pool configuration. @@ -25,6 +25,34 @@ type AdditionalAuthenticationProvider struct { noSmithyDocumentSerde } +// Describes an ApiAssociation object. +type ApiAssociation struct { + + // The API ID. + ApiId *string + + // Identifies the status of an association. + // + // * PROCESSING: The API association is + // being created. You cannot modify association requests during processing. + // + // * + // SUCCESS: The API association was successful. You can modify associations after + // success. + // + // * FAILED: The API association has failed. You can modify associations + // after failure. + AssociationStatus AssociationStatus + + // Details about the last deployment status. + DeploymentDetail *string + + // The domain name. + DomainName *string + + noSmithyDocumentSerde +} + // The ApiCache object. type ApiCache struct { @@ -36,7 +64,7 @@ type ApiCache struct { // PER_RESOLVER_CACHING: Individual resolvers that you specify are cached. ApiCachingBehavior ApiCachingBehavior - // At rest encryption flag for cache. This setting cannot be updated after + // At-rest encryption flag for cache. You cannot update this setting after // creation. AtRestEncryptionEnabled bool @@ -56,11 +84,11 @@ type ApiCache struct { // FAILED: The instance has failed creation. Status ApiCacheStatus - // Transit encryption flag when connecting to cache. This setting cannot be updated + // Transit encryption flag when connecting to cache. You cannot update this setting // after creation. TransitEncryptionEnabled bool - // TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + // TTL in seconds for cache entries. Valid values are 1–3,600 seconds. Ttl int64 // The cache instance type. Valid values are @@ -110,52 +138,52 @@ type ApiCache struct { } // Describes an API key. Customers invoke AppSync GraphQL API operations with API -// keys as an identity mechanism. There are two key versions: da1: This version was -// introduced at launch in November 2017. These keys always expire after 7 days. -// Key expiration is managed by Amazon DynamoDB TTL. The keys ceased to be valid -// after February 21, 2018 and should not be used after that date. -// -// * ListApiKeys -// returns the expiration time in milliseconds. +// keys as an identity mechanism. There are two key versions: da1: We introduced +// this version at launch in November 2017. These keys always expire after 7 days. +// Amazon DynamoDB TTL manages key expiration. These keys ceased to be valid after +// February 21, 2018, and they should no longer be used. // -// * CreateApiKey returns the +// * ListApiKeys returns the // expiration time in milliseconds. // -// * UpdateApiKey is not available for this key -// version. +// * CreateApiKey returns the expiration time in +// milliseconds. // -// * DeleteApiKey deletes the item from the table. +// * UpdateApiKey is not available for this key version. // -// * Expiration is -// stored in Amazon DynamoDB as milliseconds. This results in a bug where keys are -// not automatically deleted because DynamoDB expects the TTL to be stored in -// seconds. As a one-time action, we will delete these keys from the table after -// February 21, 2018. +// * +// DeleteApiKey deletes the item from the table. // -// da2: This version was introduced in February 2018 when -// AppSync added support to extend key expiration. +// * Expiration is stored in +// DynamoDB as milliseconds. This results in a bug where keys are not automatically +// deleted because DynamoDB expects the TTL to be stored in seconds. As a one-time +// action, we deleted these keys from the table on February 21, 2018. // -// * ListApiKeys returns the -// expiration time and deletion time in seconds. +// da2: We +// introduced this version in February 2018 when AppSync added support to extend +// key expiration. +// +// * ListApiKeys returns the expiration time and deletion time in +// seconds. // -// * CreateApiKey returns the -// expiration time and deletion time in seconds and accepts a user-provided -// expiration time in seconds. +// * CreateApiKey returns the expiration time and deletion time in +// seconds and accepts a user-provided expiration time in seconds. // -// * UpdateApiKey returns the expiration time and and -// deletion time in seconds and accepts a user-provided expiration time in seconds. -// Expired API keys are kept for 60 days after the expiration time. Key expiration -// time can be updated while the key is not deleted. +// * UpdateApiKey +// returns the expiration time and and deletion time in seconds and accepts a +// user-provided expiration time in seconds. Expired API keys are kept for 60 days +// after the expiration time. You can update the key expiration time as long as the +// key isn't deleted. // -// * DeleteApiKey deletes the -// item from the table. +// * DeleteApiKey deletes the item from the table. // -// * Expiration is stored in Amazon DynamoDB as seconds. -// After the expiration time, using the key to authenticate will fail. But the key -// can be reinstated before deletion. +// * +// Expiration is stored in DynamoDB as seconds. After the expiration time, using +// the key to authenticate will fail. However, you can reinstate the key before +// deletion. // -// * Deletion is stored in Amazon DynamoDB as -// seconds. The key will be deleted after deletion time. +// * Deletion is stored in DynamoDB as seconds. The key is deleted after +// deletion time. type ApiKey struct { // The time after which the API key is deleted. The date is represented as seconds @@ -175,45 +203,46 @@ type ApiKey struct { noSmithyDocumentSerde } -// The authorization config in case the HTTP endpoint requires authorization. +// The authorization configuration in case the HTTP endpoint requires +// authorization. type AuthorizationConfig struct { - // The authorization type required by the HTTP endpoint. + // The authorization type that the HTTP endpoint requires. // // * AWS_IAM: The - // authorization type is Sigv4. + // authorization type is Signature Version 4 (SigV4). // // This member is required. AuthorizationType AuthorizationType - // The Identity and Access Management settings. + // The Identity and Access Management (IAM) settings. AwsIamConfig *AwsIamConfig noSmithyDocumentSerde } -// The Identity and Access Management configuration. +// The Identity and Access Management (IAM) configuration. type AwsIamConfig struct { - // The signing region for Identity and Access Management authorization. + // The signing Amazon Web Services Region for IAM authorization. SigningRegion *string - // The signing service name for Identity and Access Management authorization. + // The signing service name for IAM authorization. SigningServiceName *string noSmithyDocumentSerde } -// The caching configuration for a resolver that has caching enabled. +// The caching configuration for a resolver that has caching activated. type CachingConfig struct { - // The caching keys for a resolver that has caching enabled. Valid values are + // The caching keys for a resolver that has caching activated. Valid values are // entries from the $context.arguments, $context.source, and $context.identity // maps. CachingKeys []string - // The TTL in seconds for a resolver that has caching enabled. Valid values are - // between 1 and 3600 seconds. + // The TTL in seconds for a resolver that has caching activated. Valid values are + // 1–3,600 seconds. Ttl int64 noSmithyDocumentSerde @@ -242,13 +271,13 @@ type CognitoUserPoolConfig struct { // Describes a data source. type DataSource struct { - // The data source ARN. + // The data source Amazon Resource Name (ARN). DataSourceArn *string // The description of the data source. Description *string - // Amazon DynamoDB settings. + // DynamoDB settings. DynamodbConfig *DynamodbDataSourceConfig // Amazon OpenSearch Service settings. @@ -257,7 +286,7 @@ type DataSource struct { // HTTP endpoint settings. HttpConfig *HttpDataSourceConfig - // Amazon Web Services Lambda settings. + // Lambda settings. LambdaConfig *LambdaDataSourceConfig // The name of the data source. @@ -269,33 +298,34 @@ type DataSource struct { // Relational database settings. RelationalDatabaseConfig *RelationalDatabaseDataSourceConfig - // The Identity and Access Management service role ARN for the data source. The - // system assumes this role when accessing the data source. + // The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) + // for the data source. The system assumes this role when accessing the data + // source. ServiceRoleArn *string // The type of the data source. // - // * AWS_LAMBDA: The data source is an Amazon Web - // Services Lambda function. + // * AWS_LAMBDA: The data source is an Lambda + // function. // - // * AMAZON_DYNAMODB: The data source is an Amazon - // DynamoDB table. + // * AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table. // - // * AMAZON_ELASTICSEARCH: The data source is an Amazon OpenSearch - // Service domain. + // * + // AMAZON_ELASTICSEARCH: The data source is an Amazon OpenSearch Service domain. // - // * AMAZON_OPENSEARCH_SERVICE: The data source is an Amazon - // OpenSearch Service domain. + // * + // AMAZON_OPENSEARCH_SERVICE: The data source is an Amazon OpenSearch Service + // domain. // - // * NONE: There is no data source. This type is used - // when you wish to invoke a GraphQL operation without connecting to a data source, - // such as performing data transformation with resolvers or triggering a - // subscription to be invoked from a mutation. + // * NONE: There is no data source. Use this type when you want to invoke + // a GraphQL operation without connecting to a data source, such as when you're + // performing data transformation with resolvers or invoking a subscription from a + // mutation. // - // * HTTP: The data source is an HTTP - // endpoint. + // * HTTP: The data source is an HTTP endpoint. // - // * RELATIONAL_DATABASE: The data source is a relational database. + // * RELATIONAL_DATABASE: + // The data source is a relational database. Type DataSourceType noSmithyDocumentSerde @@ -304,18 +334,42 @@ type DataSource struct { // Describes a Delta Sync configuration. type DeltaSyncConfig struct { - // The number of minutes an Item is stored in the datasource. + // The number of minutes that an Item is stored in the data source. BaseTableTTL int64 // The Delta Sync table name. DeltaSyncTableName *string - // The number of minutes a Delta Sync log entry is stored in the Delta Sync table. + // The number of minutes that a Delta Sync log entry is stored in the Delta Sync + // table. DeltaSyncTableTTL int64 noSmithyDocumentSerde } +// Describes a configuration for a custom domain. +type DomainNameConfig struct { + + // The domain name that AppSync provides. + AppsyncDomainName *string + + // The Amazon Resource Name (ARN) of the certificate. This can be an Certificate + // Manager (ACM) certificate or an Identity and Access Management (IAM) server + // certificate. + CertificateArn *string + + // A description of the DomainName configuration. + Description *string + + // The domain name. + DomainName *string + + // The ID of your Amazon Route 53 hosted zone. + HostedZoneId *string + + noSmithyDocumentSerde +} + // Describes an Amazon DynamoDB data source configuration. type DynamodbDataSourceConfig struct { @@ -329,7 +383,7 @@ type DynamodbDataSourceConfig struct { // This member is required. TableName *string - // The DeltaSyncConfig for a versioned datasource. + // The DeltaSyncConfig for a versioned data source. DeltaSyncConfig *DeltaSyncConfig // Set to TRUE to use Amazon Cognito credentials with this data source. @@ -360,7 +414,7 @@ type ElasticsearchDataSourceConfig struct { noSmithyDocumentSerde } -// A function is a reusable entity. Multiple functions can be used to compose the +// A function is a reusable entity. You can use multiple functions to compose the // resolver logic. type FunctionConfiguration struct { @@ -370,13 +424,13 @@ type FunctionConfiguration struct { // The Function description. Description *string - // The ARN of the Function object. + // The Amazon Resource Name (ARN) of the Function object. FunctionArn *string // A unique ID representing the Function object. FunctionId *string - // The version of the request mapping template. Currently only the 2018-05-29 + // The version of the request mapping template. Currently, only the 2018-05-29 // version of the template is supported. FunctionVersion *string @@ -390,9 +444,8 @@ type FunctionConfiguration struct { // The Function response mapping template. ResponseMappingTemplate *string - // Describes a Sync configuration for a resolver. Contains information on which - // Conflict Detection as well as Resolution strategy should be performed when the - // resolver is invoked. + // Describes a Sync configuration for a resolver. Specifies which Conflict + // Detection strategy and Resolution strategy to use when the resolver is invoked. SyncConfig *SyncConfig noSmithyDocumentSerde @@ -407,13 +460,13 @@ type GraphqlApi struct { // The API ID. ApiId *string - // The ARN. + // The Amazon Resource Name (ARN). Arn *string // The authentication type. AuthenticationType AuthenticationType - // Configuration for Amazon Web Services Lambda function authorization. + // Configuration for Lambda function authorization. LambdaAuthorizerConfig *LambdaAuthorizerConfig // The Amazon CloudWatch Logs configuration. @@ -434,10 +487,11 @@ type GraphqlApi struct { // The Amazon Cognito user pool configuration. UserPoolConfig *UserPoolConfig - // The ARN of the WAF ACL associated with this GraphqlApi, if one exists. + // The ARN of the WAF access control list (ACL) associated with this GraphqlApi, if + // one exists. WafWebAclArn *string - // A flag representing whether X-Ray tracing is enabled for this GraphqlApi. + // A flag indicating whether to use X-Ray tracing for this GraphqlApi. XrayEnabled bool noSmithyDocumentSerde @@ -446,31 +500,32 @@ type GraphqlApi struct { // Describes an HTTP data source configuration. type HttpDataSourceConfig struct { - // The authorization config in case the HTTP endpoint requires authorization. + // The authorization configuration in case the HTTP endpoint requires + // authorization. AuthorizationConfig *AuthorizationConfig - // The HTTP URL endpoint. You can either specify the domain name or IP, and port - // combination, and the URL scheme must be HTTP or HTTPS. If the port is not - // specified, AppSync uses the default port 80 for the HTTP endpoint and port 443 - // for HTTPS endpoints. + // The HTTP URL endpoint. You can specify either the domain name or IP, and port + // combination, and the URL scheme must be HTTP or HTTPS. If you don't specify the + // port, AppSync uses the default port 80 for the HTTP endpoint and port 443 for + // HTTPS endpoints. Endpoint *string noSmithyDocumentSerde } -// A LambdaAuthorizerConfig holds configuration on how to authorize AppSync API -// access when using the AWS_LAMBDA authorizer mode. Be aware that an AppSync API -// may have only one Lambda authorizer configured at a time. +// A LambdaAuthorizerConfig specifies how to authorize AppSync API access when +// using the AWS_LAMBDA authorizer mode. Be aware that an AppSync API can have only +// one Lambda authorizer configured at a time. type LambdaAuthorizerConfig struct { - // The ARN of the Lambda function to be called for authorization. This may be a - // standard Lambda ARN, a version ARN (.../v3) or alias ARN. Note: This Lambda - // function must have the following resource-based policy assigned to it. When - // configuring Lambda authorizers in the Console, this is done for you. To do so - // with the Amazon Web Services CLI, run the following: aws lambda add-permission - // --function-name "arn:aws:lambda:us-east-2:111122223333:function:my-function" - // --statement-id "appsync" --principal appsync.amazonaws.com --action - // lambda:InvokeFunction + // The Amazon Resource Name (ARN) of the Lambda function to be called for + // authorization. This can be a standard Lambda ARN, a version ARN (.../v3), or an + // alias ARN. Note: This Lambda function must have the following resource-based + // policy assigned to it. When configuring Lambda authorizers in the console, this + // is done for you. To use the Command Line Interface (CLI), run the following: aws + // lambda add-permission --function-name + // "arn:aws:lambda:us-east-2:111122223333:function:my-function" --statement-id + // "appsync" --principal appsync.amazonaws.com --action lambda:InvokeFunction // // This member is required. AuthorizerUri *string @@ -491,16 +546,17 @@ type LambdaAuthorizerConfig struct { // Handler. type LambdaConflictHandlerConfig struct { - // The Arn for the Lambda function to use as the Conflict Handler. + // The Amazon Resource Name (ARN) for the Lambda function to use as the Conflict + // Handler. LambdaConflictHandlerArn *string noSmithyDocumentSerde } -// Describes an Amazon Web Services Lambda data source configuration. +// Describes an Lambda data source configuration. type LambdaDataSourceConfig struct { - // The ARN for the Lambda function. + // The Amazon Resource Name (ARN) for the Lambda function. // // This member is required. LambdaFunctionArn *string @@ -508,11 +564,11 @@ type LambdaDataSourceConfig struct { noSmithyDocumentSerde } -// The CloudWatch Logs configuration. +// The Amazon CloudWatch Logs configuration. type LogConfig struct { - // The service role that AppSync will assume to publish to Amazon CloudWatch logs - // in your account. + // The service role that AppSync assumes to publish to CloudWatch logs in your + // account. // // This member is required. CloudWatchLogsRoleArn *string @@ -551,25 +607,25 @@ type LogConfig struct { noSmithyDocumentSerde } -// Describes an OpenID Connect configuration. +// Describes an OpenID Connect (OIDC) configuration. type OpenIDConnectConfig struct { - // The issuer for the OpenID Connect configuration. The issuer returned by - // discovery must exactly match the value of iss in the ID token. + // The issuer for the OIDC configuration. The issuer returned by discovery must + // exactly match the value of iss in the ID token. // // This member is required. Issuer *string - // The number of milliseconds a token is valid after being authenticated. + // The number of milliseconds that a token is valid after being authenticated. AuthTTL int64 - // The client identifier of the Relying party at the OpenID identity provider. This - // identifier is typically obtained when the Relying party is registered with the - // OpenID identity provider. You can specify a regular expression so the AppSync + // The client identifier of the relying party at the OpenID identity provider. This + // identifier is typically obtained when the relying party is registered with the + // OpenID identity provider. You can specify a regular expression so that AppSync // can validate against multiple client identifiers at a time. ClientId *string - // The number of milliseconds a token is valid after being issued to a user. + // The number of milliseconds that a token is valid after it's issued to a user. IatTTL int64 noSmithyDocumentSerde @@ -600,19 +656,20 @@ type PipelineConfig struct { noSmithyDocumentSerde } -// The Amazon RDS HTTP endpoint configuration. +// The Amazon Relational Database Service (Amazon RDS) HTTP endpoint configuration. type RdsHttpEndpointConfig struct { - // Amazon Web Services Region for RDS HTTP endpoint. + // Amazon Web Services Region for Amazon RDS HTTP endpoint. AwsRegion *string - // Amazon Web Services secret store ARN for database credentials. + // Amazon Web Services secret store Amazon Resource Name (ARN) for database + // credentials. AwsSecretStoreArn *string // Logical database name. DatabaseName *string - // Amazon RDS cluster ARN. + // Amazon RDS cluster Amazon Resource Name (ARN). DbClusterIdentifier *string // Logical schema name. @@ -630,7 +687,8 @@ type RelationalDatabaseDataSourceConfig struct { // Source type for the relational database. // // * RDS_HTTP_ENDPOINT: The relational - // database source type is an Amazon RDS HTTP endpoint. + // database source type is an Amazon Relational Database Service (Amazon RDS) HTTP + // endpoint. RelationalDatabaseSourceType RelationalDatabaseSourceType noSmithyDocumentSerde @@ -651,12 +709,13 @@ type Resolver struct { // The resolver type. // // * UNIT: A UNIT resolver type. A UNIT resolver is the default - // resolver type. A UNIT resolver enables you to execute a GraphQL query against a + // resolver type. You can use a UNIT resolver to run a GraphQL query against a // single data source. // - // * PIPELINE: A PIPELINE resolver type. A PIPELINE resolver - // enables you to execute a series of Function in a serial manner. You can use a - // pipeline resolver to execute a GraphQL query against multiple data sources. + // * PIPELINE: A PIPELINE resolver type. You can use a + // PIPELINE resolver to invoke a series of Function objects in a serial manner. You + // can use a pipeline resolver to run a GraphQL query against multiple data + // sources. Kind ResolverKind // The PipelineConfig. @@ -665,13 +724,13 @@ type Resolver struct { // The request mapping template. RequestMappingTemplate *string - // The resolver ARN. + // The resolver Amazon Resource Name (ARN). ResolverArn *string // The response mapping template. ResponseMappingTemplate *string - // The SyncConfig for a resolver attached to a versioned datasource. + // The SyncConfig for a resolver attached to a versioned data source. SyncConfig *SyncConfig // The resolver type name. @@ -680,9 +739,8 @@ type Resolver struct { noSmithyDocumentSerde } -// Describes a Sync configuration for a resolver. Contains information on which -// Conflict Detection as well as Resolution strategy should be performed when the -// resolver is invoked. +// Describes a Sync configuration for a resolver. Specifies which Conflict +// Detection strategy and Resolution strategy to use when the resolver is invoked. type SyncConfig struct { // The Conflict Detection strategy to use. @@ -691,20 +749,20 @@ type SyncConfig struct { // object versions for this resolver. // // * NONE: Do not detect conflicts when - // executing this resolver. + // invoking this resolver. ConflictDetection ConflictDetectionType // The Conflict Resolution strategy to perform in the event of a conflict. // // * // OPTIMISTIC_CONCURRENCY: Resolve conflicts by rejecting mutations when versions - // do not match the latest version at the server. + // don't match the latest version at the server. // // * AUTOMERGE: Resolve conflicts // with the Automerge conflict resolution strategy. // // * LAMBDA: Resolve conflicts - // with a Lambda function supplied in the LambdaConflictHandlerConfig. + // with an Lambda function supplied in the LambdaConflictHandlerConfig. ConflictHandler ConflictHandlerType // The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler. @@ -716,7 +774,7 @@ type SyncConfig struct { // Describes a type. type Type struct { - // The type ARN. + // The type Amazon Resource Name (ARN). Arn *string // The type definition. diff --git a/service/appsync/validators.go b/service/appsync/validators.go index 706642652c9..3c0c56a5488 100644 --- a/service/appsync/validators.go +++ b/service/appsync/validators.go @@ -10,6 +10,26 @@ import ( "github.com/aws/smithy-go/middleware" ) +type validateOpAssociateApi struct { +} + +func (*validateOpAssociateApi) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateApi) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateApiInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateApiInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateApiCache struct { } @@ -70,6 +90,26 @@ func (m *validateOpCreateDataSource) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpCreateDomainName struct { +} + +func (*validateOpCreateDomainName) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateDomainName) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateDomainNameInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateDomainNameInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateFunction struct { } @@ -210,6 +250,26 @@ func (m *validateOpDeleteDataSource) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpDeleteDomainName struct { +} + +func (*validateOpDeleteDomainName) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteDomainName) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteDomainNameInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteDomainNameInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteFunction struct { } @@ -290,6 +350,26 @@ func (m *validateOpDeleteType) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpDisassociateApi struct { +} + +func (*validateOpDisassociateApi) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisassociateApi) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisassociateApiInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisassociateApiInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpFlushApiCache struct { } @@ -310,6 +390,26 @@ func (m *validateOpFlushApiCache) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpGetApiAssociation struct { +} + +func (*validateOpGetApiAssociation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetApiAssociation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetApiAssociationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetApiAssociationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetApiCache struct { } @@ -350,6 +450,26 @@ func (m *validateOpGetDataSource) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpGetDomainName struct { +} + +func (*validateOpGetDomainName) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetDomainName) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetDomainNameInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetDomainNameInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetFunction struct { } @@ -730,6 +850,26 @@ func (m *validateOpUpdateDataSource) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpUpdateDomainName struct { +} + +func (*validateOpUpdateDomainName) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateDomainName) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateDomainNameInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateDomainNameInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateFunction struct { } @@ -810,6 +950,10 @@ func (m *validateOpUpdateType) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +func addOpAssociateApiValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateApi{}, middleware.After) +} + func addOpCreateApiCacheValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateApiCache{}, middleware.After) } @@ -822,6 +966,10 @@ func addOpCreateDataSourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateDataSource{}, middleware.After) } +func addOpCreateDomainNameValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateDomainName{}, middleware.After) +} + func addOpCreateFunctionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateFunction{}, middleware.After) } @@ -850,6 +998,10 @@ func addOpDeleteDataSourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteDataSource{}, middleware.After) } +func addOpDeleteDomainNameValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteDomainName{}, middleware.After) +} + func addOpDeleteFunctionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteFunction{}, middleware.After) } @@ -866,10 +1018,18 @@ func addOpDeleteTypeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteType{}, middleware.After) } +func addOpDisassociateApiValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisassociateApi{}, middleware.After) +} + func addOpFlushApiCacheValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpFlushApiCache{}, middleware.After) } +func addOpGetApiAssociationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetApiAssociation{}, middleware.After) +} + func addOpGetApiCacheValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetApiCache{}, middleware.After) } @@ -878,6 +1038,10 @@ func addOpGetDataSourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetDataSource{}, middleware.After) } +func addOpGetDomainNameValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetDomainName{}, middleware.After) +} + func addOpGetFunctionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetFunction{}, middleware.After) } @@ -954,6 +1118,10 @@ func addOpUpdateDataSourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateDataSource{}, middleware.After) } +func addOpUpdateDomainNameValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateDomainName{}, middleware.After) +} + func addOpUpdateFunctionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateFunction{}, middleware.After) } @@ -1202,6 +1370,24 @@ func validateUserPoolConfig(v *types.UserPoolConfig) error { } } +func validateOpAssociateApiInput(v *AssociateApiInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateApiInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if v.ApiId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ApiId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateApiCacheInput(v *CreateApiCacheInput) error { if v == nil { return nil @@ -1284,6 +1470,24 @@ func validateOpCreateDataSourceInput(v *CreateDataSourceInput) error { } } +func validateOpCreateDomainNameInput(v *CreateDomainNameInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateDomainNameInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if v.CertificateArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("CertificateArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateFunctionInput(v *CreateFunctionInput) error { if v == nil { return nil @@ -1444,6 +1648,21 @@ func validateOpDeleteDataSourceInput(v *DeleteDataSourceInput) error { } } +func validateOpDeleteDomainNameInput(v *DeleteDomainNameInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteDomainNameInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteFunctionInput(v *DeleteFunctionInput) error { if v == nil { return nil @@ -1516,6 +1735,21 @@ func validateOpDeleteTypeInput(v *DeleteTypeInput) error { } } +func validateOpDisassociateApiInput(v *DisassociateApiInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisassociateApiInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpFlushApiCacheInput(v *FlushApiCacheInput) error { if v == nil { return nil @@ -1531,6 +1765,21 @@ func validateOpFlushApiCacheInput(v *FlushApiCacheInput) error { } } +func validateOpGetApiAssociationInput(v *GetApiAssociationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetApiAssociationInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetApiCacheInput(v *GetApiCacheInput) error { if v == nil { return nil @@ -1564,6 +1813,21 @@ func validateOpGetDataSourceInput(v *GetDataSourceInput) error { } } +func validateOpGetDomainNameInput(v *GetDomainNameInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetDomainNameInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetFunctionInput(v *GetFunctionInput) error { if v == nil { return nil @@ -1925,6 +2189,21 @@ func validateOpUpdateDataSourceInput(v *UpdateDataSourceInput) error { } } +func validateOpUpdateDomainNameInput(v *UpdateDomainNameInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateDomainNameInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateFunctionInput(v *UpdateFunctionInput) error { if v == nil { return nil diff --git a/service/chimesdkmessaging/api_op_ListChannelMemberships.go b/service/chimesdkmessaging/api_op_ListChannelMemberships.go index e8bb8783491..06ee3180378 100644 --- a/service/chimesdkmessaging/api_op_ListChannelMemberships.go +++ b/service/chimesdkmessaging/api_op_ListChannelMemberships.go @@ -53,10 +53,9 @@ type ListChannelMembershipsInput struct { // are returned. NextToken *string - // The membership type of a user, DEFAULT or HIDDEN. Default members are always - // returned as part of ListChannelMemberships. Hidden members are only returned if - // the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden - // members are not returned. + // The membership type of a user, DEFAULT or HIDDEN. Default members are returned + // as part of ListChannelMemberships if no type is specified. Hidden members are + // only returned if the type filter in ListChannelMemberships equals HIDDEN. Type types.ChannelMembershipType noSmithyDocumentSerde diff --git a/service/chimesdkmessaging/serializers.go b/service/chimesdkmessaging/serializers.go index bc83207c778..9cf94fcd872 100644 --- a/service/chimesdkmessaging/serializers.go +++ b/service/chimesdkmessaging/serializers.go @@ -3450,6 +3450,13 @@ func awsRestjson1_serializeDocumentChannelMessageCallback(v *types.ChannelMessag ok.String(*v.Content) } + if v.MessageAttributes != nil { + ok := object.Key("MessageAttributes") + if err := awsRestjson1_serializeDocumentMessageAttributeMap(v.MessageAttributes, ok); err != nil { + return err + } + } + if v.MessageId != nil { ok := object.Key("MessageId") ok.String(*v.MessageId) @@ -3460,6 +3467,13 @@ func awsRestjson1_serializeDocumentChannelMessageCallback(v *types.ChannelMessag ok.String(*v.Metadata) } + if v.PushNotification != nil { + ok := object.Key("PushNotification") + if err := awsRestjson1_serializeDocumentPushNotificationConfiguration(v.PushNotification, ok); err != nil { + return err + } + } + return nil } diff --git a/service/chimesdkmessaging/types/types.go b/service/chimesdkmessaging/types/types.go index 0cf54f5e251..fd3ef4c2894 100644 --- a/service/chimesdkmessaging/types/types.go +++ b/service/chimesdkmessaging/types/types.go @@ -284,9 +284,16 @@ type ChannelMessageCallback struct { // The message content. Content *string + // The attributes for the message, used for message filtering along with a + // FilterRule defined in the PushNotificationPreferences. + MessageAttributes map[string]MessageAttributeValue + // The message metadata. Metadata *string + // The push notification configuration of the message. + PushNotification *PushNotificationConfiguration + noSmithyDocumentSerde } @@ -499,19 +506,13 @@ type ProcessorConfiguration struct { type PushNotificationConfiguration struct { // The body of the push notification. - // - // This member is required. Body *string // The title of the push notification. - // - // This member is required. Title *string // Enum value that indicates the type of the push notification for a message. // DEFAULT: Normal mobile push notification. VOIP: VOIP mobile push notification. - // - // This member is required. Type PushNotificationType noSmithyDocumentSerde diff --git a/service/chimesdkmessaging/validators.go b/service/chimesdkmessaging/validators.go index 34b6be88802..9df9f9b3a74 100644 --- a/service/chimesdkmessaging/validators.go +++ b/service/chimesdkmessaging/validators.go @@ -1180,27 +1180,6 @@ func validateProcessorList(v []types.Processor) error { } } -func validatePushNotificationConfiguration(v *types.PushNotificationConfiguration) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "PushNotificationConfiguration"} - if v.Title == nil { - invalidParams.Add(smithy.NewErrParamRequired("Title")) - } - if v.Body == nil { - invalidParams.Add(smithy.NewErrParamRequired("Body")) - } - if len(v.Type) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("Type")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validatePushNotificationPreferences(v *types.PushNotificationPreferences) error { if v == nil { return nil @@ -2022,11 +2001,6 @@ func validateOpSendChannelMessageInput(v *SendChannelMessageInput) error { if v.ChimeBearer == nil { invalidParams.Add(smithy.NewErrParamRequired("ChimeBearer")) } - if v.PushNotification != nil { - if err := validatePushNotificationConfiguration(v.PushNotification); err != nil { - invalidParams.AddNested("PushNotification", err.(smithy.InvalidParamsError)) - } - } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/cloudwatchlogs/api_op_PutDestinationPolicy.go b/service/cloudwatchlogs/api_op_PutDestinationPolicy.go index 6d8ab1b7f99..d5c67b03c85 100644 --- a/service/cloudwatchlogs/api_op_PutDestinationPolicy.go +++ b/service/cloudwatchlogs/api_op_PutDestinationPolicy.go @@ -46,6 +46,18 @@ type PutDestinationPolicyInput struct { // This member is required. DestinationName *string + // Specify true if you are updating an existing destination policy to grant + // permission to an organization ID instead of granting permission to individual + // AWS accounts. Before you update a destination policy this way, you must first + // update the subscription filters in the accounts that send logs to this + // destination. If you do not, the subscription filters might stop working. By + // specifying true for forceUpdate, you are affirming that you have already updated + // the subscription filters. For more information, see Updating an existing + // cross-account subscription + // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Cross-Account-Log_Subscription-Update.html) + // If you omit this parameter, the default of false is used. + ForceUpdate *bool + noSmithyDocumentSerde } diff --git a/service/cloudwatchlogs/deserializers.go b/service/cloudwatchlogs/deserializers.go index 13b40b3d40d..06f3a0d3d9f 100644 --- a/service/cloudwatchlogs/deserializers.go +++ b/service/cloudwatchlogs/deserializers.go @@ -3722,6 +3722,9 @@ func awsAwsjson11_deserializeOpErrorPutQueryDefinition(response *smithyhttp.Resp case strings.EqualFold("InvalidParameterException", errorCode): return awsAwsjson11_deserializeErrorInvalidParameterException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) diff --git a/service/cloudwatchlogs/serializers.go b/service/cloudwatchlogs/serializers.go index 03d28f66ac9..0430f062174 100644 --- a/service/cloudwatchlogs/serializers.go +++ b/service/cloudwatchlogs/serializers.go @@ -3144,6 +3144,11 @@ func awsAwsjson11_serializeOpDocumentPutDestinationPolicyInput(v *PutDestination ok.String(*v.DestinationName) } + if v.ForceUpdate != nil { + ok := object.Key("forceUpdate") + ok.Boolean(*v.ForceUpdate) + } + return nil } diff --git a/service/comprehendmedical/api_op_DescribeEntitiesDetectionV2Job.go b/service/comprehendmedical/api_op_DescribeEntitiesDetectionV2Job.go index 49262c4a6ee..8ea9c30a0ca 100644 --- a/service/comprehendmedical/api_op_DescribeEntitiesDetectionV2Job.go +++ b/service/comprehendmedical/api_op_DescribeEntitiesDetectionV2Job.go @@ -30,7 +30,7 @@ func (c *Client) DescribeEntitiesDetectionV2Job(ctx context.Context, params *Des type DescribeEntitiesDetectionV2JobInput struct { - // The identifier that Amazon Comprehend Medical generated for the job. The + // The identifier that Comprehend Medical; generated for the job. The // StartEntitiesDetectionV2Job operation returns this identifier in its response. // // This member is required. diff --git a/service/comprehendmedical/api_op_DescribePHIDetectionJob.go b/service/comprehendmedical/api_op_DescribePHIDetectionJob.go index 98c0972d415..3b3805c19b6 100644 --- a/service/comprehendmedical/api_op_DescribePHIDetectionJob.go +++ b/service/comprehendmedical/api_op_DescribePHIDetectionJob.go @@ -30,7 +30,7 @@ func (c *Client) DescribePHIDetectionJob(ctx context.Context, params *DescribePH type DescribePHIDetectionJobInput struct { - // The identifier that Amazon Comprehend Medical generated for the job. The + // The identifier that Comprehend Medical; generated for the job. The // StartPHIDetectionJob operation returns this identifier in its response. // // This member is required. diff --git a/service/comprehendmedical/api_op_DescribeSNOMEDCTInferenceJob.go b/service/comprehendmedical/api_op_DescribeSNOMEDCTInferenceJob.go new file mode 100644 index 00000000000..0ee4af8963e --- /dev/null +++ b/service/comprehendmedical/api_op_DescribeSNOMEDCTInferenceJob.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comprehendmedical + +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/comprehendmedical/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets the properties associated with an InferSNOMEDCT job. Use this operation to +// get the status of an inference job. +func (c *Client) DescribeSNOMEDCTInferenceJob(ctx context.Context, params *DescribeSNOMEDCTInferenceJobInput, optFns ...func(*Options)) (*DescribeSNOMEDCTInferenceJobOutput, error) { + if params == nil { + params = &DescribeSNOMEDCTInferenceJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeSNOMEDCTInferenceJob", params, optFns, c.addOperationDescribeSNOMEDCTInferenceJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeSNOMEDCTInferenceJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeSNOMEDCTInferenceJobInput struct { + + // The identifier that Amazon Comprehend Medical generated for the job. The + // StartSNOMEDCTInferenceJob operation returns this identifier in its response. + // + // This member is required. + JobId *string + + noSmithyDocumentSerde +} + +type DescribeSNOMEDCTInferenceJobOutput struct { + + // Provides information about a detection job. + ComprehendMedicalAsyncJobProperties *types.ComprehendMedicalAsyncJobProperties + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeSNOMEDCTInferenceJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeSNOMEDCTInferenceJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeSNOMEDCTInferenceJob{}, 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 = addOpDescribeSNOMEDCTInferenceJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeSNOMEDCTInferenceJob(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_opDescribeSNOMEDCTInferenceJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "comprehendmedical", + OperationName: "DescribeSNOMEDCTInferenceJob", + } +} diff --git a/service/comprehendmedical/api_op_DetectEntities.go b/service/comprehendmedical/api_op_DetectEntities.go index 03464fa0b53..e4f1002b1bb 100644 --- a/service/comprehendmedical/api_op_DetectEntities.go +++ b/service/comprehendmedical/api_op_DetectEntities.go @@ -48,7 +48,7 @@ type DetectEntitiesOutput struct { // The collection of medical entities extracted from the input text and their // associated information. For each entity, the response provides the entity text, // the entity category, where the entity text begins and ends, and the level of - // confidence that Amazon Comprehend Medical has in the detection and analysis. + // confidence that Comprehend Medical; has in the detection and analysis. // Attributes and traits of the entity are also returned. // // This member is required. diff --git a/service/comprehendmedical/api_op_DetectPHI.go b/service/comprehendmedical/api_op_DetectPHI.go index 8338b86721d..57bafa65639 100644 --- a/service/comprehendmedical/api_op_DetectPHI.go +++ b/service/comprehendmedical/api_op_DetectPHI.go @@ -45,7 +45,7 @@ type DetectPHIOutput struct { // The collection of PHI entities extracted from the input text and their // associated information. For each entity, the response provides the entity text, // the entity category, where the entity text begins and ends, and the level of - // confidence that Amazon Comprehend Medical has in its detection. + // confidence that Comprehend Medical; has in its detection. // // This member is required. Entities []types.Entity diff --git a/service/comprehendmedical/api_op_InferSNOMEDCT.go b/service/comprehendmedical/api_op_InferSNOMEDCT.go new file mode 100644 index 00000000000..65af03f776b --- /dev/null +++ b/service/comprehendmedical/api_op_InferSNOMEDCT.go @@ -0,0 +1,146 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comprehendmedical + +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/comprehendmedical/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// InferSNOMEDCT detects possible medical concepts as entities and links them to +// codes from the Systematized Nomenclature of Medicine, Clinical Terms (SNOMED-CT) +// ontology +func (c *Client) InferSNOMEDCT(ctx context.Context, params *InferSNOMEDCTInput, optFns ...func(*Options)) (*InferSNOMEDCTOutput, error) { + if params == nil { + params = &InferSNOMEDCTInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "InferSNOMEDCT", params, optFns, c.addOperationInferSNOMEDCTMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*InferSNOMEDCTOutput) + out.ResultMetadata = metadata + return out, nil +} + +type InferSNOMEDCTInput struct { + + // The input text to be analyzed using InferSNOMEDCT. The text should be a string + // with 1 to 10000 characters. + // + // This member is required. + Text *string + + noSmithyDocumentSerde +} + +type InferSNOMEDCTOutput struct { + + // The collection of medical concept entities extracted from the input text and + // their associated information. For each entity, the response provides the entity + // text, the entity category, where the entity text begins and ends, and the level + // of confidence that Comprehend Medical has in the detection and analysis. + // Attributes and traits of the entity are also returned. + // + // This member is required. + Entities []types.SNOMEDCTEntity + + // The number of characters in the input request documentation. + Characters *types.Characters + + // The version of the model used to analyze the documents, in the format n.n.n You + // can use this information to track the model used for a particular batch of + // documents. + ModelVersion *string + + // If the result of the request is truncated, the pagination token can be used to + // fetch the next page of entities. + PaginationToken *string + + // The details of the SNOMED-CT revision, including the edition, language, and + // version date. + SNOMEDCTDetails *types.SNOMEDCTDetails + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationInferSNOMEDCTMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpInferSNOMEDCT{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpInferSNOMEDCT{}, 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 = addOpInferSNOMEDCTValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opInferSNOMEDCT(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_opInferSNOMEDCT(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "comprehendmedical", + OperationName: "InferSNOMEDCT", + } +} diff --git a/service/comprehendmedical/api_op_ListSNOMEDCTInferenceJobs.go b/service/comprehendmedical/api_op_ListSNOMEDCTInferenceJobs.go new file mode 100644 index 00000000000..8833d51b8be --- /dev/null +++ b/service/comprehendmedical/api_op_ListSNOMEDCTInferenceJobs.go @@ -0,0 +1,125 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comprehendmedical + +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/comprehendmedical/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets a list of InferSNOMEDCT jobs a user has submitted. +func (c *Client) ListSNOMEDCTInferenceJobs(ctx context.Context, params *ListSNOMEDCTInferenceJobsInput, optFns ...func(*Options)) (*ListSNOMEDCTInferenceJobsOutput, error) { + if params == nil { + params = &ListSNOMEDCTInferenceJobsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListSNOMEDCTInferenceJobs", params, optFns, c.addOperationListSNOMEDCTInferenceJobsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListSNOMEDCTInferenceJobsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListSNOMEDCTInferenceJobsInput struct { + + // Provides information for filtering a list of detection jobs. + Filter *types.ComprehendMedicalAsyncJobFilter + + // The maximum number of results to return in each page. The default is 100. + MaxResults *int32 + + // Identifies the next page of InferSNOMEDCT results to return. + NextToken *string + + noSmithyDocumentSerde +} + +type ListSNOMEDCTInferenceJobsOutput struct { + + // A list containing the properties of each job that is returned. + ComprehendMedicalAsyncJobPropertiesList []types.ComprehendMedicalAsyncJobProperties + + // Identifies the next page of results to return. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListSNOMEDCTInferenceJobsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListSNOMEDCTInferenceJobs{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListSNOMEDCTInferenceJobs{}, 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_opListSNOMEDCTInferenceJobs(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_opListSNOMEDCTInferenceJobs(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "comprehendmedical", + OperationName: "ListSNOMEDCTInferenceJobs", + } +} diff --git a/service/comprehendmedical/api_op_StartEntitiesDetectionV2Job.go b/service/comprehendmedical/api_op_StartEntitiesDetectionV2Job.go index 3c07e40a545..ac215250f1d 100644 --- a/service/comprehendmedical/api_op_StartEntitiesDetectionV2Job.go +++ b/service/comprehendmedical/api_op_StartEntitiesDetectionV2Job.go @@ -33,31 +33,32 @@ func (c *Client) StartEntitiesDetectionV2Job(ctx context.Context, params *StartE type StartEntitiesDetectionV2JobInput struct { // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) - // role that grants Amazon Comprehend Medical read access to your input data. For - // more information, see Role-Based Permissions Required for Asynchronous - // Operations + // role that grants Comprehend Medical; read access to your input data. For more + // information, see Role-Based Permissions Required for Asynchronous Operations // (https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). // // This member is required. DataAccessRoleArn *string - // Specifies the format and location of the input data for the job. + // The input configuration that specifies the format and location of the input data + // for the job. // // This member is required. InputDataConfig *types.InputDataConfig // The language of the input documents. All documents must be in the same language. + // Comprehend Medical; processes files in US English (en). // // This member is required. LanguageCode types.LanguageCode - // Specifies where to send the output files. + // The output configuration that specifies where to send the output files. // // This member is required. OutputDataConfig *types.OutputDataConfig // A unique identifier for the request. If you don't set the client request token, - // Amazon Comprehend Medical generates one. + // Comprehend Medical; generates one for you. ClientRequestToken *string // The identifier of the job. diff --git a/service/comprehendmedical/api_op_StartICD10CMInferenceJob.go b/service/comprehendmedical/api_op_StartICD10CMInferenceJob.go index a3be78e3bf2..85046a0c5b1 100644 --- a/service/comprehendmedical/api_op_StartICD10CMInferenceJob.go +++ b/service/comprehendmedical/api_op_StartICD10CMInferenceJob.go @@ -33,9 +33,8 @@ func (c *Client) StartICD10CMInferenceJob(ctx context.Context, params *StartICD1 type StartICD10CMInferenceJobInput struct { // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) - // role that grants Amazon Comprehend Medical read access to your input data. For - // more information, see Role-Based Permissions Required for Asynchronous - // Operations + // role that grants Comprehend Medical; read access to your input data. For more + // information, see Role-Based Permissions Required for Asynchronous Operations // (https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). // // This member is required. @@ -57,7 +56,7 @@ type StartICD10CMInferenceJobInput struct { OutputDataConfig *types.OutputDataConfig // A unique identifier for the request. If you don't set the client request token, - // Amazon Comprehend Medical generates one. + // Comprehend Medical; generates one. ClientRequestToken *string // The identifier of the job. diff --git a/service/comprehendmedical/api_op_StartPHIDetectionJob.go b/service/comprehendmedical/api_op_StartPHIDetectionJob.go index 190c358a25e..292d4cc5e1d 100644 --- a/service/comprehendmedical/api_op_StartPHIDetectionJob.go +++ b/service/comprehendmedical/api_op_StartPHIDetectionJob.go @@ -32,9 +32,8 @@ func (c *Client) StartPHIDetectionJob(ctx context.Context, params *StartPHIDetec type StartPHIDetectionJobInput struct { // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) - // role that grants Amazon Comprehend Medical read access to your input data. For - // more information, see Role-Based Permissions Required for Asynchronous - // Operations + // role that grants Comprehend Medical; read access to your input data. For more + // information, see Role-Based Permissions Required for Asynchronous Operations // (https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). // // This member is required. @@ -56,7 +55,7 @@ type StartPHIDetectionJobInput struct { OutputDataConfig *types.OutputDataConfig // A unique identifier for the request. If you don't set the client request token, - // Amazon Comprehend Medical generates one. + // Comprehend Medical; generates one. ClientRequestToken *string // The identifier of the job. diff --git a/service/comprehendmedical/api_op_StartRxNormInferenceJob.go b/service/comprehendmedical/api_op_StartRxNormInferenceJob.go index 7697e758635..5b3ecef9b6c 100644 --- a/service/comprehendmedical/api_op_StartRxNormInferenceJob.go +++ b/service/comprehendmedical/api_op_StartRxNormInferenceJob.go @@ -33,9 +33,8 @@ func (c *Client) StartRxNormInferenceJob(ctx context.Context, params *StartRxNor type StartRxNormInferenceJobInput struct { // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) - // role that grants Amazon Comprehend Medical read access to your input data. For - // more information, see Role-Based Permissions Required for Asynchronous - // Operations + // role that grants Comprehend Medical; read access to your input data. For more + // information, see Role-Based Permissions Required for Asynchronous Operations // (https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). // // This member is required. @@ -57,7 +56,7 @@ type StartRxNormInferenceJobInput struct { OutputDataConfig *types.OutputDataConfig // A unique identifier for the request. If you don't set the client request token, - // Amazon Comprehend Medical generates one. + // Comprehend Medical; generates one. ClientRequestToken *string // The identifier of the job. diff --git a/service/comprehendmedical/api_op_StartSNOMEDCTInferenceJob.go b/service/comprehendmedical/api_op_StartSNOMEDCTInferenceJob.go new file mode 100644 index 00000000000..467e39ba1da --- /dev/null +++ b/service/comprehendmedical/api_op_StartSNOMEDCTInferenceJob.go @@ -0,0 +1,189 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comprehendmedical + +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/comprehendmedical/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Starts an asynchronous job to detect medical concepts and link them to the +// SNOMED-CT ontology. Use the DescribeSNOMEDCTInferenceJob operation to track the +// status of a job. +func (c *Client) StartSNOMEDCTInferenceJob(ctx context.Context, params *StartSNOMEDCTInferenceJobInput, optFns ...func(*Options)) (*StartSNOMEDCTInferenceJobOutput, error) { + if params == nil { + params = &StartSNOMEDCTInferenceJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StartSNOMEDCTInferenceJob", params, optFns, c.addOperationStartSNOMEDCTInferenceJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StartSNOMEDCTInferenceJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StartSNOMEDCTInferenceJobInput struct { + + // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) + // role that grants Amazon Comprehend Medical read access to your input data. + // + // This member is required. + DataAccessRoleArn *string + + // The input properties for an entities detection job. This includes the name of + // the S3 bucket and the path to the files to be analyzed. + // + // This member is required. + InputDataConfig *types.InputDataConfig + + // The language of the input documents. All documents must be in the same language. + // + // This member is required. + LanguageCode types.LanguageCode + + // The output properties for a detection job. + // + // This member is required. + OutputDataConfig *types.OutputDataConfig + + // A unique identifier for the request. If you don't set the client request token, + // Amazon Comprehend Medical generates one. + ClientRequestToken *string + + // The user generated name the asynchronous InferSNOMEDCT job. + JobName *string + + // An AWS Key Management Service key used to encrypt your output files. If you do + // not specify a key, the files are written in plain text. + KMSKey *string + + noSmithyDocumentSerde +} + +type StartSNOMEDCTInferenceJobOutput struct { + + // The identifier generated for the job. To get the status of a job, use this + // identifier with the StartSNOMEDCTInferenceJob operation. + JobId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStartSNOMEDCTInferenceJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpStartSNOMEDCTInferenceJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpStartSNOMEDCTInferenceJob{}, 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_opStartSNOMEDCTInferenceJobMiddleware(stack, options); err != nil { + return err + } + if err = addOpStartSNOMEDCTInferenceJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartSNOMEDCTInferenceJob(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_initializeOpStartSNOMEDCTInferenceJob struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpStartSNOMEDCTInferenceJob) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpStartSNOMEDCTInferenceJob) 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.(*StartSNOMEDCTInferenceJobInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *StartSNOMEDCTInferenceJobInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opStartSNOMEDCTInferenceJobMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpStartSNOMEDCTInferenceJob{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opStartSNOMEDCTInferenceJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "comprehendmedical", + OperationName: "StartSNOMEDCTInferenceJob", + } +} diff --git a/service/comprehendmedical/api_op_StopSNOMEDCTInferenceJob.go b/service/comprehendmedical/api_op_StopSNOMEDCTInferenceJob.go new file mode 100644 index 00000000000..ef3f4e77358 --- /dev/null +++ b/service/comprehendmedical/api_op_StopSNOMEDCTInferenceJob.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comprehendmedical + +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" +) + +// Stops an InferSNOMEDCT inference job in progress. +func (c *Client) StopSNOMEDCTInferenceJob(ctx context.Context, params *StopSNOMEDCTInferenceJobInput, optFns ...func(*Options)) (*StopSNOMEDCTInferenceJobOutput, error) { + if params == nil { + params = &StopSNOMEDCTInferenceJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StopSNOMEDCTInferenceJob", params, optFns, c.addOperationStopSNOMEDCTInferenceJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StopSNOMEDCTInferenceJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StopSNOMEDCTInferenceJobInput struct { + + // The job id of the asynchronous InferSNOMEDCT job to be stopped. + // + // This member is required. + JobId *string + + noSmithyDocumentSerde +} + +type StopSNOMEDCTInferenceJobOutput struct { + + // The identifier generated for the job. To get the status of job, use this + // identifier with the DescribeSNOMEDCTInferenceJob operation. + JobId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStopSNOMEDCTInferenceJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpStopSNOMEDCTInferenceJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpStopSNOMEDCTInferenceJob{}, 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 = addOpStopSNOMEDCTInferenceJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStopSNOMEDCTInferenceJob(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_opStopSNOMEDCTInferenceJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "comprehendmedical", + OperationName: "StopSNOMEDCTInferenceJob", + } +} diff --git a/service/comprehendmedical/deserializers.go b/service/comprehendmedical/deserializers.go index 3b0ea836c8c..edc5584480e 100644 --- a/service/comprehendmedical/deserializers.go +++ b/service/comprehendmedical/deserializers.go @@ -500,14 +500,14 @@ func awsAwsjson11_deserializeOpErrorDescribeRxNormInferenceJob(response *smithyh } } -type awsAwsjson11_deserializeOpDetectEntities struct { +type awsAwsjson11_deserializeOpDescribeSNOMEDCTInferenceJob struct { } -func (*awsAwsjson11_deserializeOpDetectEntities) ID() string { +func (*awsAwsjson11_deserializeOpDescribeSNOMEDCTInferenceJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDetectEntities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeSNOMEDCTInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -521,9 +521,9 @@ func (m *awsAwsjson11_deserializeOpDetectEntities) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDetectEntities(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSNOMEDCTInferenceJob(response, &metadata) } - output := &DetectEntitiesOutput{} + output := &DescribeSNOMEDCTInferenceJobOutput{} out.Result = output var buff [1024]byte @@ -543,7 +543,7 @@ func (m *awsAwsjson11_deserializeOpDetectEntities) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDetectEntitiesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeSNOMEDCTInferenceJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -557,7 +557,7 @@ func (m *awsAwsjson11_deserializeOpDetectEntities) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDetectEntities(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeSNOMEDCTInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -601,17 +601,11 @@ func awsAwsjson11_deserializeOpErrorDetectEntities(response *smithyhttp.Response case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("InvalidEncodingException", errorCode): - return awsAwsjson11_deserializeErrorInvalidEncodingException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) - - case strings.EqualFold("TextSizeLimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) @@ -626,14 +620,14 @@ func awsAwsjson11_deserializeOpErrorDetectEntities(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDetectEntitiesV2 struct { +type awsAwsjson11_deserializeOpDetectEntities struct { } -func (*awsAwsjson11_deserializeOpDetectEntitiesV2) ID() string { +func (*awsAwsjson11_deserializeOpDetectEntities) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDetectEntitiesV2) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDetectEntities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -647,9 +641,9 @@ func (m *awsAwsjson11_deserializeOpDetectEntitiesV2) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDetectEntitiesV2(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDetectEntities(response, &metadata) } - output := &DetectEntitiesV2Output{} + output := &DetectEntitiesOutput{} out.Result = output var buff [1024]byte @@ -669,7 +663,7 @@ func (m *awsAwsjson11_deserializeOpDetectEntitiesV2) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDetectEntitiesV2Output(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDetectEntitiesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -683,7 +677,7 @@ func (m *awsAwsjson11_deserializeOpDetectEntitiesV2) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDetectEntitiesV2(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDetectEntities(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -752,14 +746,14 @@ func awsAwsjson11_deserializeOpErrorDetectEntitiesV2(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDetectPHI struct { +type awsAwsjson11_deserializeOpDetectEntitiesV2 struct { } -func (*awsAwsjson11_deserializeOpDetectPHI) ID() string { +func (*awsAwsjson11_deserializeOpDetectEntitiesV2) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDetectPHI) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDetectEntitiesV2) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -773,9 +767,9 @@ func (m *awsAwsjson11_deserializeOpDetectPHI) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDetectPHI(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDetectEntitiesV2(response, &metadata) } - output := &DetectPHIOutput{} + output := &DetectEntitiesV2Output{} out.Result = output var buff [1024]byte @@ -795,7 +789,7 @@ func (m *awsAwsjson11_deserializeOpDetectPHI) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDetectPHIOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDetectEntitiesV2Output(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -809,7 +803,7 @@ func (m *awsAwsjson11_deserializeOpDetectPHI) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDetectPHI(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDetectEntitiesV2(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -878,14 +872,14 @@ func awsAwsjson11_deserializeOpErrorDetectPHI(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpInferICD10CM struct { +type awsAwsjson11_deserializeOpDetectPHI struct { } -func (*awsAwsjson11_deserializeOpInferICD10CM) ID() string { +func (*awsAwsjson11_deserializeOpDetectPHI) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpInferICD10CM) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDetectPHI) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -899,9 +893,9 @@ func (m *awsAwsjson11_deserializeOpInferICD10CM) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorInferICD10CM(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDetectPHI(response, &metadata) } - output := &InferICD10CMOutput{} + output := &DetectPHIOutput{} out.Result = output var buff [1024]byte @@ -921,7 +915,7 @@ func (m *awsAwsjson11_deserializeOpInferICD10CM) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentInferICD10CMOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDetectPHIOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -935,7 +929,7 @@ func (m *awsAwsjson11_deserializeOpInferICD10CM) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorInferICD10CM(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDetectPHI(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1004,14 +998,14 @@ func awsAwsjson11_deserializeOpErrorInferICD10CM(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpInferRxNorm struct { +type awsAwsjson11_deserializeOpInferICD10CM struct { } -func (*awsAwsjson11_deserializeOpInferRxNorm) ID() string { +func (*awsAwsjson11_deserializeOpInferICD10CM) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpInferRxNorm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpInferICD10CM) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1025,9 +1019,9 @@ func (m *awsAwsjson11_deserializeOpInferRxNorm) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorInferRxNorm(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorInferICD10CM(response, &metadata) } - output := &InferRxNormOutput{} + output := &InferICD10CMOutput{} out.Result = output var buff [1024]byte @@ -1047,7 +1041,7 @@ func (m *awsAwsjson11_deserializeOpInferRxNorm) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentInferRxNormOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentInferICD10CMOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1061,7 +1055,7 @@ func (m *awsAwsjson11_deserializeOpInferRxNorm) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorInferRxNorm(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorInferICD10CM(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1130,14 +1124,14 @@ func awsAwsjson11_deserializeOpErrorInferRxNorm(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs struct { +type awsAwsjson11_deserializeOpInferRxNorm struct { } -func (*awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) ID() string { +func (*awsAwsjson11_deserializeOpInferRxNorm) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpInferRxNorm) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1151,9 +1145,9 @@ func (m *awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorInferRxNorm(response, &metadata) } - output := &ListEntitiesDetectionV2JobsOutput{} + output := &InferRxNormOutput{} out.Result = output var buff [1024]byte @@ -1173,7 +1167,7 @@ func (m *awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListEntitiesDetectionV2JobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentInferRxNormOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1187,7 +1181,7 @@ func (m *awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorInferRxNorm(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1231,15 +1225,21 @@ func awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response *smithy case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("InvalidEncodingException", errorCode): + return awsAwsjson11_deserializeErrorInvalidEncodingException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("TextSizeLimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): - return awsAwsjson11_deserializeErrorValidationException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1250,14 +1250,14 @@ func awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response *smithy } } -type awsAwsjson11_deserializeOpListICD10CMInferenceJobs struct { +type awsAwsjson11_deserializeOpInferSNOMEDCT struct { } -func (*awsAwsjson11_deserializeOpListICD10CMInferenceJobs) ID() string { +func (*awsAwsjson11_deserializeOpInferSNOMEDCT) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListICD10CMInferenceJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpInferSNOMEDCT) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1271,9 +1271,9 @@ func (m *awsAwsjson11_deserializeOpListICD10CMInferenceJobs) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorInferSNOMEDCT(response, &metadata) } - output := &ListICD10CMInferenceJobsOutput{} + output := &InferSNOMEDCTOutput{} out.Result = output var buff [1024]byte @@ -1293,7 +1293,7 @@ func (m *awsAwsjson11_deserializeOpListICD10CMInferenceJobs) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListICD10CMInferenceJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentInferSNOMEDCTOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1307,7 +1307,7 @@ func (m *awsAwsjson11_deserializeOpListICD10CMInferenceJobs) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorInferSNOMEDCT(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1351,15 +1351,21 @@ func awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response *smithyhtt case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("InvalidEncodingException", errorCode): + return awsAwsjson11_deserializeErrorInvalidEncodingException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("TextSizeLimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): - return awsAwsjson11_deserializeErrorValidationException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1370,14 +1376,14 @@ func awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response *smithyhtt } } -type awsAwsjson11_deserializeOpListPHIDetectionJobs struct { +type awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs struct { } -func (*awsAwsjson11_deserializeOpListPHIDetectionJobs) ID() string { +func (*awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListPHIDetectionJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListEntitiesDetectionV2Jobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1391,9 +1397,9 @@ func (m *awsAwsjson11_deserializeOpListPHIDetectionJobs) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListPHIDetectionJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response, &metadata) } - output := &ListPHIDetectionJobsOutput{} + output := &ListEntitiesDetectionV2JobsOutput{} out.Result = output var buff [1024]byte @@ -1413,7 +1419,7 @@ func (m *awsAwsjson11_deserializeOpListPHIDetectionJobs) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListPHIDetectionJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListEntitiesDetectionV2JobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1427,7 +1433,7 @@ func (m *awsAwsjson11_deserializeOpListPHIDetectionJobs) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListPHIDetectionJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListEntitiesDetectionV2Jobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1490,14 +1496,14 @@ func awsAwsjson11_deserializeOpErrorListPHIDetectionJobs(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListRxNormInferenceJobs struct { +type awsAwsjson11_deserializeOpListICD10CMInferenceJobs struct { } -func (*awsAwsjson11_deserializeOpListRxNormInferenceJobs) ID() string { +func (*awsAwsjson11_deserializeOpListICD10CMInferenceJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListRxNormInferenceJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListICD10CMInferenceJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1511,9 +1517,9 @@ func (m *awsAwsjson11_deserializeOpListRxNormInferenceJobs) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListRxNormInferenceJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response, &metadata) } - output := &ListRxNormInferenceJobsOutput{} + output := &ListICD10CMInferenceJobsOutput{} out.Result = output var buff [1024]byte @@ -1533,7 +1539,7 @@ func (m *awsAwsjson11_deserializeOpListRxNormInferenceJobs) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListRxNormInferenceJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListICD10CMInferenceJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1547,7 +1553,7 @@ func (m *awsAwsjson11_deserializeOpListRxNormInferenceJobs) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListRxNormInferenceJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListICD10CMInferenceJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1610,14 +1616,14 @@ func awsAwsjson11_deserializeOpErrorListRxNormInferenceJobs(response *smithyhttp } } -type awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job struct { +type awsAwsjson11_deserializeOpListPHIDetectionJobs struct { } -func (*awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) ID() string { +func (*awsAwsjson11_deserializeOpListPHIDetectionJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListPHIDetectionJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1631,9 +1637,9 @@ func (m *awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListPHIDetectionJobs(response, &metadata) } - output := &StartEntitiesDetectionV2JobOutput{} + output := &ListPHIDetectionJobsOutput{} out.Result = output var buff [1024]byte @@ -1653,7 +1659,7 @@ func (m *awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartEntitiesDetectionV2JobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListPHIDetectionJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1667,7 +1673,7 @@ func (m *awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListPHIDetectionJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1714,12 +1720,12 @@ func awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response *smithy case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1730,14 +1736,14 @@ func awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response *smithy } } -type awsAwsjson11_deserializeOpStartICD10CMInferenceJob struct { +type awsAwsjson11_deserializeOpListRxNormInferenceJobs struct { } -func (*awsAwsjson11_deserializeOpStartICD10CMInferenceJob) ID() string { +func (*awsAwsjson11_deserializeOpListRxNormInferenceJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartICD10CMInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListRxNormInferenceJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1751,9 +1757,9 @@ func (m *awsAwsjson11_deserializeOpStartICD10CMInferenceJob) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListRxNormInferenceJobs(response, &metadata) } - output := &StartICD10CMInferenceJobOutput{} + output := &ListRxNormInferenceJobsOutput{} out.Result = output var buff [1024]byte @@ -1773,7 +1779,7 @@ func (m *awsAwsjson11_deserializeOpStartICD10CMInferenceJob) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartICD10CMInferenceJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListRxNormInferenceJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1787,7 +1793,7 @@ func (m *awsAwsjson11_deserializeOpStartICD10CMInferenceJob) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListRxNormInferenceJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1834,12 +1840,12 @@ func awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response *smithyhtt case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1850,14 +1856,14 @@ func awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response *smithyhtt } } -type awsAwsjson11_deserializeOpStartPHIDetectionJob struct { +type awsAwsjson11_deserializeOpListSNOMEDCTInferenceJobs struct { } -func (*awsAwsjson11_deserializeOpStartPHIDetectionJob) ID() string { +func (*awsAwsjson11_deserializeOpListSNOMEDCTInferenceJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartPHIDetectionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListSNOMEDCTInferenceJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1871,9 +1877,9 @@ func (m *awsAwsjson11_deserializeOpStartPHIDetectionJob) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListSNOMEDCTInferenceJobs(response, &metadata) } - output := &StartPHIDetectionJobOutput{} + output := &ListSNOMEDCTInferenceJobsOutput{} out.Result = output var buff [1024]byte @@ -1893,7 +1899,7 @@ func (m *awsAwsjson11_deserializeOpStartPHIDetectionJob) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartPHIDetectionJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListSNOMEDCTInferenceJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1907,7 +1913,7 @@ func (m *awsAwsjson11_deserializeOpStartPHIDetectionJob) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListSNOMEDCTInferenceJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1954,12 +1960,12 @@ func awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response *smithyhttp.Re case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("TooManyRequestsException", errorCode): return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1970,14 +1976,14 @@ func awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpStartRxNormInferenceJob struct { +type awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job struct { } -func (*awsAwsjson11_deserializeOpStartRxNormInferenceJob) ID() string { +func (*awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartRxNormInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartEntitiesDetectionV2Job) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1991,9 +1997,9 @@ func (m *awsAwsjson11_deserializeOpStartRxNormInferenceJob) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartRxNormInferenceJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response, &metadata) } - output := &StartRxNormInferenceJobOutput{} + output := &StartEntitiesDetectionV2JobOutput{} out.Result = output var buff [1024]byte @@ -2013,7 +2019,7 @@ func (m *awsAwsjson11_deserializeOpStartRxNormInferenceJob) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartRxNormInferenceJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartEntitiesDetectionV2JobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2027,7 +2033,7 @@ func (m *awsAwsjson11_deserializeOpStartRxNormInferenceJob) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartRxNormInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartEntitiesDetectionV2Job(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2090,14 +2096,14 @@ func awsAwsjson11_deserializeOpErrorStartRxNormInferenceJob(response *smithyhttp } } -type awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job struct { +type awsAwsjson11_deserializeOpStartICD10CMInferenceJob struct { } -func (*awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) ID() string { +func (*awsAwsjson11_deserializeOpStartICD10CMInferenceJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartICD10CMInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2111,9 +2117,9 @@ func (m *awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopEntitiesDetectionV2Job(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response, &metadata) } - output := &StopEntitiesDetectionV2JobOutput{} + output := &StartICD10CMInferenceJobOutput{} out.Result = output var buff [1024]byte @@ -2133,7 +2139,7 @@ func (m *awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopEntitiesDetectionV2JobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartICD10CMInferenceJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2147,7 +2153,7 @@ func (m *awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopEntitiesDetectionV2Job(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartICD10CMInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2197,6 +2203,9 @@ func awsAwsjson11_deserializeOpErrorStopEntitiesDetectionV2Job(response *smithyh case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2207,14 +2216,14 @@ func awsAwsjson11_deserializeOpErrorStopEntitiesDetectionV2Job(response *smithyh } } -type awsAwsjson11_deserializeOpStopICD10CMInferenceJob struct { +type awsAwsjson11_deserializeOpStartPHIDetectionJob struct { } -func (*awsAwsjson11_deserializeOpStopICD10CMInferenceJob) ID() string { +func (*awsAwsjson11_deserializeOpStartPHIDetectionJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopICD10CMInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartPHIDetectionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2228,9 +2237,9 @@ func (m *awsAwsjson11_deserializeOpStopICD10CMInferenceJob) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopICD10CMInferenceJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response, &metadata) } - output := &StopICD10CMInferenceJobOutput{} + output := &StartPHIDetectionJobOutput{} out.Result = output var buff [1024]byte @@ -2250,7 +2259,7 @@ func (m *awsAwsjson11_deserializeOpStopICD10CMInferenceJob) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopICD10CMInferenceJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartPHIDetectionJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2264,7 +2273,7 @@ func (m *awsAwsjson11_deserializeOpStopICD10CMInferenceJob) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopICD10CMInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartPHIDetectionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2314,6 +2323,9 @@ func awsAwsjson11_deserializeOpErrorStopICD10CMInferenceJob(response *smithyhttp case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2324,14 +2336,14 @@ func awsAwsjson11_deserializeOpErrorStopICD10CMInferenceJob(response *smithyhttp } } -type awsAwsjson11_deserializeOpStopPHIDetectionJob struct { +type awsAwsjson11_deserializeOpStartRxNormInferenceJob struct { } -func (*awsAwsjson11_deserializeOpStopPHIDetectionJob) ID() string { +func (*awsAwsjson11_deserializeOpStartRxNormInferenceJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopPHIDetectionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartRxNormInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2345,9 +2357,9 @@ func (m *awsAwsjson11_deserializeOpStopPHIDetectionJob) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopPHIDetectionJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartRxNormInferenceJob(response, &metadata) } - output := &StopPHIDetectionJobOutput{} + output := &StartRxNormInferenceJobOutput{} out.Result = output var buff [1024]byte @@ -2367,7 +2379,7 @@ func (m *awsAwsjson11_deserializeOpStopPHIDetectionJob) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopPHIDetectionJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartRxNormInferenceJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2381,7 +2393,7 @@ func (m *awsAwsjson11_deserializeOpStopPHIDetectionJob) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopPHIDetectionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartRxNormInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2431,6 +2443,9 @@ func awsAwsjson11_deserializeOpErrorStopPHIDetectionJob(response *smithyhttp.Res case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2441,14 +2456,14 @@ func awsAwsjson11_deserializeOpErrorStopPHIDetectionJob(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpStopRxNormInferenceJob struct { +type awsAwsjson11_deserializeOpStartSNOMEDCTInferenceJob struct { } -func (*awsAwsjson11_deserializeOpStopRxNormInferenceJob) ID() string { +func (*awsAwsjson11_deserializeOpStartSNOMEDCTInferenceJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopRxNormInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartSNOMEDCTInferenceJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2462,9 +2477,9 @@ func (m *awsAwsjson11_deserializeOpStopRxNormInferenceJob) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopRxNormInferenceJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartSNOMEDCTInferenceJob(response, &metadata) } - output := &StopRxNormInferenceJobOutput{} + output := &StartSNOMEDCTInferenceJobOutput{} out.Result = output var buff [1024]byte @@ -2484,7 +2499,7 @@ func (m *awsAwsjson11_deserializeOpStopRxNormInferenceJob) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopRxNormInferenceJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartSNOMEDCTInferenceJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2498,7 +2513,7 @@ func (m *awsAwsjson11_deserializeOpStopRxNormInferenceJob) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopRxNormInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartSNOMEDCTInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2548,6 +2563,9 @@ func awsAwsjson11_deserializeOpErrorStopRxNormInferenceJob(response *smithyhttp. case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2558,11 +2576,36 @@ func awsAwsjson11_deserializeOpErrorStopRxNormInferenceJob(response *smithyhttp. } } -func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job struct { +} + +func (*awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopEntitiesDetectionV2Job) HandleDeserialize(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_deserializeOpErrorStopEntitiesDetectionV2Job(response, &metadata) + } + output := &StopEntitiesDetectionV2JobOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2573,12 +2616,10 @@ func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InternalServerException{} - err := awsAwsjson11_deserializeDocumentInternalServerException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentStopEntitiesDetectionV2JobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2586,22 +2627,35 @@ func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidEncodingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorStopEntitiesDetectionV2Job(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2611,28 +2665,64 @@ func awsAwsjson11_deserializeErrorInvalidEncodingException(response *smithyhttp. return err } - output := &types.InvalidEncodingException{} - err := awsAwsjson11_deserializeDocumentInvalidEncodingException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpStopICD10CMInferenceJob struct { } -func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpStopICD10CMInferenceJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopICD10CMInferenceJob) HandleDeserialize(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_deserializeOpErrorStopICD10CMInferenceJob(response, &metadata) + } + output := &StopICD10CMInferenceJobOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2643,12 +2733,10 @@ func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InvalidRequestException{} - err := awsAwsjson11_deserializeDocumentInvalidRequestException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentStopICD10CMInferenceJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2656,22 +2744,35 @@ func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorStopICD10CMInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2681,28 +2782,64 @@ func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp return err } - output := &types.ResourceNotFoundException{} - err := awsAwsjson11_deserializeDocumentResourceNotFoundException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpStopPHIDetectionJob struct { } -func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpStopPHIDetectionJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopPHIDetectionJob) HandleDeserialize(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_deserializeOpErrorStopPHIDetectionJob(response, &metadata) + } + output := &StopPHIDetectionJobOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2713,12 +2850,10 @@ func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyht Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ServiceUnavailableException{} - err := awsAwsjson11_deserializeDocumentServiceUnavailableException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentStopPHIDetectionJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2726,20 +2861,104 @@ func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyht Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +func awsAwsjson11_deserializeOpErrorStopPHIDetectionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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()) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() + 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("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpStopRxNormInferenceJob struct { +} + +func (*awsAwsjson11_deserializeOpStopRxNormInferenceJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopRxNormInferenceJob) HandleDeserialize(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_deserializeOpErrorStopRxNormInferenceJob(response, &metadata) + } + output := &StopRxNormInferenceJobOutput{} + 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 @@ -2748,12 +2967,45 @@ func awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response *smith Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.TextSizeLimitExceededException{} - err := awsAwsjson11_deserializeDocumentTextSizeLimitExceededException(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopRxNormInferenceJobOutput(&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_deserializeOpErrorStopRxNormInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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) @@ -2765,14 +3017,63 @@ func awsAwsjson11_deserializeErrorTextSizeLimitExceededException(response *smith } errorBody.Seek(0, io.SeekStart) - return output + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } } -func awsAwsjson11_deserializeErrorTooManyRequestsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson11_deserializeOpStopSNOMEDCTInferenceJob struct { +} + +func (*awsAwsjson11_deserializeOpStopSNOMEDCTInferenceJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpStopSNOMEDCTInferenceJob) HandleDeserialize(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_deserializeOpErrorStopSNOMEDCTInferenceJob(response, &metadata) + } + output := &StopSNOMEDCTInferenceJobOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2783,12 +3084,45 @@ func awsAwsjson11_deserializeErrorTooManyRequestsException(response *smithyhttp. Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.TooManyRequestsException{} - err := awsAwsjson11_deserializeDocumentTooManyRequestsException(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopSNOMEDCTInferenceJobOutput(&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_deserializeOpErrorStopSNOMEDCTInferenceJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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) @@ -2800,45 +3134,778 @@ func awsAwsjson11_deserializeErrorTooManyRequestsException(response *smithyhttp. } errorBody.Seek(0, io.SeekStart) - return output + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsAwsjson11_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InternalServerException{} + err := awsAwsjson11_deserializeDocumentInternalServerException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidEncodingException(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.InvalidEncodingException{} + err := awsAwsjson11_deserializeDocumentInvalidEncodingException(&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_deserializeErrorInvalidRequestException(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.InvalidRequestException{} + err := awsAwsjson11_deserializeDocumentInvalidRequestException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceNotFoundException{} + err := awsAwsjson11_deserializeDocumentResourceNotFoundException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorServiceUnavailableException(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.ServiceUnavailableException{} + err := awsAwsjson11_deserializeDocumentServiceUnavailableException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorTextSizeLimitExceededException(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.TextSizeLimitExceededException{} + err := awsAwsjson11_deserializeDocumentTextSizeLimitExceededException(&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_deserializeErrorTooManyRequestsException(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.TooManyRequestsException{} + err := awsAwsjson11_deserializeDocumentTooManyRequestsException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ValidationException{} + err := awsAwsjson11_deserializeDocumentValidationException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeDocumentAttribute(v **types.Attribute, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Attribute + if *v == nil { + sv = &types.Attribute{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BeginOffset": + 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.BeginOffset = ptr.Int32(int32(i64)) + } + + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntityType to be of type string, got %T instead", value) + } + sv.Category = types.EntityType(jtv) + } + + case "EndOffset": + 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.EndOffset = ptr.Int32(int32(i64)) + } + + case "Id": + 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.Id = ptr.Int32(int32(i64)) + } + + case "RelationshipScore": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RelationshipScore = 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.RelationshipScore = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "RelationshipType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RelationshipType to be of type string, got %T instead", value) + } + sv.RelationshipType = types.RelationshipType(jtv) + } + + case "Score": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Score = 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.Score = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } + + case "Traits": + if err := awsAwsjson11_deserializeDocumentTraitList(&sv.Traits, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EntitySubType to be of type string, got %T instead", value) + } + sv.Type = types.EntitySubType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAttributeList(v *[]types.Attribute, 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.Attribute + if *v == nil { + cv = []types.Attribute{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Attribute + destAddr := &col + if err := awsAwsjson11_deserializeDocumentAttribute(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentCharacters(v **types.Characters, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Characters + if *v == nil { + sv = &types.Characters{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "OriginalTextCharacters": + 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.OriginalTextCharacters = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(v **types.ComprehendMedicalAsyncJobProperties, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ComprehendMedicalAsyncJobProperties + if *v == nil { + sv = &types.ComprehendMedicalAsyncJobProperties{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataAccessRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IamRoleArn to be of type string, got %T instead", value) + } + sv.DataAccessRoleArn = 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 Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "ExpirationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.ExpirationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "InputDataConfig": + if err := awsAwsjson11_deserializeDocumentInputDataConfig(&sv.InputDataConfig, value); err != nil { + return err + } + + case "JobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + } + sv.JobId = ptr.String(jtv) + } + + case "JobName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobName to be of type string, got %T instead", value) + } + sv.JobName = ptr.String(jtv) + } + + case "JobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobStatus to be of type string, got %T instead", value) + } + sv.JobStatus = types.JobStatus(jtv) + } + + case "KMSKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KMSKey to be of type string, got %T instead", value) + } + sv.KMSKey = ptr.String(jtv) + } + + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = types.LanguageCode(jtv) + } + + case "ManifestFilePath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ManifestFilePath to be of type string, got %T instead", value) + } + sv.ManifestFilePath = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AnyLengthString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "ModelVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelVersion to be of type string, got %T instead", value) + } + sv.ModelVersion = ptr.String(jtv) + } + + case "OutputDataConfig": + if err := awsAwsjson11_deserializeDocumentOutputDataConfig(&sv.OutputDataConfig, value); err != nil { + return err + } + + case "SubmitTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.SubmitTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func awsAwsjson11_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobPropertiesList(v *[]types.ComprehendMedicalAsyncJobProperties, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - 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 + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) } - output := &types.ValidationException{} - err := awsAwsjson11_deserializeDocumentValidationException(&output, shape) + var cv []types.ComprehendMedicalAsyncJobProperties + if *v == nil { + cv = []types.ComprehendMedicalAsyncJobProperties{} + } else { + cv = *v + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + for _, value := range shape { + var col types.ComprehendMedicalAsyncJobProperties + destAddr := &col + if err := awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(&destAddr, value); err != nil { + return err } - return err - } + col = *destAddr + cv = append(cv, col) - errorBody.Seek(0, io.SeekStart) - return output + } + *v = cv + return nil } -func awsAwsjson11_deserializeDocumentAttribute(v **types.Attribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2851,15 +3918,20 @@ func awsAwsjson11_deserializeDocumentAttribute(v **types.Attribute, value interf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Attribute + var sv *types.Entity if *v == nil { - sv = &types.Attribute{} + sv = &types.Entity{} } else { sv = *v } for key, value := range shape { switch key { + case "Attributes": + if err := awsAwsjson11_deserializeDocumentAttributeList(&sv.Attributes, value); err != nil { + return err + } + case "BeginOffset": if value != nil { jtv, ok := value.(json.Number) @@ -2908,49 +3980,6 @@ func awsAwsjson11_deserializeDocumentAttribute(v **types.Attribute, value interf sv.Id = ptr.Int32(int32(i64)) } - case "RelationshipScore": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.RelationshipScore = 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.RelationshipScore = ptr.Float32(float32(f64)) - - default: - return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) - - } - } - - case "RelationshipType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected RelationshipType to be of type string, got %T instead", value) - } - sv.RelationshipType = types.RelationshipType(jtv) - } - case "Score": if value != nil { switch jtv := value.(type) { @@ -3017,7 +4046,7 @@ func awsAwsjson11_deserializeDocumentAttribute(v **types.Attribute, value interf return nil } -func awsAwsjson11_deserializeDocumentAttributeList(v *[]types.Attribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentEntityList(v *[]types.Entity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3030,17 +4059,17 @@ func awsAwsjson11_deserializeDocumentAttributeList(v *[]types.Attribute, value i return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Attribute + var cv []types.Entity if *v == nil { - cv = []types.Attribute{} + cv = []types.Entity{} } else { cv = *v } for _, value := range shape { - var col types.Attribute + var col types.Entity destAddr := &col - if err := awsAwsjson11_deserializeDocumentAttribute(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentEntity(&destAddr, value); err != nil { return err } col = *destAddr @@ -3051,7 +4080,7 @@ func awsAwsjson11_deserializeDocumentAttributeList(v *[]types.Attribute, value i return nil } -func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(v **types.ComprehendMedicalAsyncJobProperties, value interface{}) error { +func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3064,139 +4093,107 @@ func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ComprehendMedicalAsyncJobProperties + var sv *types.ICD10CMAttribute if *v == nil { - sv = &types.ComprehendMedicalAsyncJobProperties{} + sv = &types.ICD10CMAttribute{} } else { sv = *v } for key, value := range shape { switch key { - case "DataAccessRoleArn": + case "BeginOffset": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected IamRoleArn to be of type string, got %T instead", value) - } - sv.DataAccessRoleArn = 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 Timestamp to be a JSON Number, got %T instead", value) - + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - } - - case "ExpirationTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.ExpirationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - + i64, err := jtv.Int64() + if err != nil { + return err } + sv.BeginOffset = ptr.Int32(int32(i64)) } - case "InputDataConfig": - if err := awsAwsjson11_deserializeDocumentInputDataConfig(&sv.InputDataConfig, value); err != nil { - return err - } - - case "JobId": + case "Category": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + return fmt.Errorf("expected ICD10CMEntityType to be of type string, got %T instead", value) } - sv.JobId = ptr.String(jtv) + sv.Category = types.ICD10CMEntityType(jtv) } - case "JobName": + case "EndOffset": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected JobName to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.JobName = ptr.String(jtv) - } - - case "JobStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected JobStatus to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.JobStatus = types.JobStatus(jtv) + sv.EndOffset = ptr.Int32(int32(i64)) } - case "KMSKey": + case "Id": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected KMSKey to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.KMSKey = ptr.String(jtv) - } - - case "LanguageCode": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.LanguageCode = types.LanguageCode(jtv) + sv.Id = ptr.Int32(int32(i64)) } - case "ManifestFilePath": + case "RelationshipScore": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ManifestFilePath to be of type string, got %T instead", value) - } - sv.ManifestFilePath = ptr.String(jtv) - } + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RelationshipScore = 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.RelationshipScore = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AnyLengthString to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) } - case "ModelVersion": + case "RelationshipType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelVersion to be of type string, got %T instead", value) + return fmt.Errorf("expected ICD10CMRelationshipType to be of type string, got %T instead", value) } - sv.ModelVersion = ptr.String(jtv) - } - - case "OutputDataConfig": - if err := awsAwsjson11_deserializeDocumentOutputDataConfig(&sv.OutputDataConfig, value); err != nil { - return err + sv.RelationshipType = types.ICD10CMRelationshipType(jtv) } - case "SubmitTime": + case "Score": if value != nil { switch jtv := value.(type) { case json.Number: @@ -3204,12 +4201,53 @@ func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(v **typ if err != nil { return err } - sv.SubmitTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + sv.Score = 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.Score = ptr.Float32(float32(f64)) default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } + + case "Traits": + if err := awsAwsjson11_deserializeDocumentICD10CMTraitList(&sv.Traits, value); err != nil { + return err + } + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ICD10CMAttributeType to be of type string, got %T instead", value) } + sv.Type = types.ICD10CMAttributeType(jtv) } default: @@ -3221,7 +4259,7 @@ func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(v **typ return nil } -func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobPropertiesList(v *[]types.ComprehendMedicalAsyncJobProperties, value interface{}) error { +func awsAwsjson11_deserializeDocumentICD10CMAttributeList(v *[]types.ICD10CMAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3234,17 +4272,17 @@ func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobPropertiesList(v * return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ComprehendMedicalAsyncJobProperties + var cv []types.ICD10CMAttribute if *v == nil { - cv = []types.ComprehendMedicalAsyncJobProperties{} + cv = []types.ICD10CMAttribute{} } else { cv = *v } for _, value := range shape { - var col types.ComprehendMedicalAsyncJobProperties + var col types.ICD10CMAttribute destAddr := &col - if err := awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentICD10CMAttribute(&destAddr, value); err != nil { return err } col = *destAddr @@ -3255,7 +4293,7 @@ func awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobPropertiesList(v * return nil } -func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) error { +func awsAwsjson11_deserializeDocumentICD10CMConcept(v **types.ICD10CMConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3268,66 +4306,31 @@ func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Entity + var sv *types.ICD10CMConcept if *v == nil { - sv = &types.Entity{} + sv = &types.ICD10CMConcept{} } else { sv = *v } for key, value := range shape { switch key { - case "Attributes": - if err := awsAwsjson11_deserializeDocumentAttributeList(&sv.Attributes, value); err != nil { - return err - } - - case "BeginOffset": - 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.BeginOffset = ptr.Int32(int32(i64)) - } - - case "Category": + case "Code": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EntityType to be of type string, got %T instead", value) - } - sv.Category = types.EntityType(jtv) - } - - case "EndOffset": - 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 + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.EndOffset = ptr.Int32(int32(i64)) + sv.Code = ptr.String(jtv) } - case "Id": + case "Description": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Id = ptr.Int32(int32(i64)) + sv.Description = ptr.String(jtv) } case "Score": @@ -3364,29 +4367,6 @@ func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) } } - case "Text": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Text = ptr.String(jtv) - } - - case "Traits": - if err := awsAwsjson11_deserializeDocumentTraitList(&sv.Traits, value); err != nil { - return err - } - - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected EntitySubType to be of type string, got %T instead", value) - } - sv.Type = types.EntitySubType(jtv) - } - default: _, _ = key, value @@ -3396,7 +4376,7 @@ func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) return nil } -func awsAwsjson11_deserializeDocumentEntityList(v *[]types.Entity, value interface{}) error { +func awsAwsjson11_deserializeDocumentICD10CMConceptList(v *[]types.ICD10CMConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3409,17 +4389,17 @@ func awsAwsjson11_deserializeDocumentEntityList(v *[]types.Entity, value interfa return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Entity + var cv []types.ICD10CMConcept if *v == nil { - cv = []types.Entity{} + cv = []types.ICD10CMConcept{} } else { cv = *v } for _, value := range shape { - var col types.Entity + var col types.ICD10CMConcept destAddr := &col - if err := awsAwsjson11_deserializeDocumentEntity(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentICD10CMConcept(&destAddr, value); err != nil { return err } col = *destAddr @@ -3430,7 +4410,7 @@ func awsAwsjson11_deserializeDocumentEntityList(v *[]types.Entity, value interfa return nil } -func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3443,15 +4423,20 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ICD10CMAttribute + var sv *types.ICD10CMEntity if *v == nil { - sv = &types.ICD10CMAttribute{} + sv = &types.ICD10CMEntity{} } else { sv = *v } for key, value := range shape { switch key { + case "Attributes": + if err := awsAwsjson11_deserializeDocumentICD10CMAttributeList(&sv.Attributes, value); err != nil { + return err + } + case "BeginOffset": if value != nil { jtv, ok := value.(json.Number) @@ -3469,9 +4454,9 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ICD10CMEntityType to be of type string, got %T instead", value) + return fmt.Errorf("expected ICD10CMEntityCategory to be of type string, got %T instead", value) } - sv.Category = types.ICD10CMEntityType(jtv) + sv.Category = types.ICD10CMEntityCategory(jtv) } case "EndOffset": @@ -3487,6 +4472,11 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute sv.EndOffset = ptr.Int32(int32(i64)) } + case "ICD10CMConcepts": + if err := awsAwsjson11_deserializeDocumentICD10CMConceptList(&sv.ICD10CMConcepts, value); err != nil { + return err + } + case "Id": if value != nil { jtv, ok := value.(json.Number) @@ -3500,7 +4490,7 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute sv.Id = ptr.Int32(int32(i64)) } - case "RelationshipScore": + case "Score": if value != nil { switch jtv := value.(type) { case json.Number: @@ -3508,7 +4498,7 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute if err != nil { return err } - sv.RelationshipScore = ptr.Float32(float32(f64)) + sv.Score = ptr.Float32(float32(f64)) case string: var f64 float64 @@ -3526,21 +4516,109 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute return fmt.Errorf("unknown JSON number value: %s", jtv) } - sv.RelationshipScore = ptr.Float32(float32(f64)) + sv.Score = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OntologyLinkingBoundedLengthString to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } + + case "Traits": + if err := awsAwsjson11_deserializeDocumentICD10CMTraitList(&sv.Traits, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ICD10CMEntityType to be of type string, got %T instead", value) + } + sv.Type = types.ICD10CMEntityType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentICD10CMEntityList(v *[]types.ICD10CMEntity, 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.ICD10CMEntity + if *v == nil { + cv = []types.ICD10CMEntity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ICD10CMEntity + destAddr := &col + if err := awsAwsjson11_deserializeDocumentICD10CMEntity(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} - default: - return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) +func awsAwsjson11_deserializeDocumentICD10CMTrait(v **types.ICD10CMTrait, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - } - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "RelationshipType": + var sv *types.ICD10CMTrait + if *v == nil { + sv = &types.ICD10CMTrait{} + } 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 ICD10CMRelationshipType to be of type string, got %T instead", value) + return fmt.Errorf("expected ICD10CMTraitName to be of type string, got %T instead", value) } - sv.RelationshipType = types.ICD10CMRelationshipType(jtv) + sv.Name = types.ICD10CMTraitName(jtv) } case "Score": @@ -3577,27 +4655,87 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute } } - case "Text": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentICD10CMTraitList(v *[]types.ICD10CMTrait, 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.ICD10CMTrait + if *v == nil { + cv = []types.ICD10CMTrait{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ICD10CMTrait + destAddr := &col + if err := awsAwsjson11_deserializeDocumentICD10CMTrait(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentInputDataConfig(v **types.InputDataConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InputDataConfig + if *v == nil { + sv = &types.InputDataConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "S3Bucket": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) } - sv.Text = ptr.String(jtv) - } - - case "Traits": - if err := awsAwsjson11_deserializeDocumentICD10CMTraitList(&sv.Traits, value); err != nil { - return err + sv.S3Bucket = ptr.String(jtv) } - case "Type": + case "S3Key": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ICD10CMAttributeType to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) } - sv.Type = types.ICD10CMAttributeType(jtv) + sv.S3Key = ptr.String(jtv) } default: @@ -3609,7 +4747,7 @@ func awsAwsjson11_deserializeDocumentICD10CMAttribute(v **types.ICD10CMAttribute return nil } -func awsAwsjson11_deserializeDocumentICD10CMAttributeList(v *[]types.ICD10CMAttribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3617,33 +4755,39 @@ func awsAwsjson11_deserializeDocumentICD10CMAttributeList(v *[]types.ICD10CMAttr return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ICD10CMAttribute + var sv *types.InternalServerException if *v == nil { - cv = []types.ICD10CMAttribute{} + sv = &types.InternalServerException{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.ICD10CMAttribute - destAddr := &col - if err := awsAwsjson11_deserializeDocumentICD10CMAttribute(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + 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 = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentICD10CMConcept(v **types.ICD10CMConcept, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidEncodingException(v **types.InvalidEncodingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3656,65 +4800,111 @@ func awsAwsjson11_deserializeDocumentICD10CMConcept(v **types.ICD10CMConcept, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ICD10CMConcept + var sv *types.InvalidEncodingException if *v == nil { - sv = &types.ICD10CMConcept{} + sv = &types.InvalidEncodingException{} } else { sv = *v } for key, value := range shape { switch key { - case "Code": + 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.Code = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "Description": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InvalidRequestException + if *v == nil { + sv = &types.InvalidRequestException{} + } 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.Description = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "Score": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.Score = ptr.Float32(float32(f64)) - - case string: - var f64 float64 - switch { - case strings.EqualFold(jtv, "NaN"): - f64 = math.NaN() + default: + _, _ = key, value - case strings.EqualFold(jtv, "Infinity"): - f64 = math.Inf(1) + } + } + *v = sv + return nil +} - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) +func awsAwsjson11_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - } - sv.Score = ptr.Float32(float32(f64)) + var sv *types.OutputDataConfig + if *v == nil { + sv = &types.OutputDataConfig{} + } else { + sv = *v + } - default: - return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + for key, value := range shape { + switch key { + case "S3Bucket": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) + } + sv.S3Bucket = ptr.String(jtv) + } + case "S3Key": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) } + sv.S3Key = ptr.String(jtv) } default: @@ -3726,7 +4916,7 @@ func awsAwsjson11_deserializeDocumentICD10CMConcept(v **types.ICD10CMConcept, va return nil } -func awsAwsjson11_deserializeDocumentICD10CMConceptList(v *[]types.ICD10CMConcept, value interface{}) error { +func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3734,33 +4924,39 @@ func awsAwsjson11_deserializeDocumentICD10CMConceptList(v *[]types.ICD10CMConcep return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ICD10CMConcept + var sv *types.ResourceNotFoundException if *v == nil { - cv = []types.ICD10CMConcept{} + sv = &types.ResourceNotFoundException{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.ICD10CMConcept - destAddr := &col - if err := awsAwsjson11_deserializeDocumentICD10CMConcept(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + 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 = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3773,20 +4969,15 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ICD10CMEntity + var sv *types.RxNormAttribute if *v == nil { - sv = &types.ICD10CMEntity{} + sv = &types.RxNormAttribute{} } else { sv = *v } for key, value := range shape { switch key { - case "Attributes": - if err := awsAwsjson11_deserializeDocumentICD10CMAttributeList(&sv.Attributes, value); err != nil { - return err - } - case "BeginOffset": if value != nil { jtv, ok := value.(json.Number) @@ -3800,15 +4991,6 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu sv.BeginOffset = ptr.Int32(int32(i64)) } - case "Category": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ICD10CMEntityCategory to be of type string, got %T instead", value) - } - sv.Category = types.ICD10CMEntityCategory(jtv) - } - case "EndOffset": if value != nil { jtv, ok := value.(json.Number) @@ -3822,11 +5004,6 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu sv.EndOffset = ptr.Int32(int32(i64)) } - case "ICD10CMConcepts": - if err := awsAwsjson11_deserializeDocumentICD10CMConceptList(&sv.ICD10CMConcepts, value); err != nil { - return err - } - case "Id": if value != nil { jtv, ok := value.(json.Number) @@ -3840,6 +5017,40 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu sv.Id = ptr.Int32(int32(i64)) } + case "RelationshipScore": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RelationshipScore = 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.RelationshipScore = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + case "Score": if value != nil { switch jtv := value.(type) { @@ -3878,13 +5089,13 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OntologyLinkingBoundedLengthString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.Text = ptr.String(jtv) } case "Traits": - if err := awsAwsjson11_deserializeDocumentICD10CMTraitList(&sv.Traits, value); err != nil { + if err := awsAwsjson11_deserializeDocumentRxNormTraitList(&sv.Traits, value); err != nil { return err } @@ -3892,9 +5103,9 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ICD10CMEntityType to be of type string, got %T instead", value) + return fmt.Errorf("expected RxNormAttributeType to be of type string, got %T instead", value) } - sv.Type = types.ICD10CMEntityType(jtv) + sv.Type = types.RxNormAttributeType(jtv) } default: @@ -3906,7 +5117,7 @@ func awsAwsjson11_deserializeDocumentICD10CMEntity(v **types.ICD10CMEntity, valu return nil } -func awsAwsjson11_deserializeDocumentICD10CMEntityList(v *[]types.ICD10CMEntity, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormAttributeList(v *[]types.RxNormAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3919,17 +5130,17 @@ func awsAwsjson11_deserializeDocumentICD10CMEntityList(v *[]types.ICD10CMEntity, return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ICD10CMEntity + var cv []types.RxNormAttribute if *v == nil { - cv = []types.ICD10CMEntity{} + cv = []types.RxNormAttribute{} } else { cv = *v } for _, value := range shape { - var col types.ICD10CMEntity + var col types.RxNormAttribute destAddr := &col - if err := awsAwsjson11_deserializeDocumentICD10CMEntity(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentRxNormAttribute(&destAddr, value); err != nil { return err } col = *destAddr @@ -3940,7 +5151,7 @@ func awsAwsjson11_deserializeDocumentICD10CMEntityList(v *[]types.ICD10CMEntity, return nil } -func awsAwsjson11_deserializeDocumentICD10CMTrait(v **types.ICD10CMTrait, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormConcept(v **types.RxNormConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3953,22 +5164,31 @@ func awsAwsjson11_deserializeDocumentICD10CMTrait(v **types.ICD10CMTrait, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ICD10CMTrait + var sv *types.RxNormConcept if *v == nil { - sv = &types.ICD10CMTrait{} + sv = &types.RxNormConcept{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "Code": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ICD10CMTraitName to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Name = types.ICD10CMTraitName(jtv) + sv.Code = ptr.String(jtv) + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) } case "Score": @@ -4014,7 +5234,7 @@ func awsAwsjson11_deserializeDocumentICD10CMTrait(v **types.ICD10CMTrait, value return nil } -func awsAwsjson11_deserializeDocumentICD10CMTraitList(v *[]types.ICD10CMTrait, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormConceptList(v *[]types.RxNormConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4027,17 +5247,17 @@ func awsAwsjson11_deserializeDocumentICD10CMTraitList(v *[]types.ICD10CMTrait, v return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ICD10CMTrait + var cv []types.RxNormConcept if *v == nil { - cv = []types.ICD10CMTrait{} + cv = []types.RxNormConcept{} } else { cv = *v } for _, value := range shape { - var col types.ICD10CMTrait + var col types.RxNormConcept destAddr := &col - if err := awsAwsjson11_deserializeDocumentICD10CMTrait(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentRxNormConcept(&destAddr, value); err != nil { return err } col = *destAddr @@ -4048,7 +5268,7 @@ func awsAwsjson11_deserializeDocumentICD10CMTraitList(v *[]types.ICD10CMTrait, v return nil } -func awsAwsjson11_deserializeDocumentInputDataConfig(v **types.InputDataConfig, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4061,71 +5281,128 @@ func awsAwsjson11_deserializeDocumentInputDataConfig(v **types.InputDataConfig, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InputDataConfig + var sv *types.RxNormEntity if *v == nil { - sv = &types.InputDataConfig{} + sv = &types.RxNormEntity{} } else { sv = *v } for key, value := range shape { switch key { - case "S3Bucket": + case "Attributes": + if err := awsAwsjson11_deserializeDocumentRxNormAttributeList(&sv.Attributes, value); err != nil { + return err + } + + case "BeginOffset": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.S3Bucket = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BeginOffset = ptr.Int32(int32(i64)) } - case "S3Key": + case "Category": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) + return fmt.Errorf("expected RxNormEntityCategory to be of type string, got %T instead", value) } - sv.S3Key = ptr.String(jtv) + sv.Category = types.RxNormEntityCategory(jtv) } - default: - _, _ = key, value + case "EndOffset": + 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.EndOffset = ptr.Int32(int32(i64)) + } - } - } - *v = sv - return nil -} + case "Id": + 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.Id = ptr.Int32(int32(i64)) + } -func awsAwsjson11_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "RxNormConcepts": + if err := awsAwsjson11_deserializeDocumentRxNormConceptList(&sv.RxNormConcepts, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Score": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Score = 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.Score = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OntologyLinkingBoundedLengthString to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } - var sv *types.InternalServerException - if *v == nil { - sv = &types.InternalServerException{} - } else { - sv = *v - } + case "Traits": + if err := awsAwsjson11_deserializeDocumentRxNormTraitList(&sv.Traits, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Message": + 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) + return fmt.Errorf("expected RxNormEntityType to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Type = types.RxNormEntityType(jtv) } default: @@ -4137,7 +5414,7 @@ func awsAwsjson11_deserializeDocumentInternalServerException(v **types.InternalS return nil } -func awsAwsjson11_deserializeDocumentInvalidEncodingException(v **types.InvalidEncodingException, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormEntityList(v *[]types.RxNormEntity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4145,39 +5422,33 @@ func awsAwsjson11_deserializeDocumentInvalidEncodingException(v **types.InvalidE 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.InvalidEncodingException + var cv []types.RxNormEntity if *v == nil { - sv = &types.InvalidEncodingException{} + cv = []types.RxNormEntity{} } else { - sv = *v + cv = *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 - + for _, value := range shape { + var col types.RxNormEntity + destAddr := &col + if err := awsAwsjson11_deserializeDocumentRxNormEntity(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormTrait(v **types.RxNormTrait, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4190,22 +5461,56 @@ func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidRequestException + var sv *types.RxNormTrait if *v == nil { - sv = &types.InvalidRequestException{} + sv = &types.RxNormTrait{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + 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) + return fmt.Errorf("expected RxNormTraitName to be of type string, got %T instead", value) + } + sv.Name = types.RxNormTraitName(jtv) + } + + case "Score": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Score = 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.Score = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + } - sv.Message = ptr.String(jtv) } default: @@ -4217,7 +5522,7 @@ func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRe return nil } -func awsAwsjson11_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig, value interface{}) error { +func awsAwsjson11_deserializeDocumentRxNormTraitList(v *[]types.RxNormTrait, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4225,48 +5530,33 @@ func awsAwsjson11_deserializeDocumentOutputDataConfig(v **types.OutputDataConfig return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.OutputDataConfig + var cv []types.RxNormTrait if *v == nil { - sv = &types.OutputDataConfig{} + cv = []types.RxNormTrait{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "S3Bucket": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) - } - sv.S3Bucket = ptr.String(jtv) - } - - case "S3Key": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) - } - sv.S3Key = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.RxNormTrait + destAddr := &col + if err := awsAwsjson11_deserializeDocumentRxNormTrait(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { +func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4279,9 +5569,9 @@ func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.Resourc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceNotFoundException + var sv *types.ServiceUnavailableException if *v == nil { - sv = &types.ResourceNotFoundException{} + sv = &types.ServiceUnavailableException{} } else { sv = *v } @@ -4306,7 +5596,7 @@ func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } -func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTAttribute(v **types.SNOMEDCTAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4319,9 +5609,9 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RxNormAttribute + var sv *types.SNOMEDCTAttribute if *v == nil { - sv = &types.RxNormAttribute{} + sv = &types.SNOMEDCTAttribute{} } else { sv = *v } @@ -4341,6 +5631,15 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, sv.BeginOffset = ptr.Int32(int32(i64)) } + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SNOMEDCTEntityCategory to be of type string, got %T instead", value) + } + sv.Category = types.SNOMEDCTEntityCategory(jtv) + } + case "EndOffset": if value != nil { jtv, ok := value.(json.Number) @@ -4401,6 +5700,15 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, } } + case "RelationshipType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SNOMEDCTRelationshipType to be of type string, got %T instead", value) + } + sv.RelationshipType = types.SNOMEDCTRelationshipType(jtv) + } + case "Score": if value != nil { switch jtv := value.(type) { @@ -4435,6 +5743,11 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, } } + case "SNOMEDCTConcepts": + if err := awsAwsjson11_deserializeDocumentSNOMEDCTConceptList(&sv.SNOMEDCTConcepts, value); err != nil { + return err + } + case "Text": if value != nil { jtv, ok := value.(string) @@ -4445,7 +5758,7 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, } case "Traits": - if err := awsAwsjson11_deserializeDocumentRxNormTraitList(&sv.Traits, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTTraitList(&sv.Traits, value); err != nil { return err } @@ -4453,9 +5766,9 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RxNormAttributeType to be of type string, got %T instead", value) + return fmt.Errorf("expected SNOMEDCTAttributeType to be of type string, got %T instead", value) } - sv.Type = types.RxNormAttributeType(jtv) + sv.Type = types.SNOMEDCTAttributeType(jtv) } default: @@ -4467,7 +5780,7 @@ func awsAwsjson11_deserializeDocumentRxNormAttribute(v **types.RxNormAttribute, return nil } -func awsAwsjson11_deserializeDocumentRxNormAttributeList(v *[]types.RxNormAttribute, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTAttributeList(v *[]types.SNOMEDCTAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4480,17 +5793,17 @@ func awsAwsjson11_deserializeDocumentRxNormAttributeList(v *[]types.RxNormAttrib return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.RxNormAttribute + var cv []types.SNOMEDCTAttribute if *v == nil { - cv = []types.RxNormAttribute{} + cv = []types.SNOMEDCTAttribute{} } else { cv = *v } for _, value := range shape { - var col types.RxNormAttribute + var col types.SNOMEDCTAttribute destAddr := &col - if err := awsAwsjson11_deserializeDocumentRxNormAttribute(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTAttribute(&destAddr, value); err != nil { return err } col = *destAddr @@ -4501,7 +5814,7 @@ func awsAwsjson11_deserializeDocumentRxNormAttributeList(v *[]types.RxNormAttrib return nil } -func awsAwsjson11_deserializeDocumentRxNormConcept(v **types.RxNormConcept, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTConcept(v **types.SNOMEDCTConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4514,9 +5827,9 @@ func awsAwsjson11_deserializeDocumentRxNormConcept(v **types.RxNormConcept, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RxNormConcept + var sv *types.SNOMEDCTConcept if *v == nil { - sv = &types.RxNormConcept{} + sv = &types.SNOMEDCTConcept{} } else { sv = *v } @@ -4584,7 +5897,7 @@ func awsAwsjson11_deserializeDocumentRxNormConcept(v **types.RxNormConcept, valu return nil } -func awsAwsjson11_deserializeDocumentRxNormConceptList(v *[]types.RxNormConcept, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTConceptList(v *[]types.SNOMEDCTConcept, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4597,17 +5910,17 @@ func awsAwsjson11_deserializeDocumentRxNormConceptList(v *[]types.RxNormConcept, return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.RxNormConcept + var cv []types.SNOMEDCTConcept if *v == nil { - cv = []types.RxNormConcept{} + cv = []types.SNOMEDCTConcept{} } else { cv = *v } for _, value := range shape { - var col types.RxNormConcept + var col types.SNOMEDCTConcept destAddr := &col - if err := awsAwsjson11_deserializeDocumentRxNormConcept(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTConcept(&destAddr, value); err != nil { return err } col = *destAddr @@ -4618,7 +5931,7 @@ func awsAwsjson11_deserializeDocumentRxNormConceptList(v *[]types.RxNormConcept, return nil } -func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTDetails(v **types.SNOMEDCTDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4631,9 +5944,67 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RxNormEntity + var sv *types.SNOMEDCTDetails if *v == nil { - sv = &types.RxNormEntity{} + sv = &types.SNOMEDCTDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Edition": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Edition = ptr.String(jtv) + } + + case "Language": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Language = ptr.String(jtv) + } + + case "VersionDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.VersionDate = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentSNOMEDCTEntity(v **types.SNOMEDCTEntity, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SNOMEDCTEntity + if *v == nil { + sv = &types.SNOMEDCTEntity{} } else { sv = *v } @@ -4641,7 +6012,7 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value for key, value := range shape { switch key { case "Attributes": - if err := awsAwsjson11_deserializeDocumentRxNormAttributeList(&sv.Attributes, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTAttributeList(&sv.Attributes, value); err != nil { return err } @@ -4662,9 +6033,9 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RxNormEntityCategory to be of type string, got %T instead", value) + return fmt.Errorf("expected SNOMEDCTEntityCategory to be of type string, got %T instead", value) } - sv.Category = types.RxNormEntityCategory(jtv) + sv.Category = types.SNOMEDCTEntityCategory(jtv) } case "EndOffset": @@ -4693,11 +6064,6 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value sv.Id = ptr.Int32(int32(i64)) } - case "RxNormConcepts": - if err := awsAwsjson11_deserializeDocumentRxNormConceptList(&sv.RxNormConcepts, value); err != nil { - return err - } - case "Score": if value != nil { switch jtv := value.(type) { @@ -4732,6 +6098,11 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value } } + case "SNOMEDCTConcepts": + if err := awsAwsjson11_deserializeDocumentSNOMEDCTConceptList(&sv.SNOMEDCTConcepts, value); err != nil { + return err + } + case "Text": if value != nil { jtv, ok := value.(string) @@ -4742,7 +6113,7 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value } case "Traits": - if err := awsAwsjson11_deserializeDocumentRxNormTraitList(&sv.Traits, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTTraitList(&sv.Traits, value); err != nil { return err } @@ -4750,9 +6121,9 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RxNormEntityType to be of type string, got %T instead", value) + return fmt.Errorf("expected SNOMEDCTEntityType to be of type string, got %T instead", value) } - sv.Type = types.RxNormEntityType(jtv) + sv.Type = types.SNOMEDCTEntityType(jtv) } default: @@ -4764,7 +6135,7 @@ func awsAwsjson11_deserializeDocumentRxNormEntity(v **types.RxNormEntity, value return nil } -func awsAwsjson11_deserializeDocumentRxNormEntityList(v *[]types.RxNormEntity, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTEntityList(v *[]types.SNOMEDCTEntity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4777,17 +6148,17 @@ func awsAwsjson11_deserializeDocumentRxNormEntityList(v *[]types.RxNormEntity, v return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.RxNormEntity + var cv []types.SNOMEDCTEntity if *v == nil { - cv = []types.RxNormEntity{} + cv = []types.SNOMEDCTEntity{} } else { cv = *v } for _, value := range shape { - var col types.RxNormEntity + var col types.SNOMEDCTEntity destAddr := &col - if err := awsAwsjson11_deserializeDocumentRxNormEntity(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTEntity(&destAddr, value); err != nil { return err } col = *destAddr @@ -4798,7 +6169,7 @@ func awsAwsjson11_deserializeDocumentRxNormEntityList(v *[]types.RxNormEntity, v return nil } -func awsAwsjson11_deserializeDocumentRxNormTrait(v **types.RxNormTrait, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTTrait(v **types.SNOMEDCTTrait, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4811,9 +6182,9 @@ func awsAwsjson11_deserializeDocumentRxNormTrait(v **types.RxNormTrait, value in return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.RxNormTrait + var sv *types.SNOMEDCTTrait if *v == nil { - sv = &types.RxNormTrait{} + sv = &types.SNOMEDCTTrait{} } else { sv = *v } @@ -4824,9 +6195,9 @@ func awsAwsjson11_deserializeDocumentRxNormTrait(v **types.RxNormTrait, value in if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RxNormTraitName to be of type string, got %T instead", value) + return fmt.Errorf("expected SNOMEDCTTraitName to be of type string, got %T instead", value) } - sv.Name = types.RxNormTraitName(jtv) + sv.Name = types.SNOMEDCTTraitName(jtv) } case "Score": @@ -4872,7 +6243,7 @@ func awsAwsjson11_deserializeDocumentRxNormTrait(v **types.RxNormTrait, value in return nil } -func awsAwsjson11_deserializeDocumentRxNormTraitList(v *[]types.RxNormTrait, value interface{}) error { +func awsAwsjson11_deserializeDocumentSNOMEDCTTraitList(v *[]types.SNOMEDCTTrait, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4885,17 +6256,17 @@ func awsAwsjson11_deserializeDocumentRxNormTraitList(v *[]types.RxNormTrait, val return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.RxNormTrait + var cv []types.SNOMEDCTTrait if *v == nil { - cv = []types.RxNormTrait{} + cv = []types.SNOMEDCTTrait{} } else { cv = *v } for _, value := range shape { - var col types.RxNormTrait + var col types.SNOMEDCTTrait destAddr := &col - if err := awsAwsjson11_deserializeDocumentRxNormTrait(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentSNOMEDCTTrait(&destAddr, value); err != nil { return err } col = *destAddr @@ -4906,46 +6277,6 @@ func awsAwsjson11_deserializeDocumentRxNormTraitList(v *[]types.RxNormTrait, val return nil } -func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.ServiceUnavailableException - if *v == nil { - sv = &types.ServiceUnavailableException{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Message": - 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_deserializeDocumentTextSizeLimitExceededException(v **types.TextSizeLimitExceededException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5397,6 +6728,42 @@ func awsAwsjson11_deserializeOpDocumentDescribeRxNormInferenceJobOutput(v **Desc return nil } +func awsAwsjson11_deserializeOpDocumentDescribeSNOMEDCTInferenceJobOutput(v **DescribeSNOMEDCTInferenceJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeSNOMEDCTInferenceJobOutput + if *v == nil { + sv = &DescribeSNOMEDCTInferenceJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComprehendMedicalAsyncJobProperties": + if err := awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobProperties(&sv.ComprehendMedicalAsyncJobProperties, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDetectEntitiesOutput(v **DetectEntitiesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5677,6 +7044,70 @@ func awsAwsjson11_deserializeOpDocumentInferRxNormOutput(v **InferRxNormOutput, return nil } +func awsAwsjson11_deserializeOpDocumentInferSNOMEDCTOutput(v **InferSNOMEDCTOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *InferSNOMEDCTOutput + if *v == nil { + sv = &InferSNOMEDCTOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Characters": + if err := awsAwsjson11_deserializeDocumentCharacters(&sv.Characters, value); err != nil { + return err + } + + case "Entities": + if err := awsAwsjson11_deserializeDocumentSNOMEDCTEntityList(&sv.Entities, value); err != nil { + return err + } + + 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) + } + + case "PaginationToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.PaginationToken = ptr.String(jtv) + } + + case "SNOMEDCTDetails": + if err := awsAwsjson11_deserializeDocumentSNOMEDCTDetails(&sv.SNOMEDCTDetails, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListEntitiesDetectionV2JobsOutput(v **ListEntitiesDetectionV2JobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5857,6 +7288,51 @@ func awsAwsjson11_deserializeOpDocumentListRxNormInferenceJobsOutput(v **ListRxN return nil } +func awsAwsjson11_deserializeOpDocumentListSNOMEDCTInferenceJobsOutput(v **ListSNOMEDCTInferenceJobsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListSNOMEDCTInferenceJobsOutput + if *v == nil { + sv = &ListSNOMEDCTInferenceJobsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComprehendMedicalAsyncJobPropertiesList": + if err := awsAwsjson11_deserializeDocumentComprehendMedicalAsyncJobPropertiesList(&sv.ComprehendMedicalAsyncJobPropertiesList, 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_deserializeOpDocumentStartEntitiesDetectionV2JobOutput(v **StartEntitiesDetectionV2JobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6017,6 +7493,46 @@ func awsAwsjson11_deserializeOpDocumentStartRxNormInferenceJobOutput(v **StartRx return nil } +func awsAwsjson11_deserializeOpDocumentStartSNOMEDCTInferenceJobOutput(v **StartSNOMEDCTInferenceJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *StartSNOMEDCTInferenceJobOutput + if *v == nil { + sv = &StartSNOMEDCTInferenceJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "JobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + } + sv.JobId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentStopEntitiesDetectionV2JobOutput(v **StopEntitiesDetectionV2JobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6176,3 +7692,43 @@ func awsAwsjson11_deserializeOpDocumentStopRxNormInferenceJobOutput(v **StopRxNo *v = sv return nil } + +func awsAwsjson11_deserializeOpDocumentStopSNOMEDCTInferenceJobOutput(v **StopSNOMEDCTInferenceJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *StopSNOMEDCTInferenceJobOutput + if *v == nil { + sv = &StopSNOMEDCTInferenceJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "JobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobId to be of type string, got %T instead", value) + } + sv.JobId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/comprehendmedical/doc.go b/service/comprehendmedical/doc.go index 07a66ed0628..f41cadb26c0 100644 --- a/service/comprehendmedical/doc.go +++ b/service/comprehendmedical/doc.go @@ -3,6 +3,6 @@ // Package comprehendmedical provides the API client, operations, and parameter // types for AWS Comprehend Medical. // -// Amazon Comprehend Medical extracts structured information from unstructured -// clinical text. Use these actions to gain insight in your documents. +// Comprehend Medical; extracts structured information from unstructured clinical +// text. Use these actions to gain insight in your documents. package comprehendmedical diff --git a/service/comprehendmedical/generated.json b/service/comprehendmedical/generated.json index 6c7b6730dc8..43fccc7b80c 100644 --- a/service/comprehendmedical/generated.json +++ b/service/comprehendmedical/generated.json @@ -11,23 +11,28 @@ "api_op_DescribeICD10CMInferenceJob.go", "api_op_DescribePHIDetectionJob.go", "api_op_DescribeRxNormInferenceJob.go", + "api_op_DescribeSNOMEDCTInferenceJob.go", "api_op_DetectEntities.go", "api_op_DetectEntitiesV2.go", "api_op_DetectPHI.go", "api_op_InferICD10CM.go", "api_op_InferRxNorm.go", + "api_op_InferSNOMEDCT.go", "api_op_ListEntitiesDetectionV2Jobs.go", "api_op_ListICD10CMInferenceJobs.go", "api_op_ListPHIDetectionJobs.go", "api_op_ListRxNormInferenceJobs.go", + "api_op_ListSNOMEDCTInferenceJobs.go", "api_op_StartEntitiesDetectionV2Job.go", "api_op_StartICD10CMInferenceJob.go", "api_op_StartPHIDetectionJob.go", "api_op_StartRxNormInferenceJob.go", + "api_op_StartSNOMEDCTInferenceJob.go", "api_op_StopEntitiesDetectionV2Job.go", "api_op_StopICD10CMInferenceJob.go", "api_op_StopPHIDetectionJob.go", "api_op_StopRxNormInferenceJob.go", + "api_op_StopSNOMEDCTInferenceJob.go", "deserializers.go", "doc.go", "endpoints.go", diff --git a/service/comprehendmedical/serializers.go b/service/comprehendmedical/serializers.go index da6d368d729..baf1cdfc788 100644 --- a/service/comprehendmedical/serializers.go +++ b/service/comprehendmedical/serializers.go @@ -236,6 +236,61 @@ func (m *awsAwsjson11_serializeOpDescribeRxNormInferenceJob) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeSNOMEDCTInferenceJob struct { +} + +func (*awsAwsjson11_serializeOpDescribeSNOMEDCTInferenceJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeSNOMEDCTInferenceJob) 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.(*DescribeSNOMEDCTInferenceJobInput) + _ = 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("ComprehendMedical_20181030.DescribeSNOMEDCTInferenceJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeSNOMEDCTInferenceJobInput(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_serializeOpDetectEntities struct { } @@ -511,6 +566,61 @@ func (m *awsAwsjson11_serializeOpInferRxNorm) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpInferSNOMEDCT struct { +} + +func (*awsAwsjson11_serializeOpInferSNOMEDCT) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpInferSNOMEDCT) 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.(*InferSNOMEDCTInput) + _ = 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("ComprehendMedical_20181030.InferSNOMEDCT") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentInferSNOMEDCTInput(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_serializeOpListEntitiesDetectionV2Jobs struct { } @@ -731,6 +841,61 @@ func (m *awsAwsjson11_serializeOpListRxNormInferenceJobs) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListSNOMEDCTInferenceJobs struct { +} + +func (*awsAwsjson11_serializeOpListSNOMEDCTInferenceJobs) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListSNOMEDCTInferenceJobs) 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.(*ListSNOMEDCTInferenceJobsInput) + _ = 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("ComprehendMedical_20181030.ListSNOMEDCTInferenceJobs") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListSNOMEDCTInferenceJobsInput(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_serializeOpStartEntitiesDetectionV2Job struct { } @@ -951,6 +1116,61 @@ func (m *awsAwsjson11_serializeOpStartRxNormInferenceJob) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpStartSNOMEDCTInferenceJob struct { +} + +func (*awsAwsjson11_serializeOpStartSNOMEDCTInferenceJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpStartSNOMEDCTInferenceJob) 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.(*StartSNOMEDCTInferenceJobInput) + _ = 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("ComprehendMedical_20181030.StartSNOMEDCTInferenceJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentStartSNOMEDCTInferenceJobInput(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_serializeOpStopEntitiesDetectionV2Job struct { } @@ -1170,6 +1390,61 @@ func (m *awsAwsjson11_serializeOpStopRxNormInferenceJob) HandleSerialize(ctx con return next.HandleSerialize(ctx, in) } + +type awsAwsjson11_serializeOpStopSNOMEDCTInferenceJob struct { +} + +func (*awsAwsjson11_serializeOpStopSNOMEDCTInferenceJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpStopSNOMEDCTInferenceJob) 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.(*StopSNOMEDCTInferenceJobInput) + _ = 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("ComprehendMedical_20181030.StopSNOMEDCTInferenceJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentStopSNOMEDCTInferenceJobInput(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) +} func awsAwsjson11_serializeDocumentComprehendMedicalAsyncJobFilter(v *types.ComprehendMedicalAsyncJobFilter, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1279,6 +1554,18 @@ func awsAwsjson11_serializeOpDocumentDescribeRxNormInferenceJobInput(v *Describe return nil } +func awsAwsjson11_serializeOpDocumentDescribeSNOMEDCTInferenceJobInput(v *DescribeSNOMEDCTInferenceJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JobId != nil { + ok := object.Key("JobId") + ok.String(*v.JobId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDetectEntitiesInput(v *DetectEntitiesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1339,6 +1626,18 @@ func awsAwsjson11_serializeOpDocumentInferRxNormInput(v *InferRxNormInput, value return nil } +func awsAwsjson11_serializeOpDocumentInferSNOMEDCTInput(v *InferSNOMEDCTInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Text != nil { + ok := object.Key("Text") + ok.String(*v.Text) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListEntitiesDetectionV2JobsInput(v *ListEntitiesDetectionV2JobsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1435,6 +1734,30 @@ func awsAwsjson11_serializeOpDocumentListRxNormInferenceJobsInput(v *ListRxNormI return nil } +func awsAwsjson11_serializeOpDocumentListSNOMEDCTInferenceJobsInput(v *ListSNOMEDCTInferenceJobsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filter != nil { + ok := object.Key("Filter") + if err := awsAwsjson11_serializeDocumentComprehendMedicalAsyncJobFilter(v.Filter, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentStartEntitiesDetectionV2JobInput(v *StartEntitiesDetectionV2JobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1619,6 +1942,52 @@ func awsAwsjson11_serializeOpDocumentStartRxNormInferenceJobInput(v *StartRxNorm return nil } +func awsAwsjson11_serializeOpDocumentStartSNOMEDCTInferenceJobInput(v *StartSNOMEDCTInferenceJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.DataAccessRoleArn != nil { + ok := object.Key("DataAccessRoleArn") + ok.String(*v.DataAccessRoleArn) + } + + if v.InputDataConfig != nil { + ok := object.Key("InputDataConfig") + if err := awsAwsjson11_serializeDocumentInputDataConfig(v.InputDataConfig, ok); err != nil { + return err + } + } + + if v.JobName != nil { + ok := object.Key("JobName") + ok.String(*v.JobName) + } + + if v.KMSKey != nil { + ok := object.Key("KMSKey") + ok.String(*v.KMSKey) + } + + if len(v.LanguageCode) > 0 { + ok := object.Key("LanguageCode") + ok.String(string(v.LanguageCode)) + } + + if v.OutputDataConfig != nil { + ok := object.Key("OutputDataConfig") + if err := awsAwsjson11_serializeDocumentOutputDataConfig(v.OutputDataConfig, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentStopEntitiesDetectionV2JobInput(v *StopEntitiesDetectionV2JobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1666,3 +2035,15 @@ func awsAwsjson11_serializeOpDocumentStopRxNormInferenceJobInput(v *StopRxNormIn return nil } + +func awsAwsjson11_serializeOpDocumentStopSNOMEDCTInferenceJobInput(v *StopSNOMEDCTInferenceJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JobId != nil { + ok := object.Key("JobId") + ok.String(*v.JobId) + } + + return nil +} diff --git a/service/comprehendmedical/types/enums.go b/service/comprehendmedical/types/enums.go index 5fa4ebab191..1aa773949bb 100644 --- a/service/comprehendmedical/types/enums.go +++ b/service/comprehendmedical/types/enums.go @@ -29,6 +29,7 @@ type EntitySubType string // Enum values for EntitySubType const ( EntitySubTypeName EntitySubType = "NAME" + EntitySubTypeDxName EntitySubType = "DX_NAME" EntitySubTypeDosage EntitySubType = "DOSAGE" EntitySubTypeRouteOrMode EntitySubType = "ROUTE_OR_MODE" EntitySubTypeForm EntitySubType = "FORM" @@ -42,13 +43,16 @@ const ( EntitySubTypeTestName EntitySubType = "TEST_NAME" EntitySubTypeTestValue EntitySubType = "TEST_VALUE" EntitySubTypeTestUnits EntitySubType = "TEST_UNITS" + EntitySubTypeTestUnit EntitySubType = "TEST_UNIT" EntitySubTypeProcedureName EntitySubType = "PROCEDURE_NAME" EntitySubTypeTreatmentName EntitySubType = "TREATMENT_NAME" EntitySubTypeDate EntitySubType = "DATE" EntitySubTypeAge EntitySubType = "AGE" EntitySubTypeContactPoint EntitySubType = "CONTACT_POINT" + EntitySubTypePhoneOrFax EntitySubType = "PHONE_OR_FAX" EntitySubTypeEmail EntitySubType = "EMAIL" EntitySubTypeIdentifier EntitySubType = "IDENTIFIER" + EntitySubTypeId EntitySubType = "ID" EntitySubTypeUrl EntitySubType = "URL" EntitySubTypeAddress EntitySubType = "ADDRESS" EntitySubTypeProfession EntitySubType = "PROFESSION" @@ -70,6 +74,7 @@ const ( func (EntitySubType) Values() []EntitySubType { return []EntitySubType{ "NAME", + "DX_NAME", "DOSAGE", "ROUTE_OR_MODE", "FORM", @@ -83,13 +88,16 @@ func (EntitySubType) Values() []EntitySubType { "TEST_NAME", "TEST_VALUE", "TEST_UNITS", + "TEST_UNIT", "PROCEDURE_NAME", "TREATMENT_NAME", "DATE", "AGE", "CONTACT_POINT", + "PHONE_OR_FAX", "EMAIL", "IDENTIFIER", + "ID", "URL", "ADDRESS", "PROFESSION", @@ -298,6 +306,7 @@ const ( RelationshipTypeAcuity RelationshipType = "ACUITY" RelationshipTypeTestValue RelationshipType = "TEST_VALUE" RelationshipTypeTestUnits RelationshipType = "TEST_UNITS" + RelationshipTypeTestUnit RelationshipType = "TEST_UNIT" RelationshipTypeDirection RelationshipType = "DIRECTION" RelationshipTypeSystemOrganSite RelationshipType = "SYSTEM_ORGAN_SITE" ) @@ -323,6 +332,7 @@ func (RelationshipType) Values() []RelationshipType { "ACUITY", "TEST_VALUE", "TEST_UNITS", + "TEST_UNIT", "DIRECTION", "SYSTEM_ORGAN_SITE", } @@ -405,3 +415,119 @@ func (RxNormTraitName) Values() []RxNormTraitName { "NEGATION", } } + +type SNOMEDCTAttributeType string + +// Enum values for SNOMEDCTAttributeType +const ( + SNOMEDCTAttributeTypeAcuity SNOMEDCTAttributeType = "ACUITY" + SNOMEDCTAttributeTypeQuality SNOMEDCTAttributeType = "QUALITY" + SNOMEDCTAttributeTypeDirection SNOMEDCTAttributeType = "DIRECTION" + SNOMEDCTAttributeTypeSystemOrganSite SNOMEDCTAttributeType = "SYSTEM_ORGAN_SITE" + SNOMEDCTAttributeTypeTestValue SNOMEDCTAttributeType = "TEST_VALUE" + SNOMEDCTAttributeTypeTestUnit SNOMEDCTAttributeType = "TEST_UNIT" +) + +// Values returns all known values for SNOMEDCTAttributeType. 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 (SNOMEDCTAttributeType) Values() []SNOMEDCTAttributeType { + return []SNOMEDCTAttributeType{ + "ACUITY", + "QUALITY", + "DIRECTION", + "SYSTEM_ORGAN_SITE", + "TEST_VALUE", + "TEST_UNIT", + } +} + +type SNOMEDCTEntityCategory string + +// Enum values for SNOMEDCTEntityCategory +const ( + SNOMEDCTEntityCategoryMedicalCondition SNOMEDCTEntityCategory = "MEDICAL_CONDITION" + SNOMEDCTEntityCategoryAnatomy SNOMEDCTEntityCategory = "ANATOMY" + SNOMEDCTEntityCategoryTestTreatmentProcedure SNOMEDCTEntityCategory = "TEST_TREATMENT_PROCEDURE" +) + +// Values returns all known values for SNOMEDCTEntityCategory. 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 (SNOMEDCTEntityCategory) Values() []SNOMEDCTEntityCategory { + return []SNOMEDCTEntityCategory{ + "MEDICAL_CONDITION", + "ANATOMY", + "TEST_TREATMENT_PROCEDURE", + } +} + +type SNOMEDCTEntityType string + +// Enum values for SNOMEDCTEntityType +const ( + SNOMEDCTEntityTypeDxName SNOMEDCTEntityType = "DX_NAME" + SNOMEDCTEntityTypeTestName SNOMEDCTEntityType = "TEST_NAME" + SNOMEDCTEntityTypeProcedureName SNOMEDCTEntityType = "PROCEDURE_NAME" + SNOMEDCTEntityTypeTreatmentName SNOMEDCTEntityType = "TREATMENT_NAME" +) + +// Values returns all known values for SNOMEDCTEntityType. 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 (SNOMEDCTEntityType) Values() []SNOMEDCTEntityType { + return []SNOMEDCTEntityType{ + "DX_NAME", + "TEST_NAME", + "PROCEDURE_NAME", + "TREATMENT_NAME", + } +} + +type SNOMEDCTRelationshipType string + +// Enum values for SNOMEDCTRelationshipType +const ( + SNOMEDCTRelationshipTypeAcuity SNOMEDCTRelationshipType = "ACUITY" + SNOMEDCTRelationshipTypeQuality SNOMEDCTRelationshipType = "QUALITY" + SNOMEDCTRelationshipTypeTestValue SNOMEDCTRelationshipType = "TEST_VALUE" + SNOMEDCTRelationshipTypeTestUnits SNOMEDCTRelationshipType = "TEST_UNITS" + SNOMEDCTRelationshipTypeDirection SNOMEDCTRelationshipType = "DIRECTION" + SNOMEDCTRelationshipTypeSystemOrganSite SNOMEDCTRelationshipType = "SYSTEM_ORGAN_SITE" +) + +// Values returns all known values for SNOMEDCTRelationshipType. 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 (SNOMEDCTRelationshipType) Values() []SNOMEDCTRelationshipType { + return []SNOMEDCTRelationshipType{ + "ACUITY", + "QUALITY", + "TEST_VALUE", + "TEST_UNITS", + "DIRECTION", + "SYSTEM_ORGAN_SITE", + } +} + +type SNOMEDCTTraitName string + +// Enum values for SNOMEDCTTraitName +const ( + SNOMEDCTTraitNameNegation SNOMEDCTTraitName = "NEGATION" + SNOMEDCTTraitNameDiagnosis SNOMEDCTTraitName = "DIAGNOSIS" + SNOMEDCTTraitNameSign SNOMEDCTTraitName = "SIGN" + SNOMEDCTTraitNameSymptom SNOMEDCTTraitName = "SYMPTOM" +) + +// Values returns all known values for SNOMEDCTTraitName. 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 (SNOMEDCTTraitName) Values() []SNOMEDCTTraitName { + return []SNOMEDCTTraitName{ + "NEGATION", + "DIAGNOSIS", + "SIGN", + "SYMPTOM", + } +} diff --git a/service/comprehendmedical/types/errors.go b/service/comprehendmedical/types/errors.go index 921544642a8..d9a875fee8e 100644 --- a/service/comprehendmedical/types/errors.go +++ b/service/comprehendmedical/types/errors.go @@ -86,8 +86,8 @@ func (e *ResourceNotFoundException) ErrorMessage() string { func (e *ResourceNotFoundException) ErrorCode() string { return "ResourceNotFoundException" } func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The Amazon Comprehend Medical service is temporarily unavailable. Please wait -// and then retry your request. +// The Comprehend Medical; service is temporarily unavailable. Please wait and then +// retry your request. type ServiceUnavailableException struct { Message *string diff --git a/service/comprehendmedical/types/types.go b/service/comprehendmedical/types/types.go index ef8dc41a14b..2c2c4971abd 100644 --- a/service/comprehendmedical/types/types.go +++ b/service/comprehendmedical/types/types.go @@ -28,8 +28,8 @@ type Attribute struct { // unique within this response rather than a global unique identifier. Id *int32 - // The level of confidence that Amazon Comprehend Medical has that this attribute - // is correctly related to this entity. + // The level of confidence that Comprehend Medical; has that this attribute is + // correctly related to this entity. RelationshipScore *float32 // The type of relationship between the entity and attribute. Type for the @@ -37,8 +37,8 @@ type Attribute struct { // the Date_Expression. RelationshipType RelationshipType - // The level of confidence that Amazon Comprehend Medical has that the segment of - // text is correctly recognized as an attribute. + // The level of confidence that Comprehend Medical; has that the segment of text is + // correctly recognized as an attribute. Score *float32 // The segment of input text extracted as this attribute. @@ -53,6 +53,16 @@ type Attribute struct { noSmithyDocumentSerde } +// The number of characters in the input text to be analyzed. +type Characters struct { + + // The number of characters present in the input text document as processed by + // Comprehend Medical. + OriginalTextCharacters *int32 + + noSmithyDocumentSerde +} + // Provides information for filtering a list of detection jobs. type ComprehendMedicalAsyncJobFilter struct { @@ -79,8 +89,8 @@ type ComprehendMedicalAsyncJobFilter struct { // Provides information about a detection job. type ComprehendMedicalAsyncJobProperties struct { - // The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access - // to your input data. + // The Amazon Resource Name (ARN) that gives Comprehend Medical; read access to + // your input data. DataAccessRoleArn *string // The time that the detection job completed. @@ -154,8 +164,8 @@ type Entity struct { // unique within this response rather than a global unique identifier. Id *int32 - // The level of confidence that Amazon Comprehend Medical has in the accuracy of - // the detection. + // The level of confidence that Comprehend Medical; has in the accuracy of the + // detection. Score *float32 // The segment of input text extracted as this entity. @@ -291,8 +301,8 @@ type ICD10CMTrait struct { // Provides a name or contextual description about the trait. Name ICD10CMTraitName - // The level of confidence that Amazon Comprehend Medical has that the segment of - // text is correctly recognized as a trait. + // The level of confidence that Comprehend Medical; has that the segment of text is + // correctly recognized as a trait. Score *float32 noSmithyDocumentSerde @@ -327,9 +337,9 @@ type OutputDataConfig struct { // This member is required. S3Bucket *string - // The path to the output data files in the S3 bucket. Amazon Comprehend Medical - // creates an output directory using the job ID so that the output from one job - // does not overwrite the output of another. + // The path to the output data files in the S3 bucket. Comprehend Medical; creates + // an output directory using the job ID so that the output from one job does not + // overwrite the output of another. S3Key *string noSmithyDocumentSerde @@ -453,27 +463,178 @@ type RxNormTrait struct { noSmithyDocumentSerde } +// The extracted attributes that relate to an entity. An extracted segment of the +// text that is an attribute of an entity, or otherwise related to an entity, such +// as the dosage of a medication taken. +type SNOMEDCTAttribute struct { + + // The 0-based character offset in the input text that shows where the attribute + // begins. The offset returns the UTF-8 code point in the string. + BeginOffset *int32 + + // The category of the detected attribute. Possible categories include + // MEDICAL_CONDITION, ANATOMY, and TEST_TREATMENT_PROCEDURE. + Category SNOMEDCTEntityCategory + + // The 0-based character offset in the input text that shows where the attribute + // ends. The offset returns the UTF-8 code point in the string. + EndOffset *int32 + + // The numeric identifier for this attribute. This is a monotonically increasing id + // unique within this response rather than a global unique identifier. + Id *int32 + + // The level of confidence that Comprehend Medical has that this attribute is + // correctly related to this entity. + RelationshipScore *float32 + + // The type of relationship that exists between the entity and the related + // attribute. + RelationshipType SNOMEDCTRelationshipType + + // The SNOMED-CT concepts specific to an attribute, along with a score indicating + // the likelihood of the match. + SNOMEDCTConcepts []SNOMEDCTConcept + + // The level of confidence that Comprehend Medical has that the segment of text is + // correctly recognized as an attribute. + Score *float32 + + // The segment of input text extracted as this attribute. + Text *string + + // Contextual information for an attribute. Examples include signs, symptoms, + // diagnosis, and negation. + Traits []SNOMEDCTTrait + + // The type of attribute. Possible types include DX_NAME, ACUITY, DIRECTION, + // SYSTEM_ORGAN_SITE,TEST_NAME, TEST_VALUE, TEST_UNIT, PROCEDURE_NAME, and + // TREATMENT_NAME. + Type SNOMEDCTAttributeType + + noSmithyDocumentSerde +} + +// The SNOMED-CT concepts that the entity could refer to, along with a score +// indicating the likelihood of the match. +type SNOMEDCTConcept struct { + + // The numeric ID for the SNOMED-CT concept. + Code *string + + // The description of the SNOMED-CT concept. + Description *string + + // The level of confidence Comprehend Medical has that the entity should be linked + // to the identified SNOMED-CT concept. + Score *float32 + + noSmithyDocumentSerde +} + +// The information about the revision of the SNOMED-CT ontology in the response. +// Specifically, the details include the SNOMED-CT edition, language, and version +// date. +type SNOMEDCTDetails struct { + + // The edition of SNOMED-CT used. The edition used for the InferSNOMEDCT editions + // is the US edition. + Edition *string + + // The language used in the SNOMED-CT ontology. All Amazon Comprehend Medical + // operations are US English (en). + Language *string + + // The version date of the SNOMED-CT ontology used. + VersionDate *string + + noSmithyDocumentSerde +} + +// The collection of medical entities extracted from the input text and their +// associated information. For each entity, the response provides the entity text, +// the entity category, where the entity text begins and ends, and the level of +// confidence that Comprehend Medical has in the detection and analysis. Attributes +// and traits of the entity are also returned. +type SNOMEDCTEntity struct { + + // An extracted segment of the text that is an attribute of an entity, or otherwise + // related to an entity, such as the dosage of a medication taken. + Attributes []SNOMEDCTAttribute + + // The 0-based character offset in the input text that shows where the entity + // begins. The offset returns the UTF-8 code point in the string. + BeginOffset *int32 + + // The category of the detected entity. Possible categories are MEDICAL_CONDITION, + // ANATOMY, or TEST_TREATMENT_PROCEDURE. + Category SNOMEDCTEntityCategory + + // The 0-based character offset in the input text that shows where the entity ends. + // The offset returns the UTF-8 code point in the string. + EndOffset *int32 + + // The numeric identifier for the entity. This is a monotonically increasing id + // unique within this response rather than a global unique identifier. + Id *int32 + + // The SNOMED concepts that the entity could refer to, along with a score + // indicating the likelihood of the match. + SNOMEDCTConcepts []SNOMEDCTConcept + + // The level of confidence that Comprehend Medical has in the accuracy of the + // detected entity. + Score *float32 + + // The segment of input text extracted as this entity. + Text *string + + // Contextual information for the entity. + Traits []SNOMEDCTTrait + + // Describes the specific type of entity with category of entities. Possible types + // include DX_NAME, ACUITY, DIRECTION, SYSTEM_ORGAN_SITE, TEST_NAME, TEST_VALUE, + // TEST_UNIT, PROCEDURE_NAME, or TREATMENT_NAME. + Type SNOMEDCTEntityType + + noSmithyDocumentSerde +} + +// Contextual information for an entity. +type SNOMEDCTTrait struct { + + // The name or contextual description of a detected trait. + Name SNOMEDCTTraitName + + // The level of confidence that Comprehend Medical has in the accuracy of a + // detected trait. + Score *float32 + + noSmithyDocumentSerde +} + // Provides contextual information about the extracted entity. type Trait struct { // Provides a name or contextual description about the trait. Name AttributeName - // The level of confidence that Amazon Comprehend Medical has in the accuracy of - // this trait. + // The level of confidence that Comprehend Medical; has in the accuracy of this + // trait. Score *float32 noSmithyDocumentSerde } -// An attribute that we extracted, but were unable to relate to an entity. +// An attribute that was extracted, but Comprehend Medical; was unable to relate to +// an entity. type UnmappedAttribute struct { // The specific attribute that has been extracted but not mapped to an entity. Attribute *Attribute - // The type of the attribute, could be one of the following values: "MEDICATION", - // "MEDICAL_CONDITION", "ANATOMY", "TEST_AND_TREATMENT_PROCEDURE" or + // The type of the unmapped attribute, could be one of the following values: + // "MEDICATION", "MEDICAL_CONDITION", "ANATOMY", "TEST_AND_TREATMENT_PROCEDURE" or // "PROTECTED_HEALTH_INFORMATION". Type EntityType diff --git a/service/comprehendmedical/validators.go b/service/comprehendmedical/validators.go index 1f17dcee6d3..71e0326e12e 100644 --- a/service/comprehendmedical/validators.go +++ b/service/comprehendmedical/validators.go @@ -90,6 +90,26 @@ func (m *validateOpDescribeRxNormInferenceJob) HandleInitialize(ctx context.Cont return next.HandleInitialize(ctx, in) } +type validateOpDescribeSNOMEDCTInferenceJob struct { +} + +func (*validateOpDescribeSNOMEDCTInferenceJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeSNOMEDCTInferenceJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeSNOMEDCTInferenceJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeSNOMEDCTInferenceJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDetectEntities struct { } @@ -190,6 +210,26 @@ func (m *validateOpInferRxNorm) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpInferSNOMEDCT struct { +} + +func (*validateOpInferSNOMEDCT) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpInferSNOMEDCT) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*InferSNOMEDCTInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpInferSNOMEDCTInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStartEntitiesDetectionV2Job struct { } @@ -270,6 +310,26 @@ func (m *validateOpStartRxNormInferenceJob) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpStartSNOMEDCTInferenceJob struct { +} + +func (*validateOpStartSNOMEDCTInferenceJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStartSNOMEDCTInferenceJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StartSNOMEDCTInferenceJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStartSNOMEDCTInferenceJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStopEntitiesDetectionV2Job struct { } @@ -350,6 +410,26 @@ func (m *validateOpStopRxNormInferenceJob) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpStopSNOMEDCTInferenceJob struct { +} + +func (*validateOpStopSNOMEDCTInferenceJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStopSNOMEDCTInferenceJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StopSNOMEDCTInferenceJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStopSNOMEDCTInferenceJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + func addOpDescribeEntitiesDetectionV2JobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeEntitiesDetectionV2Job{}, middleware.After) } @@ -366,6 +446,10 @@ func addOpDescribeRxNormInferenceJobValidationMiddleware(stack *middleware.Stack return stack.Initialize.Add(&validateOpDescribeRxNormInferenceJob{}, middleware.After) } +func addOpDescribeSNOMEDCTInferenceJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeSNOMEDCTInferenceJob{}, middleware.After) +} + func addOpDetectEntitiesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDetectEntities{}, middleware.After) } @@ -386,6 +470,10 @@ func addOpInferRxNormValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpInferRxNorm{}, middleware.After) } +func addOpInferSNOMEDCTValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpInferSNOMEDCT{}, middleware.After) +} + func addOpStartEntitiesDetectionV2JobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStartEntitiesDetectionV2Job{}, middleware.After) } @@ -402,6 +490,10 @@ func addOpStartRxNormInferenceJobValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpStartRxNormInferenceJob{}, middleware.After) } +func addOpStartSNOMEDCTInferenceJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStartSNOMEDCTInferenceJob{}, middleware.After) +} + func addOpStopEntitiesDetectionV2JobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStopEntitiesDetectionV2Job{}, middleware.After) } @@ -418,6 +510,10 @@ func addOpStopRxNormInferenceJobValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpStopRxNormInferenceJob{}, middleware.After) } +func addOpStopSNOMEDCTInferenceJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStopSNOMEDCTInferenceJob{}, middleware.After) +} + func validateInputDataConfig(v *types.InputDataConfig) error { if v == nil { return nil @@ -508,6 +604,21 @@ func validateOpDescribeRxNormInferenceJobInput(v *DescribeRxNormInferenceJobInpu } } +func validateOpDescribeSNOMEDCTInferenceJobInput(v *DescribeSNOMEDCTInferenceJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeSNOMEDCTInferenceJobInput"} + if v.JobId == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDetectEntitiesInput(v *DetectEntitiesInput) error { if v == nil { return nil @@ -583,6 +694,21 @@ func validateOpInferRxNormInput(v *InferRxNormInput) error { } } +func validateOpInferSNOMEDCTInput(v *InferSNOMEDCTInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "InferSNOMEDCTInput"} + if v.Text == nil { + invalidParams.Add(smithy.NewErrParamRequired("Text")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStartEntitiesDetectionV2JobInput(v *StartEntitiesDetectionV2JobInput) error { if v == nil { return nil @@ -711,6 +837,38 @@ func validateOpStartRxNormInferenceJobInput(v *StartRxNormInferenceJobInput) err } } +func validateOpStartSNOMEDCTInferenceJobInput(v *StartSNOMEDCTInferenceJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StartSNOMEDCTInferenceJobInput"} + if v.InputDataConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("InputDataConfig")) + } else if v.InputDataConfig != nil { + if err := validateInputDataConfig(v.InputDataConfig); err != nil { + invalidParams.AddNested("InputDataConfig", err.(smithy.InvalidParamsError)) + } + } + if v.OutputDataConfig == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutputDataConfig")) + } else if v.OutputDataConfig != nil { + if err := validateOutputDataConfig(v.OutputDataConfig); err != nil { + invalidParams.AddNested("OutputDataConfig", err.(smithy.InvalidParamsError)) + } + } + if v.DataAccessRoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("DataAccessRoleArn")) + } + if len(v.LanguageCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LanguageCode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStopEntitiesDetectionV2JobInput(v *StopEntitiesDetectionV2JobInput) error { if v == nil { return nil @@ -770,3 +928,18 @@ func validateOpStopRxNormInferenceJobInput(v *StopRxNormInferenceJobInput) error return nil } } + +func validateOpStopSNOMEDCTInferenceJobInput(v *StopSNOMEDCTInferenceJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StopSNOMEDCTInferenceJobInput"} + if v.JobId == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/customerprofiles/api_op_GetIntegration.go b/service/customerprofiles/api_op_GetIntegration.go index dbd0c55796f..65774649aef 100644 --- a/service/customerprofiles/api_op_GetIntegration.go +++ b/service/customerprofiles/api_op_GetIntegration.go @@ -59,16 +59,21 @@ type GetIntegrationOutput struct { // This member is required. LastUpdatedAt *time.Time - // The name of the profile object type. - // - // This member is required. - ObjectTypeName *string - // The URI of the S3 bucket or any other type of data source. // // This member is required. Uri *string + // The name of the profile object type. + ObjectTypeName *string + + // A map in which each key is an event type from an external application such as + // Segment or Shopify, and each value is an ObjectTypeName (template) used to + // ingest the event. It supports the following event types: SegmentIdentify, + // ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, + // ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders. + ObjectTypeNames map[string]string + // The tags used to organize, track, or control access for this resource. Tags map[string]string diff --git a/service/customerprofiles/api_op_GetMatches.go b/service/customerprofiles/api_op_GetMatches.go index 9dce0818de3..fd689e9f293 100644 --- a/service/customerprofiles/api_op_GetMatches.go +++ b/service/customerprofiles/api_op_GetMatches.go @@ -12,8 +12,7 @@ import ( "time" ) -// This API is in preview release for Amazon Connect and subject to change. Before -// calling this API, use CreateDomain +// Before calling this API, use CreateDomain // (https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html) // or UpdateDomain // (https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html) diff --git a/service/customerprofiles/api_op_ListProfileObjects.go b/service/customerprofiles/api_op_ListProfileObjects.go index 63f5836cfc0..ba405948465 100644 --- a/service/customerprofiles/api_op_ListProfileObjects.go +++ b/service/customerprofiles/api_op_ListProfileObjects.go @@ -52,7 +52,8 @@ type ListProfileObjectsInput struct { NextToken *string // Applies a filter to the response to include profile objects with the specified - // index values. This filter is only supported for ObjectTypeName _asset and _case. + // index values. This filter is only supported for ObjectTypeName _asset, _case and + // _order. ObjectFilter *types.ObjectFilter noSmithyDocumentSerde diff --git a/service/customerprofiles/api_op_MergeProfiles.go b/service/customerprofiles/api_op_MergeProfiles.go index 59d77af4600..241df6cc27f 100644 --- a/service/customerprofiles/api_op_MergeProfiles.go +++ b/service/customerprofiles/api_op_MergeProfiles.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This API is in preview release for Amazon Connect and subject to change. Runs an -// AWS Lambda job that does the following: +// Runs an AWS Lambda job that does the following: // // * All the profileKeys in the // ProfileToBeMerged will be moved to the main profile. diff --git a/service/customerprofiles/api_op_PutIntegration.go b/service/customerprofiles/api_op_PutIntegration.go index d681ff66175..47453a9d666 100644 --- a/service/customerprofiles/api_op_PutIntegration.go +++ b/service/customerprofiles/api_op_PutIntegration.go @@ -37,15 +37,20 @@ type PutIntegrationInput struct { // This member is required. DomainName *string - // The name of the profile object type. - // - // This member is required. - ObjectTypeName *string - // The configuration that controls how Customer Profiles retrieves data from the // source. FlowDefinition *types.FlowDefinition + // The name of the profile object type. + ObjectTypeName *string + + // A map in which each key is an event type from an external application such as + // Segment or Shopify, and each value is an ObjectTypeName (template) used to + // ingest the event. It supports the following event types: SegmentIdentify, + // ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, + // ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders. + ObjectTypeNames map[string]string + // The tags used to organize, track, or control access for this resource. Tags map[string]string @@ -72,16 +77,21 @@ type PutIntegrationOutput struct { // This member is required. LastUpdatedAt *time.Time - // The name of the profile object type. - // - // This member is required. - ObjectTypeName *string - // The URI of the S3 bucket or any other type of data source. // // This member is required. Uri *string + // The name of the profile object type. + ObjectTypeName *string + + // A map in which each key is an event type from an external application such as + // Segment or Shopify, and each value is an ObjectTypeName (template) used to + // ingest the event. It supports the following event types: SegmentIdentify, + // ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, + // ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders. + ObjectTypeNames map[string]string + // The tags used to organize, track, or control access for this resource. Tags map[string]string diff --git a/service/customerprofiles/api_op_SearchProfiles.go b/service/customerprofiles/api_op_SearchProfiles.go index 58b255e84ce..56aa98d989f 100644 --- a/service/customerprofiles/api_op_SearchProfiles.go +++ b/service/customerprofiles/api_op_SearchProfiles.go @@ -36,9 +36,11 @@ type SearchProfilesInput struct { DomainName *string // A searchable identifier of a customer profile. The predefined keys you can use - // to search include: _account, _profileId, _fullName, _phone, _email, - // _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId, - // _zendeskUserId, _zendeskExternalId, _serviceNowSystemId. + // to search include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, + // _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, + // _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, + // _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, + // _shopifyCustomerId, _shopifyOrderId. // // This member is required. KeyName *string diff --git a/service/customerprofiles/deserializers.go b/service/customerprofiles/deserializers.go index 14d8485c1ad..719a1505548 100644 --- a/service/customerprofiles/deserializers.go +++ b/service/customerprofiles/deserializers.go @@ -2472,6 +2472,11 @@ func awsRestjson1_deserializeOpDocumentGetIntegrationOutput(v **GetIntegrationOu sv.ObjectTypeName = ptr.String(jtv) } + case "ObjectTypeNames": + if err := awsRestjson1_deserializeDocumentObjectTypeNames(&sv.ObjectTypeNames, value); err != nil { + return err + } + case "Tags": if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { return err @@ -4853,6 +4858,11 @@ func awsRestjson1_deserializeOpDocumentPutIntegrationOutput(v **PutIntegrationOu sv.ObjectTypeName = ptr.String(jtv) } + case "ObjectTypeNames": + if err := awsRestjson1_deserializeDocumentObjectTypeNames(&sv.ObjectTypeNames, value); err != nil { + return err + } + case "Tags": if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { return err @@ -7383,6 +7393,11 @@ func awsRestjson1_deserializeDocumentListIntegrationItem(v **types.ListIntegrati sv.ObjectTypeName = ptr.String(jtv) } + case "ObjectTypeNames": + if err := awsRestjson1_deserializeDocumentObjectTypeNames(&sv.ObjectTypeNames, value); err != nil { + return err + } + case "Tags": if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { return err @@ -7977,6 +7992,42 @@ func awsRestjson1_deserializeDocumentObjectTypeKeyList(v *[]types.ObjectTypeKey, return nil } +func awsRestjson1_deserializeDocumentObjectTypeNames(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 typeName to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentProfile(v **types.Profile, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/customerprofiles/serializers.go b/service/customerprofiles/serializers.go index 345fcf53e3a..19c6082ca4c 100644 --- a/service/customerprofiles/serializers.go +++ b/service/customerprofiles/serializers.go @@ -2093,6 +2093,13 @@ func awsRestjson1_serializeOpDocumentPutIntegrationInput(v *PutIntegrationInput, ok.String(*v.ObjectTypeName) } + if v.ObjectTypeNames != nil { + ok := object.Key("ObjectTypeNames") + if err := awsRestjson1_serializeDocumentObjectTypeNames(v.ObjectTypeNames, ok); err != nil { + return err + } + } + if v.Tags != nil { ok := object.Key("Tags") if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil { @@ -3430,6 +3437,17 @@ func awsRestjson1_serializeDocumentObjectTypeKeyList(v []types.ObjectTypeKey, va return nil } +func awsRestjson1_serializeDocumentObjectTypeNames(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsRestjson1_serializeDocumentProfileIdToBeMergedList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/customerprofiles/types/enums.go b/service/customerprofiles/types/enums.go index 9a6cec946b0..246c071dea2 100644 --- a/service/customerprofiles/types/enums.go +++ b/service/customerprofiles/types/enums.go @@ -447,6 +447,7 @@ const ( StandardIdentifierSecondary StandardIdentifier = "SECONDARY" StandardIdentifierLookupOnly StandardIdentifier = "LOOKUP_ONLY" StandardIdentifierNewOnly StandardIdentifier = "NEW_ONLY" + StandardIdentifierOrder StandardIdentifier = "ORDER" ) // Values returns all known values for StandardIdentifier. Note that this can be @@ -461,6 +462,7 @@ func (StandardIdentifier) Values() []StandardIdentifier { "SECONDARY", "LOOKUP_ONLY", "NEW_ONLY", + "ORDER", } } diff --git a/service/customerprofiles/types/types.go b/service/customerprofiles/types/types.go index 6b155bc2d80..6f63b632459 100644 --- a/service/customerprofiles/types/types.go +++ b/service/customerprofiles/types/types.go @@ -415,16 +415,21 @@ type ListIntegrationItem struct { // This member is required. LastUpdatedAt *time.Time - // The name of the profile object type. - // - // This member is required. - ObjectTypeName *string - // The URI of the S3 bucket or any other type of data source. // // This member is required. Uri *string + // The name of the profile object type. + ObjectTypeName *string + + // A map in which each key is an event type from an external application such as + // Segment or Shopify, and each value is an ObjectTypeName (template) used to + // ingest the event. It supports the following event types: SegmentIdentify, + // ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, + // ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders. + ObjectTypeNames map[string]string + // The tags used to organize, track, or control access for this resource. Tags map[string]string @@ -558,12 +563,13 @@ type MatchItem struct { // The filter applied to ListProfileObjects response to include profile objects // with the specified index values. This filter is only supported for -// ObjectTypeName _asset and _case. +// ObjectTypeName _asset, _case and _order. type ObjectFilter struct { // A searchable identifier of a standard profile object. The predefined keys you // can use to search for _asset include: _assetId, _assetName, _serialNumber. The - // predefined keys you can use to search for _case include: _caseId. + // predefined keys you can use to search for _case include: _caseId. The predefined + // keys you can use to search for _order include: _orderId. // // This member is required. KeyName *string @@ -602,14 +608,15 @@ type ObjectTypeKey struct { FieldNames []string // The types of keys that a ProfileObject can have. Each ProfileObject can have - // only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that - // this key can be used to tie an object to a PROFILE, ASSET or CASE respectively. - // UNIQUE means that it can be used to uniquely identify an object. If a key a is - // marked as SECONDARY, it will be used to search for profiles after all other - // PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a - // profile but is not persisted to be used for searching of the profile. A NEW_ONLY - // key is only used if the profile does not already exist before the object is - // ingested, otherwise it is only used for matching objects to profiles. + // only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER + // means that this key can be used to tie an object to a PROFILE, ASSET, CASE, or + // ORDER respectively. UNIQUE means that it can be used to uniquely identify an + // object. If a key a is marked as SECONDARY, it will be used to search for + // profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is + // only used to match a profile but is not persisted to be used for searching of + // the profile. A NEW_ONLY key is only used if the profile does not already exist + // before the object is ingested, otherwise it is only used for matching objects to + // profiles. StandardIdentifiers []StandardIdentifier noSmithyDocumentSerde diff --git a/service/customerprofiles/validators.go b/service/customerprofiles/validators.go index 64438209456..e5203fe75df 100644 --- a/service/customerprofiles/validators.go +++ b/service/customerprofiles/validators.go @@ -1604,9 +1604,6 @@ func validateOpPutIntegrationInput(v *PutIntegrationInput) error { if v.DomainName == nil { invalidParams.Add(smithy.NewErrParamRequired("DomainName")) } - if v.ObjectTypeName == nil { - invalidParams.Add(smithy.NewErrParamRequired("ObjectTypeName")) - } if v.FlowDefinition != nil { if err := validateFlowDefinition(v.FlowDefinition); err != nil { invalidParams.AddNested("FlowDefinition", err.(smithy.InvalidParamsError)) diff --git a/service/datasync/api_op_CreateLocationFsxLustre.go b/service/datasync/api_op_CreateLocationFsxLustre.go new file mode 100644 index 00000000000..e7c5980d4ca --- /dev/null +++ b/service/datasync/api_op_CreateLocationFsxLustre.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package datasync + +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/datasync/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an endpoint for an Amazon FSx for Lustre file system. +func (c *Client) CreateLocationFsxLustre(ctx context.Context, params *CreateLocationFsxLustreInput, optFns ...func(*Options)) (*CreateLocationFsxLustreOutput, error) { + if params == nil { + params = &CreateLocationFsxLustreInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateLocationFsxLustre", params, optFns, c.addOperationCreateLocationFsxLustreMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateLocationFsxLustreOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateLocationFsxLustreInput struct { + + // The Amazon Resource Name (ARN) for the FSx for Lustre file system. + // + // This member is required. + FsxFilesystemArn *string + + // The Amazon Resource Names (ARNs) of the security groups that are used to + // configure the FSx for Lustre file system. + // + // This member is required. + SecurityGroupArns []string + + // A subdirectory in the location's path. This subdirectory in the FSx for Lustre + // file system is used to read data from the FSx for Lustre source location or + // write data to the FSx for Lustre destination. + Subdirectory *string + + // The key-value pair that represents a tag that you want to add to the resource. + // The value can be an empty string. This value helps you manage, filter, and + // search for your resources. We recommend that you create a name tag for your + // location. + Tags []types.TagListEntry + + noSmithyDocumentSerde +} + +type CreateLocationFsxLustreOutput struct { + + // The Amazon Resource Name (ARN) of the FSx for Lustre file system location that's + // created. + LocationArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateLocationFsxLustreMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateLocationFsxLustre{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateLocationFsxLustre{}, 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 = addOpCreateLocationFsxLustreValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLocationFsxLustre(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_opCreateLocationFsxLustre(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "datasync", + OperationName: "CreateLocationFsxLustre", + } +} diff --git a/service/datasync/api_op_CreateLocationFsxWindows.go b/service/datasync/api_op_CreateLocationFsxWindows.go index 84fa78e4a54..39f95e9865a 100644 --- a/service/datasync/api_op_CreateLocationFsxWindows.go +++ b/service/datasync/api_op_CreateLocationFsxWindows.go @@ -40,7 +40,7 @@ type CreateLocationFsxWindowsInput struct { // This member is required. Password *string - // The Amazon Resource Names (ARNs) of the security groups that are to use to + // The Amazon Resource Names (ARNs) of the security groups that are used to // configure the FSx for Windows File Server file system. // // This member is required. @@ -56,7 +56,7 @@ type CreateLocationFsxWindowsInput struct { // The name of the Windows domain that the FSx for Windows File Server belongs to. Domain *string - // A subdirectory in the location’s path. This subdirectory in the Amazon FSx for + // A subdirectory in the location's path. This subdirectory in the Amazon FSx for // Windows File Server file system is used to read data from the Amazon FSx for // Windows File Server source location or write data to the FSx for Windows File // Server destination. diff --git a/service/datasync/api_op_DescribeLocationFsxLustre.go b/service/datasync/api_op_DescribeLocationFsxLustre.go new file mode 100644 index 00000000000..4f1a93b08b6 --- /dev/null +++ b/service/datasync/api_op_DescribeLocationFsxLustre.go @@ -0,0 +1,133 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package datasync + +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" + "time" +) + +// Returns metadata, such as the path information about an Amazon FSx for Lustre +// location. +func (c *Client) DescribeLocationFsxLustre(ctx context.Context, params *DescribeLocationFsxLustreInput, optFns ...func(*Options)) (*DescribeLocationFsxLustreOutput, error) { + if params == nil { + params = &DescribeLocationFsxLustreInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeLocationFsxLustre", params, optFns, c.addOperationDescribeLocationFsxLustreMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeLocationFsxLustreOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeLocationFsxLustreInput struct { + + // The Amazon Resource Name (ARN) of the FSx for Lustre location to describe. + // + // This member is required. + LocationArn *string + + noSmithyDocumentSerde +} + +type DescribeLocationFsxLustreOutput struct { + + // The time that the FSx for Lustre location was created. + CreationTime *time.Time + + // The Amazon Resource Name (ARN) of the FSx for Lustre location that was + // described. + LocationArn *string + + // The URI of the FSx for Lustre location that was described. + LocationUri *string + + // The Amazon Resource Names (ARNs) of the security groups that are configured for + // the FSx for Lustre file system. + SecurityGroupArns []string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeLocationFsxLustreMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeLocationFsxLustre{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeLocationFsxLustre{}, 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 = addOpDescribeLocationFsxLustreValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeLocationFsxLustre(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_opDescribeLocationFsxLustre(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "datasync", + OperationName: "DescribeLocationFsxLustre", + } +} diff --git a/service/datasync/deserializers.go b/service/datasync/deserializers.go index c57f1d80cce..54e860890f1 100644 --- a/service/datasync/deserializers.go +++ b/service/datasync/deserializers.go @@ -361,6 +361,120 @@ func awsAwsjson11_deserializeOpErrorCreateLocationEfs(response *smithyhttp.Respo } } +type awsAwsjson11_deserializeOpCreateLocationFsxLustre struct { +} + +func (*awsAwsjson11_deserializeOpCreateLocationFsxLustre) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateLocationFsxLustre) HandleDeserialize(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_deserializeOpErrorCreateLocationFsxLustre(response, &metadata) + } + output := &CreateLocationFsxLustreOutput{} + 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_deserializeOpDocumentCreateLocationFsxLustreOutput(&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_deserializeOpErrorCreateLocationFsxLustre(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalException", errorCode): + return awsAwsjson11_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpCreateLocationFsxWindows struct { } @@ -1729,6 +1843,120 @@ func awsAwsjson11_deserializeOpErrorDescribeLocationEfs(response *smithyhttp.Res } } +type awsAwsjson11_deserializeOpDescribeLocationFsxLustre struct { +} + +func (*awsAwsjson11_deserializeOpDescribeLocationFsxLustre) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeLocationFsxLustre) HandleDeserialize(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_deserializeOpErrorDescribeLocationFsxLustre(response, &metadata) + } + output := &DescribeLocationFsxLustreOutput{} + 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_deserializeOpDocumentDescribeLocationFsxLustreOutput(&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_deserializeOpErrorDescribeLocationFsxLustre(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalException", errorCode): + return awsAwsjson11_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDescribeLocationFsxWindows struct { } @@ -6087,6 +6315,46 @@ func awsAwsjson11_deserializeOpDocumentCreateLocationEfsOutput(v **CreateLocatio return nil } +func awsAwsjson11_deserializeOpDocumentCreateLocationFsxLustreOutput(v **CreateLocationFsxLustreOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateLocationFsxLustreOutput + if *v == nil { + sv = &CreateLocationFsxLustreOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "LocationArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LocationArn to be of type string, got %T instead", value) + } + sv.LocationArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateLocationFsxWindowsOutput(v **CreateLocationFsxWindowsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6634,6 +6902,76 @@ func awsAwsjson11_deserializeOpDocumentDescribeLocationEfsOutput(v **DescribeLoc return nil } +func awsAwsjson11_deserializeOpDocumentDescribeLocationFsxLustreOutput(v **DescribeLocationFsxLustreOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeLocationFsxLustreOutput + if *v == nil { + sv = &DescribeLocationFsxLustreOutput{} + } 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 Time to be a JSON Number, got %T instead", value) + + } + } + + case "LocationArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LocationArn to be of type string, got %T instead", value) + } + sv.LocationArn = ptr.String(jtv) + } + + case "LocationUri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LocationUri to be of type string, got %T instead", value) + } + sv.LocationUri = ptr.String(jtv) + } + + case "SecurityGroupArns": + if err := awsAwsjson11_deserializeDocumentEc2SecurityGroupArnList(&sv.SecurityGroupArns, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeLocationFsxWindowsOutput(v **DescribeLocationFsxWindowsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/datasync/generated.json b/service/datasync/generated.json index 4e458a21cb5..a029d3be2e7 100644 --- a/service/datasync/generated.json +++ b/service/datasync/generated.json @@ -10,6 +10,7 @@ "api_op_CancelTaskExecution.go", "api_op_CreateAgent.go", "api_op_CreateLocationEfs.go", + "api_op_CreateLocationFsxLustre.go", "api_op_CreateLocationFsxWindows.go", "api_op_CreateLocationHdfs.go", "api_op_CreateLocationNfs.go", @@ -22,6 +23,7 @@ "api_op_DeleteTask.go", "api_op_DescribeAgent.go", "api_op_DescribeLocationEfs.go", + "api_op_DescribeLocationFsxLustre.go", "api_op_DescribeLocationFsxWindows.go", "api_op_DescribeLocationHdfs.go", "api_op_DescribeLocationNfs.go", diff --git a/service/datasync/serializers.go b/service/datasync/serializers.go index 8f82ccd57fd..a690293d58d 100644 --- a/service/datasync/serializers.go +++ b/service/datasync/serializers.go @@ -180,6 +180,61 @@ func (m *awsAwsjson11_serializeOpCreateLocationEfs) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateLocationFsxLustre struct { +} + +func (*awsAwsjson11_serializeOpCreateLocationFsxLustre) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateLocationFsxLustre) 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.(*CreateLocationFsxLustreInput) + _ = 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("FmrsService.CreateLocationFsxLustre") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateLocationFsxLustreInput(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_serializeOpCreateLocationFsxWindows struct { } @@ -840,6 +895,61 @@ func (m *awsAwsjson11_serializeOpDescribeLocationEfs) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeLocationFsxLustre struct { +} + +func (*awsAwsjson11_serializeOpDescribeLocationFsxLustre) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeLocationFsxLustre) 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.(*DescribeLocationFsxLustreInput) + _ = 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("FmrsService.DescribeLocationFsxLustre") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeLocationFsxLustreInput(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_serializeOpDescribeLocationFsxWindows struct { } @@ -2595,6 +2705,37 @@ func awsAwsjson11_serializeOpDocumentCreateLocationEfsInput(v *CreateLocationEfs return nil } +func awsAwsjson11_serializeOpDocumentCreateLocationFsxLustreInput(v *CreateLocationFsxLustreInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FsxFilesystemArn != nil { + ok := object.Key("FsxFilesystemArn") + ok.String(*v.FsxFilesystemArn) + } + + if v.SecurityGroupArns != nil { + ok := object.Key("SecurityGroupArns") + if err := awsAwsjson11_serializeDocumentEc2SecurityGroupArnList(v.SecurityGroupArns, ok); err != nil { + return err + } + } + + if v.Subdirectory != nil { + ok := object.Key("Subdirectory") + ok.String(*v.Subdirectory) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentInputTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateLocationFsxWindowsInput(v *CreateLocationFsxWindowsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3033,6 +3174,18 @@ func awsAwsjson11_serializeOpDocumentDescribeLocationEfsInput(v *DescribeLocatio return nil } +func awsAwsjson11_serializeOpDocumentDescribeLocationFsxLustreInput(v *DescribeLocationFsxLustreInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LocationArn != nil { + ok := object.Key("LocationArn") + ok.String(*v.LocationArn) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeLocationFsxWindowsInput(v *DescribeLocationFsxWindowsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/datasync/types/types.go b/service/datasync/types/types.go index 8066b3aefa3..1b544216269 100644 --- a/service/datasync/types/types.go +++ b/service/datasync/types/types.go @@ -120,7 +120,7 @@ type LocationListEntry struct { // prefix path that you want to mount and use as the root of the location. LocationArn *string - // Represents a list of URLs of a location. LocationUri returns an array that + // Represents a list of URIs of a location. LocationUri returns an array that // contains a list of locations when the ListLocations // (https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html) // operation is called. Format: TYPE://GLOBAL_ID/SUBDIR. TYPE designates the type diff --git a/service/datasync/validators.go b/service/datasync/validators.go index eebced71365..3391088767c 100644 --- a/service/datasync/validators.go +++ b/service/datasync/validators.go @@ -70,6 +70,26 @@ func (m *validateOpCreateLocationEfs) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpCreateLocationFsxLustre struct { +} + +func (*validateOpCreateLocationFsxLustre) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateLocationFsxLustre) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateLocationFsxLustreInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateLocationFsxLustreInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateLocationFsxWindows struct { } @@ -310,6 +330,26 @@ func (m *validateOpDescribeLocationEfs) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpDescribeLocationFsxLustre struct { +} + +func (*validateOpDescribeLocationFsxLustre) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeLocationFsxLustre) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeLocationFsxLustreInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeLocationFsxLustreInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeLocationFsxWindows struct { } @@ -742,6 +782,10 @@ func addOpCreateLocationEfsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateLocationEfs{}, middleware.After) } +func addOpCreateLocationFsxLustreValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateLocationFsxLustre{}, middleware.After) +} + func addOpCreateLocationFsxWindowsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateLocationFsxWindows{}, middleware.After) } @@ -790,6 +834,10 @@ func addOpDescribeLocationEfsValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpDescribeLocationEfs{}, middleware.After) } +func addOpDescribeLocationFsxLustreValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeLocationFsxLustre{}, middleware.After) +} + func addOpDescribeLocationFsxWindowsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeLocationFsxWindows{}, middleware.After) } @@ -1142,6 +1190,29 @@ func validateOpCreateLocationEfsInput(v *CreateLocationEfsInput) error { } } +func validateOpCreateLocationFsxLustreInput(v *CreateLocationFsxLustreInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateLocationFsxLustreInput"} + if v.FsxFilesystemArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("FsxFilesystemArn")) + } + if v.SecurityGroupArns == nil { + invalidParams.Add(smithy.NewErrParamRequired("SecurityGroupArns")) + } + if v.Tags != nil { + if err := validateInputTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateLocationFsxWindowsInput(v *CreateLocationFsxWindowsInput) error { if v == nil { return nil @@ -1419,6 +1490,21 @@ func validateOpDescribeLocationEfsInput(v *DescribeLocationEfsInput) error { } } +func validateOpDescribeLocationFsxLustreInput(v *DescribeLocationFsxLustreInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeLocationFsxLustreInput"} + if v.LocationArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("LocationArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeLocationFsxWindowsInput(v *DescribeLocationFsxWindowsInput) error { if v == nil { return nil diff --git a/service/devopsguru/api_op_DescribeOrganizationResourceCollectionHealth.go b/service/devopsguru/api_op_DescribeOrganizationResourceCollectionHealth.go index b3eabff051c..24854cc3c5e 100644 --- a/service/devopsguru/api_op_DescribeOrganizationResourceCollectionHealth.go +++ b/service/devopsguru/api_op_DescribeOrganizationResourceCollectionHealth.go @@ -77,6 +77,34 @@ type DescribeOrganizationResourceCollectionHealthOutput struct { // Services services associated with the resources in the collection. Service []types.ServiceHealth + // Tags help you identify and organize your Amazon Web Services resources. Many + // Amazon Web Services services support tagging, so you can assign the same tag to + // resources from different services to indicate that the resources are related. + // For example, you can assign the same tag to an Amazon DynamoDB table resource + // that you assign to an Lambda function. For more information about using tags, + // see the Tagging best practices + // (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf) + // whitepaper. Each Amazon Web Services tag has two parts. + // + // * A tag key (for + // example, CostCenter, Environment, Project, or Secret). Tag keys are + // case-sensitive. + // + // * An optional field known as a tag value (for example, + // 111122223333, Production, or a team name). Omitting the tag value is the same as + // using an empty string. Like tag keys, tag values are case-sensitive. + // + // Together + // these are known as key-value pairs. The string used for a key in a tag that you + // use to define your resource coverage must begin with the prefix Devops-guru-. + // The tag key might be Devops-guru-deployment-application or + // Devops-guru-rds-application. While keys are case-sensitive, the case of key + // characters don't matter to DevOps Guru. For example, DevOps Guru works with a + // key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value + // pairs in your application might be Devops-Guru-production-application/RDS or + // Devops-Guru-production-application/containers. + Tags []types.TagHealth + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/devopsguru/deserializers.go b/service/devopsguru/deserializers.go index 8390221a83c..f7307455f18 100644 --- a/service/devopsguru/deserializers.go +++ b/service/devopsguru/deserializers.go @@ -1616,6 +1616,11 @@ func awsRestjson1_deserializeOpDocumentDescribeOrganizationResourceCollectionHea return err } + case "Tags": + if err := awsRestjson1_deserializeDocumentTagHealths(&sv.Tags, value); err != nil { + return err + } + default: _, _ = key, value diff --git a/service/devopsguru/types/enums.go b/service/devopsguru/types/enums.go index d738a1f81f7..b965701dbfa 100644 --- a/service/devopsguru/types/enums.go +++ b/service/devopsguru/types/enums.go @@ -329,6 +329,7 @@ const ( OrganizationResourceCollectionTypeAwsCloudFormation OrganizationResourceCollectionType = "AWS_CLOUD_FORMATION" OrganizationResourceCollectionTypeAwsService OrganizationResourceCollectionType = "AWS_SERVICE" OrganizationResourceCollectionTypeAwsAccount OrganizationResourceCollectionType = "AWS_ACCOUNT" + OrganizationResourceCollectionTypeAwsTags OrganizationResourceCollectionType = "AWS_TAGS" ) // Values returns all known values for OrganizationResourceCollectionType. Note @@ -340,6 +341,7 @@ func (OrganizationResourceCollectionType) Values() []OrganizationResourceCollect "AWS_CLOUD_FORMATION", "AWS_SERVICE", "AWS_ACCOUNT", + "AWS_TAGS", } } diff --git a/service/ec2/api_op_DescribeInternetGateways.go b/service/ec2/api_op_DescribeInternetGateways.go index 21b06f733c4..00c659b7efd 100644 --- a/service/ec2/api_op_DescribeInternetGateways.go +++ b/service/ec2/api_op_DescribeInternetGateways.go @@ -4,12 +4,19 @@ package ec2 import ( "context" + "errors" "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/ec2/types" + smithy "github.com/aws/smithy-go" "github.com/aws/smithy-go/middleware" + smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" + smithywaiter "github.com/aws/smithy-go/waiter" + "github.com/jmespath/go-jmespath" + "strconv" + "time" ) // Describes one or more of your internet gateways. @@ -242,6 +249,183 @@ func (p *DescribeInternetGatewaysPaginator) NextPage(ctx context.Context, optFns return result, nil } +// InternetGatewayExistsWaiterOptions are waiter options for +// InternetGatewayExistsWaiter +type InternetGatewayExistsWaiterOptions struct { + + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // MinDelay is the minimum amount of time to delay between retries. If unset, + // InternetGatewayExistsWaiter will use default minimum delay of 5 seconds. Note + // that MinDelay must resolve to a value lesser than or equal to the MaxDelay. + MinDelay time.Duration + + // MaxDelay is the maximum amount of time to delay between retries. If unset or set + // to zero, InternetGatewayExistsWaiter will use default max delay of 120 seconds. + // Note that MaxDelay must resolve to value greater than or equal to the MinDelay. + MaxDelay time.Duration + + // LogWaitAttempts is used to enable logging for waiter retry attempts + LogWaitAttempts bool + + // Retryable is function that can be used to override the service defined + // waiter-behavior based on operation output, or returned error. This function is + // used by the waiter to decide if a state is retryable or a terminal state. By + // default service-modeled logic will populate this option. This option can thus be + // used to define a custom waiter state with fall-back to service-modeled waiter + // state mutators.The function returns an error in case of a failure state. In case + // of retry state, this function returns a bool value of true and nil error, while + // in case of success it returns a bool value of false and nil error. + Retryable func(context.Context, *DescribeInternetGatewaysInput, *DescribeInternetGatewaysOutput, error) (bool, error) +} + +// InternetGatewayExistsWaiter defines the waiters for InternetGatewayExists +type InternetGatewayExistsWaiter struct { + client DescribeInternetGatewaysAPIClient + + options InternetGatewayExistsWaiterOptions +} + +// NewInternetGatewayExistsWaiter constructs a InternetGatewayExistsWaiter. +func NewInternetGatewayExistsWaiter(client DescribeInternetGatewaysAPIClient, optFns ...func(*InternetGatewayExistsWaiterOptions)) *InternetGatewayExistsWaiter { + options := InternetGatewayExistsWaiterOptions{} + options.MinDelay = 5 * time.Second + options.MaxDelay = 120 * time.Second + options.Retryable = internetGatewayExistsStateRetryable + + for _, fn := range optFns { + fn(&options) + } + return &InternetGatewayExistsWaiter{ + client: client, + options: options, + } +} + +// Wait calls the waiter function for InternetGatewayExists waiter. The maxWaitDur +// is the maximum wait duration the waiter will wait. The maxWaitDur is required +// and must be greater than zero. +func (w *InternetGatewayExistsWaiter) Wait(ctx context.Context, params *DescribeInternetGatewaysInput, maxWaitDur time.Duration, optFns ...func(*InternetGatewayExistsWaiterOptions)) error { + _, err := w.WaitForOutput(ctx, params, maxWaitDur, optFns...) + return err +} + +// WaitForOutput calls the waiter function for InternetGatewayExists waiter and +// returns the output of the successful operation. The maxWaitDur is the maximum +// wait duration the waiter will wait. The maxWaitDur is required and must be +// greater than zero. +func (w *InternetGatewayExistsWaiter) WaitForOutput(ctx context.Context, params *DescribeInternetGatewaysInput, maxWaitDur time.Duration, optFns ...func(*InternetGatewayExistsWaiterOptions)) (*DescribeInternetGatewaysOutput, error) { + if maxWaitDur <= 0 { + return nil, fmt.Errorf("maximum wait time for waiter must be greater than zero") + } + + options := w.options + for _, fn := range optFns { + fn(&options) + } + + if options.MaxDelay <= 0 { + options.MaxDelay = 120 * time.Second + } + + if options.MinDelay > options.MaxDelay { + return nil, fmt.Errorf("minimum waiter delay %v must be lesser than or equal to maximum waiter delay of %v.", options.MinDelay, options.MaxDelay) + } + + ctx, cancelFn := context.WithTimeout(ctx, maxWaitDur) + defer cancelFn() + + logger := smithywaiter.Logger{} + remainingTime := maxWaitDur + + var attempt int64 + for { + + attempt++ + apiOptions := options.APIOptions + start := time.Now() + + if options.LogWaitAttempts { + logger.Attempt = attempt + apiOptions = append([]func(*middleware.Stack) error{}, options.APIOptions...) + apiOptions = append(apiOptions, logger.AddLogger) + } + + out, err := w.client.DescribeInternetGateways(ctx, params, func(o *Options) { + o.APIOptions = append(o.APIOptions, apiOptions...) + }) + + retryable, err := options.Retryable(ctx, params, out, err) + if err != nil { + return nil, err + } + if !retryable { + return out, nil + } + + remainingTime -= time.Since(start) + if remainingTime < options.MinDelay || remainingTime <= 0 { + break + } + + // compute exponential backoff between waiter retries + delay, err := smithywaiter.ComputeDelay( + attempt, options.MinDelay, options.MaxDelay, remainingTime, + ) + if err != nil { + return nil, fmt.Errorf("error computing waiter delay, %w", err) + } + + remainingTime -= delay + // sleep for the delay amount before invoking a request + if err := smithytime.SleepWithContext(ctx, delay); err != nil { + return nil, fmt.Errorf("request cancelled while waiting, %w", err) + } + } + return nil, fmt.Errorf("exceeded max wait time for InternetGatewayExists waiter") +} + +func internetGatewayExistsStateRetryable(ctx context.Context, input *DescribeInternetGatewaysInput, output *DescribeInternetGatewaysOutput, err error) (bool, error) { + + if err == nil { + pathValue, err := jmespath.Search("length(InternetGateways[].InternetGatewayId) > `0`", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "true" + bv, err := strconv.ParseBool(expectedValue) + if err != nil { + return false, fmt.Errorf("error parsing boolean from string %w", err) + } + value, ok := pathValue.(bool) + if !ok { + return false, fmt.Errorf("waiter comparator expected bool value got %T", pathValue) + } + + if value == bv { + return false, nil + } + } + + if err != nil { + var apiErr smithy.APIError + ok := errors.As(err, &apiErr) + if !ok { + return false, fmt.Errorf("expected err to be of type smithy.APIError, got %w", err) + } + + if "InvalidInternetGateway.NotFound" == apiErr.ErrorCode() { + return true, nil + } + } + + return true, nil +} + func newServiceMetadataMiddleware_opDescribeInternetGateways(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/finspacedata/api_op_CreateDataset.go b/service/finspacedata/api_op_CreateDataset.go index ef6d2676814..8e3e8f2dcb4 100644 --- a/service/finspacedata/api_op_CreateDataset.go +++ b/service/finspacedata/api_op_CreateDataset.go @@ -31,16 +31,6 @@ func (c *Client) CreateDataset(ctx context.Context, params *CreateDatasetInput, // The request for a CreateDataset operation type CreateDatasetInput struct { - // The unique resource identifier for a Dataset. - // - // This member is required. - Alias *string - - // Description of a Dataset. - // - // This member is required. - DatasetDescription *string - // Display title for a FinSpace Dataset. // // This member is required. @@ -62,9 +52,15 @@ type CreateDatasetInput struct { // This member is required. PermissionGroupParams *types.PermissionGroupParams + // The unique resource identifier for a Dataset. + Alias *string + // A token used to ensure idempotency. ClientToken *string + // Description of a Dataset. + DatasetDescription *string + // Contact information for a Dataset owner. OwnerInfo *types.DatasetOwnerInfo diff --git a/service/finspacedata/api_op_GetChangeset.go b/service/finspacedata/api_op_GetChangeset.go index 84a558d8730..ed33381136b 100644 --- a/service/finspacedata/api_op_GetChangeset.go +++ b/service/finspacedata/api_op_GetChangeset.go @@ -46,6 +46,9 @@ type GetChangesetInput struct { // The response from a describe changeset operation type GetChangesetOutput struct { + // Milliseconds since UTC epoch + ActiveFromTimestamp int64 + // Time until which the Changeset is active. The value is determined as Epoch time // in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM // UTC is specified as 1635768000000. diff --git a/service/finspacedata/api_op_UpdateDataset.go b/service/finspacedata/api_op_UpdateDataset.go index d4693205566..02885d37da3 100644 --- a/service/finspacedata/api_op_UpdateDataset.go +++ b/service/finspacedata/api_op_UpdateDataset.go @@ -31,11 +31,6 @@ func (c *Client) UpdateDataset(ctx context.Context, params *UpdateDatasetInput, // The request for an UpdateDataset operation type UpdateDatasetInput struct { - // The unique resource identifier for a Dataset. - // - // This member is required. - Alias *string - // The unique identifier for the Dataset to update. // // This member is required. @@ -57,6 +52,9 @@ type UpdateDatasetInput struct { // This member is required. Kind types.DatasetKind + // The unique resource identifier for a Dataset. + Alias *string + // A token used to ensure idempotency. ClientToken *string diff --git a/service/finspacedata/deserializers.go b/service/finspacedata/deserializers.go index 788e42d8ad4..41423432502 100644 --- a/service/finspacedata/deserializers.go +++ b/service/finspacedata/deserializers.go @@ -857,6 +857,19 @@ func awsRestjson1_deserializeOpDocumentGetChangesetOutput(v **GetChangesetOutput for key, value := range shape { switch key { + case "activeFromTimestamp": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TimestampEpoch to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ActiveFromTimestamp = i64 + } + case "activeUntilTimestamp": if value != nil { jtv, ok := value.(json.Number) @@ -3040,6 +3053,19 @@ func awsRestjson1_deserializeDocumentChangesetSummary(v **types.ChangesetSummary for key, value := range shape { switch key { + case "activeFromTimestamp": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TimestampEpoch to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ActiveFromTimestamp = i64 + } + case "activeUntilTimestamp": if value != nil { jtv, ok := value.(json.Number) @@ -3623,6 +3649,20 @@ func awsRestjson1_deserializeDocumentDataViewDestinationTypeParams(v **types.Dat sv.DestinationType = ptr.String(jtv) } + case "s3DestinationExportFileFormat": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExportFileFormat to be of type string, got %T instead", value) + } + sv.S3DestinationExportFileFormat = types.ExportFileFormat(jtv) + } + + case "s3DestinationExportFileFormatOptions": + if err := awsRestjson1_deserializeDocumentS3DestinationFormatOptions(&sv.S3DestinationExportFileFormatOptions, value); err != nil { + return err + } + default: _, _ = key, value @@ -4042,6 +4082,42 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } +func awsRestjson1_deserializeDocumentS3DestinationFormatOptions(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 StringMapValue to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentSchemaDefinition(v **types.SchemaDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/finspacedata/serializers.go b/service/finspacedata/serializers.go index 51e9864f6be..5760eea1dd0 100644 --- a/service/finspacedata/serializers.go +++ b/service/finspacedata/serializers.go @@ -1192,6 +1192,18 @@ func awsRestjson1_serializeDocumentDataViewDestinationTypeParams(v *types.DataVi ok.String(*v.DestinationType) } + if len(v.S3DestinationExportFileFormat) > 0 { + ok := object.Key("s3DestinationExportFileFormat") + ok.String(string(v.S3DestinationExportFileFormat)) + } + + if v.S3DestinationExportFileFormatOptions != nil { + ok := object.Key("s3DestinationExportFileFormatOptions") + if err := awsRestjson1_serializeDocumentS3DestinationFormatOptions(v.S3DestinationExportFileFormatOptions, ok); err != nil { + return err + } + } + return nil } @@ -1261,6 +1273,17 @@ func awsRestjson1_serializeDocumentResourcePermissionsList(v []types.ResourcePer return nil } +func awsRestjson1_serializeDocumentS3DestinationFormatOptions(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsRestjson1_serializeDocumentSchemaDefinition(v *types.SchemaDefinition, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/finspacedata/types/enums.go b/service/finspacedata/types/enums.go index e1c49c2d73f..6befe269053 100644 --- a/service/finspacedata/types/enums.go +++ b/service/finspacedata/types/enums.go @@ -160,6 +160,24 @@ func (ErrorCategory) Values() []ErrorCategory { } } +type ExportFileFormat string + +// Enum values for ExportFileFormat +const ( + ExportFileFormatParquet ExportFileFormat = "PARQUET" + ExportFileFormatDelimitedText ExportFileFormat = "DELIMITED_TEXT" +) + +// Values returns all known values for ExportFileFormat. 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 (ExportFileFormat) Values() []ExportFileFormat { + return []ExportFileFormat{ + "PARQUET", + "DELIMITED_TEXT", + } +} + type IngestionStatus string // Enum values for IngestionStatus diff --git a/service/finspacedata/types/types.go b/service/finspacedata/types/types.go index 6c22b2e13df..498a69470e3 100644 --- a/service/finspacedata/types/types.go +++ b/service/finspacedata/types/types.go @@ -44,6 +44,9 @@ type ChangesetErrorInfo struct { // A Changeset is unit of data in a Dataset. type ChangesetSummary struct { + // Milliseconds since UTC epoch + ActiveFromTimestamp int64 + // Time until which the Changeset is active. The value is determined as Epoch time // in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM // UTC is specified as 1635768000000. @@ -218,6 +221,11 @@ type DataViewDestinationTypeParams struct { // This member is required. DestinationType *string + // Data View Export File Format + S3DestinationExportFileFormat ExportFileFormat + + S3DestinationExportFileFormatOptions map[string]string + noSmithyDocumentSerde } diff --git a/service/finspacedata/validators.go b/service/finspacedata/validators.go index e3229671b63..92eb29535f6 100644 --- a/service/finspacedata/validators.go +++ b/service/finspacedata/validators.go @@ -348,15 +348,9 @@ func validateOpCreateDatasetInput(v *CreateDatasetInput) error { if len(v.Kind) == 0 { invalidParams.Add(smithy.NewErrParamRequired("Kind")) } - if v.DatasetDescription == nil { - invalidParams.Add(smithy.NewErrParamRequired("DatasetDescription")) - } if v.PermissionGroupParams == nil { invalidParams.Add(smithy.NewErrParamRequired("PermissionGroupParams")) } - if v.Alias == nil { - invalidParams.Add(smithy.NewErrParamRequired("Alias")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -535,9 +529,6 @@ func validateOpUpdateDatasetInput(v *UpdateDatasetInput) error { if len(v.Kind) == 0 { invalidParams.Add(smithy.NewErrParamRequired("Kind")) } - if v.Alias == nil { - invalidParams.Add(smithy.NewErrParamRequired("Alias")) - } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/forecast/api_op_CreateAutoPredictor.go b/service/forecast/api_op_CreateAutoPredictor.go index bf025d964a3..4f759968679 100644 --- a/service/forecast/api_op_CreateAutoPredictor.go +++ b/service/forecast/api_op_CreateAutoPredictor.go @@ -72,6 +72,7 @@ type CreateAutoPredictorInput struct { // specify this optional object in the CreateDataset and CreatePredictor requests. EncryptionConfig *types.EncryptionConfig + // Create an Explainability resource for the predictor. ExplainPredictor *bool // An array of dimension (field) names that specify how to group the generated diff --git a/service/forecast/api_op_CreateExplainability.go b/service/forecast/api_op_CreateExplainability.go index d7e08b3ccbe..68aa78a27f0 100644 --- a/service/forecast/api_op_CreateExplainability.go +++ b/service/forecast/api_op_CreateExplainability.go @@ -54,7 +54,7 @@ import ( // “SPECIFIC”. // // CreateExplainability with a Forecast ARN You can specify a maximum -// of 50 time series and 1500 time points. The following parameters are required +// of 50 time series and 500 time points. The following parameters are required // when providing a Predictor ARN: // // * ExplainabilityName - A unique name for the @@ -119,25 +119,25 @@ type CreateExplainabilityInput struct { // This member is required. ResourceArn *string - // The source of your training data, an AWS Identity and Access Management (IAM) - // role that allows Amazon Forecast to access the data and, optionally, an AWS Key - // Management Service (KMS) key. This object is submitted in the - // CreateDatasetImportJob request. + // The source of your data, an AWS Identity and Access Management (IAM) role that + // allows Amazon Forecast to access the data and, optionally, an AWS Key Management + // Service (KMS) key. DataSource *types.DataSource // Create an Expainability visualization that is viewable within the AWS console. EnableVisualization *bool // If TimePointGranularity is set to SPECIFIC, define the last time point for the - // Explainability. + // Explainability. Use the following timestamp format: yyyy-MM-ddTHH:mm:ss + // (example: 2015-01-01T20:00:00) EndDateTime *string - // Defines the fields of a dataset. You specify this object in the CreateDataset - // request. + // Defines the fields of a dataset. Schema *types.Schema // If TimePointGranularity is set to SPECIFIC, define the first point for the - // Explainability. + // Explainability. Use the following timestamp format: yyyy-MM-ddTHH:mm:ss + // (example: 2015-01-01T20:00:00) StartDateTime *string // Optional metadata to help you categorize and organize your resources. Each tag diff --git a/service/forecast/api_op_CreatePredictorBacktestExportJob.go b/service/forecast/api_op_CreatePredictorBacktestExportJob.go index c749097e5b9..324ab1fcd53 100644 --- a/service/forecast/api_op_CreatePredictorBacktestExportJob.go +++ b/service/forecast/api_op_CreatePredictorBacktestExportJob.go @@ -11,16 +11,16 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Exports backtest forecasts and accuracy metrics generated by the CreatePredictor -// operation. Two folders containing CSV files are exported to your specified S3 -// bucket. The export file names will match the following conventions: __.csv The -// component is in Java SimpleDate format (yyyy-MM-ddTHH-mm-ssZ). You must specify -// a DataDestination object that includes an Amazon S3 bucket and an AWS Identity -// and Access Management (IAM) role that Amazon Forecast can assume to access the -// Amazon S3 bucket. For more information, see aws-forecast-iam-roles. The Status -// of the export job must be ACTIVE before you can access the export in your Amazon -// S3 bucket. To get the status, use the DescribePredictorBacktestExportJob -// operation. +// Exports backtest forecasts and accuracy metrics generated by the +// CreateAutoPredictor or CreatePredictor operations. Two folders containing CSV +// files are exported to your specified S3 bucket. The export file names will match +// the following conventions: __.csv The component is in Java SimpleDate format +// (yyyy-MM-ddTHH-mm-ssZ). You must specify a DataDestination object that includes +// an Amazon S3 bucket and an AWS Identity and Access Management (IAM) role that +// Amazon Forecast can assume to access the Amazon S3 bucket. For more information, +// see aws-forecast-iam-roles. The Status of the export job must be ACTIVE before +// you can access the export in your Amazon S3 bucket. To get the status, use the +// DescribePredictorBacktestExportJob operation. func (c *Client) CreatePredictorBacktestExportJob(ctx context.Context, params *CreatePredictorBacktestExportJobInput, optFns ...func(*Options)) (*CreatePredictorBacktestExportJobOutput, error) { if params == nil { params = &CreatePredictorBacktestExportJobInput{} diff --git a/service/forecast/api_op_DeleteExplainabilityExport.go b/service/forecast/api_op_DeleteExplainabilityExport.go index 4343530e3f1..7a8bef90786 100644 --- a/service/forecast/api_op_DeleteExplainabilityExport.go +++ b/service/forecast/api_op_DeleteExplainabilityExport.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an Explainability export job. +// Deletes an Explainability export. func (c *Client) DeleteExplainabilityExport(ctx context.Context, params *DeleteExplainabilityExportInput, optFns ...func(*Options)) (*DeleteExplainabilityExportOutput, error) { if params == nil { params = &DeleteExplainabilityExportInput{} diff --git a/service/forecast/api_op_DeletePredictor.go b/service/forecast/api_op_DeletePredictor.go index 49785a81b91..7021a72438d 100644 --- a/service/forecast/api_op_DeletePredictor.go +++ b/service/forecast/api_op_DeletePredictor.go @@ -10,9 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a predictor created using the CreatePredictor operation. You can delete -// only predictor that have a status of ACTIVE or CREATE_FAILED. To get the status, -// use the DescribePredictor operation. +// Deletes a predictor created using the DescribePredictor or CreatePredictor +// operations. You can delete only predictor that have a status of ACTIVE or +// CREATE_FAILED. To get the status, use the DescribePredictor operation. func (c *Client) DeletePredictor(ctx context.Context, params *DeletePredictorInput, optFns ...func(*Options)) (*DeletePredictorOutput, error) { if params == nil { params = &DeletePredictorInput{} diff --git a/service/forecast/api_op_DescribeAutoPredictor.go b/service/forecast/api_op_DescribeAutoPredictor.go index 8f82f458487..6d608ae04d4 100644 --- a/service/forecast/api_op_DescribeAutoPredictor.go +++ b/service/forecast/api_op_DescribeAutoPredictor.go @@ -59,8 +59,13 @@ type DescribeAutoPredictorOutput struct { // complete. EstimatedTimeRemainingInMinutes *int64 + // Provides the status and ARN of the Predictor Explainability. ExplainabilityInfo *types.ExplainabilityInfo + // An array of dimension (field) names that specify the attributes used to group + // your time series. + ForecastDimensions []string + // The frequency of predictions in a forecast. Valid intervals are Y (Year), M // (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), // 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "Y" diff --git a/service/forecast/api_op_DescribeExplainability.go b/service/forecast/api_op_DescribeExplainability.go index 3347e8149a0..bec50ae4f51 100644 --- a/service/forecast/api_op_DescribeExplainability.go +++ b/service/forecast/api_op_DescribeExplainability.go @@ -44,10 +44,9 @@ type DescribeExplainabilityOutput struct { // When the Explainability resource was created. CreationTime *time.Time - // The source of your training data, an AWS Identity and Access Management (IAM) - // role that allows Amazon Forecast to access the data and, optionally, an AWS Key - // Management Service (KMS) key. This object is submitted in the - // CreateDatasetImportJob request. + // The source of your data, an AWS Identity and Access Management (IAM) role that + // allows Amazon Forecast to access the data and, optionally, an AWS Key Management + // Service (KMS) key. DataSource *types.DataSource // Whether the visualization was enabled for the Explainability resource. @@ -95,8 +94,7 @@ type DescribeExplainabilityOutput struct { // Explainability resource. ResourceArn *string - // Defines the fields of a dataset. You specify this object in the CreateDataset - // request. + // Defines the fields of a dataset. Schema *types.Schema // If TimePointGranularity is set to SPECIFIC, the first time point in the diff --git a/service/forecast/api_op_DescribePredictor.go b/service/forecast/api_op_DescribePredictor.go index f0348479561..0089424a43c 100644 --- a/service/forecast/api_op_DescribePredictor.go +++ b/service/forecast/api_op_DescribePredictor.go @@ -13,8 +13,7 @@ import ( ) // This operation is only valid for legacy predictors created with CreatePredictor. -// If you are not using a legacy predictor, use DescribeAutoPredictor. To upgrade a -// legacy predictor to AutoPredictor, see Upgrading to AutoPredictor. Describes a +// If you are not using a legacy predictor, use DescribeAutoPredictor. Describes a // predictor created using the CreatePredictor operation. In addition to listing // the properties provided in the CreatePredictor request, this operation lists the // following properties: diff --git a/service/forecast/api_op_ListExplainabilities.go b/service/forecast/api_op_ListExplainabilities.go index 72bbcceb6ad..2e75a4c5057 100644 --- a/service/forecast/api_op_ListExplainabilities.go +++ b/service/forecast/api_op_ListExplainabilities.go @@ -42,7 +42,7 @@ type ListExplainabilitiesInput struct { // condition to apply. Valid values are IS and IS_NOT. // // * Key - The name of the - // parameter to filter on. Valid values are PredictorArn and Status. + // parameter to filter on. Valid values are ResourceArn and Status. // // * Value - The // value to match. diff --git a/service/forecast/api_op_ListExplainabilityExports.go b/service/forecast/api_op_ListExplainabilityExports.go index c8a035a9a6d..2deb08a4fa9 100644 --- a/service/forecast/api_op_ListExplainabilityExports.go +++ b/service/forecast/api_op_ListExplainabilityExports.go @@ -42,7 +42,7 @@ type ListExplainabilityExportsInput struct { // apply. Valid values are IS and IS_NOT. // // * Key - The name of the parameter to - // filter on. Valid values are PredictorArn and Status. + // filter on. Valid values are ResourceArn and Status. // // * Value - The value to // match. diff --git a/service/forecast/api_op_ListPredictors.go b/service/forecast/api_op_ListPredictors.go index d1dcc5e8cf7..25e1da2fda5 100644 --- a/service/forecast/api_op_ListPredictors.go +++ b/service/forecast/api_op_ListPredictors.go @@ -12,11 +12,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of predictors created using the CreatePredictor operation. For -// each predictor, this operation returns a summary of its properties, including -// its Amazon Resource Name (ARN). You can retrieve the complete set of properties -// by using the ARN with the DescribePredictor operation. You can filter the list -// using an array of Filter objects. +// Returns a list of predictors created using the CreateAutoPredictor or +// CreatePredictor operations. For each predictor, this operation returns a summary +// of its properties, including its Amazon Resource Name (ARN). You can retrieve +// the complete set of properties by using the ARN with the DescribeAutoPredictor +// and DescribePredictor operations. You can filter the list using an array of +// Filter objects. func (c *Client) ListPredictors(ctx context.Context, params *ListPredictorsInput, optFns ...func(*Options)) (*ListPredictorsOutput, error) { if params == nil { params = &ListPredictorsInput{} diff --git a/service/forecast/api_op_ListTagsForResource.go b/service/forecast/api_op_ListTagsForResource.go index 1e0626ef0b4..de0782c6fdc 100644 --- a/service/forecast/api_op_ListTagsForResource.go +++ b/service/forecast/api_op_ListTagsForResource.go @@ -30,8 +30,7 @@ func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForRes type ListTagsForResourceInput struct { // The Amazon Resource Name (ARN) that identifies the resource for which to list - // the tags. Currently, the supported resources are Forecast dataset groups, - // datasets, dataset import jobs, predictors, forecasts, and forecast export jobs. + // the tags. // // This member is required. ResourceArn *string diff --git a/service/forecast/api_op_StopResource.go b/service/forecast/api_op_StopResource.go index 687f5874b99..72273dd3418 100644 --- a/service/forecast/api_op_StopResource.go +++ b/service/forecast/api_op_StopResource.go @@ -25,6 +25,11 @@ import ( // Forecast Export Job // // * Predictor Backtest Export Job +// +// * Explainability Job +// +// * +// Explainability Export Job func (c *Client) StopResource(ctx context.Context, params *StopResourceInput, optFns ...func(*Options)) (*StopResourceOutput, error) { if params == nil { params = &StopResourceInput{} @@ -44,7 +49,8 @@ type StopResourceInput struct { // The Amazon Resource Name (ARN) that identifies the resource to stop. The // supported ARNs are DatasetImportJobArn, PredictorArn, - // PredictorBacktestExportJobArn, ForecastArn, and ForecastExportJobArn. + // PredictorBacktestExportJobArn, ForecastArn, ForecastExportJobArn, + // ExplainabilityArn, and ExplainabilityExportArn. // // This member is required. ResourceArn *string diff --git a/service/forecast/api_op_TagResource.go b/service/forecast/api_op_TagResource.go index 310f6b81b07..c9a3e44d833 100644 --- a/service/forecast/api_op_TagResource.go +++ b/service/forecast/api_op_TagResource.go @@ -33,8 +33,7 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { // The Amazon Resource Name (ARN) that identifies the resource for which to list - // the tags. Currently, the supported resources are Forecast dataset groups, - // datasets, dataset import jobs, predictors, forecasts, and forecast export jobs. + // the tags. // // This member is required. ResourceArn *string diff --git a/service/forecast/api_op_UntagResource.go b/service/forecast/api_op_UntagResource.go index 62974c71a61..f374329bb3c 100644 --- a/service/forecast/api_op_UntagResource.go +++ b/service/forecast/api_op_UntagResource.go @@ -29,8 +29,7 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { // The Amazon Resource Name (ARN) that identifies the resource for which to list - // the tags. Currently, the supported resources are Forecast dataset groups, - // datasets, dataset import jobs, predictors, forecasts, and forecast exports. + // the tags. // // This member is required. ResourceArn *string diff --git a/service/forecast/deserializers.go b/service/forecast/deserializers.go index 7319efebebe..d7917739a36 100644 --- a/service/forecast/deserializers.go +++ b/service/forecast/deserializers.go @@ -10190,6 +10190,11 @@ func awsAwsjson11_deserializeOpDocumentDescribeAutoPredictorOutput(v **DescribeA return err } + case "ForecastDimensions": + if err := awsAwsjson11_deserializeDocumentForecastDimensions(&sv.ForecastDimensions, value); err != nil { + return err + } + case "ForecastFrequency": if value != nil { jtv, ok := value.(string) diff --git a/service/forecast/types/types.go b/service/forecast/types/types.go index c01aa811d29..66c738c416b 100644 --- a/service/forecast/types/types.go +++ b/service/forecast/types/types.go @@ -28,7 +28,7 @@ type AdditionalDataset struct { Name *string // Weather Index To enable the Weather Index, do not specify a value for - // Configuration. Holidays To enable Holidays, specify a country with one of the + // Configuration. Holidays To enable Holidays, set CountryCode to one of the // following two-letter country codes: // // * "AL" - ALBANIA @@ -432,14 +432,13 @@ type DatasetSummary struct { noSmithyDocumentSerde } -// The source of your training data, an AWS Identity and Access Management (IAM) -// role that allows Amazon Forecast to access the data and, optionally, an AWS Key -// Management Service (KMS) key. This object is submitted in the -// CreateDatasetImportJob request. +// The source of your data, an AWS Identity and Access Management (IAM) role that +// allows Amazon Forecast to access the data and, optionally, an AWS Key Management +// Service (KMS) key. type DataSource struct { - // The path to the training data stored in an Amazon Simple Storage Service (Amazon - // S3) bucket along with the credentials to access the data. + // The path to the data stored in an Amazon Simple Storage Service (Amazon S3) + // bucket along with the credentials to access the data. // // This member is required. S3Config *S3Config @@ -611,9 +610,23 @@ type ExplainabilityExportSummary struct { noSmithyDocumentSerde } +// Provides information about the Explainability resource. type ExplainabilityInfo struct { + + // The Amazon Resource Name (ARN) of the Explainability. ExplainabilityArn *string + // The status of the Explainability. States include: + // + // * ACTIVE + // + // * CREATE_PENDING, + // CREATE_IN_PROGRESS, CREATE_FAILED + // + // * CREATE_STOPPING, CREATE_STOPPED + // + // * + // DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED Status *string noSmithyDocumentSerde @@ -678,20 +691,22 @@ type ExplainabilitySummary struct { noSmithyDocumentSerde } -// Provides featurization (transformation) information for a dataset field. This -// object is part of the FeaturizationConfig object. For example: { +// This object belongs to the CreatePredictor operation. If you created your +// predictor with CreateAutoPredictor, see AttributeConfig. Provides featurization +// (transformation) information for a dataset field. This object is part of the +// FeaturizationConfig object. For example: { +// "AttributeName": "demand", // -// "AttributeName": "demand", // -// FeaturizationPipeline [ { +// FeaturizationPipeline [ { +// +// "FeaturizationMethodName": "filling", // // -// "FeaturizationMethodName": "filling", +// "FeaturizationMethodParameters": {"aggregation": "avg", "backfill": "nan"} // -// "FeaturizationMethodParameters": -// {"aggregation": "avg", "backfill": "nan"} // -// } ] +// } ] // // } type Featurization struct { @@ -712,17 +727,18 @@ type Featurization struct { noSmithyDocumentSerde } -// In a CreatePredictor operation, the specified algorithm trains a model using the -// specified dataset group. You can optionally tell the operation to modify data -// fields prior to training a model. These modifications are referred to as -// featurization. You define featurization using the FeaturizationConfig object. -// You specify an array of transformations, one for each field that you want to -// featurize. You then include the FeaturizationConfig object in your -// CreatePredictor request. Amazon Forecast applies the featurization to the -// TARGET_TIME_SERIES and RELATED_TIME_SERIES datasets before model training. You -// can create multiple featurization configurations. For example, you might call -// the CreatePredictor operation twice by specifying different featurization -// configurations. +// This object belongs to the CreatePredictor operation. If you created your +// predictor with CreateAutoPredictor, see AttributeConfig. In a CreatePredictor +// operation, the specified algorithm trains a model using the specified dataset +// group. You can optionally tell the operation to modify data fields prior to +// training a model. These modifications are referred to as featurization. You +// define featurization using the FeaturizationConfig object. You specify an array +// of transformations, one for each field that you want to featurize. You then +// include the FeaturizationConfig object in your CreatePredictor request. Amazon +// Forecast applies the featurization to the TARGET_TIME_SERIES and +// RELATED_TIME_SERIES datasets before model training. You can create multiple +// featurization configurations. For example, you might call the CreatePredictor +// operation twice by specifying different featurization configurations. type FeaturizationConfig struct { // The frequency of predictions in a forecast. Valid intervals are Y (Year), M @@ -897,6 +913,8 @@ type ForecastExportJobSummary struct { // operation. To get the complete set of properties, call the DescribeForecast // operation, and provide the ForecastArn that is listed in the summary. type ForecastSummary struct { + + // Whether the Forecast was created from an AutoPredictor. CreatedUsingAutoPredictor *bool // When the forecast creation task was created. @@ -972,8 +990,10 @@ type HyperParameterTuningJobConfig struct { noSmithyDocumentSerde } -// The data used to train a predictor. The data includes a dataset group and any -// supplementary features. You specify this object in the CreatePredictor request. +// This object belongs to the CreatePredictor operation. If you created your +// predictor with CreateAutoPredictor, see DataConfig. The data used to train a +// predictor. The data includes a dataset group and any supplementary features. You +// specify this object in the CreatePredictor request. type InputDataConfig struct { // The Amazon Resource Name (ARN) of the dataset group. @@ -1257,8 +1277,7 @@ type S3Config struct { noSmithyDocumentSerde } -// Defines the fields of a dataset. You specify this object in the CreateDataset -// request. +// Defines the fields of a dataset. type Schema struct { // An array of attributes specifying the name and type of each field in a dataset. @@ -1332,7 +1351,9 @@ type Statistics struct { noSmithyDocumentSerde } -// Describes a supplementary feature of a dataset group. This object is part of the +// This object belongs to the CreatePredictor operation. If you created your +// predictor with CreateAutoPredictor, see AdditionalDataset. Describes a +// supplementary feature of a dataset group. This object is part of the // InputDataConfig object. Forecast supports the Weather Index and Holidays // built-in featurizations. Weather Index The Amazon Forecast Weather Index is a // built-in featurization that incorporates historical and projected weather diff --git a/service/imagebuilder/api_op_CancelImageCreation.go b/service/imagebuilder/api_op_CancelImageCreation.go index 438a1d73c7a..e67d453df69 100644 --- a/service/imagebuilder/api_op_CancelImageCreation.go +++ b/service/imagebuilder/api_op_CancelImageCreation.go @@ -30,7 +30,10 @@ func (c *Client) CancelImageCreation(ctx context.Context, params *CancelImageCre type CancelImageCreationInput struct { - // The idempotency token used to make this request idempotent. + // Unique, case-sensitive identifier you provide to ensure idempotency of the + // request. For more information, see Ensuring idempotency + // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) + // in the Amazon EC2 API Reference. // // This member is required. ClientToken *string @@ -45,7 +48,7 @@ type CancelImageCreationInput struct { type CancelImageCreationOutput struct { - // The idempotency token used to make this request idempotent. + // The idempotency token that was used for this request. ClientToken *string // The Amazon Resource Name (ARN) of the image whose creation has been cancelled. diff --git a/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go b/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go index e8dd2967760..806cbf8a536 100644 --- a/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go +++ b/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go @@ -73,7 +73,11 @@ type CreateInfrastructureConfigurationInput struct { // Amazon EC2 AMI. SecurityGroupIds []string - // The SNS topic on which to send image build events. + // The Amazon Resource Name (ARN) for the SNS topic to which we send image build + // event notifications. EC2 Image Builder is unable to send notifications to SNS + // topics that are encrypted using keys from other accounts. The key that is used + // to encrypt the SNS topic must reside in the account that the Image Builder + // service runs under. SnsTopicArn *string // The subnet ID in which to place the instance used to customize your Amazon EC2 diff --git a/service/imagebuilder/api_op_ImportVmImage.go b/service/imagebuilder/api_op_ImportVmImage.go new file mode 100644 index 00000000000..7ca929db8f6 --- /dev/null +++ b/service/imagebuilder/api_op_ImportVmImage.go @@ -0,0 +1,217 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package imagebuilder + +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/imagebuilder/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// When you export your virtual machine (VM) from its virtualization environment, +// that process creates a set of one or more disk container files that act as +// snapshots of your VM’s environment, settings, and data. The Amazon EC2 API +// ImportImage +// (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html) +// action uses those files to import your VM and create an AMI. To import using the +// CLI command, see import-image +// (https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html) You can +// reference the task ID from the VM import to pull in the AMI that the import +// created as the base image for your Image Builder recipe. +func (c *Client) ImportVmImage(ctx context.Context, params *ImportVmImageInput, optFns ...func(*Options)) (*ImportVmImageOutput, error) { + if params == nil { + params = &ImportVmImageInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ImportVmImage", params, optFns, c.addOperationImportVmImageMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ImportVmImageOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ImportVmImageInput struct { + + // Unique, case-sensitive identifier you provide to ensure idempotency of the + // request. For more information, see Ensuring idempotency + // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) + // in the Amazon EC2 API Reference. + // + // This member is required. + ClientToken *string + + // The name of the base image that is created by the import process. + // + // This member is required. + Name *string + + // The operating system platform for the imported VM. + // + // This member is required. + Platform types.Platform + + // The semantic version to attach to the base image that was created during the + // import process. This version follows the semantic version syntax. The semantic + // version has four nodes: ../. You can assign values for the first three, and can + // filter on all of them. Assignment: For the first three nodes you can assign any + // positive integer value, including zero, with an upper limit of 2^30-1, or + // 1073741823 for each node. Image Builder automatically assigns the build number + // to the fourth node. Patterns: You can use any numeric pattern that adheres to + // the assignment requirements for the nodes that you can assign. For example, you + // might choose a software version pattern, such as 1.0.0, or a date, such as + // 2021.01.01. + // + // This member is required. + SemanticVersion *string + + // The importTaskId (API) or ImportTaskId (CLI) from the Amazon EC2 VM import + // process. Image Builder retrieves information from the import process to pull in + // the AMI that is created from the VM source as the base image for your recipe. + // + // This member is required. + VmImportTaskId *string + + // The description for the base image that is created by the import process. + Description *string + + // The operating system version for the imported VM. + OsVersion *string + + // Tags that are attached to the import resources. + Tags map[string]string + + noSmithyDocumentSerde +} + +type ImportVmImageOutput struct { + + // The idempotency token that was used for this request. + ClientToken *string + + // The Amazon Resource Name (ARN) of the AMI that was created during the VM import + // process. This AMI is used as the base image for the recipe that imported the VM. + ImageArn *string + + // The request ID that uniquely identifies this request. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationImportVmImageMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpImportVmImage{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpImportVmImage{}, 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_opImportVmImageMiddleware(stack, options); err != nil { + return err + } + if err = addOpImportVmImageValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opImportVmImage(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_initializeOpImportVmImage struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpImportVmImage) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpImportVmImage) 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.(*ImportVmImageInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *ImportVmImageInput ") + } + + 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_opImportVmImageMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpImportVmImage{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opImportVmImage(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "imagebuilder", + OperationName: "ImportVmImage", + } +} diff --git a/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go b/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go index ed209c97ab6..0fde2b4d5dd 100644 --- a/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go +++ b/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go @@ -85,7 +85,11 @@ type UpdateInfrastructureConfigurationInput struct { // Amazon EC2 AMI. SecurityGroupIds []string - // The SNS topic on which to send image build events. + // The Amazon Resource Name (ARN) for the SNS topic to which we send image build + // event notifications. EC2 Image Builder is unable to send notifications to SNS + // topics that are encrypted using keys from other accounts. The key that is used + // to encrypt the SNS topic must reside in the account that the Image Builder + // service runs under. SnsTopicArn *string // The subnet ID to place the instance used to customize your Amazon EC2 AMI in. diff --git a/service/imagebuilder/deserializers.go b/service/imagebuilder/deserializers.go index fab8a979df6..ec22758fbee 100644 --- a/service/imagebuilder/deserializers.go +++ b/service/imagebuilder/deserializers.go @@ -4928,6 +4928,181 @@ func awsRestjson1_deserializeOpDocumentImportComponentOutput(v **ImportComponent return nil } +type awsRestjson1_deserializeOpImportVmImage struct { +} + +func (*awsRestjson1_deserializeOpImportVmImage) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpImportVmImage) HandleDeserialize(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_deserializeOpErrorImportVmImage(response, &metadata) + } + output := &ImportVmImageOutput{} + 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_deserializeOpDocumentImportVmImageOutput(&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_deserializeOpErrorImportVmImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ClientException", errorCode): + return awsRestjson1_deserializeErrorClientException(response, errorBody) + + case strings.EqualFold("ServiceException", errorCode): + return awsRestjson1_deserializeErrorServiceException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentImportVmImageOutput(v **ImportVmImageOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ImportVmImageOutput + if *v == nil { + sv = &ImportVmImageOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "clientToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClientToken to be of type string, got %T instead", value) + } + sv.ClientToken = ptr.String(jtv) + } + + case "imageArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ImageArn = ptr.String(jtv) + } + + case "requestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpListComponentBuildVersions struct { } @@ -11012,6 +11187,11 @@ func awsRestjson1_deserializeDocumentDistribution(v **types.Distribution, value sv.Region = ptr.String(jtv) } + case "s3ExportConfiguration": + if err := awsRestjson1_deserializeDocumentS3ExportConfiguration(&sv.S3ExportConfiguration, value); err != nil { + return err + } + default: _, _ = key, value @@ -11500,6 +11680,15 @@ func awsRestjson1_deserializeDocumentImage(v **types.Image, value interface{}) e sv.Arn = ptr.String(jtv) } + case "buildType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BuildType to be of type string, got %T instead", value) + } + sv.BuildType = types.BuildType(jtv) + } + case "containerRecipe": if err := awsRestjson1_deserializeDocumentContainerRecipe(&sv.ContainerRecipe, value); err != nil { return err @@ -12264,6 +12453,15 @@ func awsRestjson1_deserializeDocumentImageSummary(v **types.ImageSummary, value sv.Arn = ptr.String(jtv) } + case "buildType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BuildType to be of type string, got %T instead", value) + } + sv.BuildType = types.BuildType(jtv) + } + case "dateCreated": if value != nil { jtv, ok := value.(string) @@ -12469,6 +12667,15 @@ func awsRestjson1_deserializeDocumentImageVersion(v **types.ImageVersion, value sv.Arn = ptr.String(jtv) } + case "buildType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BuildType to be of type string, got %T instead", value) + } + sv.BuildType = types.BuildType(jtv) + } + case "dateCreated": if value != nil { jtv, ok := value.(string) @@ -13927,6 +14134,73 @@ func awsRestjson1_deserializeDocumentResourceTagMap(v *map[string]string, value return nil } +func awsRestjson1_deserializeDocumentS3ExportConfiguration(v **types.S3ExportConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.S3ExportConfiguration + if *v == nil { + sv = &types.S3ExportConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "diskImageFormat": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DiskImageFormat to be of type string, got %T instead", value) + } + sv.DiskImageFormat = types.DiskImageFormat(jtv) + } + + case "roleName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RoleName = ptr.String(jtv) + } + + case "s3Bucket": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3Bucket = ptr.String(jtv) + } + + case "s3Prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentS3Logs(v **types.S3Logs, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/imagebuilder/generated.json b/service/imagebuilder/generated.json index 5c98066edf1..742f18de50b 100644 --- a/service/imagebuilder/generated.json +++ b/service/imagebuilder/generated.json @@ -34,6 +34,7 @@ "api_op_GetImageRecipePolicy.go", "api_op_GetInfrastructureConfiguration.go", "api_op_ImportComponent.go", + "api_op_ImportVmImage.go", "api_op_ListComponentBuildVersions.go", "api_op_ListComponents.go", "api_op_ListContainerRecipes.go", diff --git a/service/imagebuilder/serializers.go b/service/imagebuilder/serializers.go index 379dbc08451..236c70e1f35 100644 --- a/service/imagebuilder/serializers.go +++ b/service/imagebuilder/serializers.go @@ -2033,6 +2033,111 @@ func awsRestjson1_serializeOpDocumentImportComponentInput(v *ImportComponentInpu return nil } +type awsRestjson1_serializeOpImportVmImage struct { +} + +func (*awsRestjson1_serializeOpImportVmImage) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpImportVmImage) 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.(*ImportVmImageInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/ImportVmImage") + 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} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentImportVmImageInput(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_serializeOpHttpBindingsImportVmImageInput(v *ImportVmImageInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentImportVmImageInput(v *ImportVmImageInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + if v.OsVersion != nil { + ok := object.Key("osVersion") + ok.String(*v.OsVersion) + } + + if len(v.Platform) > 0 { + ok := object.Key("platform") + ok.String(string(v.Platform)) + } + + if v.SemanticVersion != nil { + ok := object.Key("semanticVersion") + ok.String(*v.SemanticVersion) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil { + return err + } + } + + if v.VmImportTaskId != nil { + ok := object.Key("vmImportTaskId") + ok.String(*v.VmImportTaskId) + } + + return nil +} + type awsRestjson1_serializeOpListComponentBuildVersions struct { } @@ -4080,6 +4185,13 @@ func awsRestjson1_serializeDocumentDistribution(v *types.Distribution, value smi ok.String(*v.Region) } + if v.S3ExportConfiguration != nil { + ok := object.Key("s3ExportConfiguration") + if err := awsRestjson1_serializeDocumentS3ExportConfiguration(v.S3ExportConfiguration, ok); err != nil { + return err + } + } + return nil } @@ -4431,6 +4543,33 @@ func awsRestjson1_serializeDocumentResourceTagMap(v map[string]string, value smi return nil } +func awsRestjson1_serializeDocumentS3ExportConfiguration(v *types.S3ExportConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.DiskImageFormat) > 0 { + ok := object.Key("diskImageFormat") + ok.String(string(v.DiskImageFormat)) + } + + if v.RoleName != nil { + ok := object.Key("roleName") + ok.String(*v.RoleName) + } + + if v.S3Bucket != nil { + ok := object.Key("s3Bucket") + ok.String(*v.S3Bucket) + } + + if v.S3Prefix != nil { + ok := object.Key("s3Prefix") + ok.String(*v.S3Prefix) + } + + return nil +} + func awsRestjson1_serializeDocumentS3Logs(v *types.S3Logs, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/imagebuilder/types/enums.go b/service/imagebuilder/types/enums.go index a19e89e251b..598d547fcd5 100644 --- a/service/imagebuilder/types/enums.go +++ b/service/imagebuilder/types/enums.go @@ -2,6 +2,26 @@ package types +type BuildType string + +// Enum values for BuildType +const ( + BuildTypeUserInitiated BuildType = "USER_INITIATED" + BuildTypeScheduled BuildType = "SCHEDULED" + BuildTypeImport BuildType = "IMPORT" +) + +// Values returns all known values for BuildType. 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 (BuildType) Values() []BuildType { + return []BuildType{ + "USER_INITIATED", + "SCHEDULED", + "IMPORT", + } +} + type ComponentFormat string // Enum values for ComponentFormat @@ -84,6 +104,26 @@ func (ContainerType) Values() []ContainerType { } } +type DiskImageFormat string + +// Enum values for DiskImageFormat +const ( + DiskImageFormatVmdk DiskImageFormat = "VMDK" + DiskImageFormatRaw DiskImageFormat = "RAW" + DiskImageFormatVhd DiskImageFormat = "VHD" +) + +// Values returns all known values for DiskImageFormat. 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 (DiskImageFormat) Values() []DiskImageFormat { + return []DiskImageFormat{ + "VMDK", + "RAW", + "VHD", + } +} + type EbsVolumeType string // Enum values for EbsVolumeType diff --git a/service/imagebuilder/types/types.go b/service/imagebuilder/types/types.go index 374960b8377..622265b1aa5 100644 --- a/service/imagebuilder/types/types.go +++ b/service/imagebuilder/types/types.go @@ -479,6 +479,10 @@ type Distribution struct { // Region. LicenseConfigurationArns []string + // Configure export settings to deliver disk images created from your image build, + // using a file format that is compatible with your VMs in that Region. + S3ExportConfiguration *S3ExportConfiguration + noSmithyDocumentSerde } @@ -606,6 +610,19 @@ type Image struct { // specific build for a specific version of an object. Arn *string + // Indicates the type of build that created this image. The build can be initiated + // in the following ways: + // + // * USER_INITIATED – A manual pipeline build request. + // + // * + // SCHEDULED – A pipeline build initiated by a cron expression in the Image Builder + // pipeline, or from EventBridge. + // + // * IMPORT – A VM import created the image to use + // as the base image for the recipe. + BuildType BuildType + // The recipe that is used to create an Image Builder container image. ContainerRecipe *ContainerRecipe @@ -846,6 +863,19 @@ type ImageSummary struct { // The Amazon Resource Name (ARN) of the image. Arn *string + // Indicates the type of build that created this image. The build can be initiated + // in the following ways: + // + // * USER_INITIATED – A manual pipeline build request. + // + // * + // SCHEDULED – A pipeline build initiated by a cron expression in the Image Builder + // pipeline, or from EventBridge. + // + // * IMPORT – A VM import created the image to use + // as the base image for the recipe. + BuildType BuildType + // The date on which this image was created. DateCreated *string @@ -880,10 +910,13 @@ type ImageSummary struct { noSmithyDocumentSerde } -// Image tests configuration. +// Configure image tests for your pipeline build. Tests run after building the +// image, to verify that the AMI or container image is valid before distributing +// it. type ImageTestsConfiguration struct { - // Defines if tests should be executed when building this image. + // Determines if tests should run after building the image. Image Builder defaults + // to enable tests to run following the image build, before image distribution. ImageTestsEnabled *bool // The maximum time in minutes that tests are permitted to run. @@ -910,6 +943,19 @@ type ImageVersion struct { // four nodes, and point to a specific build for a specific version of an object. Arn *string + // Indicates the type of build that created this image. The build can be initiated + // in the following ways: + // + // * USER_INITIATED – A manual pipeline build request. + // + // * + // SCHEDULED – A pipeline build initiated by a cron expression in the Image Builder + // pipeline, or from EventBridge. + // + // * IMPORT – A VM import created the image to use + // as the base image for the recipe. + BuildType BuildType + // The date on which this specific version of the Image Builder image was created. DateCreated *string @@ -986,7 +1032,11 @@ type InfrastructureConfiguration struct { // The security group IDs of the infrastructure configuration. SecurityGroupIds []string - // The SNS topic Amazon Resource Name (ARN) of the infrastructure configuration. + // The Amazon Resource Name (ARN) for the SNS topic to which we send image build + // event notifications. EC2 Image Builder is unable to send notifications to SNS + // topics that are encrypted using keys from other accounts. The key that is used + // to encrypt the SNS topic must reside in the account that the Image Builder + // service runs under. SnsTopicArn *string // The subnet ID of the infrastructure configuration. @@ -1171,13 +1221,50 @@ type OutputResources struct { noSmithyDocumentSerde } +// Properties that configure export from your build instance to a compatible file +// format for your VM. +type S3ExportConfiguration struct { + + // Export the updated image to one of the following supported disk image + // formats: + // + // * Virtual Hard Disk (VHD) – Compatible with Citrix Xen and Microsoft + // Hyper-V virtualization products. + // + // * Stream-optimized ESX Virtual Machine Disk + // (VMDK) – Compatible with VMware ESX and VMware vSphere versions 4, 5, and 6. + // + // * + // Raw – Raw format. + // + // This member is required. + DiskImageFormat DiskImageFormat + + // The name of the role that grants VM Import/Export permission to export images to + // your S3 bucket. + // + // This member is required. + RoleName *string + + // The S3 bucket in which to store the output disk images for your VM. + // + // This member is required. + S3Bucket *string + + // The Amazon S3 path for the bucket where the output disk images for your VM are + // stored. + S3Prefix *string + + noSmithyDocumentSerde +} + // Amazon S3 logging configuration. type S3Logs struct { - // The Amazon S3 bucket in which to store the logs. + // The S3 bucket in which to store the logs. S3BucketName *string - // The Amazon S3 path in which to store the logs. + // The Amazon S3 path to the bucket where the logs are stored. S3KeyPrefix *string noSmithyDocumentSerde diff --git a/service/imagebuilder/validators.go b/service/imagebuilder/validators.go index b91a05225bb..47e473ebdf5 100644 --- a/service/imagebuilder/validators.go +++ b/service/imagebuilder/validators.go @@ -550,6 +550,26 @@ func (m *validateOpImportComponent) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpImportVmImage struct { +} + +func (*validateOpImportVmImage) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpImportVmImage) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ImportVmImageInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpImportVmImageInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListComponentBuildVersions struct { } @@ -958,6 +978,10 @@ func addOpImportComponentValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpImportComponent{}, middleware.After) } +func addOpImportVmImageValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpImportVmImage{}, middleware.After) +} + func addOpListComponentBuildVersionsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListComponentBuildVersions{}, middleware.After) } @@ -1127,6 +1151,11 @@ func validateDistribution(v *types.Distribution) error { invalidParams.AddNested("LaunchTemplateConfigurations", err.(smithy.InvalidParamsError)) } } + if v.S3ExportConfiguration != nil { + if err := validateS3ExportConfiguration(v.S3ExportConfiguration); err != nil { + invalidParams.AddNested("S3ExportConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1183,6 +1212,27 @@ func validateLaunchTemplateConfigurationList(v []types.LaunchTemplateConfigurati } } +func validateS3ExportConfiguration(v *types.S3ExportConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3ExportConfiguration"} + if v.RoleName == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoleName")) + } + if len(v.DiskImageFormat) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("DiskImageFormat")) + } + if v.S3Bucket == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3Bucket")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTargetContainerRepository(v *types.TargetContainerRepository) error { if v == nil { return nil @@ -1700,6 +1750,33 @@ func validateOpImportComponentInput(v *ImportComponentInput) error { } } +func validateOpImportVmImageInput(v *ImportVmImageInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImportVmImageInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.SemanticVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("SemanticVersion")) + } + if len(v.Platform) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Platform")) + } + if v.VmImportTaskId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VmImportTaskId")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListComponentBuildVersionsInput(v *ListComponentBuildVersionsInput) error { if v == nil { return nil diff --git a/service/iot/api_op_CreateAuthorizer.go b/service/iot/api_op_CreateAuthorizer.go index bc6539b056f..d6832d0fb11 100644 --- a/service/iot/api_op_CreateAuthorizer.go +++ b/service/iot/api_op_CreateAuthorizer.go @@ -41,6 +41,13 @@ type CreateAuthorizerInput struct { // This member is required. AuthorizerName *string + // When true, the result from the authorizer’s Lambda function is cached for + // clients that use persistent HTTP connections. The results are cached for the + // time specified by the Lambda function in refreshAfterInSeconds. This value does + // not affect authorization of clients that use MQTT connections. The default value + // is false. + EnableCachingForHttp *bool + // Specifies whether IoT validates the token signature in an authorization request. SigningDisabled *bool diff --git a/service/iot/api_op_UpdateAuthorizer.go b/service/iot/api_op_UpdateAuthorizer.go index 9b80c6fba49..f27b39c3e4e 100644 --- a/service/iot/api_op_UpdateAuthorizer.go +++ b/service/iot/api_op_UpdateAuthorizer.go @@ -39,6 +39,11 @@ type UpdateAuthorizerInput struct { // The ARN of the authorizer's Lambda function. AuthorizerFunctionArn *string + // When true, the result from the authorizer’s Lambda function is cached for the + // time specified in refreshAfterInSeconds. The cached result is used while the + // device reuses the same HTTP connection. + EnableCachingForHttp *bool + // The status of the update authorizer request. Status types.AuthorizerStatus diff --git a/service/iot/deserializers.go b/service/iot/deserializers.go index eb21069ce7c..e722b2aedac 100644 --- a/service/iot/deserializers.go +++ b/service/iot/deserializers.go @@ -39590,6 +39590,15 @@ func awsRestjson1_deserializeDocumentAuthorizerDescription(v **types.AuthorizerD } } + case "enableCachingForHttp": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected EnableCachingForHttp to be of type *bool, got %T instead", value) + } + sv.EnableCachingForHttp = ptr.Bool(jtv) + } + case "lastModifiedDate": if value != nil { switch jtv := value.(type) { diff --git a/service/iot/serializers.go b/service/iot/serializers.go index df44b9bd9ed..15dd7095fed 100644 --- a/service/iot/serializers.go +++ b/service/iot/serializers.go @@ -1309,6 +1309,11 @@ func awsRestjson1_serializeOpDocumentCreateAuthorizerInput(v *CreateAuthorizerIn ok.String(*v.AuthorizerFunctionArn) } + if v.EnableCachingForHttp != nil { + ok := object.Key("enableCachingForHttp") + ok.Boolean(*v.EnableCachingForHttp) + } + if v.SigningDisabled != nil { ok := object.Key("signingDisabled") ok.Boolean(*v.SigningDisabled) @@ -15128,6 +15133,11 @@ func awsRestjson1_serializeOpDocumentUpdateAuthorizerInput(v *UpdateAuthorizerIn ok.String(*v.AuthorizerFunctionArn) } + if v.EnableCachingForHttp != nil { + ok := object.Key("enableCachingForHttp") + ok.Boolean(*v.EnableCachingForHttp) + } + if len(v.Status) > 0 { ok := object.Key("status") ok.String(string(v.Status)) diff --git a/service/iot/types/types.go b/service/iot/types/types.go index 44a1fff256c..0e8eb8edbc2 100644 --- a/service/iot/types/types.go +++ b/service/iot/types/types.go @@ -583,6 +583,11 @@ type AuthorizerDescription struct { // The UNIX timestamp of when the authorizer was created. CreationDate *time.Time + // When true, the result from the authorizer’s Lambda function is cached for the + // time specified in refreshAfterInSeconds. The cached result is used while the + // device reuses the same HTTP connection. + EnableCachingForHttp *bool + // The UNIX timestamp of when the authorizer was last updated. LastModifiedDate *time.Time diff --git a/service/lexmodelsv2/api_op_CreateSlotType.go b/service/lexmodelsv2/api_op_CreateSlotType.go index bcd6508b541..aecb8debfb5 100644 --- a/service/lexmodelsv2/api_op_CreateSlotType.go +++ b/service/lexmodelsv2/api_op_CreateSlotType.go @@ -56,6 +56,23 @@ type CreateSlotTypeInput struct { // This member is required. SlotTypeName *string + // A description of the slot type. Use the description to help identify the slot + // type in lists. + Description *string + + // Sets the type of external information used to create the slot type. + ExternalSourceSetting *types.ExternalSourceSetting + + // The built-in slot type used as a parent of this slot type. When you define a + // parent slot type, the new slot type has the configuration of the parent slot + // type. Only AMAZON.AlphaNumeric is supported. + ParentSlotTypeSignature *string + + // A list of SlotTypeValue objects that defines the values that the slot type can + // take. Each value can have a list of synonyms, additional values that help train + // the machine learning model about the values that it resolves for a slot. + SlotTypeValues []types.SlotTypeValue + // Determines the strategy that Amazon Lex uses to select a value from the list of // possible values. The field can be set to one of the following values: // @@ -69,24 +86,8 @@ type CreateSlotTypeInput struct { // // If you don't specify the valueSelectionSetting // parameter, the default is OriginalValue. - // - // This member is required. ValueSelectionSetting *types.SlotValueSelectionSetting - // A description of the slot type. Use the description to help identify the slot - // type in lists. - Description *string - - // The built-in slot type used as a parent of this slot type. When you define a - // parent slot type, the new slot type has the configuration of the parent slot - // type. Only AMAZON.AlphaNumeric is supported. - ParentSlotTypeSignature *string - - // A list of SlotTypeValue objects that defines the values that the slot type can - // take. Each value can have a list of synonyms, additional values that help train - // the machine learning model about the values that it resolves for a slot. - SlotTypeValues []types.SlotTypeValue - noSmithyDocumentSerde } @@ -104,6 +105,9 @@ type CreateSlotTypeOutput struct { // The description specified for the slot type. Description *string + // The type of external information used to create the slot type. + ExternalSourceSetting *types.ExternalSourceSetting + // The specified language and local specified for the slot type. LocaleId *string diff --git a/service/lexmodelsv2/api_op_DescribeBotLocale.go b/service/lexmodelsv2/api_op_DescribeBotLocale.go index 3a8f4a2706d..65a85867d0a 100644 --- a/service/lexmodelsv2/api_op_DescribeBotLocale.go +++ b/service/lexmodelsv2/api_op_DescribeBotLocale.go @@ -100,6 +100,9 @@ type DescribeBotLocaleOutput struct { // utterance. NluIntentConfidenceThreshold *float64 + // Recommended actions to take to resolve an error in the failureReasons field. + RecommendedActions []string + // The number of slot types defined for the locale. SlotTypesCount *int32 diff --git a/service/lexmodelsv2/api_op_DescribeSlotType.go b/service/lexmodelsv2/api_op_DescribeSlotType.go index 8c456d54d10..9a2cac1faa3 100644 --- a/service/lexmodelsv2/api_op_DescribeSlotType.go +++ b/service/lexmodelsv2/api_op_DescribeSlotType.go @@ -70,6 +70,9 @@ type DescribeSlotTypeOutput struct { // The description specified for the slot type. Description *string + // Provides information about the external source of the slot type's definition. + ExternalSourceSetting *types.ExternalSourceSetting + // A timestamp of the date and time that the slot type was last updated. LastUpdatedDateTime *time.Time diff --git a/service/lexmodelsv2/api_op_UpdateBotLocale.go b/service/lexmodelsv2/api_op_UpdateBotLocale.go index cb112d9a3fb..7107e7f49ad 100644 --- a/service/lexmodelsv2/api_op_UpdateBotLocale.go +++ b/service/lexmodelsv2/api_op_UpdateBotLocale.go @@ -101,6 +101,9 @@ type UpdateBotLocaleOutput struct { // utterance. NluIntentConfidenceThreshold *float64 + // Recommended actions to take to resolve an error in the failureReasons field. + RecommendedActions []string + // The updated Amazon Polly voice to use for voice interaction with the user. VoiceSettings *types.VoiceSettings diff --git a/service/lexmodelsv2/api_op_UpdateSlotType.go b/service/lexmodelsv2/api_op_UpdateSlotType.go index 5bf3edda337..57731db0f86 100644 --- a/service/lexmodelsv2/api_op_UpdateSlotType.go +++ b/service/lexmodelsv2/api_op_UpdateSlotType.go @@ -58,15 +58,12 @@ type UpdateSlotTypeInput struct { // This member is required. SlotTypeName *string - // The strategy that Amazon Lex should use when deciding on a value from the list - // of slot type values. - // - // This member is required. - ValueSelectionSetting *types.SlotValueSelectionSetting - // The new description of the slot type. Description *string + // Provides information about the external source of the slot type's definition. + ExternalSourceSetting *types.ExternalSourceSetting + // The new built-in slot type that should be used as the parent of this slot type. ParentSlotTypeSignature *string @@ -74,6 +71,10 @@ type UpdateSlotTypeInput struct { // slot type can take. SlotTypeValues []types.SlotTypeValue + // The strategy that Amazon Lex should use when deciding on a value from the list + // of slot type values. + ValueSelectionSetting *types.SlotValueSelectionSetting + noSmithyDocumentSerde } @@ -91,6 +92,9 @@ type UpdateSlotTypeOutput struct { // The updated description of the slot type. Description *string + // Provides information about the external source of the slot type's definition. + ExternalSourceSetting *types.ExternalSourceSetting + // A timestamp of the date and time that the slot type was last updated. LastUpdatedDateTime *time.Time diff --git a/service/lexmodelsv2/deserializers.go b/service/lexmodelsv2/deserializers.go index 88cca44230f..ffe74f58482 100644 --- a/service/lexmodelsv2/deserializers.go +++ b/service/lexmodelsv2/deserializers.go @@ -2489,6 +2489,11 @@ func awsRestjson1_deserializeOpDocumentCreateSlotTypeOutput(v **CreateSlotTypeOu sv.Description = ptr.String(jtv) } + case "externalSourceSetting": + if err := awsRestjson1_deserializeDocumentExternalSourceSetting(&sv.ExternalSourceSetting, value); err != nil { + return err + } + case "localeId": if value != nil { jtv, ok := value.(string) @@ -5348,6 +5353,11 @@ func awsRestjson1_deserializeOpDocumentDescribeBotLocaleOutput(v **DescribeBotLo } } + case "recommendedActions": + if err := awsRestjson1_deserializeDocumentRecommendedActions(&sv.RecommendedActions, value); err != nil { + return err + } + case "slotTypesCount": if value != nil { jtv, ok := value.(json.Number) @@ -7267,6 +7277,11 @@ func awsRestjson1_deserializeOpDocumentDescribeSlotTypeOutput(v **DescribeSlotTy sv.Description = ptr.String(jtv) } + case "externalSourceSetting": + if err := awsRestjson1_deserializeDocumentExternalSourceSetting(&sv.ExternalSourceSetting, value); err != nil { + return err + } + case "lastUpdatedDateTime": if value != nil { switch jtv := value.(type) { @@ -11757,6 +11772,11 @@ func awsRestjson1_deserializeOpDocumentUpdateBotLocaleOutput(v **UpdateBotLocale } } + case "recommendedActions": + if err := awsRestjson1_deserializeDocumentRecommendedActions(&sv.RecommendedActions, value); err != nil { + return err + } + case "voiceSettings": if err := awsRestjson1_deserializeDocumentVoiceSettings(&sv.VoiceSettings, value); err != nil { return err @@ -13178,6 +13198,11 @@ func awsRestjson1_deserializeOpDocumentUpdateSlotTypeOutput(v **UpdateSlotTypeOu sv.Description = ptr.String(jtv) } + case "externalSourceSetting": + if err := awsRestjson1_deserializeDocumentExternalSourceSetting(&sv.ExternalSourceSetting, value); err != nil { + return err + } + case "lastUpdatedDateTime": if value != nil { switch jtv := value.(type) { @@ -16037,6 +16062,42 @@ func awsRestjson1_deserializeDocumentExportSummaryList(v *[]types.ExportSummary, return nil } +func awsRestjson1_deserializeDocumentExternalSourceSetting(v **types.ExternalSourceSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExternalSourceSetting + if *v == nil { + sv = &types.ExternalSourceSetting{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "grammarSlotTypeSetting": + if err := awsRestjson1_deserializeDocumentGrammarSlotTypeSetting(&sv.GrammarSlotTypeSetting, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentFailureReasons(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -16302,6 +16363,100 @@ func awsRestjson1_deserializeDocumentFulfillmentUpdatesSpecification(v **types.F return nil } +func awsRestjson1_deserializeDocumentGrammarSlotTypeSetting(v **types.GrammarSlotTypeSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.GrammarSlotTypeSetting + if *v == nil { + sv = &types.GrammarSlotTypeSetting{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "source": + if err := awsRestjson1_deserializeDocumentGrammarSlotTypeSource(&sv.Source, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentGrammarSlotTypeSource(v **types.GrammarSlotTypeSource, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.GrammarSlotTypeSource + if *v == nil { + sv = &types.GrammarSlotTypeSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "kmsKeyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyArn to be of type string, got %T instead", value) + } + sv.KmsKeyArn = ptr.String(jtv) + } + + case "s3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3BucketName to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) + } + + case "s3ObjectKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3ObjectPath to be of type string, got %T instead", value) + } + sv.S3ObjectKey = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentImageResponseCard(v **types.ImageResponseCard, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -17667,6 +17822,42 @@ func awsRestjson1_deserializeDocumentPromptSpecification(v **types.PromptSpecifi return nil } +func awsRestjson1_deserializeDocumentRecommendedActions(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RecommendedAction to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentRecommendedIntentSummary(v **types.RecommendedIntentSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18649,6 +18840,15 @@ func awsRestjson1_deserializeDocumentSlotTypeSummary(v **types.SlotTypeSummary, sv.ParentSlotTypeSignature = ptr.String(jtv) } + case "slotTypeCategory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SlotTypeCategory to be of type string, got %T instead", value) + } + sv.SlotTypeCategory = types.SlotTypeCategory(jtv) + } + case "slotTypeId": if value != nil { jtv, ok := value.(string) diff --git a/service/lexmodelsv2/serializers.go b/service/lexmodelsv2/serializers.go index d001baf834e..c36703e155e 100644 --- a/service/lexmodelsv2/serializers.go +++ b/service/lexmodelsv2/serializers.go @@ -1195,6 +1195,13 @@ func awsRestjson1_serializeOpDocumentCreateSlotTypeInput(v *CreateSlotTypeInput, ok.String(*v.Description) } + if v.ExternalSourceSetting != nil { + ok := object.Key("externalSourceSetting") + if err := awsRestjson1_serializeDocumentExternalSourceSetting(v.ExternalSourceSetting, ok); err != nil { + return err + } + } + if v.ParentSlotTypeSignature != nil { ok := object.Key("parentSlotTypeSignature") ok.String(*v.ParentSlotTypeSignature) @@ -5959,6 +5966,13 @@ func awsRestjson1_serializeOpDocumentUpdateSlotTypeInput(v *UpdateSlotTypeInput, ok.String(*v.Description) } + if v.ExternalSourceSetting != nil { + ok := object.Key("externalSourceSetting") + if err := awsRestjson1_serializeDocumentExternalSourceSetting(v.ExternalSourceSetting, ok); err != nil { + return err + } + } + if v.ParentSlotTypeSignature != nil { ok := object.Key("parentSlotTypeSignature") ok.String(*v.ParentSlotTypeSignature) @@ -6724,6 +6738,20 @@ func awsRestjson1_serializeDocumentExportSortBy(v *types.ExportSortBy, value smi return nil } +func awsRestjson1_serializeDocumentExternalSourceSetting(v *types.ExternalSourceSetting, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GrammarSlotTypeSetting != nil { + ok := object.Key("grammarSlotTypeSetting") + if err := awsRestjson1_serializeDocumentGrammarSlotTypeSetting(v.GrammarSlotTypeSetting, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentFilterValues(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -6840,6 +6868,42 @@ func awsRestjson1_serializeDocumentFulfillmentUpdatesSpecification(v *types.Fulf return nil } +func awsRestjson1_serializeDocumentGrammarSlotTypeSetting(v *types.GrammarSlotTypeSetting, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Source != nil { + ok := object.Key("source") + if err := awsRestjson1_serializeDocumentGrammarSlotTypeSource(v.Source, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentGrammarSlotTypeSource(v *types.GrammarSlotTypeSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KmsKeyArn != nil { + ok := object.Key("kmsKeyArn") + ok.String(*v.KmsKeyArn) + } + + if v.S3BucketName != nil { + ok := object.Key("s3BucketName") + ok.String(*v.S3BucketName) + } + + if v.S3ObjectKey != nil { + ok := object.Key("s3ObjectKey") + ok.String(*v.S3ObjectKey) + } + + return nil +} + func awsRestjson1_serializeDocumentImageResponseCard(v *types.ImageResponseCard, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/lexmodelsv2/types/enums.go b/service/lexmodelsv2/types/enums.go index 1cf259662b1..a2663fdc380 100644 --- a/service/lexmodelsv2/types/enums.go +++ b/service/lexmodelsv2/types/enums.go @@ -690,11 +690,32 @@ func (SlotSortAttribute) Values() []SlotSortAttribute { } } +type SlotTypeCategory string + +// Enum values for SlotTypeCategory +const ( + SlotTypeCategoryCustom SlotTypeCategory = "Custom" + SlotTypeCategoryExtended SlotTypeCategory = "Extended" + SlotTypeCategoryExternalGrammar SlotTypeCategory = "ExternalGrammar" +) + +// Values returns all known values for SlotTypeCategory. 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 (SlotTypeCategory) Values() []SlotTypeCategory { + return []SlotTypeCategory{ + "Custom", + "Extended", + "ExternalGrammar", + } +} + type SlotTypeFilterName string // Enum values for SlotTypeFilterName const ( - SlotTypeFilterNameSlotTypeName SlotTypeFilterName = "SlotTypeName" + SlotTypeFilterNameSlotTypeName SlotTypeFilterName = "SlotTypeName" + SlotTypeFilterNameExternalSourceType SlotTypeFilterName = "ExternalSourceType" ) // Values returns all known values for SlotTypeFilterName. Note that this can be @@ -703,6 +724,7 @@ const ( func (SlotTypeFilterName) Values() []SlotTypeFilterName { return []SlotTypeFilterName{ "SlotTypeName", + "ExternalSourceType", } } diff --git a/service/lexmodelsv2/types/types.go b/service/lexmodelsv2/types/types.go index abd7bc9050e..0b3e6c5601d 100644 --- a/service/lexmodelsv2/types/types.go +++ b/service/lexmodelsv2/types/types.go @@ -887,6 +887,15 @@ type ExportSummary struct { noSmithyDocumentSerde } +// Provides information about the external source of the slot type's definition. +type ExternalSourceSetting struct { + + // Settings required for a slot type based on a grammar that you provide. + GrammarSlotTypeSetting *GrammarSlotTypeSetting + + noSmithyDocumentSerde +} + // Determines if a Lambda function should be invoked for a specific intent. type FulfillmentCodeHookSettings struct { @@ -982,6 +991,35 @@ type FulfillmentUpdatesSpecification struct { noSmithyDocumentSerde } +// Settings requried for a slot type based on a grammar that you provide. +type GrammarSlotTypeSetting struct { + + // The source of the grammar used to create the slot type. + Source *GrammarSlotTypeSource + + noSmithyDocumentSerde +} + +// Describes the Amazon S3 bucket name and location for the grammar that is the +// source for the slot type. +type GrammarSlotTypeSource struct { + + // The name of the S3 bucket that contains the grammar source. + // + // This member is required. + S3BucketName *string + + // The path to the grammar in the S3 bucket. + // + // This member is required. + S3ObjectKey *string + + // The Amazon KMS key required to decrypt the contents of the grammar, if any. + KmsKeyArn *string + + noSmithyDocumentSerde +} + // A card that is shown to the user by a messaging platform. You define the // contents of the card, the card is displayed by the platform. When you use a // response card, the response from the user is constrained to the text associated @@ -1787,6 +1825,23 @@ type SlotTypeSummary struct { // slot type. ParentSlotTypeSignature *string + // Indicates the type of the slot type. + // + // * Custom - A slot type that you created + // using custom values. For more information, see Creating custom slot types + // (https://docs.aws.amazon.com/lexv2/latest/dg/custom-slot-types.html). + // + // * + // Extended - A slot type created by extending the AMAZON.AlphaNumeric built-in + // slot type. For more information, see AMAZON.AlphaNumeric + // (https://docs.aws.amazon.com/lexv2/latest/dg/built-in-slot-alphanumerice.html). + // + // * + // ExternalGrammar - A slot type using a custom GRXML grammar to define values. For + // more information, see Using a custom grammar slot type + // (https://docs.aws.amazon.com/lexv2/latest/dg/building-grxml.html). + SlotTypeCategory SlotTypeCategory + // The unique identifier assigned to the slot type. SlotTypeId *string @@ -2002,8 +2057,11 @@ type VoiceSettings struct { VoiceId *string // Indicates the type of Amazon Polly voice that Amazon Lex should use for voice - // interaction with the user. For more information, see Voices in Amazon Polly - // (https://docs.aws.amazon.com/polly/latest/dg/voicelist.html). + // interaction with the user. For more information, see the engine parameter of the + // SynthesizeSpeech operation + // (https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-Engine) + // in the Amazon Polly developer guide. If you do not specify a value, the default + // is standard. Engine VoiceEngine noSmithyDocumentSerde diff --git a/service/lexmodelsv2/validators.go b/service/lexmodelsv2/validators.go index 83373235928..5839e6150ec 100644 --- a/service/lexmodelsv2/validators.go +++ b/service/lexmodelsv2/validators.go @@ -2221,6 +2221,23 @@ func validateExportSortBy(v *types.ExportSortBy) error { } } +func validateExternalSourceSetting(v *types.ExternalSourceSetting) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ExternalSourceSetting"} + if v.GrammarSlotTypeSetting != nil { + if err := validateGrammarSlotTypeSetting(v.GrammarSlotTypeSetting); err != nil { + invalidParams.AddNested("GrammarSlotTypeSetting", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateFulfillmentCodeHookSettings(v *types.FulfillmentCodeHookSettings) error { if v == nil { return nil @@ -2312,6 +2329,41 @@ func validateFulfillmentUpdatesSpecification(v *types.FulfillmentUpdatesSpecific } } +func validateGrammarSlotTypeSetting(v *types.GrammarSlotTypeSetting) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GrammarSlotTypeSetting"} + if v.Source != nil { + if err := validateGrammarSlotTypeSource(v.Source); err != nil { + invalidParams.AddNested("Source", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateGrammarSlotTypeSource(v *types.GrammarSlotTypeSource) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GrammarSlotTypeSource"} + if v.S3BucketName == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3BucketName")) + } + if v.S3ObjectKey == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3ObjectKey")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateImageResponseCard(v *types.ImageResponseCard) error { if v == nil { return nil @@ -3771,9 +3823,7 @@ func validateOpCreateSlotTypeInput(v *CreateSlotTypeInput) error { invalidParams.AddNested("SlotTypeValues", err.(smithy.InvalidParamsError)) } } - if v.ValueSelectionSetting == nil { - invalidParams.Add(smithy.NewErrParamRequired("ValueSelectionSetting")) - } else if v.ValueSelectionSetting != nil { + if v.ValueSelectionSetting != nil { if err := validateSlotValueSelectionSetting(v.ValueSelectionSetting); err != nil { invalidParams.AddNested("ValueSelectionSetting", err.(smithy.InvalidParamsError)) } @@ -3787,6 +3837,11 @@ func validateOpCreateSlotTypeInput(v *CreateSlotTypeInput) error { if v.LocaleId == nil { invalidParams.Add(smithy.NewErrParamRequired("LocaleId")) } + if v.ExternalSourceSetting != nil { + if err := validateExternalSourceSetting(v.ExternalSourceSetting); err != nil { + invalidParams.AddNested("ExternalSourceSetting", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -5004,9 +5059,7 @@ func validateOpUpdateSlotTypeInput(v *UpdateSlotTypeInput) error { invalidParams.AddNested("SlotTypeValues", err.(smithy.InvalidParamsError)) } } - if v.ValueSelectionSetting == nil { - invalidParams.Add(smithy.NewErrParamRequired("ValueSelectionSetting")) - } else if v.ValueSelectionSetting != nil { + if v.ValueSelectionSetting != nil { if err := validateSlotValueSelectionSetting(v.ValueSelectionSetting); err != nil { invalidParams.AddNested("ValueSelectionSetting", err.(smithy.InvalidParamsError)) } @@ -5020,6 +5073,11 @@ func validateOpUpdateSlotTypeInput(v *UpdateSlotTypeInput) error { if v.LocaleId == nil { invalidParams.Add(smithy.NewErrParamRequired("LocaleId")) } + if v.ExternalSourceSetting != nil { + if err := validateExternalSourceSetting(v.ExternalSourceSetting); err != nil { + invalidParams.AddNested("ExternalSourceSetting", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/location/api_op_BatchEvaluateGeofences.go b/service/location/api_op_BatchEvaluateGeofences.go index d9ae7e7958b..1304d32105f 100644 --- a/service/location/api_op_BatchEvaluateGeofences.go +++ b/service/location/api_op_BatchEvaluateGeofences.go @@ -26,7 +26,9 @@ import ( // // The last // geofence that a device was observed within is tracked for 30 days after the most -// recent device position update. +// recent device position update. Geofence evaluation uses the given device +// position. It does not account for the optional Accuracy of a +// DevicePositionUpdate. func (c *Client) BatchEvaluateGeofences(ctx context.Context, params *BatchEvaluateGeofencesInput, optFns ...func(*Options)) (*BatchEvaluateGeofencesOutput, error) { if params == nil { params = &BatchEvaluateGeofencesInput{} diff --git a/service/location/api_op_BatchUpdateDevicePosition.go b/service/location/api_op_BatchUpdateDevicePosition.go index f428b7f1791..9915ad3a942 100644 --- a/service/location/api_op_BatchUpdateDevicePosition.go +++ b/service/location/api_op_BatchUpdateDevicePosition.go @@ -22,7 +22,14 @@ import ( // seconds, only one update per 30 seconds is stored for each unique device ID. // When PositionFiltering is set to DistanceBased filtering, location data is // stored and evaluated against linked geofence collections only if the device has -// moved more than 30 m (98.4 ft). +// moved more than 30 m (98.4 ft). When PositionFiltering is set to AccuracyBased +// filtering, location data is stored and evaluated against linked geofence +// collections only if the device has moved more than the measured accuracy. For +// example, if two consecutive updates from a device have a horizontal accuracy of +// 5 m and 10 m, the second update is neither stored or evaluated if the device has +// moved less than 15 m. If PositionFiltering is set to AccuracyBased filtering, +// Amazon Location uses the default value { "Horizontal": 0} when accuracy is not +// provided on a DevicePositionUpdate. func (c *Client) BatchUpdateDevicePosition(ctx context.Context, params *BatchUpdateDevicePositionInput, optFns ...func(*Options)) (*BatchUpdateDevicePositionOutput, error) { if params == nil { params = &BatchUpdateDevicePositionInput{} diff --git a/service/location/api_op_CreateGeofenceCollection.go b/service/location/api_op_CreateGeofenceCollection.go index d5c24f98629..0b60abfadee 100644 --- a/service/location/api_op_CreateGeofenceCollection.go +++ b/service/location/api_op_CreateGeofenceCollection.go @@ -45,13 +45,6 @@ type CreateGeofenceCollectionInput struct { // This member is required. CollectionName *string - // Specifies the pricing plan for the 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 - // An optional description for the geofence collection. Description *string @@ -60,6 +53,12 @@ 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/). + PricingPlan types.PricingPlan + // Specifies the data provider for the geofence collection. // // * Required value for diff --git a/service/location/api_op_CreateMap.go b/service/location/api_op_CreateMap.go index e3af864938a..b8b93d97b13 100644 --- a/service/location/api_op_CreateMap.go +++ b/service/location/api_op_CreateMap.go @@ -51,16 +51,15 @@ type CreateMapInput struct { // This member is required. MapName *string - // Specifies the pricing plan for your 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 - // 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/). + PricingPlan types.PricingPlan + // Applies one or more tags to the map resource. A tag is a key-value pair helps // manage, identify, search, and filter your resources by labelling them. Format: // "key" : "value" Restrictions: diff --git a/service/location/api_op_CreatePlaceIndex.go b/service/location/api_op_CreatePlaceIndex.go index d78f0856d63..1914a9393a3 100644 --- a/service/location/api_op_CreatePlaceIndex.go +++ b/service/location/api_op_CreatePlaceIndex.go @@ -16,7 +16,8 @@ import ( // Creates a place index resource in your AWS account. Use a place index resource // to geocode addresses and other text queries by using the SearchPlaceIndexForText // operation, and reverse geocode coordinates by using the -// SearchPlaceIndexForPosition operation. +// SearchPlaceIndexForPosition operation, and enable autosuggestions by using the +// SearchPlaceIndexForSuggestions operation. func (c *Client) CreatePlaceIndex(ctx context.Context, params *CreatePlaceIndexInput, optFns ...func(*Options)) (*CreatePlaceIndexOutput, error) { if params == nil { params = &CreatePlaceIndexInput{} @@ -77,19 +78,18 @@ type CreatePlaceIndexInput struct { // This member is required. IndexName *string - // Specifies the pricing plan for your 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 - // Specifies the data storage option requesting Places. DataSourceConfiguration *types.DataSourceConfiguration // 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/). + PricingPlan types.PricingPlan + // Applies one or more tags to the place index resource. A tag is a key-value pair // that helps you manage, identify, search, and filter your resources. Format: // "key" : "value" Restrictions: diff --git a/service/location/api_op_CreateRouteCalculator.go b/service/location/api_op_CreateRouteCalculator.go index 10bdc59975f..4d2806e7e6b 100644 --- a/service/location/api_op_CreateRouteCalculator.go +++ b/service/location/api_op_CreateRouteCalculator.go @@ -76,16 +76,15 @@ type CreateRouteCalculatorInput struct { // This member is required. DataSource *string - // Specifies the pricing plan for your 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 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/). + PricingPlan types.PricingPlan + // Applies one or more tags to the route calculator resource. A tag is a key-value // pair helps manage, identify, search, and filter your resources by labelling // them. diff --git a/service/location/api_op_CreateTracker.go b/service/location/api_op_CreateTracker.go index e6cf41cbf39..5d8118721e0 100644 --- a/service/location/api_op_CreateTracker.go +++ b/service/location/api_op_CreateTracker.go @@ -32,13 +32,6 @@ func (c *Client) CreateTracker(ctx context.Context, params *CreateTrackerInput, type CreateTrackerInput struct { - // Specifies the pricing plan for the 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 name for the tracker resource. Requirements: // // * Contain only alphanumeric @@ -76,10 +69,25 @@ type CreateTrackerInput struct { // positions to paginate through. Distance-based filtering can also reduce the // effects of GPS noise when displaying device trajectories on a map. // + // * + // AccuracyBased - If the device has moved less than the measured accuracy, + // location updates are ignored. For example, if two consecutive updates from a + // device have a horizontal accuracy of 5 m and 10 m, the second update is ignored + // if the device has moved less than 15 m. Ignored location updates are neither + // evaluated against linked geofence collections, nor stored. This can reduce the + // effects of GPS noise when displaying device trajectories on a map, and can help + // control your costs by reducing the number of geofence evaluations. + // // This field // 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/). + PricingPlan types.PricingPlan + // Specifies the data provider for the tracker resource. // // * Required value for the diff --git a/service/location/api_op_GetDevicePosition.go b/service/location/api_op_GetDevicePosition.go index 088af2caa2f..8fd542addaa 100644 --- a/service/location/api_op_GetDevicePosition.go +++ b/service/location/api_op_GetDevicePosition.go @@ -7,6 +7,7 @@ import ( "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" @@ -65,9 +66,15 @@ type GetDevicePositionOutput struct { // This member is required. SampleTime *time.Time + // The accuracy of the device position. + Accuracy *types.PositionalAccuracy + // The device whose position you retrieved. DeviceId *string + // The properties associated with the position. + PositionProperties map[string]string + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/location/api_op_SearchPlaceIndexForSuggestions.go b/service/location/api_op_SearchPlaceIndexForSuggestions.go new file mode 100644 index 00000000000..318955687e3 --- /dev/null +++ b/service/location/api_op_SearchPlaceIndexForSuggestions.go @@ -0,0 +1,216 @@ +// 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" +) + +// Generates suggestions for addresses and points of interest based on partial or +// misspelled free-form text. This operation is also known as autocomplete, +// autosuggest, or fuzzy matching. Optional parameters let you narrow your search +// results by bounding box or country, or bias your search toward a specific +// position on the globe. You can search for suggested place names near a specified +// position by using BiasPosition, or filter results within a bounding box by using +// FilterBBox. These parameters are mutually exclusive; using both BiasPosition and +// FilterBBox in the same command returns an error. +func (c *Client) SearchPlaceIndexForSuggestions(ctx context.Context, params *SearchPlaceIndexForSuggestionsInput, optFns ...func(*Options)) (*SearchPlaceIndexForSuggestionsOutput, error) { + if params == nil { + params = &SearchPlaceIndexForSuggestionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SearchPlaceIndexForSuggestions", params, optFns, c.addOperationSearchPlaceIndexForSuggestionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SearchPlaceIndexForSuggestionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SearchPlaceIndexForSuggestionsInput struct { + + // The name of the place index resource you want to use for the search. + // + // This member is required. + IndexName *string + + // The free-form partial text to use to generate place suggestions. For example, + // eiffel tow. + // + // This member is required. + Text *string + + // An optional parameter that indicates a preference for place suggestions that are + // closer to a specified position. If provided, this parameter must contain a pair + // of numbers. The first number represents the X coordinate, or longitude; the + // second number represents the Y coordinate, or latitude. For example, [-123.1174, + // 49.2847] represents the position with longitude -123.1174 and latitude 49.2847. + // BiasPosition and FilterBBox are mutually exclusive. Specifying both options + // results in an error. + BiasPosition []float64 + + // An optional parameter that limits the search results by returning only + // suggestions within a specified bounding box. If provided, this parameter must + // contain a total of four consecutive numbers in two pairs. The first pair of + // numbers represents the X and Y coordinates (longitude and latitude, + // respectively) of the southwest corner of the bounding box; the second pair of + // numbers represents the X and Y coordinates (longitude and latitude, + // respectively) of the northeast corner of the bounding box. For example, + // [-12.7935, -37.4835, -12.0684, -36.9542] represents a bounding box where the + // southwest corner has longitude -12.7935 and latitude -37.4835, and the northeast + // corner has longitude -12.0684 and latitude -36.9542. FilterBBox and BiasPosition + // are mutually exclusive. Specifying both options results in an error. + FilterBBox []float64 + + // An optional parameter that limits the search results by returning only + // suggestions within the provided list of countries. + // + // * Use the ISO 3166 + // (https://www.iso.org/iso-3166-country-codes.html) 3-digit country code. For + // example, Australia uses three upper-case characters: AUS. + FilterCountries []string + + // The preferred language used to return results. The value must be a valid BCP 47 + // (https://tools.ietf.org/search/bcp47) language tag, for example, en for English. + // This setting affects the languages used in the results. It does not change which + // results are returned. If the language is not specified, or not supported for a + // particular result, the partner automatically chooses a language for the result. + // Used only when the partner selected is Here. + Language *string + + // An optional parameter. The maximum number of results returned per request. The + // default: 5 + MaxResults *int32 + + noSmithyDocumentSerde +} + +type SearchPlaceIndexForSuggestionsOutput struct { + + // A list of place suggestions that best match the search text. + // + // This member is required. + Results []types.SearchForSuggestionsResult + + // Contains a summary of the request. Echoes the input values for BiasPosition, + // FilterBBox, FilterCountries, Language, MaxResults, and Text. Also includes the + // DataSource of the place index. + // + // This member is required. + Summary *types.SearchPlaceIndexForSuggestionsSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSearchPlaceIndexForSuggestionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpSearchPlaceIndexForSuggestions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpSearchPlaceIndexForSuggestions{}, 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_opSearchPlaceIndexForSuggestionsMiddleware(stack); err != nil { + return err + } + if err = addOpSearchPlaceIndexForSuggestionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSearchPlaceIndexForSuggestions(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_opSearchPlaceIndexForSuggestionsMiddleware struct { +} + +func (*endpointPrefix_opSearchPlaceIndexForSuggestionsMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opSearchPlaceIndexForSuggestionsMiddleware) 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 = "places." + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opSearchPlaceIndexForSuggestionsMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opSearchPlaceIndexForSuggestionsMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opSearchPlaceIndexForSuggestions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "geo", + OperationName: "SearchPlaceIndexForSuggestions", + } +} diff --git a/service/location/api_op_UpdateTracker.go b/service/location/api_op_UpdateTracker.go index 2c7b2911947..69f89f48185 100644 --- a/service/location/api_op_UpdateTracker.go +++ b/service/location/api_op_UpdateTracker.go @@ -50,9 +50,18 @@ type UpdateTrackerInput struct { // * DistanceBased - If the device has moved less than 30 m (98.4 ft), // location updates are ignored. Location updates within this distance are neither // evaluated against linked geofence collections, nor stored. This helps control - // costs by reducing the number of geofence evaluations and device positions to - // retrieve. Distance-based filtering can also reduce the jitter effect when - // displaying device trajectory on a map. + // costs by reducing the number of geofence evaluations and historical device + // positions to paginate through. Distance-based filtering can also reduce the + // effects of GPS noise when displaying device trajectories on a map. + // + // * + // AccuracyBased - If the device has moved less than the measured accuracy, + // location updates are ignored. For example, if two consecutive updates from a + // device have a horizontal accuracy of 5 m and 10 m, the second update is ignored + // if the device has moved less than 15 m. Ignored location updates are neither + // evaluated against linked geofence collections, nor stored. This helps educe the + // effects of GPS noise when displaying device trajectories on a map, and can help + // control costs by reducing the number of geofence evaluations. PositionFiltering types.PositionFiltering // Updates the pricing plan for the tracker resource. For more information about diff --git a/service/location/deserializers.go b/service/location/deserializers.go index 640b8654e4f..a724bf68397 100644 --- a/service/location/deserializers.go +++ b/service/location/deserializers.go @@ -4077,6 +4077,11 @@ func awsRestjson1_deserializeOpDocumentGetDevicePositionOutput(v **GetDevicePosi for key, value := range shape { switch key { + case "Accuracy": + if err := awsRestjson1_deserializeDocumentPositionalAccuracy(&sv.Accuracy, value); err != nil { + return err + } + case "DeviceId": if value != nil { jtv, ok := value.(string) @@ -4091,6 +4096,11 @@ func awsRestjson1_deserializeOpDocumentGetDevicePositionOutput(v **GetDevicePosi return err } + case "PositionProperties": + if err := awsRestjson1_deserializeDocumentPropertyMap(&sv.PositionProperties, value); err != nil { + return err + } + case "ReceivedTime": if value != nil { jtv, ok := value.(string) @@ -6866,6 +6876,170 @@ func awsRestjson1_deserializeOpDocumentSearchPlaceIndexForPositionOutput(v **Sea return nil } +type awsRestjson1_deserializeOpSearchPlaceIndexForSuggestions struct { +} + +func (*awsRestjson1_deserializeOpSearchPlaceIndexForSuggestions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpSearchPlaceIndexForSuggestions) HandleDeserialize(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_deserializeOpErrorSearchPlaceIndexForSuggestions(response, &metadata) + } + output := &SearchPlaceIndexForSuggestionsOutput{} + 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_deserializeOpDocumentSearchPlaceIndexForSuggestionsOutput(&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_deserializeOpErrorSearchPlaceIndexForSuggestions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentSearchPlaceIndexForSuggestionsOutput(v **SearchPlaceIndexForSuggestionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SearchPlaceIndexForSuggestionsOutput + if *v == nil { + sv = &SearchPlaceIndexForSuggestionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Results": + if err := awsRestjson1_deserializeDocumentSearchForSuggestionsResultList(&sv.Results, value); err != nil { + return err + } + + case "Summary": + if err := awsRestjson1_deserializeDocumentSearchPlaceIndexForSuggestionsSummary(&sv.Summary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpSearchPlaceIndexForText struct { } @@ -9443,6 +9617,11 @@ func awsRestjson1_deserializeDocumentDevicePosition(v **types.DevicePosition, va for key, value := range shape { switch key { + case "Accuracy": + if err := awsRestjson1_deserializeDocumentPositionalAccuracy(&sv.Accuracy, value); err != nil { + return err + } + case "DeviceId": if value != nil { jtv, ok := value.(string) @@ -9457,6 +9636,11 @@ func awsRestjson1_deserializeDocumentDevicePosition(v **types.DevicePosition, va return err } + case "PositionProperties": + if err := awsRestjson1_deserializeDocumentPropertyMap(&sv.PositionProperties, value); err != nil { + return err + } + case "ReceivedTime": if value != nil { jtv, ok := value.(string) @@ -9909,6 +10093,11 @@ func awsRestjson1_deserializeDocumentListDevicePositionsResponseEntry(v **types. for key, value := range shape { switch key { + case "Accuracy": + if err := awsRestjson1_deserializeDocumentPositionalAccuracy(&sv.Accuracy, value); err != nil { + return err + } + case "DeviceId": if value != nil { jtv, ok := value.(string) @@ -9923,6 +10112,11 @@ func awsRestjson1_deserializeDocumentListDevicePositionsResponseEntry(v **types. return err } + case "PositionProperties": + if err := awsRestjson1_deserializeDocumentPropertyMap(&sv.PositionProperties, value); err != nil { + return err + } + case "SampleTime": if value != nil { jtv, ok := value.(string) @@ -10996,6 +11190,107 @@ func awsRestjson1_deserializeDocumentPosition(v *[]float64, value interface{}) e return nil } +func awsRestjson1_deserializeDocumentPositionalAccuracy(v **types.PositionalAccuracy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PositionalAccuracy + if *v == nil { + sv = &types.PositionalAccuracy{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Horizontal": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Horizontal = 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.Horizontal = ptr.Float64(f64) + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPropertyMap(v *map[string]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11140,6 +11435,80 @@ func awsRestjson1_deserializeDocumentSearchForPositionResultList(v *[]types.Sear return nil } +func awsRestjson1_deserializeDocumentSearchForSuggestionsResult(v **types.SearchForSuggestionsResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SearchForSuggestionsResult + if *v == nil { + sv = &types.SearchForSuggestionsResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSearchForSuggestionsResultList(v *[]types.SearchForSuggestionsResult, 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.SearchForSuggestionsResult + if *v == nil { + cv = []types.SearchForSuggestionsResult{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SearchForSuggestionsResult + destAddr := &col + if err := awsRestjson1_deserializeDocumentSearchForSuggestionsResult(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentSearchForTextResult(v **types.SearchForTextResult, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11345,6 +11714,92 @@ func awsRestjson1_deserializeDocumentSearchPlaceIndexForPositionSummary(v **type return nil } +func awsRestjson1_deserializeDocumentSearchPlaceIndexForSuggestionsSummary(v **types.SearchPlaceIndexForSuggestionsSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SearchPlaceIndexForSuggestionsSummary + if *v == nil { + sv = &types.SearchPlaceIndexForSuggestionsSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BiasPosition": + if err := awsRestjson1_deserializeDocumentPosition(&sv.BiasPosition, value); err != nil { + return err + } + + 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 "FilterBBox": + if err := awsRestjson1_deserializeDocumentBoundingBox(&sv.FilterBBox, value); err != nil { + return err + } + + case "FilterCountries": + if err := awsRestjson1_deserializeDocumentCountryCodeList(&sv.FilterCountries, value); err != nil { + return err + } + + case "Language": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageTag to be of type string, got %T instead", value) + } + sv.Language = ptr.String(jtv) + } + + case "MaxResults": + 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.MaxResults = ptr.Int32(int32(i64)) + } + + case "Text": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Text = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSearchPlaceIndexForTextSummary(v **types.SearchPlaceIndexForTextSummary, 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 38ef0a35c57..08345c5a595 100644 --- a/service/location/generated.json +++ b/service/location/generated.json @@ -49,6 +49,7 @@ "api_op_ListTrackers.go", "api_op_PutGeofence.go", "api_op_SearchPlaceIndexForPosition.go", + "api_op_SearchPlaceIndexForSuggestions.go", "api_op_SearchPlaceIndexForText.go", "api_op_TagResource.go", "api_op_UntagResource.go", diff --git a/service/location/serializers.go b/service/location/serializers.go index 6f46641f7bb..5410c6c9d95 100644 --- a/service/location/serializers.go +++ b/service/location/serializers.go @@ -3233,6 +3233,118 @@ func awsRestjson1_serializeOpDocumentSearchPlaceIndexForPositionInput(v *SearchP return nil } +type awsRestjson1_serializeOpSearchPlaceIndexForSuggestions struct { +} + +func (*awsRestjson1_serializeOpSearchPlaceIndexForSuggestions) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchPlaceIndexForSuggestions) 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.(*SearchPlaceIndexForSuggestionsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/places/v0/indexes/{IndexName}/search/suggestions") + 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_serializeOpHttpBindingsSearchPlaceIndexForSuggestionsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchPlaceIndexForSuggestionsInput(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_serializeOpHttpBindingsSearchPlaceIndexForSuggestionsInput(v *SearchPlaceIndexForSuggestionsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.IndexName == nil || len(*v.IndexName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member IndexName must not be empty")} + } + if v.IndexName != nil { + if err := encoder.SetURI("IndexName").String(*v.IndexName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchPlaceIndexForSuggestionsInput(v *SearchPlaceIndexForSuggestionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BiasPosition != nil { + ok := object.Key("BiasPosition") + if err := awsRestjson1_serializeDocumentPosition(v.BiasPosition, ok); err != nil { + return err + } + } + + if v.FilterBBox != nil { + ok := object.Key("FilterBBox") + if err := awsRestjson1_serializeDocumentBoundingBox(v.FilterBBox, ok); err != nil { + return err + } + } + + if v.FilterCountries != nil { + ok := object.Key("FilterCountries") + if err := awsRestjson1_serializeDocumentCountryCodeList(v.FilterCountries, ok); err != nil { + return err + } + } + + if v.Language != nil { + ok := object.Key("Language") + ok.String(*v.Language) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.Text != nil { + ok := object.Key("Text") + ok.String(*v.Text) + } + + return nil +} + type awsRestjson1_serializeOpSearchPlaceIndexForText struct { } @@ -4086,6 +4198,13 @@ func awsRestjson1_serializeDocumentDevicePositionUpdate(v *types.DevicePositionU object := value.Object() defer object.Close() + if v.Accuracy != nil { + ok := object.Key("Accuracy") + if err := awsRestjson1_serializeDocumentPositionalAccuracy(v.Accuracy, ok); err != nil { + return err + } + } + if v.DeviceId != nil { ok := object.Key("DeviceId") ok.String(*v.DeviceId) @@ -4098,6 +4217,13 @@ func awsRestjson1_serializeDocumentDevicePositionUpdate(v *types.DevicePositionU } } + if v.PositionProperties != nil { + ok := object.Key("PositionProperties") + if err := awsRestjson1_serializeDocumentPropertyMap(v.PositionProperties, ok); err != nil { + return err + } + } + if v.SampleTime != nil { ok := object.Key("SampleTime") ok.String(smithytime.FormatDateTime(*v.SampleTime)) @@ -4212,6 +4338,42 @@ func awsRestjson1_serializeDocumentPosition(v []float64, value smithyjson.Value) return nil } +func awsRestjson1_serializeDocumentPositionalAccuracy(v *types.PositionalAccuracy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Horizontal != nil { + ok := object.Key("Horizontal") + switch { + case math.IsNaN(*v.Horizontal): + ok.String("NaN") + + case math.IsInf(*v.Horizontal, 1): + ok.String("Infinity") + + case math.IsInf(*v.Horizontal, -1): + ok.String("-Infinity") + + default: + ok.Double(*v.Horizontal) + + } + } + + return nil +} + +func awsRestjson1_serializeDocumentPropertyMap(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/location/types/types.go b/service/location/types/types.go index 943f9d92749..08c139e6920 100644 --- a/service/location/types/types.go +++ b/service/location/types/types.go @@ -332,9 +332,15 @@ type DevicePosition struct { // This member is required. SampleTime *time.Time + // The accuracy of the device position. + Accuracy *PositionalAccuracy + // The device whose position you retrieved. DeviceId *string + // The properties associated with the position. + PositionProperties map[string]string + noSmithyDocumentSerde } @@ -360,6 +366,14 @@ type DevicePositionUpdate struct { // This member is required. SampleTime *time.Time + // The accuracy of the device position. + Accuracy *PositionalAccuracy + + // Associates one of more properties with the position update. A property is a + // key-value pair stored with the position update and added to any geofence event + // the update may trigger. Format: "key" : "value" + PositionProperties map[string]string + noSmithyDocumentSerde } @@ -485,6 +499,12 @@ type ListDevicePositionsResponseEntry struct { // This member is required. SampleTime *time.Time + // The accuracy of the device position. + Accuracy *PositionalAccuracy + + // The properties associated with the position. + PositionProperties map[string]string + noSmithyDocumentSerde } @@ -891,6 +911,18 @@ type PlaceGeometry struct { noSmithyDocumentSerde } +// Defines the level of certainty of the position. +type PositionalAccuracy struct { + + // Estimated maximum distance, in meters, between the measured position and the + // true position of a device, along the Earth's surface. + // + // This member is required. + Horizontal *float64 + + noSmithyDocumentSerde +} + // Contains a search result from a position search query that is run on a place // index resource. type SearchForPositionResult struct { @@ -910,6 +942,18 @@ type SearchForPositionResult struct { noSmithyDocumentSerde } +// Contains a place suggestion resulting from a place suggestion query that is run +// on a place index resource. +type SearchForSuggestionsResult struct { + + // The text of the place suggestion, typically formatted as an address string. + // + // This member is required. + Text *string + + noSmithyDocumentSerde +} + // Contains a search result from a text search query that is run on a place index // resource. type SearchForTextResult struct { @@ -968,6 +1012,52 @@ type SearchPlaceIndexForPositionSummary struct { noSmithyDocumentSerde } +// A summary of the request sent by using SearchPlaceIndexForSuggestions. +type SearchPlaceIndexForSuggestionsSummary struct { + + // The geospatial data provider attached to the place index resource specified in + // the request. Values can be one of the following: + // + // * 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 free-form partial text input specified in the request. + // + // This member is required. + Text *string + + // Contains the coordinates for the optional bias position specified in the + // request. This parameter contains a pair of numbers. The first number represents + // the X coordinate, or longitude; the second number represents the Y coordinate, + // or latitude. For example, [-123.1174, 49.2847] represents the position with + // longitude -123.1174 and latitude 49.2847. + BiasPosition []float64 + + // Contains the coordinates for the optional bounding box specified in the request. + FilterBBox []float64 + + // Contains the optional country filter specified in the request. + FilterCountries []string + + // The preferred language used to return results. Matches the language in the + // request. The value is a valid BCP 47 (https://tools.ietf.org/search/bcp47) + // language tag, for example, en for English. + Language *string + + // Contains the optional result count limit specified in the request. + MaxResults *int32 + + noSmithyDocumentSerde +} + // A summary of the request sent by using SearchPlaceIndexForText. type SearchPlaceIndexForTextSummary struct { @@ -991,7 +1081,10 @@ type SearchPlaceIndexForTextSummary struct { Text *string // Contains the coordinates for the optional bias position specified in the - // request. + // request. This parameter contains a pair of numbers. The first number represents + // the X coordinate, or longitude; the second number represents the Y coordinate, + // or latitude. For example, [-123.1174, 49.2847] represents the position with + // longitude -123.1174 and latitude 49.2847. BiasPosition []float64 // Contains the coordinates for the optional bounding box specified in the request. diff --git a/service/location/validators.go b/service/location/validators.go index d10f2c2d348..d693bb46802 100644 --- a/service/location/validators.go +++ b/service/location/validators.go @@ -750,6 +750,26 @@ func (m *validateOpSearchPlaceIndexForPosition) HandleInitialize(ctx context.Con return next.HandleInitialize(ctx, in) } +type validateOpSearchPlaceIndexForSuggestions struct { +} + +func (*validateOpSearchPlaceIndexForSuggestions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSearchPlaceIndexForSuggestions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SearchPlaceIndexForSuggestionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSearchPlaceIndexForSuggestionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpSearchPlaceIndexForText struct { } @@ -1058,6 +1078,10 @@ func addOpSearchPlaceIndexForPositionValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpSearchPlaceIndexForPosition{}, middleware.After) } +func addOpSearchPlaceIndexForSuggestionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSearchPlaceIndexForSuggestions{}, middleware.After) +} + func addOpSearchPlaceIndexForTextValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpSearchPlaceIndexForText{}, middleware.After) } @@ -1139,6 +1163,11 @@ func validateDevicePositionUpdate(v *types.DevicePositionUpdate) error { if v.Position == nil { invalidParams.Add(smithy.NewErrParamRequired("Position")) } + if v.Accuracy != nil { + if err := validatePositionalAccuracy(v.Accuracy); err != nil { + invalidParams.AddNested("Accuracy", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1178,6 +1207,21 @@ func validateMapConfiguration(v *types.MapConfiguration) error { } } +func validatePositionalAccuracy(v *types.PositionalAccuracy) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PositionalAccuracy"} + if v.Horizontal == nil { + invalidParams.Add(smithy.NewErrParamRequired("Horizontal")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpAssociateTrackerConsumerInput(v *AssociateTrackerConsumerInput) error { if v == nil { return nil @@ -1345,9 +1389,6 @@ func validateOpCreateGeofenceCollectionInput(v *CreateGeofenceCollectionInput) e if v.CollectionName == nil { invalidParams.Add(smithy.NewErrParamRequired("CollectionName")) } - if len(v.PricingPlan) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("PricingPlan")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1370,9 +1411,6 @@ func validateOpCreateMapInput(v *CreateMapInput) error { invalidParams.AddNested("Configuration", err.(smithy.InvalidParamsError)) } } - if len(v.PricingPlan) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("PricingPlan")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1391,9 +1429,6 @@ func validateOpCreatePlaceIndexInput(v *CreatePlaceIndexInput) error { if v.DataSource == nil { invalidParams.Add(smithy.NewErrParamRequired("DataSource")) } - if len(v.PricingPlan) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("PricingPlan")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1412,9 +1447,6 @@ func validateOpCreateRouteCalculatorInput(v *CreateRouteCalculatorInput) error { if v.DataSource == nil { invalidParams.Add(smithy.NewErrParamRequired("DataSource")) } - if len(v.PricingPlan) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("PricingPlan")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1430,9 +1462,6 @@ func validateOpCreateTrackerInput(v *CreateTrackerInput) error { if v.TrackerName == nil { invalidParams.Add(smithy.NewErrParamRequired("TrackerName")) } - if len(v.PricingPlan) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("PricingPlan")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1839,6 +1868,24 @@ func validateOpSearchPlaceIndexForPositionInput(v *SearchPlaceIndexForPositionIn } } +func validateOpSearchPlaceIndexForSuggestionsInput(v *SearchPlaceIndexForSuggestionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SearchPlaceIndexForSuggestionsInput"} + if v.IndexName == nil { + invalidParams.Add(smithy.NewErrParamRequired("IndexName")) + } + if v.Text == nil { + invalidParams.Add(smithy.NewErrParamRequired("Text")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpSearchPlaceIndexForTextInput(v *SearchPlaceIndexForTextInput) error { if v == nil { return nil diff --git a/service/lookoutmetrics/api_op_ListAnomalyGroupRelatedMetrics.go b/service/lookoutmetrics/api_op_ListAnomalyGroupRelatedMetrics.go new file mode 100644 index 00000000000..532d84cdb3c --- /dev/null +++ b/service/lookoutmetrics/api_op_ListAnomalyGroupRelatedMetrics.go @@ -0,0 +1,232 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package lookoutmetrics + +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/lookoutmetrics/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of measures that are potential causes or effects of an anomaly +// group. +func (c *Client) ListAnomalyGroupRelatedMetrics(ctx context.Context, params *ListAnomalyGroupRelatedMetricsInput, optFns ...func(*Options)) (*ListAnomalyGroupRelatedMetricsOutput, error) { + if params == nil { + params = &ListAnomalyGroupRelatedMetricsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListAnomalyGroupRelatedMetrics", params, optFns, c.addOperationListAnomalyGroupRelatedMetricsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListAnomalyGroupRelatedMetricsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListAnomalyGroupRelatedMetricsInput struct { + + // The Amazon Resource Name (ARN) of the anomaly detector. + // + // This member is required. + AnomalyDetectorArn *string + + // The ID of the anomaly group. + // + // This member is required. + AnomalyGroupId *string + + // The maximum number of results to return. + MaxResults int32 + + // Specify the pagination token that's returned by a previous request to retrieve + // the next page of results. + NextToken *string + + // Filter for potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP) or downstream effects + // (EFFECT_OF_INPUT_ANOMALY_GROUP) of the anomaly group. + RelationshipTypeFilter types.RelationshipType + + noSmithyDocumentSerde +} + +type ListAnomalyGroupRelatedMetricsOutput struct { + + // Aggregated details about the measures contributing to the anomaly group, and the + // measures potentially impacted by the anomaly group. + InterMetricImpactList []types.InterMetricImpactDetails + + // The pagination token that's included if more results are available. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListAnomalyGroupRelatedMetricsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListAnomalyGroupRelatedMetrics{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListAnomalyGroupRelatedMetrics{}, 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 = addOpListAnomalyGroupRelatedMetricsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListAnomalyGroupRelatedMetrics(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 +} + +// ListAnomalyGroupRelatedMetricsAPIClient is a client that implements the +// ListAnomalyGroupRelatedMetrics operation. +type ListAnomalyGroupRelatedMetricsAPIClient interface { + ListAnomalyGroupRelatedMetrics(context.Context, *ListAnomalyGroupRelatedMetricsInput, ...func(*Options)) (*ListAnomalyGroupRelatedMetricsOutput, error) +} + +var _ ListAnomalyGroupRelatedMetricsAPIClient = (*Client)(nil) + +// ListAnomalyGroupRelatedMetricsPaginatorOptions is the paginator options for +// ListAnomalyGroupRelatedMetrics +type ListAnomalyGroupRelatedMetricsPaginatorOptions struct { + // The maximum number of results to return. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListAnomalyGroupRelatedMetricsPaginator is a paginator for +// ListAnomalyGroupRelatedMetrics +type ListAnomalyGroupRelatedMetricsPaginator struct { + options ListAnomalyGroupRelatedMetricsPaginatorOptions + client ListAnomalyGroupRelatedMetricsAPIClient + params *ListAnomalyGroupRelatedMetricsInput + nextToken *string + firstPage bool +} + +// NewListAnomalyGroupRelatedMetricsPaginator returns a new +// ListAnomalyGroupRelatedMetricsPaginator +func NewListAnomalyGroupRelatedMetricsPaginator(client ListAnomalyGroupRelatedMetricsAPIClient, params *ListAnomalyGroupRelatedMetricsInput, optFns ...func(*ListAnomalyGroupRelatedMetricsPaginatorOptions)) *ListAnomalyGroupRelatedMetricsPaginator { + if params == nil { + params = &ListAnomalyGroupRelatedMetricsInput{} + } + + options := ListAnomalyGroupRelatedMetricsPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListAnomalyGroupRelatedMetricsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListAnomalyGroupRelatedMetricsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListAnomalyGroupRelatedMetrics page. +func (p *ListAnomalyGroupRelatedMetricsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListAnomalyGroupRelatedMetricsOutput, 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.ListAnomalyGroupRelatedMetrics(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_opListAnomalyGroupRelatedMetrics(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "lookoutmetrics", + OperationName: "ListAnomalyGroupRelatedMetrics", + } +} diff --git a/service/lookoutmetrics/deserializers.go b/service/lookoutmetrics/deserializers.go index b3d9a3eb63d..d26047d3aa2 100644 --- a/service/lookoutmetrics/deserializers.go +++ b/service/lookoutmetrics/deserializers.go @@ -2582,6 +2582,174 @@ func awsRestjson1_deserializeOpDocumentListAnomalyDetectorsOutput(v **ListAnomal return nil } +type awsRestjson1_deserializeOpListAnomalyGroupRelatedMetrics struct { +} + +func (*awsRestjson1_deserializeOpListAnomalyGroupRelatedMetrics) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListAnomalyGroupRelatedMetrics) HandleDeserialize(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_deserializeOpErrorListAnomalyGroupRelatedMetrics(response, &metadata) + } + output := &ListAnomalyGroupRelatedMetricsOutput{} + 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_deserializeOpDocumentListAnomalyGroupRelatedMetricsOutput(&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_deserializeOpErrorListAnomalyGroupRelatedMetrics(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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 + + } +} + +func awsRestjson1_deserializeOpDocumentListAnomalyGroupRelatedMetricsOutput(v **ListAnomalyGroupRelatedMetricsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListAnomalyGroupRelatedMetricsOutput + if *v == nil { + sv = &ListAnomalyGroupRelatedMetricsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "InterMetricImpactList": + if err := awsRestjson1_deserializeDocumentInterMetricImpactList(&sv.InterMetricImpactList, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpListAnomalyGroupSummaries struct { } @@ -5782,6 +5950,132 @@ func awsRestjson1_deserializeDocumentHistoricalDataPathList(v *[]string, value i return nil } +func awsRestjson1_deserializeDocumentInterMetricImpactDetails(v **types.InterMetricImpactDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InterMetricImpactDetails + if *v == nil { + sv = &types.InterMetricImpactDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AnomalyGroupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UUID to be of type string, got %T instead", value) + } + sv.AnomalyGroupId = ptr.String(jtv) + } + + case "ContributionPercentage": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.ContributionPercentage = 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.ContributionPercentage = ptr.Float64(f64) + + default: + return fmt.Errorf("expected MetricChangePercentage to be a JSON Number, got %T instead", value) + + } + } + + case "MetricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MetricName to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + case "RelationshipType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RelationshipType to be of type string, got %T instead", value) + } + sv.RelationshipType = types.RelationshipType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentInterMetricImpactList(v *[]types.InterMetricImpactDetails, 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.InterMetricImpactDetails + if *v == nil { + cv = []types.InterMetricImpactDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.InterMetricImpactDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentInterMetricImpactDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/lookoutmetrics/generated.json b/service/lookoutmetrics/generated.json index 932d12a7c22..15553883eca 100644 --- a/service/lookoutmetrics/generated.json +++ b/service/lookoutmetrics/generated.json @@ -23,6 +23,7 @@ "api_op_GetSampleData.go", "api_op_ListAlerts.go", "api_op_ListAnomalyDetectors.go", + "api_op_ListAnomalyGroupRelatedMetrics.go", "api_op_ListAnomalyGroupSummaries.go", "api_op_ListAnomalyGroupTimeSeries.go", "api_op_ListMetricSets.go", diff --git a/service/lookoutmetrics/serializers.go b/service/lookoutmetrics/serializers.go index 0b9555727c9..af0fd0ba7d0 100644 --- a/service/lookoutmetrics/serializers.go +++ b/service/lookoutmetrics/serializers.go @@ -1269,6 +1269,94 @@ func awsRestjson1_serializeOpDocumentListAnomalyDetectorsInput(v *ListAnomalyDet return nil } +type awsRestjson1_serializeOpListAnomalyGroupRelatedMetrics struct { +} + +func (*awsRestjson1_serializeOpListAnomalyGroupRelatedMetrics) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListAnomalyGroupRelatedMetrics) 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.(*ListAnomalyGroupRelatedMetricsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/ListAnomalyGroupRelatedMetrics") + 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_serializeOpDocumentListAnomalyGroupRelatedMetricsInput(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_serializeOpHttpBindingsListAnomalyGroupRelatedMetricsInput(v *ListAnomalyGroupRelatedMetricsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentListAnomalyGroupRelatedMetricsInput(v *ListAnomalyGroupRelatedMetricsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AnomalyDetectorArn != nil { + ok := object.Key("AnomalyDetectorArn") + ok.String(*v.AnomalyDetectorArn) + } + + if v.AnomalyGroupId != nil { + ok := object.Key("AnomalyGroupId") + ok.String(*v.AnomalyGroupId) + } + + if v.MaxResults != 0 { + ok := object.Key("MaxResults") + ok.Integer(v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if len(v.RelationshipTypeFilter) > 0 { + ok := object.Key("RelationshipTypeFilter") + ok.String(string(v.RelationshipTypeFilter)) + } + + return nil +} + type awsRestjson1_serializeOpListAnomalyGroupSummaries struct { } diff --git a/service/lookoutmetrics/types/enums.go b/service/lookoutmetrics/types/enums.go index 34a7b337be1..d341ff72e0a 100644 --- a/service/lookoutmetrics/types/enums.go +++ b/service/lookoutmetrics/types/enums.go @@ -170,6 +170,24 @@ func (JsonFileCompression) Values() []JsonFileCompression { } } +type RelationshipType string + +// Enum values for RelationshipType +const ( + RelationshipTypeCauseOfInputAnomalyGroup RelationshipType = "CAUSE_OF_INPUT_ANOMALY_GROUP" + RelationshipTypeEffectOfInputAnomalyGroup RelationshipType = "EFFECT_OF_INPUT_ANOMALY_GROUP" +) + +// Values returns all known values for RelationshipType. 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 (RelationshipType) Values() []RelationshipType { + return []RelationshipType{ + "CAUSE_OF_INPUT_ANOMALY_GROUP", + "EFFECT_OF_INPUT_ANOMALY_GROUP", + } +} + type ValidationExceptionReason string // Enum values for ValidationExceptionReason diff --git a/service/lookoutmetrics/types/types.go b/service/lookoutmetrics/types/types.go index c0e50baef84..060b23f5117 100644 --- a/service/lookoutmetrics/types/types.go +++ b/service/lookoutmetrics/types/types.go @@ -359,6 +359,28 @@ type FileFormatDescriptor struct { noSmithyDocumentSerde } +// Aggregated details about the measures contributing to the anomaly group, and the +// measures potentially impacted by the anomaly group. +type InterMetricImpactDetails struct { + + // The ID of the anomaly group. + AnomalyGroupId *string + + // For potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP), the percentage contribution + // the measure has in causing the anomalies. + ContributionPercentage *float64 + + // The name of the measure. + MetricName *string + + // Whether a measure is a potential cause of the anomaly group + // (CAUSE_OF_INPUT_ANOMALY_GROUP), or whether the measure is impacted by the + // anomaly group (EFFECT_OF_INPUT_ANOMALY_GROUP). + RelationshipType RelationshipType + + noSmithyDocumentSerde +} + // Aggregated statistics about a measure affected by an anomaly. type ItemizedMetricStats struct { diff --git a/service/lookoutmetrics/validators.go b/service/lookoutmetrics/validators.go index 035806cab4a..16860e523aa 100644 --- a/service/lookoutmetrics/validators.go +++ b/service/lookoutmetrics/validators.go @@ -290,6 +290,26 @@ func (m *validateOpGetSampleData) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpListAnomalyGroupRelatedMetrics struct { +} + +func (*validateOpListAnomalyGroupRelatedMetrics) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListAnomalyGroupRelatedMetrics) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListAnomalyGroupRelatedMetricsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListAnomalyGroupRelatedMetricsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListAnomalyGroupSummaries struct { } @@ -506,6 +526,10 @@ func addOpGetSampleDataValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetSampleData{}, middleware.After) } +func addOpListAnomalyGroupRelatedMetricsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListAnomalyGroupRelatedMetrics{}, middleware.After) +} + func addOpListAnomalyGroupSummariesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListAnomalyGroupSummaries{}, middleware.After) } @@ -1114,6 +1138,24 @@ func validateOpGetSampleDataInput(v *GetSampleDataInput) error { } } +func validateOpListAnomalyGroupRelatedMetricsInput(v *ListAnomalyGroupRelatedMetricsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListAnomalyGroupRelatedMetricsInput"} + if v.AnomalyDetectorArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("AnomalyDetectorArn")) + } + if v.AnomalyGroupId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AnomalyGroupId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListAnomalyGroupSummariesInput(v *ListAnomalyGroupSummariesInput) error { if v == nil { return nil diff --git a/service/lookoutvision/api_op_CreateDataset.go b/service/lookoutvision/api_op_CreateDataset.go index 2f5fb650ad4..faab9bcf693 100644 --- a/service/lookoutvision/api_op_CreateDataset.go +++ b/service/lookoutvision/api_op_CreateDataset.go @@ -49,13 +49,15 @@ type CreateDatasetInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to CreateDataset - // completes only once. You choose the value to pass. For example, An issue, such - // as an network outage, might prevent you from getting a response from - // CreateDataset. In this case, safely retry your call to CreateDataset by using - // the same ClientToken parameter value. An error occurs if the other input - // parameters are not the same as in the first request. Using a different value for - // ClientToken is considered a new call to CreateDataset. An idempotency token is - // active for 8 hours. + // completes only once. You choose the value to pass. For example, An issue might + // prevent you from getting a response from CreateDataset. In this case, safely + // retry your call to CreateDataset by using the same ClientToken parameter value. + // If you don't supply a value for ClientToken, the AWS SDK you are using inserts a + // value for you. This prevents retries after a network error from making multiple + // dataset creation requests. You'll need to provide your own value for other use + // cases. An error occurs if the other input parameters are not the same as in the + // first request. Using a different value for ClientToken is considered a new call + // to CreateDataset. An idempotency token is active for 8 hours. ClientToken *string // The location of the manifest file that Amazon Lookout for Vision uses to create diff --git a/service/lookoutvision/api_op_CreateModel.go b/service/lookoutvision/api_op_CreateModel.go index 567e3f14eee..c465827927f 100644 --- a/service/lookoutvision/api_op_CreateModel.go +++ b/service/lookoutvision/api_op_CreateModel.go @@ -52,22 +52,24 @@ type CreateModelInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to CreateModel completes - // only once. You choose the value to pass. For example, An issue, such as an - // network outage, might prevent you from getting a response from CreateModel. In - // this case, safely retry your call to CreateModel by using the same ClientToken - // parameter value. An error occurs if the other input parameters are not the same - // as in the first request. Using a different value for ClientToken is considered a - // new call to CreateModel. An idempotency token is active for 8 hours. + // only once. You choose the value to pass. For example, An issue might prevent you + // from getting a response from CreateModel. In this case, safely retry your call + // to CreateModel by using the same ClientToken parameter value. If you don't + // supply a value for ClientToken, the AWS SDK you are using inserts a value for + // you. This prevents retries after a network error from starting multiple training + // jobs. You'll need to provide your own value for other use cases. An error occurs + // if the other input parameters are not the same as in the first request. Using a + // different value for ClientToken is considered a new call to CreateModel. An + // idempotency token is active for 8 hours. ClientToken *string // A description for the version of the model. Description *string - // The identifier for your AWS Key Management Service (AWS KMS) customer master key - // (CMK). The key is used to encrypt training and test images copied into the - // service for model training. Your source images are unaffected. If this parameter - // is not specified, the copied images are encrypted by a key that AWS owns and - // manages. + // The identifier for your AWS KMS key. The key is used to encrypt training and + // test images copied into the service for model training. Your source images are + // unaffected. If this parameter is not specified, the copied images are encrypted + // by a key that AWS owns and manages. KmsKeyId *string // A set of tags (key-value pairs) that you want to attach to the model. diff --git a/service/lookoutvision/api_op_CreateProject.go b/service/lookoutvision/api_op_CreateProject.go index c6d13a10d07..6dff2948004 100644 --- a/service/lookoutvision/api_op_CreateProject.go +++ b/service/lookoutvision/api_op_CreateProject.go @@ -38,13 +38,15 @@ type CreateProjectInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to CreateProject - // completes only once. You choose the value to pass. For example, An issue, such - // as an network outage, might prevent you from getting a response from - // CreateProject. In this case, safely retry your call to CreateProject by using - // the same ClientToken parameter value. An error occurs if the other input - // parameters are not the same as in the first request. Using a different value for - // ClientToken is considered a new call to CreateProject. An idempotency token is - // active for 8 hours. + // completes only once. You choose the value to pass. For example, An issue might + // prevent you from getting a response from CreateProject. In this case, safely + // retry your call to CreateProject by using the same ClientToken parameter value. + // If you don't supply a value for ClientToken, the AWS SDK you are using inserts a + // value for you. This prevents retries after a network error from making multiple + // project creation requests. You'll need to provide your own value for other use + // cases. An error occurs if the other input parameters are not the same as in the + // first request. Using a different value for ClientToken is considered a new call + // to CreateProject. An idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_DeleteDataset.go b/service/lookoutvision/api_op_DeleteDataset.go index 0ec35e91813..71937ff74f2 100644 --- a/service/lookoutvision/api_op_DeleteDataset.go +++ b/service/lookoutvision/api_op_DeleteDataset.go @@ -56,13 +56,15 @@ type DeleteDatasetInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to DeleteDataset - // completes only once. You choose the value to pass. For example, An issue, such - // as an network outage, might prevent you from getting a response from - // DeleteDataset. In this case, safely retry your call to DeleteDataset by using - // the same ClientToken parameter value. An error occurs if the other input - // parameters are not the same as in the first request. Using a different value for - // ClientToken is considered a new call to DeleteDataset. An idempotency token is - // active for 8 hours. + // completes only once. You choose the value to pass. For example, An issue might + // prevent you from getting a response from DeleteDataset. In this case, safely + // retry your call to DeleteDataset by using the same ClientToken parameter value. + // If you don't supply a value for ClientToken, the AWS SDK you are using inserts a + // value for you. This prevents retries after a network error from making multiple + // deletetion requests. You'll need to provide your own value for other use cases. + // An error occurs if the other input parameters are not the same as in the first + // request. Using a different value for ClientToken is considered a new call to + // DeleteDataset. An idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_DeleteModel.go b/service/lookoutvision/api_op_DeleteModel.go index 3aabcfc17e0..493f807bd8d 100644 --- a/service/lookoutvision/api_op_DeleteModel.go +++ b/service/lookoutvision/api_op_DeleteModel.go @@ -13,9 +13,9 @@ import ( // Deletes an Amazon Lookout for Vision model. You can't delete a running model. To // stop a running model, use the StopModel operation. It might take a few seconds -// to delete a model. To determine if a model has been deleted, call ListProjects -// and check if the version of the model (ModelVersion) is in the Models array. -// This operation requires permissions to perform the lookoutvision:DeleteModel +// to delete a model. To determine if a model has been deleted, call ListModels and +// check if the version of the model (ModelVersion) is in the Models array. This +// operation requires permissions to perform the lookoutvision:DeleteModel // operation. func (c *Client) DeleteModel(ctx context.Context, params *DeleteModelInput, optFns ...func(*Options)) (*DeleteModelOutput, error) { if params == nil { @@ -45,12 +45,17 @@ type DeleteModelInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to DeleteModel completes - // only once. You choose the value to pass. For example, An issue, such as an - // network outage, might prevent you from getting a response from DeleteModel. In - // this case, safely retry your call to DeleteModel by using the same ClientToken - // parameter value. An error occurs if the other input parameters are not the same - // as in the first request. Using a different value for ClientToken is considered a - // new call to DeleteModel. An idempotency token is active for 8 hours. + // only once. You choose the value to pass. For example, an issue might prevent you + // from getting a response from DeleteModel. In this case, safely retry your call + // to DeleteModel by using the same ClientToken parameter value. If you don't + // supply a value for ClientToken, the AWS SDK you are using inserts a value for + // you. This prevents retries after a network error from making multiple model + // deletion requests. You'll need to provide your own value for other use cases. An + // error occurs if the other input parameters are not the same as in the first + // request. Using a different + // + // value for ClientToken is considered a new call to + // DeleteModel. An idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_DeleteProject.go b/service/lookoutvision/api_op_DeleteProject.go index ff7549e451b..802bd3f7302 100644 --- a/service/lookoutvision/api_op_DeleteProject.go +++ b/service/lookoutvision/api_op_DeleteProject.go @@ -40,13 +40,15 @@ type DeleteProjectInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to DeleteProject - // completes only once. You choose the value to pass. For example, An issue, such - // as an network outage, might prevent you from getting a response from - // DeleteProject. In this case, safely retry your call to DeleteProject by using - // the same ClientToken parameter value. An error occurs if the other input - // parameters are not the same as in the first request. Using a different value for - // ClientToken is considered a new call to DeleteProject. An idempotency token is - // active for 8 hours. + // completes only once. You choose the value to pass. For example, An issue might + // prevent you from getting a response from DeleteProject. In this case, safely + // retry your call to DeleteProject by using the same ClientToken parameter value. + // If you don't supply a value for ClientToken, the AWS SDK you are using inserts a + // value for you. This prevents retries after a network error from making multiple + // project deletion requests. You'll need to provide your own value for other use + // cases. An error occurs if the other input parameters are not the same as in the + // first request. Using a different value for ClientToken is considered a new call + // to DeleteProject. An idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_DescribeModelPackagingJob.go b/service/lookoutvision/api_op_DescribeModelPackagingJob.go new file mode 100644 index 00000000000..588daf19dcc --- /dev/null +++ b/service/lookoutvision/api_op_DescribeModelPackagingJob.go @@ -0,0 +1,130 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package lookoutvision + +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/lookoutvision/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes an Amazon Lookout for Vision model packaging job. This operation +// requires permissions to perform the lookoutvision:DescribeModelPackagingJob +// operation. For more information, see Using your Amazon Lookout for Vision model +// on an edge device in the Amazon Lookout for Vision Developer Guide. +func (c *Client) DescribeModelPackagingJob(ctx context.Context, params *DescribeModelPackagingJobInput, optFns ...func(*Options)) (*DescribeModelPackagingJobOutput, error) { + if params == nil { + params = &DescribeModelPackagingJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeModelPackagingJob", params, optFns, c.addOperationDescribeModelPackagingJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeModelPackagingJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeModelPackagingJobInput struct { + + // The job name for the model packaging job. + // + // This member is required. + JobName *string + + // The name of the project that contains the model packaging job that you want to + // describe. + // + // This member is required. + ProjectName *string + + noSmithyDocumentSerde +} + +type DescribeModelPackagingJobOutput struct { + + // The description of the model packaging job. + ModelPackagingDescription *types.ModelPackagingDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeModelPackagingJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeModelPackagingJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeModelPackagingJob{}, 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 = addOpDescribeModelPackagingJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeModelPackagingJob(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_opDescribeModelPackagingJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "lookoutvision", + OperationName: "DescribeModelPackagingJob", + } +} diff --git a/service/lookoutvision/api_op_ListModelPackagingJobs.go b/service/lookoutvision/api_op_ListModelPackagingJobs.go new file mode 100644 index 00000000000..00b54f154d1 --- /dev/null +++ b/service/lookoutvision/api_op_ListModelPackagingJobs.go @@ -0,0 +1,235 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package lookoutvision + +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/lookoutvision/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the model packaging jobs created for an Amazon Lookout for Vision project. +// This operation requires permissions to perform the +// lookoutvision:ListModelPackagingJobs operation. For more information, see Using +// your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for +// Vision Developer Guide. +func (c *Client) ListModelPackagingJobs(ctx context.Context, params *ListModelPackagingJobsInput, optFns ...func(*Options)) (*ListModelPackagingJobsOutput, error) { + if params == nil { + params = &ListModelPackagingJobsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListModelPackagingJobs", params, optFns, c.addOperationListModelPackagingJobsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListModelPackagingJobsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListModelPackagingJobsInput struct { + + // The name of the project for which you want to list the model packaging jobs. + // + // This member is required. + ProjectName *string + + // The maximum number of results to return per paginated call. The largest value + // you can specify is 100. If you specify a value greater than 100, a + // ValidationException error occurs. The default value is 100. + MaxResults *int32 + + // If the previous response was incomplete (because there is more results to + // retrieve), Amazon Lookout for Vision returns a pagination token in the response. + // You can use this pagination token to retrieve the next set of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListModelPackagingJobsOutput struct { + + // A list of the model packaging jobs created for the specified Amazon Lookout for + // Vision project. + ModelPackagingJobs []types.ModelPackagingJobMetadata + + // If the previous response was incomplete (because there is more results to + // retrieve), Amazon Lookout for Vision returns a pagination token in the response. + // You can use this pagination token to retrieve the next set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListModelPackagingJobsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListModelPackagingJobs{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListModelPackagingJobs{}, 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 = addOpListModelPackagingJobsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListModelPackagingJobs(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 +} + +// ListModelPackagingJobsAPIClient is a client that implements the +// ListModelPackagingJobs operation. +type ListModelPackagingJobsAPIClient interface { + ListModelPackagingJobs(context.Context, *ListModelPackagingJobsInput, ...func(*Options)) (*ListModelPackagingJobsOutput, error) +} + +var _ ListModelPackagingJobsAPIClient = (*Client)(nil) + +// ListModelPackagingJobsPaginatorOptions is the paginator options for +// ListModelPackagingJobs +type ListModelPackagingJobsPaginatorOptions struct { + // The maximum number of results to return per paginated call. The largest value + // you can specify is 100. If you specify a value greater than 100, a + // ValidationException error occurs. The default value is 100. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListModelPackagingJobsPaginator is a paginator for ListModelPackagingJobs +type ListModelPackagingJobsPaginator struct { + options ListModelPackagingJobsPaginatorOptions + client ListModelPackagingJobsAPIClient + params *ListModelPackagingJobsInput + nextToken *string + firstPage bool +} + +// NewListModelPackagingJobsPaginator returns a new ListModelPackagingJobsPaginator +func NewListModelPackagingJobsPaginator(client ListModelPackagingJobsAPIClient, params *ListModelPackagingJobsInput, optFns ...func(*ListModelPackagingJobsPaginatorOptions)) *ListModelPackagingJobsPaginator { + if params == nil { + params = &ListModelPackagingJobsInput{} + } + + options := ListModelPackagingJobsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListModelPackagingJobsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListModelPackagingJobsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListModelPackagingJobs page. +func (p *ListModelPackagingJobsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListModelPackagingJobsOutput, 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.ListModelPackagingJobs(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_opListModelPackagingJobs(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "lookoutvision", + OperationName: "ListModelPackagingJobs", + } +} diff --git a/service/lookoutvision/api_op_ListModels.go b/service/lookoutvision/api_op_ListModels.go index 7165a5c3532..476604b9ab8 100644 --- a/service/lookoutvision/api_op_ListModels.go +++ b/service/lookoutvision/api_op_ListModels.go @@ -12,9 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the versions of a model in an Amazon Lookout for Vision project. This -// operation requires permissions to perform the lookoutvision:ListModels -// operation. +// Lists the versions of a model in an Amazon Lookout for Vision project. The +// ListModels operation is eventually consistent. Recent calls to CreateModel might +// take a while to appear in the response from ListProjects. This operation +// requires permissions to perform the lookoutvision:ListModels operation. func (c *Client) ListModels(ctx context.Context, params *ListModelsInput, optFns ...func(*Options)) (*ListModelsOutput, error) { if params == nil { params = &ListModelsInput{} diff --git a/service/lookoutvision/api_op_ListProjects.go b/service/lookoutvision/api_op_ListProjects.go index 0f094410f61..e498aecd4ee 100644 --- a/service/lookoutvision/api_op_ListProjects.go +++ b/service/lookoutvision/api_op_ListProjects.go @@ -12,8 +12,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the Amazon Lookout for Vision projects in your AWS account. This operation -// requires permissions to perform the lookoutvision:ListProjects operation. +// Lists the Amazon Lookout for Vision projects in your AWS account. The +// ListProjects operation is eventually consistent. Recent calls to CreateProject +// and DeleteProject might take a while to appear in the response from +// ListProjects. This operation requires permissions to perform the +// lookoutvision:ListProjects operation. func (c *Client) ListProjects(ctx context.Context, params *ListProjectsInput, optFns ...func(*Options)) (*ListProjectsOutput, error) { if params == nil { params = &ListProjectsInput{} diff --git a/service/lookoutvision/api_op_StartModel.go b/service/lookoutvision/api_op_StartModel.go index d91a1857179..37ab0031747 100644 --- a/service/lookoutvision/api_op_StartModel.go +++ b/service/lookoutvision/api_op_StartModel.go @@ -37,9 +37,8 @@ func (c *Client) StartModel(ctx context.Context, params *StartModelInput, optFns type StartModelInput struct { // The minimum number of inference units to use. A single inference unit represents - // 1 hour of processing and can support up to 5 Transaction Pers Second (TPS). Use - // a higher number to increase the TPS throughput of your model. You are charged - // for the number of inference units that you use. + // 1 hour of processing. Use a higher number to increase the TPS throughput of your + // model. You are charged for the number of inference units that you use. // // This member is required. MinInferenceUnits *int32 @@ -55,12 +54,17 @@ type StartModelInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to StartModel completes - // only once. You choose the value to pass. For example, An issue, such as an - // network outage, might prevent you from getting a response from StartModel. In - // this case, safely retry your call to StartModel by using the same ClientToken - // parameter value. An error occurs if the other input parameters are not the same - // as in the first request. Using a different value for ClientToken is considered a - // new call to StartModel. An idempotency token is active for 8 hours. + // only once. You choose the value to pass. For example, An issue might prevent you + // from getting a response from StartModel. In this case, safely retry your call to + // StartModel by using the same ClientToken parameter value. If you don't supply a + // value for ClientToken, the AWS SDK you are using inserts a value for you. This + // prevents retries after a network error from making multiple start requests. + // You'll need to provide your own value for other use cases. An error occurs if + // the other input parameters are not the same as in the first request. Using a + // different + // + // value for ClientToken is considered a new call to StartModel. An + // idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_StartModelPackagingJob.go b/service/lookoutvision/api_op_StartModelPackagingJob.go new file mode 100644 index 00000000000..d29ca3c0161 --- /dev/null +++ b/service/lookoutvision/api_op_StartModelPackagingJob.go @@ -0,0 +1,217 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package lookoutvision + +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/lookoutvision/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Starts an Amazon Lookout for Vision model packaging job. A model packaging job +// creates an AWS IoT Greengrass component for a Lookout for Vision model. You can +// use the component to deploy your model to an edge device managed by Greengrass. +// Use the DescribeModelPackagingJob API to determine the current status of the +// job. The model packaging job is complete if the value of Status is SUCCEEDED. To +// deploy the component to the target device, use the component name and component +// version with the AWS IoT Greengrass CreateDeployment +// (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html) +// API. This operation requires the following permissions: +// +// * +// lookoutvision:StartModelPackagingJobs +// +// * s3:PutObject +// +// * s3:GetBucketLocation +// +// * +// greengrass:CreateComponentVersion +// +// * greengrass:DescribeComponent +// +// * (Optional) +// greengrass:TagResource. Only required if you want to tag the component. +// +// For +// more information, see Using your Amazon Lookout for Vision model on an edge +// device in the Amazon Lookout for Vision Developer Guide. +func (c *Client) StartModelPackagingJob(ctx context.Context, params *StartModelPackagingJobInput, optFns ...func(*Options)) (*StartModelPackagingJobOutput, error) { + if params == nil { + params = &StartModelPackagingJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StartModelPackagingJob", params, optFns, c.addOperationStartModelPackagingJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StartModelPackagingJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StartModelPackagingJobInput struct { + + // The configuration for the model packaging job. + // + // This member is required. + Configuration *types.ModelPackagingConfiguration + + // The version of the model within the project that you want to package. + // + // This member is required. + ModelVersion *string + + // The name of the project which contains the version of the model that you want to + // package. + // + // This member is required. + ProjectName *string + + // ClientToken is an idempotency token that ensures a call to + // StartModelPackagingJob completes only once. You choose the value to pass. For + // example, An issue might prevent you from getting a response from + // StartModelPackagingJob. In this case, safely retry your call to + // StartModelPackagingJob by using the same ClientToken parameter value. If you + // don't supply a value for ClientToken, the AWS SDK you are using inserts a value + // for you. This prevents retries after a network error from making multiple + // dataset creation requests. You'll need to provide your own value for other use + // cases. An error occurs if the other input parameters are not the same as in the + // first request. Using a different value for ClientToken is considered a new call + // to StartModelPackagingJob. An idempotency token is active for 8 hours. + ClientToken *string + + // A description for the model packaging job. + Description *string + + // A name for the model packaging job. If you don't supply a value, the service + // creates a job name for you. + JobName *string + + noSmithyDocumentSerde +} + +type StartModelPackagingJobOutput struct { + + // The job name for the model packaging job. If you don't supply a job name in the + // JobName input parameter, the service creates a job name for you. + JobName *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStartModelPackagingJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpStartModelPackagingJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpStartModelPackagingJob{}, 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_opStartModelPackagingJobMiddleware(stack, options); err != nil { + return err + } + if err = addOpStartModelPackagingJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartModelPackagingJob(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_initializeOpStartModelPackagingJob struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpStartModelPackagingJob) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpStartModelPackagingJob) 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.(*StartModelPackagingJobInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *StartModelPackagingJobInput ") + } + + 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_opStartModelPackagingJobMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpStartModelPackagingJob{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opStartModelPackagingJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "lookoutvision", + OperationName: "StartModelPackagingJob", + } +} diff --git a/service/lookoutvision/api_op_StopModel.go b/service/lookoutvision/api_op_StopModel.go index 1cd7551d5f0..60a12152e51 100644 --- a/service/lookoutvision/api_op_StopModel.go +++ b/service/lookoutvision/api_op_StopModel.go @@ -44,12 +44,15 @@ type StopModelInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to StopModel completes - // only once. You choose the value to pass. For example, An issue, such as an - // network outage, might prevent you from getting a response from StopModel. In - // this case, safely retry your call to StopModel by using the same ClientToken - // parameter value. An error occurs if the other input parameters are not the same - // as in the first request. Using a different value for ClientToken is considered a - // new call to StopModel. An idempotency token is active for 8 hours. + // only once. You choose the value to pass. For example, An issue might prevent you + // from getting a response from StopModel. In this case, safely retry your call to + // StopModel by using the same ClientToken parameter value. If you don't supply a + // value for ClientToken, the AWS SDK you are using inserts a value for you. This + // prevents retries after a network error from making multiple stop requests. + // You'll need to provide your own value for other use cases. An error occurs if + // the other input parameters are not the same as in the first request. Using a + // different value for ClientToken is considered a new call to StopModel. An + // idempotency token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/api_op_UpdateDatasetEntries.go b/service/lookoutvision/api_op_UpdateDatasetEntries.go index 2aaa168c6b9..7673f0c9e0e 100644 --- a/service/lookoutvision/api_op_UpdateDatasetEntries.go +++ b/service/lookoutvision/api_op_UpdateDatasetEntries.go @@ -12,12 +12,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds one or more JSON Line entries to a dataset. A JSON Line includes +// Adds or updates one or more JSON Line entries in a dataset. A JSON Line includes // information about an image used for training or testing an Amazon Lookout for -// Vision model. The following is an example JSON Line. Updating a dataset might -// take a while to complete. To check the current status, call DescribeDataset and -// check the Status field in the response. This operation requires permissions to -// perform the lookoutvision:UpdateDatasetEntries operation. +// Vision model. To update an existing JSON Line, use the source-ref field to +// identify the JSON Line. The JSON line that you supply replaces the existing JSON +// line. Any existing annotations that are not in the new JSON line are removed +// from the dataset. For more information, see Defining JSON lines for anomaly +// classification in the Amazon Lookout for Vision Developer Guide. The images you +// reference in the source-ref field of a JSON line, must be in the same S3 bucket +// as the existing images in the dataset. Updating a dataset might take a while to +// complete. To check the current status, call DescribeDataset and check the Status +// field in the response. This operation requires permissions to perform the +// lookoutvision:UpdateDatasetEntries operation. func (c *Client) UpdateDatasetEntries(ctx context.Context, params *UpdateDatasetEntriesInput, optFns ...func(*Options)) (*UpdateDatasetEntriesOutput, error) { if params == nil { params = &UpdateDatasetEntriesInput{} @@ -53,13 +59,16 @@ type UpdateDatasetEntriesInput struct { ProjectName *string // ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries - // completes only once. You choose the value to pass. For example, An issue, such - // as an network outage, might prevent you from getting a response from - // UpdateDatasetEntries. In this case, safely retry your call to - // UpdateDatasetEntries by using the same ClientToken parameter value. An error - // occurs if the other input parameters are not the same as in the first request. - // Using a different value for ClientToken is considered a new call to - // UpdateDatasetEntries. An idempotency token is active for 8 hours. + // completes only once. You choose the value to pass. For example, An issue might + // prevent you from getting a response from UpdateDatasetEntries. In this case, + // safely retry your call to UpdateDatasetEntries by using the same ClientToken + // parameter value. If you don't supply a value for ClientToken, the AWS SDK you + // are using inserts a value for you. This prevents retries after a network error + // from making multiple updates with the same dataset entries. You'll need to + // provide your own value for other use cases. An error occurs if the other input + // parameters are not the same as in the first request. Using a different value for + // ClientToken is considered a new call to UpdateDatasetEntries. An idempotency + // token is active for 8 hours. ClientToken *string noSmithyDocumentSerde diff --git a/service/lookoutvision/deserializers.go b/service/lookoutvision/deserializers.go index 1a238fb77b9..95fff7fe94c 100644 --- a/service/lookoutvision/deserializers.go +++ b/service/lookoutvision/deserializers.go @@ -1270,14 +1270,14 @@ func awsRestjson1_deserializeOpDocumentDescribeModelOutput(v **DescribeModelOutp return nil } -type awsRestjson1_deserializeOpDescribeProject struct { +type awsRestjson1_deserializeOpDescribeModelPackagingJob struct { } -func (*awsRestjson1_deserializeOpDescribeProject) ID() string { +func (*awsRestjson1_deserializeOpDescribeModelPackagingJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeModelPackagingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1291,9 +1291,9 @@ func (m *awsRestjson1_deserializeOpDescribeProject) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeProject(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeModelPackagingJob(response, &metadata) } - output := &DescribeProjectOutput{} + output := &DescribeModelPackagingJobOutput{} out.Result = output var buff [1024]byte @@ -1314,7 +1314,7 @@ func (m *awsRestjson1_deserializeOpDescribeProject) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeProjectOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeModelPackagingJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1327,7 +1327,7 @@ func (m *awsRestjson1_deserializeOpDescribeProject) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeModelPackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1371,9 +1371,6 @@ func awsRestjson1_deserializeOpErrorDescribeProject(response *smithyhttp.Respons case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -1396,7 +1393,7 @@ func awsRestjson1_deserializeOpErrorDescribeProject(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpDocumentDescribeProjectOutput(v **DescribeProjectOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeModelPackagingJobOutput(v **DescribeModelPackagingJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1409,17 +1406,17 @@ func awsRestjson1_deserializeOpDocumentDescribeProjectOutput(v **DescribeProject return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeProjectOutput + var sv *DescribeModelPackagingJobOutput if *v == nil { - sv = &DescribeProjectOutput{} + sv = &DescribeModelPackagingJobOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ProjectDescription": - if err := awsRestjson1_deserializeDocumentProjectDescription(&sv.ProjectDescription, value); err != nil { + case "ModelPackagingDescription": + if err := awsRestjson1_deserializeDocumentModelPackagingDescription(&sv.ModelPackagingDescription, value); err != nil { return err } @@ -1432,14 +1429,14 @@ func awsRestjson1_deserializeOpDocumentDescribeProjectOutput(v **DescribeProject return nil } -type awsRestjson1_deserializeOpDetectAnomalies struct { +type awsRestjson1_deserializeOpDescribeProject struct { } -func (*awsRestjson1_deserializeOpDetectAnomalies) ID() string { +func (*awsRestjson1_deserializeOpDescribeProject) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDetectAnomalies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeProject) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1453,9 +1450,9 @@ func (m *awsRestjson1_deserializeOpDetectAnomalies) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDetectAnomalies(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeProject(response, &metadata) } - output := &DetectAnomaliesOutput{} + output := &DescribeProjectOutput{} out.Result = output var buff [1024]byte @@ -1476,7 +1473,7 @@ func (m *awsRestjson1_deserializeOpDetectAnomalies) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeProjectOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1489,7 +1486,7 @@ func (m *awsRestjson1_deserializeOpDetectAnomalies) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorDetectAnomalies(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeProject(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1558,7 +1555,7 @@ func awsRestjson1_deserializeOpErrorDetectAnomalies(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(v **DetectAnomaliesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeProjectOutput(v **DescribeProjectOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1571,17 +1568,17 @@ func awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(v **DetectAnomalies return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DetectAnomaliesOutput + var sv *DescribeProjectOutput if *v == nil { - sv = &DetectAnomaliesOutput{} + sv = &DescribeProjectOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DetectAnomalyResult": - if err := awsRestjson1_deserializeDocumentDetectAnomalyResult(&sv.DetectAnomalyResult, value); err != nil { + case "ProjectDescription": + if err := awsRestjson1_deserializeDocumentProjectDescription(&sv.ProjectDescription, value); err != nil { return err } @@ -1594,14 +1591,14 @@ func awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(v **DetectAnomalies return nil } -type awsRestjson1_deserializeOpListDatasetEntries struct { +type awsRestjson1_deserializeOpDetectAnomalies struct { } -func (*awsRestjson1_deserializeOpListDatasetEntries) ID() string { +func (*awsRestjson1_deserializeOpDetectAnomalies) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDatasetEntries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDetectAnomalies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1615,9 +1612,9 @@ func (m *awsRestjson1_deserializeOpListDatasetEntries) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDatasetEntries(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDetectAnomalies(response, &metadata) } - output := &ListDatasetEntriesOutput{} + output := &DetectAnomaliesOutput{} out.Result = output var buff [1024]byte @@ -1638,7 +1635,7 @@ func (m *awsRestjson1_deserializeOpListDatasetEntries) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1651,7 +1648,7 @@ func (m *awsRestjson1_deserializeOpListDatasetEntries) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDatasetEntries(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDetectAnomalies(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1720,7 +1717,7 @@ func awsRestjson1_deserializeOpErrorListDatasetEntries(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(v **ListDatasetEntriesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDetectAnomaliesOutput(v **DetectAnomaliesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1733,29 +1730,20 @@ func awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(v **ListDatasetE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDatasetEntriesOutput + var sv *DetectAnomaliesOutput if *v == nil { - sv = &ListDatasetEntriesOutput{} + sv = &DetectAnomaliesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DatasetEntries": - if err := awsRestjson1_deserializeDocumentDatasetEntryList(&sv.DatasetEntries, value); err != nil { + case "DetectAnomalyResult": + if err := awsRestjson1_deserializeDocumentDetectAnomalyResult(&sv.DetectAnomalyResult, value); err != nil { return err } - case "NextToken": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) - } - sv.NextToken = ptr.String(jtv) - } - default: _, _ = key, value @@ -1765,14 +1753,14 @@ func awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(v **ListDatasetE return nil } -type awsRestjson1_deserializeOpListModels struct { +type awsRestjson1_deserializeOpListDatasetEntries struct { } -func (*awsRestjson1_deserializeOpListModels) ID() string { +func (*awsRestjson1_deserializeOpListDatasetEntries) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDatasetEntries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1786,9 +1774,9 @@ func (m *awsRestjson1_deserializeOpListModels) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListModels(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDatasetEntries(response, &metadata) } - output := &ListModelsOutput{} + output := &ListDatasetEntriesOutput{} out.Result = output var buff [1024]byte @@ -1809,7 +1797,7 @@ func (m *awsRestjson1_deserializeOpListModels) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListModelsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1822,7 +1810,7 @@ func (m *awsRestjson1_deserializeOpListModels) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDatasetEntries(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1891,7 +1879,7 @@ func awsRestjson1_deserializeOpErrorListModels(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentListModelsOutput(v **ListModelsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDatasetEntriesOutput(v **ListDatasetEntriesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1904,17 +1892,17 @@ func awsRestjson1_deserializeOpDocumentListModelsOutput(v **ListModelsOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListModelsOutput + var sv *ListDatasetEntriesOutput if *v == nil { - sv = &ListModelsOutput{} + sv = &ListDatasetEntriesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Models": - if err := awsRestjson1_deserializeDocumentModelMetadataList(&sv.Models, value); err != nil { + case "DatasetEntries": + if err := awsRestjson1_deserializeDocumentDatasetEntryList(&sv.DatasetEntries, value); err != nil { return err } @@ -1936,14 +1924,14 @@ func awsRestjson1_deserializeOpDocumentListModelsOutput(v **ListModelsOutput, va return nil } -type awsRestjson1_deserializeOpListProjects struct { +type awsRestjson1_deserializeOpListModelPackagingJobs struct { } -func (*awsRestjson1_deserializeOpListProjects) ID() string { +func (*awsRestjson1_deserializeOpListModelPackagingJobs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListProjects) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListModelPackagingJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1957,9 +1945,9 @@ func (m *awsRestjson1_deserializeOpListProjects) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListProjects(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListModelPackagingJobs(response, &metadata) } - output := &ListProjectsOutput{} + output := &ListModelPackagingJobsOutput{} out.Result = output var buff [1024]byte @@ -1980,7 +1968,7 @@ func (m *awsRestjson1_deserializeOpListProjects) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListProjectsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListModelPackagingJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1993,7 +1981,7 @@ func (m *awsRestjson1_deserializeOpListProjects) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorListProjects(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListModelPackagingJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2037,9 +2025,6 @@ func awsRestjson1_deserializeOpErrorListProjects(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -2062,7 +2047,7 @@ func awsRestjson1_deserializeOpErrorListProjects(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentListProjectsOutput(v **ListProjectsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListModelPackagingJobsOutput(v **ListModelPackagingJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2075,15 +2060,20 @@ func awsRestjson1_deserializeOpDocumentListProjectsOutput(v **ListProjectsOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListProjectsOutput + var sv *ListModelPackagingJobsOutput if *v == nil { - sv = &ListProjectsOutput{} + sv = &ListModelPackagingJobsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "ModelPackagingJobs": + if err := awsRestjson1_deserializeDocumentModelPackagingJobsList(&sv.ModelPackagingJobs, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -2093,11 +2083,6 @@ func awsRestjson1_deserializeOpDocumentListProjectsOutput(v **ListProjectsOutput sv.NextToken = ptr.String(jtv) } - case "Projects": - if err := awsRestjson1_deserializeDocumentProjectMetadataList(&sv.Projects, value); err != nil { - return err - } - default: _, _ = key, value @@ -2107,14 +2092,14 @@ func awsRestjson1_deserializeOpDocumentListProjectsOutput(v **ListProjectsOutput return nil } -type awsRestjson1_deserializeOpListTagsForResource struct { +type awsRestjson1_deserializeOpListModels struct { } -func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { +func (*awsRestjson1_deserializeOpListModels) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2128,9 +2113,9 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListModels(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListModelsOutput{} out.Result = output var buff [1024]byte @@ -2151,7 +2136,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListModelsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2164,7 +2149,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2233,7 +2218,7 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListModelsOutput(v **ListModelsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2246,20 +2231,29 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTagsForResourceOutput + var sv *ListModelsOutput if *v == nil { - sv = &ListTagsForResourceOutput{} + sv = &ListModelsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Tags": - if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + case "Models": + if err := awsRestjson1_deserializeDocumentModelMetadataList(&sv.Models, value); err != nil { return err } + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + default: _, _ = key, value @@ -2269,14 +2263,14 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return nil } -type awsRestjson1_deserializeOpStartModel struct { +type awsRestjson1_deserializeOpListProjects struct { } -func (*awsRestjson1_deserializeOpStartModel) ID() string { +func (*awsRestjson1_deserializeOpListProjects) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListProjects) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2290,9 +2284,9 @@ func (m *awsRestjson1_deserializeOpStartModel) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartModel(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListProjects(response, &metadata) } - output := &StartModelOutput{} + output := &ListProjectsOutput{} out.Result = output var buff [1024]byte @@ -2313,7 +2307,7 @@ func (m *awsRestjson1_deserializeOpStartModel) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartModelOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListProjectsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2326,7 +2320,7 @@ func (m *awsRestjson1_deserializeOpStartModel) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListProjects(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2379,9 +2373,6 @@ func awsRestjson1_deserializeOpErrorStartModel(response *smithyhttp.Response, me 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) @@ -2398,7 +2389,7 @@ func awsRestjson1_deserializeOpErrorStartModel(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentStartModelOutput(v **StartModelOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListProjectsOutput(v **ListProjectsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2411,22 +2402,27 @@ func awsRestjson1_deserializeOpDocumentStartModelOutput(v **StartModelOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartModelOutput + var sv *ListProjectsOutput if *v == nil { - sv = &StartModelOutput{} + sv = &ListProjectsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Status": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelHostingStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) } - sv.Status = types.ModelHostingStatus(jtv) + sv.NextToken = ptr.String(jtv) + } + + case "Projects": + if err := awsRestjson1_deserializeDocumentProjectMetadataList(&sv.Projects, value); err != nil { + return err } default: @@ -2438,14 +2434,14 @@ func awsRestjson1_deserializeOpDocumentStartModelOutput(v **StartModelOutput, va return nil } -type awsRestjson1_deserializeOpStopModel struct { +type awsRestjson1_deserializeOpListTagsForResource struct { } -func (*awsRestjson1_deserializeOpStopModel) ID() string { +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStopModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2459,9 +2455,9 @@ func (m *awsRestjson1_deserializeOpStopModel) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStopModel(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &StopModelOutput{} + output := &ListTagsForResourceOutput{} out.Result = output var buff [1024]byte @@ -2482,7 +2478,7 @@ func (m *awsRestjson1_deserializeOpStopModel) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStopModelOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2495,7 +2491,7 @@ func (m *awsRestjson1_deserializeOpStopModel) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorStopModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2564,7 +2560,7 @@ func awsRestjson1_deserializeOpErrorStopModel(response *smithyhttp.Response, met } } -func awsRestjson1_deserializeOpDocumentStopModelOutput(v **StopModelOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2577,22 +2573,18 @@ func awsRestjson1_deserializeOpDocumentStopModelOutput(v **StopModelOutput, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StopModelOutput + var sv *ListTagsForResourceOutput if *v == nil { - sv = &StopModelOutput{} + sv = &ListTagsForResourceOutput{} } 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 ModelHostingStatus to be of type string, got %T instead", value) - } - sv.Status = types.ModelHostingStatus(jtv) + case "Tags": + if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + return err } default: @@ -2604,14 +2596,14 @@ func awsRestjson1_deserializeOpDocumentStopModelOutput(v **StopModelOutput, valu return nil } -type awsRestjson1_deserializeOpTagResource struct { +type awsRestjson1_deserializeOpStartModel struct { } -func (*awsRestjson1_deserializeOpTagResource) ID() string { +func (*awsRestjson1_deserializeOpStartModel) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2625,15 +2617,43 @@ func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartModel(response, &metadata) } - output := &TagResourceOutput{} + output := &StartModelOutput{} 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_deserializeOpDocumentStartModelOutput(&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_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2705,14 +2725,54 @@ func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -type awsRestjson1_deserializeOpUntagResource struct { -} +func awsRestjson1_deserializeOpDocumentStartModelOutput(v **StartModelOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } -func (*awsRestjson1_deserializeOpUntagResource) ID() string { + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *StartModelOutput + if *v == nil { + sv = &StartModelOutput{} + } 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 ModelHostingStatus to be of type string, got %T instead", value) + } + sv.Status = types.ModelHostingStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpStartModelPackagingJob struct { +} + +func (*awsRestjson1_deserializeOpStartModelPackagingJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartModelPackagingJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2726,15 +2786,43 @@ func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartModelPackagingJob(response, &metadata) } - output := &UntagResourceOutput{} + output := &StartModelPackagingJobOutput{} 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_deserializeOpDocumentStartModelPackagingJobOutput(&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_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartModelPackagingJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2787,6 +2875,9 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, 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) @@ -2803,14 +2894,54 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -type awsRestjson1_deserializeOpUpdateDatasetEntries struct { +func awsRestjson1_deserializeOpDocumentStartModelPackagingJobOutput(v **StartModelPackagingJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *StartModelPackagingJobOutput + if *v == nil { + sv = &StartModelPackagingJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "JobName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelPackagingJobName to be of type string, got %T instead", value) + } + sv.JobName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func (*awsRestjson1_deserializeOpUpdateDatasetEntries) ID() string { +type awsRestjson1_deserializeOpStopModel struct { +} + +func (*awsRestjson1_deserializeOpStopModel) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateDatasetEntries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStopModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2824,9 +2955,9 @@ func (m *awsRestjson1_deserializeOpUpdateDatasetEntries) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateDatasetEntries(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStopModel(response, &metadata) } - output := &UpdateDatasetEntriesOutput{} + output := &StopModelOutput{} out.Result = output var buff [1024]byte @@ -2847,7 +2978,7 @@ func (m *awsRestjson1_deserializeOpUpdateDatasetEntries) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentStopModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2860,7 +2991,7 @@ func (m *awsRestjson1_deserializeOpUpdateDatasetEntries) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateDatasetEntries(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStopModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2929,7 +3060,7 @@ func awsRestjson1_deserializeOpErrorUpdateDatasetEntries(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(v **UpdateDatasetEntriesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentStopModelOutput(v **StopModelOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2942,9 +3073,9 @@ func awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(v **UpdateData return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateDatasetEntriesOutput + var sv *StopModelOutput if *v == nil { - sv = &UpdateDatasetEntriesOutput{} + sv = &StopModelOutput{} } else { sv = *v } @@ -2955,9 +3086,9 @@ func awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(v **UpdateData if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelHostingStatus to be of type string, got %T instead", value) } - sv.Status = types.DatasetStatus(jtv) + sv.Status = types.ModelHostingStatus(jtv) } default: @@ -2969,95 +3100,57 @@ func awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(v **UpdateData return nil } -func awsRestjson1_deserializeOpHttpBindingsInternalServerException(v *types.InternalServerException, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } +type awsRestjson1_deserializeOpTagResource struct { +} - if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { - headerValues[0] = strings.TrimSpace(headerValues[0]) - vv, err := strconv.ParseInt(headerValues[0], 0, 32) - if err != nil { - return err - } - v.RetryAfterSeconds = int32(vv) +func (*awsRestjson1_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err } - return nil -} -func awsRestjson1_deserializeOpHttpBindingsThrottlingException(v *types.ThrottlingException, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} } - if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { - headerValues[0] = strings.TrimSpace(headerValues[0]) - vv, err := strconv.ParseInt(headerValues[0], 0, 32) - if err != nil { - return err - } - v.RetryAfterSeconds = int32(vv) + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) } + output := &TagResourceOutput{} + out.Result = output - return nil + return out, metadata, err } -func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.AccessDeniedException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err +func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} } + errorBody := bytes.NewReader(errorBuffer.Bytes()) - err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape) + errorCode := "UnknownError" + errorMessage := errorCode - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) } - errorBody.Seek(0, io.SeekStart) - - return output -} - -func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ConflictException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - err := awsRestjson1_deserializeDocumentConflictException(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3069,71 +3162,96 @@ func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Respons } errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - return output -} + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) -func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.InternalServerException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) - 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(), + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape) +type awsRestjson1_deserializeOpUntagResource struct { +} + +func (*awsRestjson1_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} +func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } - if err := awsRestjson1_deserializeOpHttpBindingsInternalServerException(output, response); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) } + output := &UntagResourceOutput{} + out.Result = output - return output + return out, metadata, err } -func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ResourceNotFoundException{} +func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + 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() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3145,52 +3263,73 @@ func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp } errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - return output -} + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) -func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ServiceQuotaExceededException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) - 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(), + 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 err + return genericError + } +} - err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&output, shape) +type awsRestjson1_deserializeOpUpdateDatasetEntries struct { +} + +func (*awsRestjson1_deserializeOpUpdateDatasetEntries) ID() string { + return "OperationDeserializer" +} +func (m *awsRestjson1_deserializeOpUpdateDatasetEntries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } - return output -} + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateDatasetEntries(response, &metadata) + } + output := &UpdateDatasetEntriesOutput{} + out.Result = output -func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ThrottlingException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -3201,40 +3340,45 @@ func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Respo Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - err := awsRestjson1_deserializeDocumentThrottlingException(&output, shape) - + err = awsRestjson1_deserializeOpDocumentUpdateDatasetEntriesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), Snapshot: snapshot.Bytes(), } - return err } - errorBody.Seek(0, io.SeekStart) + return out, metadata, err +} - if err := awsRestjson1_deserializeOpHttpBindingsThrottlingException(output, response); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} +func awsRestjson1_deserializeOpErrorUpdateDatasetEntries(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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()) - return output -} + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } -func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ValidationException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -3244,24 +3388,697 @@ func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Respo return err } - err := awsRestjson1_deserializeDocumentValidationException(&output, shape) + 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("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_deserializeOpDocumentUpdateDatasetEntriesOutput(v **UpdateDatasetEntriesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateDatasetEntriesOutput + if *v == nil { + sv = &UpdateDatasetEntriesOutput{} + } 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 DatasetStatus to be of type string, got %T instead", value) + } + sv.Status = types.DatasetStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeOpHttpBindingsInternalServerException(v *types.InternalServerException, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + vv, err := strconv.ParseInt(headerValues[0], 0, 32) + if err != nil { + return err + } + v.RetryAfterSeconds = int32(vv) + } + + return nil +} +func awsRestjson1_deserializeOpHttpBindingsThrottlingException(v *types.ThrottlingException, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + vv, err := strconv.ParseInt(headerValues[0], 0, 32) + if err != nil { + return err + } + v.RetryAfterSeconds = int32(vv) + } + + return nil +} +func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.AccessDeniedException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ConflictException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentConflictException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InternalServerException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + if err := awsRestjson1_deserializeOpHttpBindingsInternalServerException(output, response); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} + } + + return output +} + +func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ResourceNotFoundException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ServiceQuotaExceededException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ThrottlingException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentThrottlingException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + if err := awsRestjson1_deserializeOpHttpBindingsThrottlingException(output, response); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} + } + + return output +} + +func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ValidationException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentValidationException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "ResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } + + case "ResourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = types.ResourceType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDatasetDescription(v **types.DatasetDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DatasetDescription + if *v == nil { + sv = &types.DatasetDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + + } + } + + case "DatasetType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetType to be of type string, got %T instead", value) + } + sv.DatasetType = ptr.String(jtv) + } + + case "ImageStats": + if err := awsRestjson1_deserializeDocumentDatasetImageStats(&sv.ImageStats, value); err != nil { + return err + } + + case "LastUpdatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + + } + } + + case "ProjectName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ProjectName to be of type string, got %T instead", value) + } + sv.ProjectName = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetStatus to be of type string, got %T instead", value) + } + sv.Status = types.DatasetStatus(jtv) + } + + case "StatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetStatusMessage to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDatasetEntryList(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 DatasetEntry to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentDatasetImageStats(v **types.DatasetImageStats, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DatasetImageStats + if *v == nil { + sv = &types.DatasetImageStats{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Anomaly": + 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.Anomaly = ptr.Int32(int32(i64)) + } + + case "Labeled": + 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.Labeled = ptr.Int32(int32(i64)) + } + + case "Normal": + 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.Normal = ptr.Int32(int32(i64)) + } + + case "Total": + 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.Total = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value - if err != nil { - var snapshot 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 + *v = sv + return nil } -func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { +func awsRestjson1_deserializeDocumentDatasetMetadata(v **types.DatasetMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3274,22 +4091,56 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccessDeniedException + var sv *types.DatasetMetadata if *v == nil { - sv = &types.AccessDeniedException{} + sv = &types.DatasetMetadata{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "CreationTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + + } + } + + case "DatasetType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + return fmt.Errorf("expected DatasetType to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.DatasetType = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetStatus to be of type string, got %T instead", value) + } + sv.Status = types.DatasetStatus(jtv) + } + + case "StatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetStatusMessage to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) } default: @@ -3301,7 +4152,41 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } -func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { +func awsRestjson1_deserializeDocumentDatasetMetadataList(v *[]types.DatasetMetadata, 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.DatasetMetadata + if *v == nil { + cv = []types.DatasetMetadata{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DatasetMetadata + destAddr := &col + if err := awsRestjson1_deserializeDocumentDatasetMetadata(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentDetectAnomalyResult(v **types.DetectAnomalyResult, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3314,40 +4199,61 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConflictException + var sv *types.DetectAnomalyResult if *v == nil { - sv = &types.ConflictException{} + sv = &types.DetectAnomalyResult{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "Confidence": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Confidence = 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.Confidence = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + } - sv.Message = ptr.String(jtv) } - case "ResourceId": + case "IsAnomalous": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ResourceId = ptr.String(jtv) + sv.IsAnomalous = jtv } - case "ResourceType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) - } - sv.ResourceType = types.ResourceType(jtv) + case "Source": + if err := awsRestjson1_deserializeDocumentImageSource(&sv.Source, value); err != nil { + return err } default: @@ -3359,7 +4265,7 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } -func awsRestjson1_deserializeDocumentDatasetDescription(v **types.DatasetDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentGreengrassConfiguration(v **types.GreengrassConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3372,86 +4278,131 @@ func awsRestjson1_deserializeDocumentDatasetDescription(v **types.DatasetDescrip return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DatasetDescription + var sv *types.GreengrassConfiguration if *v == nil { - sv = &types.DatasetDescription{} + sv = &types.GreengrassConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "CreationTimestamp": + case "CompilerOptions": if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CompilerOptions to be of type string, got %T instead", value) + } + sv.CompilerOptions = ptr.String(jtv) + } - default: - return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + case "ComponentDescription": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComponentDescription to be of type string, got %T instead", value) + } + sv.ComponentDescription = ptr.String(jtv) + } + case "ComponentName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ComponentName to be of type string, got %T instead", value) } + sv.ComponentName = ptr.String(jtv) } - case "DatasetType": + case "ComponentVersion": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetType to be of type string, got %T instead", value) + return fmt.Errorf("expected ComponentVersion to be of type string, got %T instead", value) } - sv.DatasetType = ptr.String(jtv) + sv.ComponentVersion = ptr.String(jtv) } - case "ImageStats": - if err := awsRestjson1_deserializeDocumentDatasetImageStats(&sv.ImageStats, value); err != nil { + case "S3OutputLocation": + if err := awsRestjson1_deserializeDocumentS3Location(&sv.S3OutputLocation, value); err != nil { return err } - case "LastUpdatedTimestamp": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + case "Tags": + if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + return err + } + case "TargetDevice": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TargetDevice to be of type string, got %T instead", value) } + sv.TargetDevice = types.TargetDevice(jtv) } - case "ProjectName": + case "TargetPlatform": + if err := awsRestjson1_deserializeDocumentTargetPlatform(&sv.TargetPlatform, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentGreengrassOutputDetails(v **types.GreengrassOutputDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.GreengrassOutputDetails + if *v == nil { + sv = &types.GreengrassOutputDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComponentName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ProjectName to be of type string, got %T instead", value) + return fmt.Errorf("expected ComponentName to be of type string, got %T instead", value) } - sv.ProjectName = ptr.String(jtv) + sv.ComponentName = ptr.String(jtv) } - case "Status": + case "ComponentVersion": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ComponentVersion to be of type string, got %T instead", value) } - sv.Status = types.DatasetStatus(jtv) + sv.ComponentVersion = ptr.String(jtv) } - case "StatusMessage": + case "ComponentVersionArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetStatusMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ComponentVersionArn to be of type string, got %T instead", value) } - sv.StatusMessage = ptr.String(jtv) + sv.ComponentVersionArn = ptr.String(jtv) } default: @@ -3463,7 +4414,7 @@ func awsRestjson1_deserializeDocumentDatasetDescription(v **types.DatasetDescrip return nil } -func awsRestjson1_deserializeDocumentDatasetEntryList(v *[]string, value interface{}) error { +func awsRestjson1_deserializeDocumentImageSource(v **types.ImageSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3471,35 +4422,39 @@ func awsRestjson1_deserializeDocumentDatasetEntryList(v *[]string, value interfa return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.ImageSource if *v == nil { - cv = []string{} + sv = &types.ImageSource{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetEntry to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImageSourceType to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } - col = jtv - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentDatasetImageStats(v **types.DatasetImageStats, value interface{}) error { +func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3512,65 +4467,35 @@ func awsRestjson1_deserializeDocumentDatasetImageStats(v **types.DatasetImageSta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DatasetImageStats + var sv *types.InternalServerException if *v == nil { - sv = &types.DatasetImageStats{} + sv = &types.InternalServerException{} } else { sv = *v } for key, value := range shape { switch key { - case "Anomaly": - 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.Anomaly = ptr.Int32(int32(i64)) - } - - case "Labeled": - 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.Labeled = ptr.Int32(int32(i64)) - } - - case "Normal": + case "Message": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected ExceptionString to be of type string, got %T instead", value) } - sv.Normal = ptr.Int32(int32(i64)) + sv.Message = ptr.String(jtv) } - case "Total": + case "RetryAfterSeconds": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected RetryAfterSeconds to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.Total = ptr.Int32(int32(i64)) + sv.RetryAfterSeconds = int32(i64) } default: @@ -3582,7 +4507,7 @@ func awsRestjson1_deserializeDocumentDatasetImageStats(v **types.DatasetImageSta return nil } -func awsRestjson1_deserializeDocumentDatasetMetadata(v **types.DatasetMetadata, value interface{}) error { +func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3595,9 +4520,9 @@ func awsRestjson1_deserializeDocumentDatasetMetadata(v **types.DatasetMetadata, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DatasetMetadata + var sv *types.ModelDescription if *v == nil { - sv = &types.DatasetMetadata{} + sv = &types.ModelDescription{} } else { sv = *v } @@ -3620,29 +4545,92 @@ func awsRestjson1_deserializeDocumentDatasetMetadata(v **types.DatasetMetadata, } } - case "DatasetType": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetType to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelDescriptionMessage to be of type string, got %T instead", value) } - sv.DatasetType = ptr.String(jtv) + sv.Description = ptr.String(jtv) + } + + case "EvaluationEndTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EvaluationEndTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + + } + } + + case "EvaluationManifest": + if err := awsRestjson1_deserializeDocumentOutputS3Object(&sv.EvaluationManifest, value); err != nil { + return err + } + + case "EvaluationResult": + if err := awsRestjson1_deserializeDocumentOutputS3Object(&sv.EvaluationResult, value); err != nil { + return err + } + + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "ModelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + } + sv.ModelArn = ptr.String(jtv) + } + + case "ModelVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelVersion to be of type string, got %T instead", value) + } + sv.ModelVersion = ptr.String(jtv) + } + + case "OutputConfig": + if err := awsRestjson1_deserializeDocumentOutputConfig(&sv.OutputConfig, value); err != nil { + return err + } + + case "Performance": + if err := awsRestjson1_deserializeDocumentModelPerformance(&sv.Performance, value); err != nil { + return err } case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelStatus to be of type string, got %T instead", value) } - sv.Status = types.DatasetStatus(jtv) + sv.Status = types.ModelStatus(jtv) } case "StatusMessage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetStatusMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelStatusMessage to be of type string, got %T instead", value) } sv.StatusMessage = ptr.String(jtv) } @@ -3656,41 +4644,7 @@ func awsRestjson1_deserializeDocumentDatasetMetadata(v **types.DatasetMetadata, return nil } -func awsRestjson1_deserializeDocumentDatasetMetadataList(v *[]types.DatasetMetadata, 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.DatasetMetadata - if *v == nil { - cv = []types.DatasetMetadata{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.DatasetMetadata - destAddr := &col - if err := awsRestjson1_deserializeDocumentDatasetMetadata(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentDetectAnomalyResult(v **types.DetectAnomalyResult, value interface{}) error { +func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3703,16 +4657,16 @@ func awsRestjson1_deserializeDocumentDetectAnomalyResult(v **types.DetectAnomaly return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DetectAnomalyResult + var sv *types.ModelMetadata if *v == nil { - sv = &types.DetectAnomalyResult{} + sv = &types.ModelMetadata{} } else { sv = *v } for key, value := range shape { switch key { - case "Confidence": + case "CreationTimestamp": if value != nil { switch jtv := value.(type) { case json.Number: @@ -3720,44 +4674,62 @@ func awsRestjson1_deserializeDocumentDetectAnomalyResult(v **types.DetectAnomaly if err != nil { return err } - sv.Confidence = 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) + sv.CreationTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) + } + } - } - sv.Confidence = ptr.Float32(float32(f64)) + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelDescriptionMessage to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } - default: - return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + case "ModelArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + } + sv.ModelArn = ptr.String(jtv) + } + case "ModelVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelVersion to be of type string, got %T instead", value) } + sv.ModelVersion = ptr.String(jtv) } - case "IsAnomalous": + case "Performance": + if err := awsRestjson1_deserializeDocumentModelPerformance(&sv.Performance, value); err != nil { + return err + } + + case "Status": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected ModelStatus to be of type string, got %T instead", value) } - sv.IsAnomalous = jtv + sv.Status = types.ModelStatus(jtv) } - case "Source": - if err := awsRestjson1_deserializeDocumentImageSource(&sv.Source, value); err != nil { - return err + case "StatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelStatusMessage to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) } default: @@ -3769,7 +4741,7 @@ func awsRestjson1_deserializeDocumentDetectAnomalyResult(v **types.DetectAnomaly return nil } -func awsRestjson1_deserializeDocumentImageSource(v **types.ImageSource, value interface{}) error { +func awsRestjson1_deserializeDocumentModelMetadataList(v *[]types.ModelMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3777,39 +4749,33 @@ func awsRestjson1_deserializeDocumentImageSource(v **types.ImageSource, 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.ImageSource + var cv []types.ModelMetadata if *v == nil { - sv = &types.ImageSource{} + cv = []types.ModelMetadata{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ImageSourceType to be of type string, got %T instead", value) - } - sv.Type = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.ModelMetadata + destAddr := &col + if err := awsRestjson1_deserializeDocumentModelMetadata(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { +func awsRestjson1_deserializeDocumentModelPackagingConfiguration(v **types.ModelPackagingConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3822,35 +4788,18 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalServerException + var sv *types.ModelPackagingConfiguration if *v == nil { - sv = &types.InternalServerException{} + sv = &types.ModelPackagingConfiguration{} } 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 ExceptionString to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) - } - - case "RetryAfterSeconds": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected RetryAfterSeconds to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.RetryAfterSeconds = int32(i64) + case "Greengrass": + if err := awsRestjson1_deserializeDocumentGreengrassConfiguration(&sv.Greengrass, value); err != nil { + return err } default: @@ -3862,7 +4811,7 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS return nil } -func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentModelPackagingDescription(v **types.ModelPackagingDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3875,9 +4824,9 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ModelDescription + var sv *types.ModelPackagingDescription if *v == nil { - sv = &types.ModelDescription{} + sv = &types.ModelPackagingDescription{} } else { sv = *v } @@ -3900,16 +4849,16 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription } } - case "Description": + case "JobName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelDescriptionMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobName to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.JobName = ptr.String(jtv) } - case "EvaluationEndTimestamp": + case "LastUpdatedTimestamp": if value != nil { switch jtv := value.(type) { case json.Number: @@ -3917,7 +4866,7 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription if err != nil { return err } - sv.EvaluationEndTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) default: return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) @@ -3925,32 +4874,32 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription } } - case "EvaluationManifest": - if err := awsRestjson1_deserializeDocumentOutputS3Object(&sv.EvaluationManifest, value); err != nil { - return err - } - - case "EvaluationResult": - if err := awsRestjson1_deserializeDocumentOutputS3Object(&sv.EvaluationResult, value); err != nil { + case "ModelPackagingConfiguration": + if err := awsRestjson1_deserializeDocumentModelPackagingConfiguration(&sv.ModelPackagingConfiguration, value); err != nil { return err } - case "KmsKeyId": + case "ModelPackagingJobDescription": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobDescription to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.ModelPackagingJobDescription = ptr.String(jtv) } - case "ModelArn": + case "ModelPackagingMethod": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingMethod to be of type string, got %T instead", value) } - sv.ModelArn = ptr.String(jtv) + sv.ModelPackagingMethod = ptr.String(jtv) + } + + case "ModelPackagingOutputDetails": + if err := awsRestjson1_deserializeDocumentModelPackagingOutputDetails(&sv.ModelPackagingOutputDetails, value); err != nil { + return err } case "ModelVersion": @@ -3962,30 +4911,29 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription sv.ModelVersion = ptr.String(jtv) } - case "OutputConfig": - if err := awsRestjson1_deserializeDocumentOutputConfig(&sv.OutputConfig, value); err != nil { - return err - } - - case "Performance": - if err := awsRestjson1_deserializeDocumentModelPerformance(&sv.Performance, value); err != nil { - return err + case "ProjectName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ProjectName to be of type string, got %T instead", value) + } + sv.ProjectName = ptr.String(jtv) } case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobStatus to be of type string, got %T instead", value) } - sv.Status = types.ModelStatus(jtv) + sv.Status = types.ModelPackagingJobStatus(jtv) } case "StatusMessage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelStatusMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingStatusMessage to be of type string, got %T instead", value) } sv.StatusMessage = ptr.String(jtv) } @@ -3999,7 +4947,7 @@ func awsRestjson1_deserializeDocumentModelDescription(v **types.ModelDescription return nil } -func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, value interface{}) error { +func awsRestjson1_deserializeDocumentModelPackagingJobMetadata(v **types.ModelPackagingJobMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4012,9 +4960,9 @@ func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ModelMetadata + var sv *types.ModelPackagingJobMetadata if *v == nil { - sv = &types.ModelMetadata{} + sv = &types.ModelPackagingJobMetadata{} } else { sv = *v } @@ -4037,22 +4985,47 @@ func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, valu } } - case "Description": + case "JobName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelDescriptionMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobName to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.JobName = ptr.String(jtv) } - case "ModelArn": + case "LastUpdatedTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateTime to be a JSON Number, got %T instead", value) + + } + } + + case "ModelPackagingJobDescription": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelArn to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobDescription to be of type string, got %T instead", value) } - sv.ModelArn = ptr.String(jtv) + sv.ModelPackagingJobDescription = ptr.String(jtv) + } + + case "ModelPackagingMethod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ModelPackagingMethod to be of type string, got %T instead", value) + } + sv.ModelPackagingMethod = ptr.String(jtv) } case "ModelVersion": @@ -4064,25 +5037,29 @@ func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, valu sv.ModelVersion = ptr.String(jtv) } - case "Performance": - if err := awsRestjson1_deserializeDocumentModelPerformance(&sv.Performance, value); err != nil { - return err + case "ProjectName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ProjectName to be of type string, got %T instead", value) + } + sv.ProjectName = ptr.String(jtv) } case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingJobStatus to be of type string, got %T instead", value) } - sv.Status = types.ModelStatus(jtv) + sv.Status = types.ModelPackagingJobStatus(jtv) } case "StatusMessage": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ModelStatusMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ModelPackagingStatusMessage to be of type string, got %T instead", value) } sv.StatusMessage = ptr.String(jtv) } @@ -4096,7 +5073,7 @@ func awsRestjson1_deserializeDocumentModelMetadata(v **types.ModelMetadata, valu return nil } -func awsRestjson1_deserializeDocumentModelMetadataList(v *[]types.ModelMetadata, value interface{}) error { +func awsRestjson1_deserializeDocumentModelPackagingJobsList(v *[]types.ModelPackagingJobMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4109,17 +5086,17 @@ func awsRestjson1_deserializeDocumentModelMetadataList(v *[]types.ModelMetadata, return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ModelMetadata + var cv []types.ModelPackagingJobMetadata if *v == nil { - cv = []types.ModelMetadata{} + cv = []types.ModelPackagingJobMetadata{} } else { cv = *v } for _, value := range shape { - var col types.ModelMetadata + var col types.ModelPackagingJobMetadata destAddr := &col - if err := awsRestjson1_deserializeDocumentModelMetadata(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentModelPackagingJobMetadata(&destAddr, value); err != nil { return err } col = *destAddr @@ -4130,6 +5107,42 @@ func awsRestjson1_deserializeDocumentModelMetadataList(v *[]types.ModelMetadata, return nil } +func awsRestjson1_deserializeDocumentModelPackagingOutputDetails(v **types.ModelPackagingOutputDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ModelPackagingOutputDetails + if *v == nil { + sv = &types.ModelPackagingOutputDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Greengrass": + if err := awsRestjson1_deserializeDocumentGreengrassOutputDetails(&sv.Greengrass, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentModelPerformance(v **types.ModelPerformance, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4783,6 +5796,64 @@ func awsRestjson1_deserializeDocumentTagList(v *[]types.Tag, value interface{}) return nil } +func awsRestjson1_deserializeDocumentTargetPlatform(v **types.TargetPlatform, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.TargetPlatform + if *v == nil { + sv = &types.TargetPlatform{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Accelerator": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TargetPlatformAccelerator to be of type string, got %T instead", value) + } + sv.Accelerator = types.TargetPlatformAccelerator(jtv) + } + + case "Arch": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TargetPlatformArch to be of type string, got %T instead", value) + } + sv.Arch = types.TargetPlatformArch(jtv) + } + + case "Os": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TargetPlatformOs to be of type string, got %T instead", value) + } + sv.Os = types.TargetPlatformOs(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/lookoutvision/generated.json b/service/lookoutvision/generated.json index 731ea5b6394..32ee8926c22 100644 --- a/service/lookoutvision/generated.json +++ b/service/lookoutvision/generated.json @@ -15,13 +15,16 @@ "api_op_DeleteProject.go", "api_op_DescribeDataset.go", "api_op_DescribeModel.go", + "api_op_DescribeModelPackagingJob.go", "api_op_DescribeProject.go", "api_op_DetectAnomalies.go", "api_op_ListDatasetEntries.go", + "api_op_ListModelPackagingJobs.go", "api_op_ListModels.go", "api_op_ListProjects.go", "api_op_ListTagsForResource.go", "api_op_StartModel.go", + "api_op_StartModelPackagingJob.go", "api_op_StopModel.go", "api_op_TagResource.go", "api_op_UntagResource.go", diff --git a/service/lookoutvision/serializers.go b/service/lookoutvision/serializers.go index 38533fbe07c..3f3aee44ce2 100644 --- a/service/lookoutvision/serializers.go +++ b/service/lookoutvision/serializers.go @@ -631,6 +631,73 @@ func awsRestjson1_serializeOpHttpBindingsDescribeModelInput(v *DescribeModelInpu return nil } +type awsRestjson1_serializeOpDescribeModelPackagingJob struct { +} + +func (*awsRestjson1_serializeOpDescribeModelPackagingJob) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeModelPackagingJob) 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.(*DescribeModelPackagingJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2020-11-20/projects/{ProjectName}/modelpackagingjobs/{JobName}") + 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_serializeOpHttpBindingsDescribeModelPackagingJobInput(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_serializeOpHttpBindingsDescribeModelPackagingJobInput(v *DescribeModelPackagingJobInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.JobName == nil || len(*v.JobName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member JobName must not be empty")} + } + if v.JobName != nil { + if err := encoder.SetURI("JobName").String(*v.JobName); err != nil { + return err + } + } + + if v.ProjectName == nil || len(*v.ProjectName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ProjectName must not be empty")} + } + if v.ProjectName != nil { + if err := encoder.SetURI("ProjectName").String(*v.ProjectName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDescribeProject struct { } @@ -867,6 +934,72 @@ func awsRestjson1_serializeOpHttpBindingsListDatasetEntriesInput(v *ListDatasetE return nil } +type awsRestjson1_serializeOpListModelPackagingJobs struct { +} + +func (*awsRestjson1_serializeOpListModelPackagingJobs) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListModelPackagingJobs) 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.(*ListModelPackagingJobsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2020-11-20/projects/{ProjectName}/modelpackagingjobs") + 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_serializeOpHttpBindingsListModelPackagingJobsInput(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_serializeOpHttpBindingsListModelPackagingJobsInput(v *ListModelPackagingJobsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + if v.ProjectName == nil || len(*v.ProjectName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ProjectName must not be empty")} + } + if v.ProjectName != nil { + if err := encoder.SetURI("ProjectName").String(*v.ProjectName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpListModels struct { } @@ -1143,6 +1276,109 @@ func awsRestjson1_serializeOpDocumentStartModelInput(v *StartModelInput, value s return nil } +type awsRestjson1_serializeOpStartModelPackagingJob struct { +} + +func (*awsRestjson1_serializeOpStartModelPackagingJob) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartModelPackagingJob) 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.(*StartModelPackagingJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2020-11-20/projects/{ProjectName}/modelpackagingjobs") + 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_serializeOpHttpBindingsStartModelPackagingJobInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartModelPackagingJobInput(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_serializeOpHttpBindingsStartModelPackagingJobInput(v *StartModelPackagingJobInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ClientToken != nil && len(*v.ClientToken) > 0 { + locationName := "X-Amzn-Client-Token" + encoder.SetHeader(locationName).String(*v.ClientToken) + } + + if v.ProjectName == nil || len(*v.ProjectName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ProjectName must not be empty")} + } + if v.ProjectName != nil { + if err := encoder.SetURI("ProjectName").String(*v.ProjectName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStartModelPackagingJobInput(v *StartModelPackagingJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Configuration != nil { + ok := object.Key("Configuration") + if err := awsRestjson1_serializeDocumentModelPackagingConfiguration(v.Configuration, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.JobName != nil { + ok := object.Key("JobName") + ok.String(*v.JobName) + } + + if v.ModelVersion != nil { + ok := object.Key("ModelVersion") + ok.String(*v.ModelVersion) + } + + return nil +} + type awsRestjson1_serializeOpStopModel struct { } @@ -1485,6 +1721,59 @@ func awsRestjson1_serializeDocumentDatasetSource(v *types.DatasetSource, value s return nil } +func awsRestjson1_serializeDocumentGreengrassConfiguration(v *types.GreengrassConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CompilerOptions != nil { + ok := object.Key("CompilerOptions") + ok.String(*v.CompilerOptions) + } + + if v.ComponentDescription != nil { + ok := object.Key("ComponentDescription") + ok.String(*v.ComponentDescription) + } + + if v.ComponentName != nil { + ok := object.Key("ComponentName") + ok.String(*v.ComponentName) + } + + if v.ComponentVersion != nil { + ok := object.Key("ComponentVersion") + ok.String(*v.ComponentVersion) + } + + if v.S3OutputLocation != nil { + ok := object.Key("S3OutputLocation") + if err := awsRestjson1_serializeDocumentS3Location(v.S3OutputLocation, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if len(v.TargetDevice) > 0 { + ok := object.Key("TargetDevice") + ok.String(string(v.TargetDevice)) + } + + if v.TargetPlatform != nil { + ok := object.Key("TargetPlatform") + if err := awsRestjson1_serializeDocumentTargetPlatform(v.TargetPlatform, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentInputS3Object(v *types.InputS3Object, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1507,6 +1796,20 @@ func awsRestjson1_serializeDocumentInputS3Object(v *types.InputS3Object, value s return nil } +func awsRestjson1_serializeDocumentModelPackagingConfiguration(v *types.ModelPackagingConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Greengrass != nil { + ok := object.Key("Greengrass") + if err := awsRestjson1_serializeDocumentGreengrassConfiguration(v.Greengrass, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentOutputConfig(v *types.OutputConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1567,3 +1870,25 @@ func awsRestjson1_serializeDocumentTagList(v []types.Tag, value smithyjson.Value } return nil } + +func awsRestjson1_serializeDocumentTargetPlatform(v *types.TargetPlatform, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Accelerator) > 0 { + ok := object.Key("Accelerator") + ok.String(string(v.Accelerator)) + } + + if len(v.Arch) > 0 { + ok := object.Key("Arch") + ok.String(string(v.Arch)) + } + + if len(v.Os) > 0 { + ok := object.Key("Os") + ok.String(string(v.Os)) + } + + return nil +} diff --git a/service/lookoutvision/types/enums.go b/service/lookoutvision/types/enums.go index 36fa246d62c..dcead9c2235 100644 --- a/service/lookoutvision/types/enums.go +++ b/service/lookoutvision/types/enums.go @@ -60,6 +60,28 @@ func (ModelHostingStatus) Values() []ModelHostingStatus { } } +type ModelPackagingJobStatus string + +// Enum values for ModelPackagingJobStatus +const ( + ModelPackagingJobStatusCreated ModelPackagingJobStatus = "CREATED" + ModelPackagingJobStatusRunning ModelPackagingJobStatus = "RUNNING" + ModelPackagingJobStatusSucceeded ModelPackagingJobStatus = "SUCCEEDED" + ModelPackagingJobStatusFailed ModelPackagingJobStatus = "FAILED" +) + +// Values returns all known values for ModelPackagingJobStatus. 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 (ModelPackagingJobStatus) Values() []ModelPackagingJobStatus { + return []ModelPackagingJobStatus{ + "CREATED", + "RUNNING", + "SUCCEEDED", + "FAILED", + } +} + type ModelStatus string // Enum values for ModelStatus @@ -96,10 +118,11 @@ type ResourceType string // Enum values for ResourceType const ( - ResourceTypeProject ResourceType = "PROJECT" - ResourceTypeDataset ResourceType = "DATASET" - ResourceTypeModel ResourceType = "MODEL" - ResourceTypeTrial ResourceType = "TRIAL" + ResourceTypeProject ResourceType = "PROJECT" + ResourceTypeDataset ResourceType = "DATASET" + ResourceTypeModel ResourceType = "MODEL" + ResourceTypeTrial ResourceType = "TRIAL" + ResourceTypeModelPackageJob ResourceType = "MODEL_PACKAGE_JOB" ) // Values returns all known values for ResourceType. Note that this can be expanded @@ -111,5 +134,72 @@ func (ResourceType) Values() []ResourceType { "DATASET", "MODEL", "TRIAL", + "MODEL_PACKAGE_JOB", + } +} + +type TargetDevice string + +// Enum values for TargetDevice +const ( + TargetDeviceJetsonXavier TargetDevice = "jetson_xavier" +) + +// Values returns all known values for TargetDevice. 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 (TargetDevice) Values() []TargetDevice { + return []TargetDevice{ + "jetson_xavier", + } +} + +type TargetPlatformAccelerator string + +// Enum values for TargetPlatformAccelerator +const ( + TargetPlatformAcceleratorNvidia TargetPlatformAccelerator = "NVIDIA" +) + +// Values returns all known values for TargetPlatformAccelerator. 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 (TargetPlatformAccelerator) Values() []TargetPlatformAccelerator { + return []TargetPlatformAccelerator{ + "NVIDIA", + } +} + +type TargetPlatformArch string + +// Enum values for TargetPlatformArch +const ( + TargetPlatformArchArm64 TargetPlatformArch = "ARM64" + TargetPlatformArchX8664 TargetPlatformArch = "X86_64" +) + +// Values returns all known values for TargetPlatformArch. 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 (TargetPlatformArch) Values() []TargetPlatformArch { + return []TargetPlatformArch{ + "ARM64", + "X86_64", + } +} + +type TargetPlatformOs string + +// Enum values for TargetPlatformOs +const ( + TargetPlatformOsLinux TargetPlatformOs = "LINUX" +) + +// Values returns all known values for TargetPlatformOs. 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 (TargetPlatformOs) Values() []TargetPlatformOs { + return []TargetPlatformOs{ + "LINUX", } } diff --git a/service/lookoutvision/types/types.go b/service/lookoutvision/types/types.go index 1a09c96753e..1832211d026 100644 --- a/service/lookoutvision/types/types.go +++ b/service/lookoutvision/types/types.go @@ -17,7 +17,7 @@ type DatasetDescription struct { // dataset project. The value test represents a test dataset. DatasetType *string - // + // Statistics about the images in a dataset. ImageStats *DatasetImageStats // The Unix timestamp for the date and time that the dataset was last updated. @@ -63,7 +63,8 @@ type DatasetImageStats struct { noSmithyDocumentSerde } -// Sumary information for an Amazon Lookout for Vision dataset. +// Summary information for an Amazon Lookout for Vision dataset. For more +// information, see DescribeDataset and ProjectDescription. type DatasetMetadata struct { // The Unix timestamp for the date and time that the dataset was created. @@ -108,6 +109,67 @@ type DetectAnomalyResult struct { noSmithyDocumentSerde } +// Configuration information for the AWS IoT Greengrass component created in a +// model packaging job. For more information, see StartModelPackagingJob. You can't +// specify a component with the same ComponentName and Componentversion as an +// existing component with the same component name and component version. +type GreengrassConfiguration struct { + + // Additional compiler options for the Greengrass component. Currently, only NVIDIA + // Graphics Processing Units (GPU) are supported. For more information, see + // Compiler options in the Amazon Lookout for Vision Developer Guide. + // + // This member is required. + CompilerOptions *string + + // A name for the AWS IoT Greengrass component. + // + // This member is required. + ComponentName *string + + // An S3 location in which Lookout for Vision stores the component artifacts. + // + // This member is required. + S3OutputLocation *S3Location + + // A description for the AWS IoT Greengrass component. + ComponentDescription *string + + // A Version for the AWS IoT Greengrass component. If you don't provide a value, a + // default value of Model Version.0.0 is used. + ComponentVersion *string + + // A set of tags (key-value pairs) that you want to attach to the AWS IoT + // Greengrass component. + Tags []Tag + + // The target device for the model. Currently the only supported value is + // jetson_xavier. If you specify TargetDevice, you can't specify TargetPlatform. + TargetDevice TargetDevice + + // The target platform for the model. If you specify TargetPlatform, you can't + // specify TargetDevice. + TargetPlatform *TargetPlatform + + noSmithyDocumentSerde +} + +// Information about the AWS IoT Greengrass component created by a model packaging +// job. +type GreengrassOutputDetails struct { + + // The name of the component. + ComponentName *string + + // The version of the component. + ComponentVersion *string + + // The Amazon Resource Name (ARN) of the component. + ComponentVersionArn *string + + noSmithyDocumentSerde +} + // The source for an image. type ImageSource struct { @@ -208,6 +270,110 @@ type ModelMetadata struct { noSmithyDocumentSerde } +// Configuration information for a Amazon Lookout for Vision model packaging job. +// For more information, see StartModelPackagingJob. +type ModelPackagingConfiguration struct { + + // Configuration information for the AWS IoT Greengrass component in a model + // packaging job. + // + // This member is required. + Greengrass *GreengrassConfiguration + + noSmithyDocumentSerde +} + +// Information about a model packaging job. For more information, see +// DescribeModelPackagingJob. +type ModelPackagingDescription struct { + + // The Unix timestamp for the time and date that the model packaging job was + // created. + CreationTimestamp *time.Time + + // The name of the model packaging job. + JobName *string + + // The Unix timestamp for the time and date that the model packaging job was last + // updated. + LastUpdatedTimestamp *time.Time + + // The configuration information used in the model packaging job. + ModelPackagingConfiguration *ModelPackagingConfiguration + + // The description for the model packaging job. + ModelPackagingJobDescription *string + + // The AWS service used to package the job. Currently Lookout for Vision can + // package jobs with AWS IoT Greengrass. + ModelPackagingMethod *string + + // Information about the output of the model packaging job. For more information, + // see DescribeModelPackagingJob. + ModelPackagingOutputDetails *ModelPackagingOutputDetails + + // The version of the model used in the model packaging job. + ModelVersion *string + + // The name of the project that's associated with a model that's in the model + // package. + ProjectName *string + + // The status of the model packaging job. + Status ModelPackagingJobStatus + + // The status message for the model packaging job. + StatusMessage *string + + noSmithyDocumentSerde +} + +// Metadata for a model packaging job. For more information, see +// ListModelPackagingJobs. +type ModelPackagingJobMetadata struct { + + // The Unix timestamp for the time and date that the model packaging job was + // created. + CreationTimestamp *time.Time + + // The name of the model packaging job. + JobName *string + + // The Unix timestamp for the time and date that the model packaging job was last + // updated. + LastUpdatedTimestamp *time.Time + + // The description for the model packaging job. + ModelPackagingJobDescription *string + + // The AWS service used to package the job. Currently Lookout for Vision can + // package jobs with AWS IoT Greengrass. + ModelPackagingMethod *string + + // The version of the model that is in the model package. + ModelVersion *string + + // The project that contains the model that is in the model package. + ProjectName *string + + // The status of the model packaging job. + Status ModelPackagingJobStatus + + // The status message for the model packaging job. + StatusMessage *string + + noSmithyDocumentSerde +} + +// Information about the output from a model packaging job. +type ModelPackagingOutputDetails struct { + + // Information about the AWS IoT Greengrass component in a model packaging job. + Greengrass *GreengrassOutputDetails + + noSmithyDocumentSerde +} + // Information about the evaluation performance of a trained model. type ModelPerformance struct { @@ -284,15 +450,19 @@ type ProjectMetadata struct { noSmithyDocumentSerde } -// Information about the location training output. +// Information about the location of training output or the output of a model +// packaging job. type S3Location struct { - // The S3 bucket that contains the training output. + // The S3 bucket that contains the training or model packaging job output. If you + // are training a model, the bucket must in your AWS account. If you use an S3 + // bucket for a model packaging job, the S3 bucket must be in the same AWS Region + // and AWS account in which you use AWS IoT Greengrass. // // This member is required. Bucket *string - // The path of the folder, within the S3 bucket, that contains the training output. + // The path of the folder, within the S3 bucket, that contains the output. Prefix *string noSmithyDocumentSerde @@ -315,4 +485,30 @@ type Tag struct { noSmithyDocumentSerde } +// The platform on which a model runs on an AWS IoT Greengrass core device. +type TargetPlatform struct { + + // The target accelerator for the model. NVIDIA (Nvidia graphics processing unit) + // is the only accelerator that is currently supported. You must also specify the + // gpu-code, trt-ver, and cuda-ver compiler options. + // + // This member is required. + Accelerator TargetPlatformAccelerator + + // The target architecture for the model. The currently supported architectures are + // X86_64 (64-bit version of the x86 instruction set) and ARM_64 (ARMv8 64-bit + // CPU). + // + // This member is required. + Arch TargetPlatformArch + + // The target operating system for the model. Linux is the only operating system + // that is currently supported. + // + // This member is required. + Os TargetPlatformOs + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/lookoutvision/validators.go b/service/lookoutvision/validators.go index b3d34569ac1..4f0be50b3f3 100644 --- a/service/lookoutvision/validators.go +++ b/service/lookoutvision/validators.go @@ -170,6 +170,26 @@ func (m *validateOpDescribeModel) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpDescribeModelPackagingJob struct { +} + +func (*validateOpDescribeModelPackagingJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeModelPackagingJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeModelPackagingJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeModelPackagingJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeProject struct { } @@ -230,6 +250,26 @@ func (m *validateOpListDatasetEntries) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpListModelPackagingJobs struct { +} + +func (*validateOpListModelPackagingJobs) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListModelPackagingJobs) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListModelPackagingJobsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListModelPackagingJobsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListModels struct { } @@ -290,6 +330,26 @@ func (m *validateOpStartModel) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpStartModelPackagingJob struct { +} + +func (*validateOpStartModelPackagingJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStartModelPackagingJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StartModelPackagingJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStartModelPackagingJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStopModel struct { } @@ -402,6 +462,10 @@ func addOpDescribeModelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeModel{}, middleware.After) } +func addOpDescribeModelPackagingJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeModelPackagingJob{}, middleware.After) +} + func addOpDescribeProjectValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeProject{}, middleware.After) } @@ -414,6 +478,10 @@ func addOpListDatasetEntriesValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpListDatasetEntries{}, middleware.After) } +func addOpListModelPackagingJobsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListModelPackagingJobs{}, middleware.After) +} + func addOpListModelsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListModels{}, middleware.After) } @@ -426,6 +494,10 @@ func addOpStartModelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStartModel{}, middleware.After) } +func addOpStartModelPackagingJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStartModelPackagingJob{}, middleware.After) +} + func addOpStopModelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStopModel{}, middleware.After) } @@ -476,6 +548,41 @@ func validateDatasetSource(v *types.DatasetSource) error { } } +func validateGreengrassConfiguration(v *types.GreengrassConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GreengrassConfiguration"} + if v.CompilerOptions == nil { + invalidParams.Add(smithy.NewErrParamRequired("CompilerOptions")) + } + if v.TargetPlatform != nil { + if err := validateTargetPlatform(v.TargetPlatform); err != nil { + invalidParams.AddNested("TargetPlatform", err.(smithy.InvalidParamsError)) + } + } + if v.S3OutputLocation == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3OutputLocation")) + } else if v.S3OutputLocation != nil { + if err := validateS3Location(v.S3OutputLocation); err != nil { + invalidParams.AddNested("S3OutputLocation", err.(smithy.InvalidParamsError)) + } + } + if v.ComponentName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComponentName")) + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateInputS3Object(v *types.InputS3Object) error { if v == nil { return nil @@ -494,6 +601,25 @@ func validateInputS3Object(v *types.InputS3Object) error { } } +func validateModelPackagingConfiguration(v *types.ModelPackagingConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ModelPackagingConfiguration"} + if v.Greengrass == nil { + invalidParams.Add(smithy.NewErrParamRequired("Greengrass")) + } else if v.Greengrass != nil { + if err := validateGreengrassConfiguration(v.Greengrass); err != nil { + invalidParams.AddNested("Greengrass", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOutputConfig(v *types.OutputConfig) error { if v == nil { return nil @@ -563,6 +689,27 @@ func validateTagList(v []types.Tag) error { } } +func validateTargetPlatform(v *types.TargetPlatform) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TargetPlatform"} + if len(v.Os) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Os")) + } + if len(v.Arch) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Arch")) + } + if len(v.Accelerator) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Accelerator")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateDatasetInput(v *CreateDatasetInput) error { if v == nil { return nil @@ -715,6 +862,24 @@ func validateOpDescribeModelInput(v *DescribeModelInput) error { } } +func validateOpDescribeModelPackagingJobInput(v *DescribeModelPackagingJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeModelPackagingJobInput"} + if v.ProjectName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectName")) + } + if v.JobName == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeProjectInput(v *DescribeProjectInput) error { if v == nil { return nil @@ -772,6 +937,21 @@ func validateOpListDatasetEntriesInput(v *ListDatasetEntriesInput) error { } } +func validateOpListModelPackagingJobsInput(v *ListModelPackagingJobsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListModelPackagingJobsInput"} + if v.ProjectName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListModelsInput(v *ListModelsInput) error { if v == nil { return nil @@ -823,6 +1003,31 @@ func validateOpStartModelInput(v *StartModelInput) error { } } +func validateOpStartModelPackagingJobInput(v *StartModelPackagingJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StartModelPackagingJobInput"} + if v.ProjectName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ProjectName")) + } + if v.ModelVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("ModelVersion")) + } + if v.Configuration == nil { + invalidParams.Add(smithy.NewErrParamRequired("Configuration")) + } else if v.Configuration != nil { + if err := validateModelPackagingConfiguration(v.Configuration); err != nil { + invalidParams.AddNested("Configuration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStopModelInput(v *StopModelInput) error { if v == nil { return nil diff --git a/service/mediaconnect/api_op_CreateFlow.go b/service/mediaconnect/api_op_CreateFlow.go index f06a9ce05d3..413f3ff72fd 100644 --- a/service/mediaconnect/api_op_CreateFlow.go +++ b/service/mediaconnect/api_op_CreateFlow.go @@ -54,7 +54,7 @@ type CreateFlowInput struct { // The settings for the source of the flow. Source *types.SetSourceRequest - // The settings for source failover + // The settings for source failover. SourceFailoverConfig *types.FailoverConfig Sources []types.SetSourceRequest diff --git a/service/mediaconnect/api_op_UpdateFlow.go b/service/mediaconnect/api_op_UpdateFlow.go index 8d7fa3d4650..15fab8c7bb1 100644 --- a/service/mediaconnect/api_op_UpdateFlow.go +++ b/service/mediaconnect/api_op_UpdateFlow.go @@ -35,7 +35,7 @@ type UpdateFlowInput struct { // This member is required. FlowArn *string - // The settings for source failover + // The settings for source failover. SourceFailoverConfig *types.UpdateFailoverConfig noSmithyDocumentSerde diff --git a/service/mediaconnect/api_op_UpdateFlowOutput.go b/service/mediaconnect/api_op_UpdateFlowOutput.go index be14948ed10..236f34cebd7 100644 --- a/service/mediaconnect/api_op_UpdateFlowOutput.go +++ b/service/mediaconnect/api_op_UpdateFlowOutput.go @@ -56,7 +56,8 @@ type UpdateFlowOutputInput struct { // will use the default setting (static-key). Encryption *types.UpdateEncryption - // The maximum latency in milliseconds for Zixi-based streams. + // The maximum latency in milliseconds. This parameter applies only to RIST-based, + // Zixi-based, and Fujitsu-based streams. MaxLatency int32 // The media streams that are associated with the output, and the parameters for @@ -79,6 +80,14 @@ type UpdateFlowOutputInput struct { // The remote ID for the Zixi-pull stream. RemoteId *string + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + + // The IP address that the flow communicates with to initiate connection with the + // sender. + SenderIpAddress *string + // The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. SmoothingLatency int32 diff --git a/service/mediaconnect/api_op_UpdateFlowSource.go b/service/mediaconnect/api_op_UpdateFlowSource.go index 3f13ca71b6c..ce7335491e7 100644 --- a/service/mediaconnect/api_op_UpdateFlowSource.go +++ b/service/mediaconnect/api_op_UpdateFlowSource.go @@ -58,8 +58,8 @@ type UpdateFlowSourceInput struct { // The smoothing max bitrate for RIST, RTP, and RTP-FEC streams. MaxBitrate int32 - // The maximum latency in milliseconds. This parameter applies only to RIST-based - // and Zixi-based streams. + // The maximum latency in milliseconds. This parameter applies only to RIST-based, + // Zixi-based, and Fujitsu-based streams. MaxLatency int32 // The size of the buffer (in milliseconds) to use to sync incoming source data. @@ -79,6 +79,14 @@ type UpdateFlowSourceInput struct { // The protocol that is used by the source. Protocol types.Protocol + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + + // The IP address that the flow communicates with to initiate connection with the + // sender. + SenderIpAddress *string + // The stream ID that you want to use for this transport. This parameter applies // only to Zixi-based streams. StreamId *string diff --git a/service/mediaconnect/deserializers.go b/service/mediaconnect/deserializers.go index d3022fb1198..a0bc348fe08 100644 --- a/service/mediaconnect/deserializers.go +++ b/service/mediaconnect/deserializers.go @@ -7814,6 +7814,28 @@ func awsRestjson1_deserializeDocumentSource(v **types.Source, value interface{}) sv.Name = ptr.String(jtv) } + case "senderControlPort": + 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.SenderControlPort = int32(i64) + } + + case "senderIpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.SenderIpAddress = ptr.String(jtv) + } + case "sourceArn": if value != nil { jtv, ok := value.(string) @@ -8032,6 +8054,28 @@ func awsRestjson1_deserializeDocumentTransport(v **types.Transport, value interf sv.RemoteId = ptr.String(jtv) } + case "senderControlPort": + 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.SenderControlPort = int32(i64) + } + + case "senderIpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.SenderIpAddress = ptr.String(jtv) + } + case "smoothingLatency": if value != nil { jtv, ok := value.(json.Number) diff --git a/service/mediaconnect/serializers.go b/service/mediaconnect/serializers.go index 3ff5a0dbebb..854f3b2238a 100644 --- a/service/mediaconnect/serializers.go +++ b/service/mediaconnect/serializers.go @@ -2196,6 +2196,16 @@ func awsRestjson1_serializeOpDocumentUpdateFlowOutputInput(v *UpdateFlowOutputIn ok.String(*v.RemoteId) } + if v.SenderControlPort != 0 { + ok := object.Key("senderControlPort") + ok.Integer(v.SenderControlPort) + } + + if v.SenderIpAddress != nil { + ok := object.Key("senderIpAddress") + ok.String(*v.SenderIpAddress) + } + if v.SmoothingLatency != 0 { ok := object.Key("smoothingLatency") ok.Integer(v.SmoothingLatency) @@ -2352,6 +2362,16 @@ func awsRestjson1_serializeOpDocumentUpdateFlowSourceInput(v *UpdateFlowSourceIn ok.String(string(v.Protocol)) } + if v.SenderControlPort != 0 { + ok := object.Key("senderControlPort") + ok.Integer(v.SenderControlPort) + } + + if v.SenderIpAddress != nil { + ok := object.Key("senderIpAddress") + ok.String(*v.SenderIpAddress) + } + if v.StreamId != nil { ok := object.Key("streamId") ok.String(*v.StreamId) @@ -2618,6 +2638,11 @@ func awsRestjson1_serializeDocumentAddOutputRequest(v *types.AddOutputRequest, v ok.String(*v.RemoteId) } + if v.SenderControlPort != 0 { + ok := object.Key("senderControlPort") + ok.Integer(v.SenderControlPort) + } + if v.SmoothingLatency != 0 { ok := object.Key("smoothingLatency") ok.Integer(v.SmoothingLatency) @@ -3024,6 +3049,16 @@ func awsRestjson1_serializeDocumentSetSourceRequest(v *types.SetSourceRequest, v ok.String(string(v.Protocol)) } + if v.SenderControlPort != 0 { + ok := object.Key("senderControlPort") + ok.Integer(v.SenderControlPort) + } + + if v.SenderIpAddress != nil { + ok := object.Key("senderIpAddress") + ok.String(*v.SenderIpAddress) + } + if v.StreamId != nil { ok := object.Key("streamId") ok.String(*v.StreamId) diff --git a/service/mediaconnect/types/enums.go b/service/mediaconnect/types/enums.go index 261c2399fc0..054b3625a5a 100644 --- a/service/mediaconnect/types/enums.go +++ b/service/mediaconnect/types/enums.go @@ -228,6 +228,7 @@ const ( ProtocolSt2110Jpegxs Protocol = "st2110-jpegxs" ProtocolCdi Protocol = "cdi" ProtocolSrtListener Protocol = "srt-listener" + ProtocolFujitsuQos Protocol = "fujitsu-qos" ) // Values returns all known values for Protocol. Note that this can be expanded in @@ -243,6 +244,7 @@ func (Protocol) Values() []Protocol { "st2110-jpegxs", "cdi", "srt-listener", + "fujitsu-qos", } } diff --git a/service/mediaconnect/types/types.go b/service/mediaconnect/types/types.go index edad28ba4b3..5b8cc306d4b 100644 --- a/service/mediaconnect/types/types.go +++ b/service/mediaconnect/types/types.go @@ -66,7 +66,8 @@ type AddOutputRequest struct { // will use the default setting (static-key). Encryption *Encryption - // The maximum latency in milliseconds for Zixi-based streams. + // The maximum latency in milliseconds. This parameter applies only to RIST-based, + // Zixi-based, and Fujitsu-based streams. MaxLatency int32 // The media streams that are associated with the output, and the parameters for @@ -89,6 +90,10 @@ type AddOutputRequest struct { // The remote ID for the Zixi-pull output stream. RemoteId *string + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + // The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. SmoothingLatency int32 @@ -289,7 +294,7 @@ type Entitlement struct { noSmithyDocumentSerde } -// The settings for source failover +// The settings for source failover. type FailoverConfig struct { // The type of failover you choose for this flow. MERGE combines the source streams @@ -360,7 +365,7 @@ type Flow struct { // stream with a source, you can also associate it with outputs on the flow. MediaStreams []MediaStream - // The settings for source failover + // The settings for source failover. SourceFailoverConfig *FailoverConfig Sources []Source @@ -990,8 +995,8 @@ type SetSourceRequest struct { // The smoothing max bitrate for RIST, RTP, and RTP-FEC streams. MaxBitrate int32 - // The maximum latency in milliseconds. This parameter applies only to RIST-based - // and Zixi-based streams. + // The maximum latency in milliseconds. This parameter applies only to RIST-based, + // Zixi-based, and Fujitsu-based streams. MaxLatency int32 // The size of the buffer (in milliseconds) to use to sync incoming source data. @@ -1014,6 +1019,14 @@ type SetSourceRequest struct { // The protocol that is used by the source. Protocol Protocol + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + + // The IP address that the flow communicates with to initiate connection with the + // sender. + SenderIpAddress *string + // The stream ID that you want to use for this transport. This parameter applies // only to Zixi-based streams. StreamId *string @@ -1067,6 +1080,14 @@ type Source struct { // those associations. MediaStreamSourceConfigurations []MediaStreamSourceConfiguration + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + + // The IP address that the flow communicates with to initiate connection with the + // sender. + SenderIpAddress *string + // Attributes related to the transport stream that are used in the source. Transport *Transport @@ -1107,8 +1128,8 @@ type Transport struct { // The smoothing max bitrate for RIST, RTP, and RTP-FEC streams. MaxBitrate int32 - // The maximum latency in milliseconds. This parameter applies only to RIST-based - // and Zixi-based streams. + // The maximum latency in milliseconds. This parameter applies only to RIST-based, + // Zixi-based, and Fujitsu-based streams. MaxLatency int32 // The size of the buffer (in milliseconds) to use to sync incoming source data. @@ -1124,6 +1145,14 @@ type Transport struct { // The remote ID for the Zixi-pull stream. RemoteId *string + // The port that the flow uses to send outbound requests to initiate connection + // with the sender. + SenderControlPort int32 + + // The IP address that the flow communicates with to initiate connection with the + // sender. + SenderIpAddress *string + // The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. SmoothingLatency int32 @@ -1183,7 +1212,7 @@ type UpdateEncryption struct { noSmithyDocumentSerde } -// The settings for source failover +// The settings for source failover. type UpdateFailoverConfig struct { // The type of failover you choose for this flow. MERGE combines the source streams @@ -1206,7 +1235,7 @@ type UpdateFailoverConfig struct { // The settings for a VPC Source. type VpcInterface struct { - // Immutable and has to be a unique against other VpcInterfaces in this Flow + // Immutable and has to be a unique against other VpcInterfaces in this Flow. // // This member is required. Name *string diff --git a/service/networkfirewall/api_op_DescribeRuleGroupMetadata.go b/service/networkfirewall/api_op_DescribeRuleGroupMetadata.go new file mode 100644 index 00000000000..85210ae750e --- /dev/null +++ b/service/networkfirewall/api_op_DescribeRuleGroupMetadata.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package networkfirewall + +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/networkfirewall/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// High-level information about a rule group, returned by operations like create +// and describe. You can use the information provided in the metadata to retrieve +// and manage a rule group. You can retrieve all objects for a rule group by +// calling DescribeRuleGroup. +func (c *Client) DescribeRuleGroupMetadata(ctx context.Context, params *DescribeRuleGroupMetadataInput, optFns ...func(*Options)) (*DescribeRuleGroupMetadataOutput, error) { + if params == nil { + params = &DescribeRuleGroupMetadataInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeRuleGroupMetadata", params, optFns, c.addOperationDescribeRuleGroupMetadataMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeRuleGroupMetadataOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeRuleGroupMetadataInput struct { + + // The descriptive name of the rule group. You can't change the name of a rule + // group after you create it. You must specify the ARN or the name, and you can + // specify both. + RuleGroupArn *string + + // The descriptive name of the rule group. You can't change the name of a rule + // group after you create it. You must specify the ARN or the name, and you can + // specify both. + RuleGroupName *string + + // Indicates whether the rule group is stateless or stateful. If the rule group is + // stateless, it contains stateless rules. If it is stateful, it contains stateful + // rules. This setting is required for requests that do not include the + // RuleGroupARN. + Type types.RuleGroupType + + noSmithyDocumentSerde +} + +type DescribeRuleGroupMetadataOutput struct { + + // The descriptive name of the rule group. You can't change the name of a rule + // group after you create it. You must specify the ARN or the name, and you can + // specify both. + // + // This member is required. + RuleGroupArn *string + + // The descriptive name of the rule group. You can't change the name of a rule + // group after you create it. You must specify the ARN or the name, and you can + // specify both. + // + // This member is required. + RuleGroupName *string + + // The maximum operating resources that this rule group can use. Rule group + // capacity is fixed at creation. When you update a rule group, you are limited to + // this capacity. When you reference a rule group from a firewall policy, Network + // Firewall reserves this capacity for the rule group. You can retrieve the + // capacity that would be required for a rule group before you create the rule + // group by calling CreateRuleGroup with DryRun set to TRUE. + Capacity *int32 + + // Returns the metadata objects for the specified rule group. + Description *string + + // Additional options governing how Network Firewall handles the rule group. You + // can only use these for stateful rule groups. + StatefulRuleOptions *types.StatefulRuleOptions + + // Indicates whether the rule group is stateless or stateful. If the rule group is + // stateless, it contains stateless rules. If it is stateful, it contains stateful + // rules. This setting is required for requests that do not include the + // RuleGroupARN. + Type types.RuleGroupType + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeRuleGroupMetadataMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpDescribeRuleGroupMetadata{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDescribeRuleGroupMetadata{}, 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_opDescribeRuleGroupMetadata(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_opDescribeRuleGroupMetadata(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "network-firewall", + OperationName: "DescribeRuleGroupMetadata", + } +} diff --git a/service/networkfirewall/api_op_ListRuleGroups.go b/service/networkfirewall/api_op_ListRuleGroups.go index f3d5ab04f84..8fc1896500f 100644 --- a/service/networkfirewall/api_op_ListRuleGroups.go +++ b/service/networkfirewall/api_op_ListRuleGroups.go @@ -45,6 +45,11 @@ type ListRuleGroupsInput struct { // request in your next request. NextToken *string + // The scope of the request. The default setting of ACCOUNT or a setting of NULL + // returns all of the rule groups in your account. A setting of MANAGED returns all + // available managed rule groups. + Scope types.ResourceManagedStatus + noSmithyDocumentSerde } diff --git a/service/networkfirewall/api_op_UpdateFirewallDeleteProtection.go b/service/networkfirewall/api_op_UpdateFirewallDeleteProtection.go index f3d679e8891..b21c18d4cf4 100644 --- a/service/networkfirewall/api_op_UpdateFirewallDeleteProtection.go +++ b/service/networkfirewall/api_op_UpdateFirewallDeleteProtection.go @@ -67,7 +67,10 @@ type UpdateFirewallDeleteProtectionInput struct { type UpdateFirewallDeleteProtectionOutput struct { - // + // A flag indicating whether it is possible to delete the firewall. A setting of + // TRUE indicates that the firewall is protected against deletion. Use this setting + // to protect against accidentally deleting a firewall that is in use. When you + // create a firewall, the operation initializes this flag to TRUE. DeleteProtection bool // The Amazon Resource Name (ARN) of the firewall. diff --git a/service/networkfirewall/api_op_UpdateFirewallPolicyChangeProtection.go b/service/networkfirewall/api_op_UpdateFirewallPolicyChangeProtection.go index 5fad73c3e6c..bd02d36a2a9 100644 --- a/service/networkfirewall/api_op_UpdateFirewallPolicyChangeProtection.go +++ b/service/networkfirewall/api_op_UpdateFirewallPolicyChangeProtection.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// +// Modifies the flag, ChangeProtection, which indicates whether it is possible to +// change the firewall. If the flag is set to TRUE, the firewall is protected from +// changes. This setting helps protect against accidentally changing a firewall +// that's in use. func (c *Client) UpdateFirewallPolicyChangeProtection(ctx context.Context, params *UpdateFirewallPolicyChangeProtectionInput, optFns ...func(*Options)) (*UpdateFirewallPolicyChangeProtectionOutput, error) { if params == nil { params = &UpdateFirewallPolicyChangeProtectionInput{} diff --git a/service/networkfirewall/deserializers.go b/service/networkfirewall/deserializers.go index a2cd9e6a5a3..3c10f212c14 100644 --- a/service/networkfirewall/deserializers.go +++ b/service/networkfirewall/deserializers.go @@ -1746,6 +1746,126 @@ func awsAwsjson10_deserializeOpErrorDescribeRuleGroup(response *smithyhttp.Respo } } +type awsAwsjson10_deserializeOpDescribeRuleGroupMetadata struct { +} + +func (*awsAwsjson10_deserializeOpDescribeRuleGroupMetadata) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpDescribeRuleGroupMetadata) HandleDeserialize(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, awsAwsjson10_deserializeOpErrorDescribeRuleGroupMetadata(response, &metadata) + } + output := &DescribeRuleGroupMetadataOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson10_deserializeOpDocumentDescribeRuleGroupMetadataOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson10_deserializeOpErrorDescribeRuleGroupMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InternalServerError", errorCode): + return awsAwsjson10_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson10_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson10_deserializeOpDisassociateSubnets struct { } @@ -2321,12 +2441,18 @@ func awsAwsjson10_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } switch { + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson10_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson10_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2558,12 +2684,18 @@ func awsAwsjson10_deserializeOpErrorTagResource(response *smithyhttp.Response, m } switch { + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson10_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson10_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2672,12 +2804,18 @@ func awsAwsjson10_deserializeOpErrorUntagResource(response *smithyhttp.Response, } switch { + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson10_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson10_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6652,6 +6790,46 @@ func awsAwsjson10_deserializeDocumentStatefulRule(v **types.StatefulRule, value return nil } +func awsAwsjson10_deserializeDocumentStatefulRuleGroupOverride(v **types.StatefulRuleGroupOverride, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StatefulRuleGroupOverride + if *v == nil { + sv = &types.StatefulRuleGroupOverride{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Action": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OverrideAction to be of type string, got %T instead", value) + } + sv.Action = types.OverrideAction(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeDocumentStatefulRuleGroupReference(v **types.StatefulRuleGroupReference, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6674,6 +6852,11 @@ func awsAwsjson10_deserializeDocumentStatefulRuleGroupReference(v **types.Statef for key, value := range shape { switch key { + case "Override": + if err := awsAwsjson10_deserializeDocumentStatefulRuleGroupOverride(&sv.Override, value); err != nil { + return err + } + case "Priority": if value != nil { jtv, ok := value.(json.Number) @@ -8145,6 +8328,91 @@ func awsAwsjson10_deserializeOpDocumentDescribeResourcePolicyOutput(v **Describe return nil } +func awsAwsjson10_deserializeOpDocumentDescribeRuleGroupMetadataOutput(v **DescribeRuleGroupMetadataOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeRuleGroupMetadataOutput + if *v == nil { + sv = &DescribeRuleGroupMetadataOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Capacity": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected RuleCapacity to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Capacity = ptr.Int32(int32(i64)) + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Description to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "RuleGroupArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceArn to be of type string, got %T instead", value) + } + sv.RuleGroupArn = ptr.String(jtv) + } + + case "RuleGroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceName to be of type string, got %T instead", value) + } + sv.RuleGroupName = ptr.String(jtv) + } + + case "StatefulRuleOptions": + if err := awsAwsjson10_deserializeDocumentStatefulRuleOptions(&sv.StatefulRuleOptions, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RuleGroupType to be of type string, got %T instead", value) + } + sv.Type = types.RuleGroupType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeOpDocumentDescribeRuleGroupOutput(v **DescribeRuleGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/networkfirewall/generated.json b/service/networkfirewall/generated.json index 1703132317a..7de91bc4a76 100644 --- a/service/networkfirewall/generated.json +++ b/service/networkfirewall/generated.json @@ -21,6 +21,7 @@ "api_op_DescribeLoggingConfiguration.go", "api_op_DescribeResourcePolicy.go", "api_op_DescribeRuleGroup.go", + "api_op_DescribeRuleGroupMetadata.go", "api_op_DisassociateSubnets.go", "api_op_ListFirewallPolicies.go", "api_op_ListFirewalls.go", diff --git a/service/networkfirewall/serializers.go b/service/networkfirewall/serializers.go index 3f2749a2932..29e3ae59a60 100644 --- a/service/networkfirewall/serializers.go +++ b/service/networkfirewall/serializers.go @@ -785,6 +785,61 @@ func (m *awsAwsjson10_serializeOpDescribeRuleGroup) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson10_serializeOpDescribeRuleGroupMetadata struct { +} + +func (*awsAwsjson10_serializeOpDescribeRuleGroupMetadata) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpDescribeRuleGroupMetadata) 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.(*DescribeRuleGroupMetadataInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("NetworkFirewall_20201112.DescribeRuleGroupMetadata") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentDescribeRuleGroupMetadataInput(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 awsAwsjson10_serializeOpDisassociateSubnets struct { } @@ -2274,10 +2329,29 @@ func awsAwsjson10_serializeDocumentStatefulRule(v *types.StatefulRule, value smi return nil } +func awsAwsjson10_serializeDocumentStatefulRuleGroupOverride(v *types.StatefulRuleGroupOverride, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Action) > 0 { + ok := object.Key("Action") + ok.String(string(v.Action)) + } + + return nil +} + func awsAwsjson10_serializeDocumentStatefulRuleGroupReference(v *types.StatefulRuleGroupReference, value smithyjson.Value) error { object := value.Object() defer object.Close() + if v.Override != nil { + ok := object.Key("Override") + if err := awsAwsjson10_serializeDocumentStatefulRuleGroupOverride(v.Override, ok); err != nil { + return err + } + } + if v.Priority != 0 { ok := object.Key("Priority") ok.Integer(v.Priority) @@ -2908,6 +2982,28 @@ func awsAwsjson10_serializeOpDocumentDescribeRuleGroupInput(v *DescribeRuleGroup return nil } +func awsAwsjson10_serializeOpDocumentDescribeRuleGroupMetadataInput(v *DescribeRuleGroupMetadataInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.RuleGroupArn != nil { + ok := object.Key("RuleGroupArn") + ok.String(*v.RuleGroupArn) + } + + if v.RuleGroupName != nil { + ok := object.Key("RuleGroupName") + ok.String(*v.RuleGroupName) + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + func awsAwsjson10_serializeOpDocumentDisassociateSubnetsInput(v *DisassociateSubnetsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2992,6 +3088,11 @@ func awsAwsjson10_serializeOpDocumentListRuleGroupsInput(v *ListRuleGroupsInput, ok.String(*v.NextToken) } + if len(v.Scope) > 0 { + ok := object.Key("Scope") + ok.String(string(v.Scope)) + } + return nil } diff --git a/service/networkfirewall/types/enums.go b/service/networkfirewall/types/enums.go index c419a4aefbc..0699ea6ad85 100644 --- a/service/networkfirewall/types/enums.go +++ b/service/networkfirewall/types/enums.go @@ -118,6 +118,22 @@ func (LogType) Values() []LogType { } } +type OverrideAction string + +// Enum values for OverrideAction +const ( + OverrideActionDropToAlert OverrideAction = "DROP_TO_ALERT" +) + +// Values returns all known values for OverrideAction. 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 (OverrideAction) Values() []OverrideAction { + return []OverrideAction{ + "DROP_TO_ALERT", + } +} + type PerObjectSyncStatus string // Enum values for PerObjectSyncStatus @@ -136,6 +152,24 @@ func (PerObjectSyncStatus) Values() []PerObjectSyncStatus { } } +type ResourceManagedStatus string + +// Enum values for ResourceManagedStatus +const ( + ResourceManagedStatusManaged ResourceManagedStatus = "MANAGED" + ResourceManagedStatusAccount ResourceManagedStatus = "ACCOUNT" +) + +// Values returns all known values for ResourceManagedStatus. 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 (ResourceManagedStatus) Values() []ResourceManagedStatus { + return []ResourceManagedStatus{ + "MANAGED", + "ACCOUNT", + } +} + type ResourceStatus string // Enum values for ResourceStatus diff --git a/service/networkfirewall/types/types.go b/service/networkfirewall/types/types.go index f900202b5f5..a36903a1397 100644 --- a/service/networkfirewall/types/types.go +++ b/service/networkfirewall/types/types.go @@ -237,6 +237,22 @@ type FirewallPolicy struct { StatelessFragmentDefaultActions []string // The default actions to take on a packet that doesn't match any stateful rules. + // The stateful default action is optional, and is only valid when using the strict + // rule order. Valid values of the stateful default action: + // + // * aws:drop_strict + // + // * + // aws:drop_established + // + // * aws:alert_strict + // + // * aws:alert_established + // + // For more + // information, see Strict evaluation order + // (https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-strict-rule-evaluation-order.html) + // in the AWS Network Firewall Developer Guide. StatefulDefaultActions []string // Additional options governing how Network Firewall handles stateful rules. The @@ -812,16 +828,16 @@ type RulesSourceList struct { // This member is required. TargetTypes []TargetType - // The domains that you want to inspect for in your traffic flows. To provide - // multiple domains, separate them with commas. Valid domain specifications are the - // following: + // The domains that you want to inspect for in your traffic flows. Valid domain + // specifications are the following: // - // * Explicit names. For example, abc.example.com matches only the - // domain abc.example.com. + // * Explicit names. For example, + // abc.example.com matches only the domain abc.example.com. // - // * Names that use a domain wildcard, which you indicate - // with an initial '.'. For example,.example.com matches example.com and matches - // all subdomains of example.com, such as abc.example.com and www.example.com. + // * Names that use a + // domain wildcard, which you indicate with an initial '.'. For + // example,.example.com matches example.com and matches all subdomains of + // example.com, such as abc.example.com and www.example.com. // // This member is required. Targets []string @@ -846,13 +862,12 @@ type RuleVariables struct { // firewall policy. type StatefulEngineOptions struct { - // Indicates how to manage the order of stateful rule evaluation for the policy. By - // default, Network Firewall leaves the rule evaluation order up to the Suricata - // rule processing engine. If you set this to STRICT_ORDER, your rules are - // evaluated in the exact order that you provide them in the policy. With strict - // ordering, the rule groups are evaluated by order of priority, starting from the - // lowest number, and the rules in each rule group are processed in the order that - // they're defined. + // Indicates how to manage the order of stateful rule evaluation for the policy. + // DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the + // rule engine as Suricata compatible strings, and Suricata evaluates them based on + // certain settings. For more information, see Evaluation order for stateful rules + // (https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) + // in the AWS Network Firewall Developer Guide. RuleOrder RuleOrder noSmithyDocumentSerde @@ -900,6 +915,17 @@ type StatefulRule struct { noSmithyDocumentSerde } +// The setting that allows the policy owner to change the behavior of the rule +// group within a policy. +type StatefulRuleGroupOverride struct { + + // The action that changes the rule group from DROP to ALERT. This only applies to + // managed rule groups. + Action OverrideAction + + noSmithyDocumentSerde +} + // Identifier for a single stateful rule group, used in a firewall policy to refer // to a rule group. type StatefulRuleGroupReference struct { @@ -909,6 +935,10 @@ type StatefulRuleGroupReference struct { // This member is required. ResourceArn *string + // The action that allows the policy owner to override the behavior of the rule + // group within a policy. + Override *StatefulRuleGroupOverride + // An integer setting that indicates the order in which to run the stateful rule // groups in a single FirewallPolicy. This setting only applies to firewall // policies that specify the STRICT_ORDER rule order in the stateful engine options @@ -927,10 +957,12 @@ type StatefulRuleGroupReference struct { // can only use these for stateful rule groups. type StatefulRuleOptions struct { - // Indicates how to manage the order of the rule evaluation for the rule group. By - // default, Network Firewall leaves the rule evaluation order up to the Suricata - // rule processing engine. If you set this to STRICT_ORDER, your rules are - // evaluated in the exact order that they're listed in your Suricata rules string. + // Indicates how to manage the order of the rule evaluation for the rule group. + // DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the + // rule engine as Suricata compatible strings, and Suricata evaluates them based on + // certain settings. For more information, see Evaluation order for stateful rules + // (https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) + // in the AWS Network Firewall Developer Guide. RuleOrder RuleOrder noSmithyDocumentSerde diff --git a/service/nimble/api_op_AcceptEulas.go b/service/nimble/api_op_AcceptEulas.go index d8807cb27e7..ec4215c3278 100644 --- a/service/nimble/api_op_AcceptEulas.go +++ b/service/nimble/api_op_AcceptEulas.go @@ -28,7 +28,6 @@ func (c *Client) AcceptEulas(ctx context.Context, params *AcceptEulasInput, optF return out, nil } -// type AcceptEulasInput struct { // A collection of EULA IDs. @@ -47,7 +46,6 @@ type AcceptEulasInput struct { noSmithyDocumentSerde } -// type AcceptEulasOutput struct { // A collection of EULA acceptances. diff --git a/service/nimble/api_op_CreateLaunchProfile.go b/service/nimble/api_op_CreateLaunchProfile.go index 9fb4ff47355..814aa0a6f82 100644 --- a/service/nimble/api_op_CreateLaunchProfile.go +++ b/service/nimble/api_op_CreateLaunchProfile.go @@ -28,7 +28,6 @@ func (c *Client) CreateLaunchProfile(ctx context.Context, params *CreateLaunchPr return out, nil } -// type CreateLaunchProfileInput struct { // Specifies the IDs of the EC2 subnets where streaming sessions will be accessible @@ -79,7 +78,6 @@ type CreateLaunchProfileInput struct { noSmithyDocumentSerde } -// type CreateLaunchProfileOutput struct { // The launch profile. diff --git a/service/nimble/api_op_CreateStreamingImage.go b/service/nimble/api_op_CreateStreamingImage.go index 48d74d83fad..7832a5f3be8 100644 --- a/service/nimble/api_op_CreateStreamingImage.go +++ b/service/nimble/api_op_CreateStreamingImage.go @@ -28,7 +28,6 @@ func (c *Client) CreateStreamingImage(ctx context.Context, params *CreateStreami return out, nil } -// type CreateStreamingImageInput struct { // The ID of an EC2 machine image with which to create this streaming image. @@ -61,7 +60,6 @@ type CreateStreamingImageInput struct { noSmithyDocumentSerde } -// type CreateStreamingImageOutput struct { // The streaming image. diff --git a/service/nimble/api_op_CreateStreamingSession.go b/service/nimble/api_op_CreateStreamingSession.go index a16ebe61679..035b558c742 100644 --- a/service/nimble/api_op_CreateStreamingSession.go +++ b/service/nimble/api_op_CreateStreamingSession.go @@ -29,7 +29,6 @@ func (c *Client) CreateStreamingSession(ctx context.Context, params *CreateStrea return out, nil } -// type CreateStreamingSessionInput struct { // The studio ID. @@ -61,7 +60,6 @@ type CreateStreamingSessionInput struct { noSmithyDocumentSerde } -// type CreateStreamingSessionOutput struct { // The session. diff --git a/service/nimble/api_op_CreateStreamingSessionStream.go b/service/nimble/api_op_CreateStreamingSessionStream.go index 47a8c0cf420..8197db55172 100644 --- a/service/nimble/api_op_CreateStreamingSessionStream.go +++ b/service/nimble/api_op_CreateStreamingSessionStream.go @@ -30,7 +30,6 @@ func (c *Client) CreateStreamingSessionStream(ctx context.Context, params *Creat return out, nil } -// type CreateStreamingSessionStreamInput struct { // The streaming session ID. @@ -54,7 +53,6 @@ type CreateStreamingSessionStreamInput struct { noSmithyDocumentSerde } -// type CreateStreamingSessionStreamOutput struct { // The stream. diff --git a/service/nimble/api_op_CreateStudio.go b/service/nimble/api_op_CreateStudio.go index 2f3e1d216d9..726e18a9e20 100644 --- a/service/nimble/api_op_CreateStudio.go +++ b/service/nimble/api_op_CreateStudio.go @@ -43,7 +43,6 @@ func (c *Client) CreateStudio(ctx context.Context, params *CreateStudioInput, op return out, nil } -// type CreateStudioInput struct { // The IAM role that Studio Admins will assume when logging in to the Nimble Studio @@ -84,7 +83,6 @@ type CreateStudioInput struct { noSmithyDocumentSerde } -// type CreateStudioOutput struct { // Information about a studio. diff --git a/service/nimble/api_op_CreateStudioComponent.go b/service/nimble/api_op_CreateStudioComponent.go index 2c559ef3105..ed2b78f9712 100644 --- a/service/nimble/api_op_CreateStudioComponent.go +++ b/service/nimble/api_op_CreateStudioComponent.go @@ -28,7 +28,6 @@ func (c *Client) CreateStudioComponent(ctx context.Context, params *CreateStudio return out, nil } -// type CreateStudioComponentInput struct { // The name for the studio component. @@ -76,7 +75,6 @@ type CreateStudioComponentInput struct { noSmithyDocumentSerde } -// type CreateStudioComponentOutput struct { // Information about the studio component. diff --git a/service/nimble/api_op_DeleteLaunchProfile.go b/service/nimble/api_op_DeleteLaunchProfile.go index bedfceb86b9..258c8d44ed2 100644 --- a/service/nimble/api_op_DeleteLaunchProfile.go +++ b/service/nimble/api_op_DeleteLaunchProfile.go @@ -48,7 +48,6 @@ type DeleteLaunchProfileInput struct { noSmithyDocumentSerde } -// type DeleteLaunchProfileOutput struct { // The launch profile. diff --git a/service/nimble/api_op_DeleteLaunchProfileMember.go b/service/nimble/api_op_DeleteLaunchProfileMember.go index 5135acfd938..67fbcc09eb7 100644 --- a/service/nimble/api_op_DeleteLaunchProfileMember.go +++ b/service/nimble/api_op_DeleteLaunchProfileMember.go @@ -52,7 +52,6 @@ type DeleteLaunchProfileMemberInput struct { noSmithyDocumentSerde } -// type DeleteLaunchProfileMemberOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/nimble/api_op_DeleteStreamingImage.go b/service/nimble/api_op_DeleteStreamingImage.go index 7ed3c1e6d07..f9bc0f04492 100644 --- a/service/nimble/api_op_DeleteStreamingImage.go +++ b/service/nimble/api_op_DeleteStreamingImage.go @@ -48,7 +48,6 @@ type DeleteStreamingImageInput struct { noSmithyDocumentSerde } -// type DeleteStreamingImageOutput struct { // The streaming image. diff --git a/service/nimble/api_op_DeleteStreamingSession.go b/service/nimble/api_op_DeleteStreamingSession.go index 8ad7658ebb7..c5be33b9725 100644 --- a/service/nimble/api_op_DeleteStreamingSession.go +++ b/service/nimble/api_op_DeleteStreamingSession.go @@ -51,7 +51,6 @@ type DeleteStreamingSessionInput struct { noSmithyDocumentSerde } -// type DeleteStreamingSessionOutput struct { // The session. diff --git a/service/nimble/api_op_DeleteStudio.go b/service/nimble/api_op_DeleteStudio.go index 4da3ae26c2b..4ded93d5c62 100644 --- a/service/nimble/api_op_DeleteStudio.go +++ b/service/nimble/api_op_DeleteStudio.go @@ -43,7 +43,6 @@ type DeleteStudioInput struct { noSmithyDocumentSerde } -// type DeleteStudioOutput struct { // Information about a studio. diff --git a/service/nimble/api_op_DeleteStudioComponent.go b/service/nimble/api_op_DeleteStudioComponent.go index f2086f0c059..52218f434a1 100644 --- a/service/nimble/api_op_DeleteStudioComponent.go +++ b/service/nimble/api_op_DeleteStudioComponent.go @@ -48,7 +48,6 @@ type DeleteStudioComponentInput struct { noSmithyDocumentSerde } -// type DeleteStudioComponentOutput struct { // Information about the studio component. diff --git a/service/nimble/api_op_DeleteStudioMember.go b/service/nimble/api_op_DeleteStudioMember.go index a438f12fced..2f0217b8370 100644 --- a/service/nimble/api_op_DeleteStudioMember.go +++ b/service/nimble/api_op_DeleteStudioMember.go @@ -47,7 +47,6 @@ type DeleteStudioMemberInput struct { noSmithyDocumentSerde } -// type DeleteStudioMemberOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/nimble/api_op_GetEula.go b/service/nimble/api_op_GetEula.go index fd42fe35f83..5f23f0bc89f 100644 --- a/service/nimble/api_op_GetEula.go +++ b/service/nimble/api_op_GetEula.go @@ -37,7 +37,6 @@ type GetEulaInput struct { noSmithyDocumentSerde } -// type GetEulaOutput struct { // The EULA. diff --git a/service/nimble/api_op_GetLaunchProfile.go b/service/nimble/api_op_GetLaunchProfile.go index ead6cd21d38..c274e46111a 100644 --- a/service/nimble/api_op_GetLaunchProfile.go +++ b/service/nimble/api_op_GetLaunchProfile.go @@ -47,7 +47,6 @@ type GetLaunchProfileInput struct { noSmithyDocumentSerde } -// type GetLaunchProfileOutput struct { // The launch profile. diff --git a/service/nimble/api_op_GetLaunchProfileDetails.go b/service/nimble/api_op_GetLaunchProfileDetails.go index 2db856f42be..592ca51b2f5 100644 --- a/service/nimble/api_op_GetLaunchProfileDetails.go +++ b/service/nimble/api_op_GetLaunchProfileDetails.go @@ -46,7 +46,6 @@ type GetLaunchProfileDetailsInput struct { noSmithyDocumentSerde } -// type GetLaunchProfileDetailsOutput struct { // The launch profile. diff --git a/service/nimble/api_op_GetLaunchProfileInitialization.go b/service/nimble/api_op_GetLaunchProfileInitialization.go index 5f8b2e764b3..a8785fa2677 100644 --- a/service/nimble/api_op_GetLaunchProfileInitialization.go +++ b/service/nimble/api_op_GetLaunchProfileInitialization.go @@ -57,7 +57,6 @@ type GetLaunchProfileInitializationInput struct { noSmithyDocumentSerde } -// type GetLaunchProfileInitializationOutput struct { // The launch profile initialization. diff --git a/service/nimble/api_op_GetLaunchProfileMember.go b/service/nimble/api_op_GetLaunchProfileMember.go index 7c5e5a1369a..ee9d37274d3 100644 --- a/service/nimble/api_op_GetLaunchProfileMember.go +++ b/service/nimble/api_op_GetLaunchProfileMember.go @@ -47,7 +47,6 @@ type GetLaunchProfileMemberInput struct { noSmithyDocumentSerde } -// type GetLaunchProfileMemberOutput struct { // The member. diff --git a/service/nimble/api_op_GetStreamingImage.go b/service/nimble/api_op_GetStreamingImage.go index 6e40e6d13e8..608b151138c 100644 --- a/service/nimble/api_op_GetStreamingImage.go +++ b/service/nimble/api_op_GetStreamingImage.go @@ -47,7 +47,6 @@ type GetStreamingImageInput struct { noSmithyDocumentSerde } -// type GetStreamingImageOutput struct { // The streaming image. diff --git a/service/nimble/api_op_GetStreamingSession.go b/service/nimble/api_op_GetStreamingSession.go index 04eaf1cf919..04f8e0acad4 100644 --- a/service/nimble/api_op_GetStreamingSession.go +++ b/service/nimble/api_op_GetStreamingSession.go @@ -48,7 +48,6 @@ type GetStreamingSessionInput struct { noSmithyDocumentSerde } -// type GetStreamingSessionOutput struct { // The session. diff --git a/service/nimble/api_op_GetStreamingSessionStream.go b/service/nimble/api_op_GetStreamingSessionStream.go index c314617c09d..f678cf0c323 100644 --- a/service/nimble/api_op_GetStreamingSessionStream.go +++ b/service/nimble/api_op_GetStreamingSessionStream.go @@ -55,7 +55,6 @@ type GetStreamingSessionStreamInput struct { noSmithyDocumentSerde } -// type GetStreamingSessionStreamOutput struct { // The stream. diff --git a/service/nimble/api_op_GetStudio.go b/service/nimble/api_op_GetStudio.go index 8cd1b3e6eca..4d74cfb20dc 100644 --- a/service/nimble/api_op_GetStudio.go +++ b/service/nimble/api_op_GetStudio.go @@ -42,7 +42,6 @@ type GetStudioInput struct { noSmithyDocumentSerde } -// type GetStudioOutput struct { // Information about a studio. diff --git a/service/nimble/api_op_GetStudioComponent.go b/service/nimble/api_op_GetStudioComponent.go index 6df7ff2e4b2..009685f57b2 100644 --- a/service/nimble/api_op_GetStudioComponent.go +++ b/service/nimble/api_op_GetStudioComponent.go @@ -47,7 +47,6 @@ type GetStudioComponentInput struct { noSmithyDocumentSerde } -// type GetStudioComponentOutput struct { // Information about the studio component. diff --git a/service/nimble/api_op_GetStudioMember.go b/service/nimble/api_op_GetStudioMember.go index 75710d71fb3..5d536902103 100644 --- a/service/nimble/api_op_GetStudioMember.go +++ b/service/nimble/api_op_GetStudioMember.go @@ -42,7 +42,6 @@ type GetStudioMemberInput struct { noSmithyDocumentSerde } -// type GetStudioMemberOutput struct { // The member. diff --git a/service/nimble/api_op_ListEulaAcceptances.go b/service/nimble/api_op_ListEulaAcceptances.go index 4842b073bf1..58b3af9844e 100644 --- a/service/nimble/api_op_ListEulaAcceptances.go +++ b/service/nimble/api_op_ListEulaAcceptances.go @@ -44,7 +44,6 @@ type ListEulaAcceptancesInput struct { noSmithyDocumentSerde } -// type ListEulaAcceptancesOutput struct { // A collection of EULA acceptances. diff --git a/service/nimble/api_op_ListEulas.go b/service/nimble/api_op_ListEulas.go index 777aa33f07a..5a837e9160d 100644 --- a/service/nimble/api_op_ListEulas.go +++ b/service/nimble/api_op_ListEulas.go @@ -39,7 +39,6 @@ type ListEulasInput struct { noSmithyDocumentSerde } -// type ListEulasOutput struct { // A collection of EULA resources. diff --git a/service/nimble/api_op_ListLaunchProfileMembers.go b/service/nimble/api_op_ListLaunchProfileMembers.go index 0148c9fe686..15231d37e4b 100644 --- a/service/nimble/api_op_ListLaunchProfileMembers.go +++ b/service/nimble/api_op_ListLaunchProfileMembers.go @@ -49,7 +49,6 @@ type ListLaunchProfileMembersInput struct { noSmithyDocumentSerde } -// type ListLaunchProfileMembersOutput struct { // A list of members. diff --git a/service/nimble/api_op_ListLaunchProfiles.go b/service/nimble/api_op_ListLaunchProfiles.go index 300425bc9d4..3658f6c4f81 100644 --- a/service/nimble/api_op_ListLaunchProfiles.go +++ b/service/nimble/api_op_ListLaunchProfiles.go @@ -50,7 +50,6 @@ type ListLaunchProfilesInput struct { noSmithyDocumentSerde } -// type ListLaunchProfilesOutput struct { // A collection of launch profiles. diff --git a/service/nimble/api_op_ListStreamingImages.go b/service/nimble/api_op_ListStreamingImages.go index 13729c804fe..1574ce3b0fc 100644 --- a/service/nimble/api_op_ListStreamingImages.go +++ b/service/nimble/api_op_ListStreamingImages.go @@ -46,7 +46,6 @@ type ListStreamingImagesInput struct { noSmithyDocumentSerde } -// type ListStreamingImagesOutput struct { // The token for the next set of results, or null if there are no more results. diff --git a/service/nimble/api_op_ListStreamingSessions.go b/service/nimble/api_op_ListStreamingSessions.go index 2a3fa272944..1bbcd07bcc8 100644 --- a/service/nimble/api_op_ListStreamingSessions.go +++ b/service/nimble/api_op_ListStreamingSessions.go @@ -50,7 +50,6 @@ type ListStreamingSessionsInput struct { noSmithyDocumentSerde } -// type ListStreamingSessionsOutput struct { // The token for the next set of results, or null if there are no more results. diff --git a/service/nimble/api_op_ListStudioComponents.go b/service/nimble/api_op_ListStudioComponents.go index 255b73d9376..3f8ba99d5e0 100644 --- a/service/nimble/api_op_ListStudioComponents.go +++ b/service/nimble/api_op_ListStudioComponents.go @@ -50,7 +50,6 @@ type ListStudioComponentsInput struct { noSmithyDocumentSerde } -// type ListStudioComponentsOutput struct { // The token for the next set of results, or null if there are no more results. diff --git a/service/nimble/api_op_ListStudioMembers.go b/service/nimble/api_op_ListStudioMembers.go index 93aa74792eb..ba0c901e0d1 100644 --- a/service/nimble/api_op_ListStudioMembers.go +++ b/service/nimble/api_op_ListStudioMembers.go @@ -12,7 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Get all users in a given studio membership. +// Get all users in a given studio membership. ListStudioMembers only returns admin +// members. func (c *Client) ListStudioMembers(ctx context.Context, params *ListStudioMembersInput, optFns ...func(*Options)) (*ListStudioMembersOutput, error) { if params == nil { params = &ListStudioMembersInput{} @@ -44,10 +45,9 @@ type ListStudioMembersInput struct { noSmithyDocumentSerde } -// type ListStudioMembersOutput struct { - // A list of members. + // A list of admin members. Members []types.StudioMembership // The token for the next set of results, or null if there are no more results. diff --git a/service/nimble/api_op_ListStudios.go b/service/nimble/api_op_ListStudios.go index d3451e749d6..07fa5b7adac 100644 --- a/service/nimble/api_op_ListStudios.go +++ b/service/nimble/api_op_ListStudios.go @@ -37,7 +37,6 @@ type ListStudiosInput struct { noSmithyDocumentSerde } -// type ListStudiosOutput struct { // A collection of studios. diff --git a/service/nimble/api_op_ListTagsForResource.go b/service/nimble/api_op_ListTagsForResource.go index 77dcdf67405..ae3ea873e3e 100644 --- a/service/nimble/api_op_ListTagsForResource.go +++ b/service/nimble/api_op_ListTagsForResource.go @@ -40,7 +40,6 @@ type ListTagsForResourceInput struct { noSmithyDocumentSerde } -// type ListTagsForResourceOutput struct { // A collection of labels, in the form of key:value pairs, that apply to this diff --git a/service/nimble/api_op_PutLaunchProfileMembers.go b/service/nimble/api_op_PutLaunchProfileMembers.go index d5b96b0df99..61c0684257f 100644 --- a/service/nimble/api_op_PutLaunchProfileMembers.go +++ b/service/nimble/api_op_PutLaunchProfileMembers.go @@ -28,7 +28,6 @@ func (c *Client) PutLaunchProfileMembers(ctx context.Context, params *PutLaunchP return out, nil } -// type PutLaunchProfileMembersInput struct { // The ID of the identity store. diff --git a/service/nimble/api_op_PutStudioMembers.go b/service/nimble/api_op_PutStudioMembers.go index 940011adc97..34befaaaf4d 100644 --- a/service/nimble/api_op_PutStudioMembers.go +++ b/service/nimble/api_op_PutStudioMembers.go @@ -28,7 +28,6 @@ func (c *Client) PutStudioMembers(ctx context.Context, params *PutStudioMembersI return out, nil } -// type PutStudioMembersInput struct { // The ID of the identity store. @@ -54,7 +53,6 @@ type PutStudioMembersInput struct { noSmithyDocumentSerde } -// type PutStudioMembersOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/nimble/api_op_StartStudioSSOConfigurationRepair.go b/service/nimble/api_op_StartStudioSSOConfigurationRepair.go index 5b88dc0cc70..fbba180bf78 100644 --- a/service/nimble/api_op_StartStudioSSOConfigurationRepair.go +++ b/service/nimble/api_op_StartStudioSSOConfigurationRepair.go @@ -50,7 +50,6 @@ type StartStudioSSOConfigurationRepairInput struct { noSmithyDocumentSerde } -// type StartStudioSSOConfigurationRepairOutput struct { // Information about a studio. diff --git a/service/nimble/api_op_TagResource.go b/service/nimble/api_op_TagResource.go index b16947972e8..1e155ba35ea 100644 --- a/service/nimble/api_op_TagResource.go +++ b/service/nimble/api_op_TagResource.go @@ -26,7 +26,6 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF return out, nil } -// type TagResourceInput struct { // The Amazon Resource Name (ARN) of the resource you want to add tags to. diff --git a/service/nimble/api_op_UpdateLaunchProfile.go b/service/nimble/api_op_UpdateLaunchProfile.go index 68a08e89fff..1a32013cb65 100644 --- a/service/nimble/api_op_UpdateLaunchProfile.go +++ b/service/nimble/api_op_UpdateLaunchProfile.go @@ -28,7 +28,6 @@ func (c *Client) UpdateLaunchProfile(ctx context.Context, params *UpdateLaunchPr return out, nil } -// type UpdateLaunchProfileInput struct { // The Launch Profile ID. @@ -66,7 +65,6 @@ type UpdateLaunchProfileInput struct { noSmithyDocumentSerde } -// type UpdateLaunchProfileOutput struct { // The launch profile. diff --git a/service/nimble/api_op_UpdateLaunchProfileMember.go b/service/nimble/api_op_UpdateLaunchProfileMember.go index 76c9fd062c9..595af473026 100644 --- a/service/nimble/api_op_UpdateLaunchProfileMember.go +++ b/service/nimble/api_op_UpdateLaunchProfileMember.go @@ -28,7 +28,6 @@ func (c *Client) UpdateLaunchProfileMember(ctx context.Context, params *UpdateLa return out, nil } -// type UpdateLaunchProfileMemberInput struct { // The Launch Profile ID. diff --git a/service/nimble/api_op_UpdateStreamingImage.go b/service/nimble/api_op_UpdateStreamingImage.go index 9ea01ce7dda..645a7a7788b 100644 --- a/service/nimble/api_op_UpdateStreamingImage.go +++ b/service/nimble/api_op_UpdateStreamingImage.go @@ -28,7 +28,6 @@ func (c *Client) UpdateStreamingImage(ctx context.Context, params *UpdateStreami return out, nil } -// type UpdateStreamingImageInput struct { // The streaming image ID. @@ -55,10 +54,14 @@ type UpdateStreamingImageInput struct { noSmithyDocumentSerde } -// type UpdateStreamingImageOutput struct { - // + // Represents a streaming image resource. Streaming images are used by studio users + // to select which operating system and software they want to use in a Nimble + // Studio streaming session. Amazon provides a number of streaming images that + // include popular 3rd-party software. You can create your own streaming images + // using an Amazon Elastic Compute Cloud (Amazon EC2) machine image that you create + // for this purpose. You can also include software that your users require. StreamingImage *types.StreamingImage // Metadata pertaining to the operation's result. diff --git a/service/nimble/api_op_UpdateStudio.go b/service/nimble/api_op_UpdateStudio.go index 4261534f04e..1da0062716e 100644 --- a/service/nimble/api_op_UpdateStudio.go +++ b/service/nimble/api_op_UpdateStudio.go @@ -29,7 +29,6 @@ func (c *Client) UpdateStudio(ctx context.Context, params *UpdateStudioInput, op return out, nil } -// type UpdateStudioInput struct { // The studio ID. @@ -56,7 +55,6 @@ type UpdateStudioInput struct { noSmithyDocumentSerde } -// type UpdateStudioOutput struct { // Information about a studio. diff --git a/service/nimble/api_op_UpdateStudioComponent.go b/service/nimble/api_op_UpdateStudioComponent.go index 5189851668d..6daa5edac6e 100644 --- a/service/nimble/api_op_UpdateStudioComponent.go +++ b/service/nimble/api_op_UpdateStudioComponent.go @@ -28,7 +28,6 @@ func (c *Client) UpdateStudioComponent(ctx context.Context, params *UpdateStudio return out, nil } -// type UpdateStudioComponentInput struct { // The studio component ID. @@ -73,7 +72,6 @@ type UpdateStudioComponentInput struct { noSmithyDocumentSerde } -// type UpdateStudioComponentOutput struct { // Information about the studio component. diff --git a/service/nimble/deserializers.go b/service/nimble/deserializers.go index 55bab5a24f8..72f136fa533 100644 --- a/service/nimble/deserializers.go +++ b/service/nimble/deserializers.go @@ -9472,6 +9472,11 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu sv.MaxStoppedSessionLengthInMinutes = int32(i64) } + case "sessionStorage": + if err := awsRestjson1_deserializeDocumentStreamConfigurationSessionStorage(&sv.SessionStorage, value); err != nil { + return err + } + case "streamingImageIds": if err := awsRestjson1_deserializeDocumentStreamingImageIdList(&sv.StreamingImageIds, value); err != nil { return err @@ -9486,6 +9491,47 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu return nil } +func awsRestjson1_deserializeDocumentStreamConfigurationSessionStorage(v **types.StreamConfigurationSessionStorage, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StreamConfigurationSessionStorage + if *v == nil { + sv = &types.StreamConfigurationSessionStorage{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "mode": + if err := awsRestjson1_deserializeDocumentStreamingSessionStorageModeList(&sv.Mode, value); err != nil { + return err + } + + case "root": + if err := awsRestjson1_deserializeDocumentStreamingSessionStorageRoot(&sv.Root, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStreamingImage(v **types.StreamingImage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10042,6 +10088,91 @@ func awsRestjson1_deserializeDocumentStreamingSessionList(v *[]types.StreamingSe return nil } +func awsRestjson1_deserializeDocumentStreamingSessionStorageModeList(v *[]types.StreamingSessionStorageMode, 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.StreamingSessionStorageMode + if *v == nil { + cv = []types.StreamingSessionStorageMode{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.StreamingSessionStorageMode + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionStorageMode to be of type string, got %T instead", value) + } + col = types.StreamingSessionStorageMode(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentStreamingSessionStorageRoot(v **types.StreamingSessionStorageRoot, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StreamingSessionStorageRoot + if *v == nil { + sv = &types.StreamingSessionStorageRoot{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "linux": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionStorageRootPathLinux to be of type string, got %T instead", value) + } + sv.Linux = ptr.String(jtv) + } + + case "windows": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionStorageRootPathWindows to be of type string, got %T instead", value) + } + sv.Windows = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStreamingSessionStream(v **types.StreamingSessionStream, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/nimble/serializers.go b/service/nimble/serializers.go index dcca9107ca6..a3a1f3549c7 100644 --- a/service/nimble/serializers.go +++ b/service/nimble/serializers.go @@ -4074,6 +4074,13 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf ok.Integer(v.MaxStoppedSessionLengthInMinutes) } + if v.SessionStorage != nil { + ok := object.Key("sessionStorage") + if err := awsRestjson1_serializeDocumentStreamConfigurationSessionStorage(v.SessionStorage, ok); err != nil { + return err + } + } + if v.StreamingImageIds != nil { ok := object.Key("streamingImageIds") if err := awsRestjson1_serializeDocumentStreamingImageIdList(v.StreamingImageIds, ok); err != nil { @@ -4084,6 +4091,27 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf return nil } +func awsRestjson1_serializeDocumentStreamConfigurationSessionStorage(v *types.StreamConfigurationSessionStorage, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Mode != nil { + ok := object.Key("mode") + if err := awsRestjson1_serializeDocumentStreamingSessionStorageModeList(v.Mode, ok); err != nil { + return err + } + } + + if v.Root != nil { + ok := object.Key("root") + if err := awsRestjson1_serializeDocumentStreamingSessionStorageRoot(v.Root, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentStreamingImageIdList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -4106,6 +4134,34 @@ func awsRestjson1_serializeDocumentStreamingInstanceTypeList(v []types.Streaming return nil } +func awsRestjson1_serializeDocumentStreamingSessionStorageModeList(v []types.StreamingSessionStorageMode, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + +func awsRestjson1_serializeDocumentStreamingSessionStorageRoot(v *types.StreamingSessionStorageRoot, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Linux != nil { + ok := object.Key("linux") + ok.String(*v.Linux) + } + + if v.Windows != nil { + ok := object.Key("windows") + ok.String(*v.Windows) + } + + return nil +} + func awsRestjson1_serializeDocumentStudioComponentConfiguration(v *types.StudioComponentConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/nimble/types/enums.go b/service/nimble/types/enums.go index b8e9f933ff6..6320a26ce27 100644 --- a/service/nimble/types/enums.go +++ b/service/nimble/types/enums.go @@ -181,6 +181,7 @@ const ( StreamingImageStatusCodeStreamingImageDeleted StreamingImageStatusCode = "STREAMING_IMAGE_DELETED" StreamingImageStatusCodeStreamingImageUpdateInProgress StreamingImageStatusCode = "STREAMING_IMAGE_UPDATE_IN_PROGRESS" StreamingImageStatusCodeInternalError StreamingImageStatusCode = "INTERNAL_ERROR" + StreamingImageStatusCodeAccessDenied StreamingImageStatusCode = "ACCESS_DENIED" ) // Values returns all known values for StreamingImageStatusCode. Note that this can @@ -194,6 +195,7 @@ func (StreamingImageStatusCode) Values() []StreamingImageStatusCode { "STREAMING_IMAGE_DELETED", "STREAMING_IMAGE_UPDATE_IN_PROGRESS", "INTERNAL_ERROR", + "ACCESS_DENIED", } } @@ -303,6 +305,22 @@ func (StreamingSessionStatusCode) Values() []StreamingSessionStatusCode { } } +type StreamingSessionStorageMode string + +// Enum values for StreamingSessionStorageMode +const ( + StreamingSessionStorageModeUpload StreamingSessionStorageMode = "UPLOAD" +) + +// Values returns all known values for StreamingSessionStorageMode. 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 (StreamingSessionStorageMode) Values() []StreamingSessionStorageMode { + return []StreamingSessionStorageMode{ + "UPLOAD", + } +} + type StreamingSessionStreamState string // Enum values for StreamingSessionStreamState diff --git a/service/nimble/types/types.go b/service/nimble/types/types.go index 3a9a5fffd66..4a6e04d387e 100644 --- a/service/nimble/types/types.go +++ b/service/nimble/types/types.go @@ -158,7 +158,7 @@ type LaunchProfile struct { } // A Launch Profile Initialization contains information required for a workstation -// or server to connect to a launch profile This includes scripts, endpoints, +// or server to connect to a launch profile. This includes scripts, endpoints, // security groups, subnets, and other configuration. type LaunchProfileInitialization struct { @@ -193,7 +193,8 @@ type LaunchProfileInitialization struct { noSmithyDocumentSerde } -// +// The Launch Profile Initialization Active Directory contains information required +// for the launch profile to connect to the Active Directory. type LaunchProfileInitializationActiveDirectory struct { // A collection of custom attributes for an Active Directory computer. @@ -221,7 +222,8 @@ type LaunchProfileInitializationActiveDirectory struct { noSmithyDocumentSerde } -// +// The Launch Profile Initialization Script is used when start streaming session +// runs. type LaunchProfileInitializationScript struct { // The initialization script. @@ -236,7 +238,26 @@ type LaunchProfileInitializationScript struct { noSmithyDocumentSerde } +// Launch profile membership enables your studio admins to delegate launch profile +// access to other studio users in the Nimble Studio portal without needing to +// write or maintain complex IAM policies. A launch profile member is a user +// association from your studio identity source who is granted permissions to a +// launch profile. A launch profile member (type USER) provides the following +// permissions to that launch profile: +// +// * GetLaunchProfile +// +// * +// GetLaunchProfileInitialization +// +// * GetLaunchProfileMembers +// +// * +// GetLaunchProfileMember // +// * CreateStreamingSession +// +// * GetLaunchProfileDetails type LaunchProfileMembership struct { // The ID of the identity store. @@ -265,7 +286,7 @@ type LicenseServiceConfiguration struct { noSmithyDocumentSerde } -// +// A new member that is added to a launch profile. type NewLaunchProfileMember struct { // The persona. @@ -281,7 +302,7 @@ type NewLaunchProfileMember struct { noSmithyDocumentSerde } -// +// A new studio user's membership. type NewStudioMember struct { // The persona. @@ -371,6 +392,9 @@ type StreamConfiguration struct { // the session will automatically be stopped by AWS (instead of terminated). MaxStoppedSessionLengthInMinutes int32 + // (Optional) The upload storage for a streaming session. + SessionStorage *StreamConfigurationSessionStorage + noSmithyDocumentSerde } @@ -401,12 +425,37 @@ type StreamConfigurationCreate struct { // the maximum length of time is 30 days. MaxSessionLengthInMinutes int32 - // The length of time, in minutes, that a streaming session can be active before it - // is stopped or terminated. After this point, Nimble Studio automatically - // terminates or stops the session. The default length of time is 690 minutes, and - // the maximum length of time is 30 days. + // Integer that determines if you can start and stop your sessions and how long a + // session can stay in the STOPPED state. The default value is 0. The maximum value + // is 5760. If the value is missing or set to 0, your sessions can’t be stopped. If + // you then call StopStreamingSession, the session fails. If the time that a + // session stays in the READY state exceeds the maxSessionLengthInMinutes value, + // the session will automatically be terminated by AWS (instead of stopped). If the + // value is set to a positive number, the session can be stopped. You can call + // StopStreamingSession to stop sessions in the READY state. If the time that a + // session stays in the READY state exceeds the maxSessionLengthInMinutes value, + // the session will automatically be stopped by AWS (instead of terminated). MaxStoppedSessionLengthInMinutes int32 + // (Optional) The upload storage for a streaming workstation that is created using + // this launch profile. + SessionStorage *StreamConfigurationSessionStorage + + noSmithyDocumentSerde +} + +// The configuration for a streaming session’s upload storage. +type StreamConfigurationSessionStorage struct { + + // Allows artists to upload files to their workstations. The only valid option is + // UPLOAD. + // + // This member is required. + Mode []StreamingSessionStorageMode + + // The configuration for the upload storage root of the streaming session. + Root *StreamingSessionStorageRoot + noSmithyDocumentSerde } @@ -548,6 +597,21 @@ type StreamingSession struct { noSmithyDocumentSerde } +// The upload storage root location (folder) on streaming workstations where files +// are uploaded. +type StreamingSessionStorageRoot struct { + + // The folder path in Linux workstations where files are uploaded. The default path + // is $HOME/Downloads. + Linux *string + + // The folder path in Windows workstations where files are uploaded. The default + // path is %HOMEPATH%\Downloads. + Windows *string + + noSmithyDocumentSerde +} + // A stream is an active connection to a streaming session, enabling a studio user // to control the streaming session using a compatible client. Streaming session // streams are compatible with the NICE DCV web client, included in the Nimble @@ -762,7 +826,7 @@ type StudioComponentInitializationScript struct { noSmithyDocumentSerde } -// +// The studio component's summary. type StudioComponentSummary struct { // The Unix epoch timestamp in seconds for when the resource was created. diff --git a/service/nimble/validators.go b/service/nimble/validators.go index ca1c500ab1c..66ff7cab948 100644 --- a/service/nimble/validators.go +++ b/service/nimble/validators.go @@ -1174,6 +1174,26 @@ func validateStreamConfigurationCreate(v *types.StreamConfigurationCreate) error if v.StreamingImageIds == nil { invalidParams.Add(smithy.NewErrParamRequired("StreamingImageIds")) } + if v.SessionStorage != nil { + if err := validateStreamConfigurationSessionStorage(v.SessionStorage); err != nil { + invalidParams.AddNested("SessionStorage", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateStreamConfigurationSessionStorage(v *types.StreamConfigurationSessionStorage) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StreamConfigurationSessionStorage"} + if v.Mode == nil { + invalidParams.Add(smithy.NewErrParamRequired("Mode")) + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/outposts/api_op_CreateOutpost.go b/service/outposts/api_op_CreateOutpost.go index 64387bb9ed7..2e98ab67bdb 100644 --- a/service/outposts/api_op_CreateOutpost.go +++ b/service/outposts/api_op_CreateOutpost.go @@ -34,7 +34,7 @@ type CreateOutpostInput struct { // This member is required. Name *string - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_DeleteOutpost.go b/service/outposts/api_op_DeleteOutpost.go index 5609d30aad8..672a7d856d7 100644 --- a/service/outposts/api_op_DeleteOutpost.go +++ b/service/outposts/api_op_DeleteOutpost.go @@ -28,7 +28,7 @@ func (c *Client) DeleteOutpost(ctx context.Context, params *DeleteOutpostInput, type DeleteOutpostInput struct { - // The ID of the Outpost. + // The ID or the Amazon Resource Name (ARN) of the Outpost. // // This member is required. OutpostId *string diff --git a/service/outposts/api_op_DeleteSite.go b/service/outposts/api_op_DeleteSite.go index 049a4f29432..df0d8c35eaa 100644 --- a/service/outposts/api_op_DeleteSite.go +++ b/service/outposts/api_op_DeleteSite.go @@ -28,7 +28,7 @@ func (c *Client) DeleteSite(ctx context.Context, params *DeleteSiteInput, optFns type DeleteSiteInput struct { - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_GetOutpost.go b/service/outposts/api_op_GetOutpost.go index de7b308b2e3..b5f282c772d 100644 --- a/service/outposts/api_op_GetOutpost.go +++ b/service/outposts/api_op_GetOutpost.go @@ -29,7 +29,7 @@ func (c *Client) GetOutpost(ctx context.Context, params *GetOutpostInput, optFns type GetOutpostInput struct { - // The ID of the Outpost. + // The ID or the Amazon Resource Name (ARN) of the Outpost. // // This member is required. OutpostId *string diff --git a/service/outposts/api_op_GetOutpostInstanceTypes.go b/service/outposts/api_op_GetOutpostInstanceTypes.go index 08a69bbf4e0..3e38eb2f55b 100644 --- a/service/outposts/api_op_GetOutpostInstanceTypes.go +++ b/service/outposts/api_op_GetOutpostInstanceTypes.go @@ -29,7 +29,7 @@ func (c *Client) GetOutpostInstanceTypes(ctx context.Context, params *GetOutpost type GetOutpostInstanceTypesInput struct { - // The ID of the Outpost. + // The ID or the Amazon Resource Name (ARN) of the Outpost. // // This member is required. OutpostId *string diff --git a/service/outposts/api_op_GetSite.go b/service/outposts/api_op_GetSite.go index 3f7cbd5f785..f234b5529db 100644 --- a/service/outposts/api_op_GetSite.go +++ b/service/outposts/api_op_GetSite.go @@ -29,7 +29,7 @@ func (c *Client) GetSite(ctx context.Context, params *GetSiteInput, optFns ...fu type GetSiteInput struct { - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_GetSiteAddress.go b/service/outposts/api_op_GetSiteAddress.go index 3e0c9850f7f..6578b25db76 100644 --- a/service/outposts/api_op_GetSiteAddress.go +++ b/service/outposts/api_op_GetSiteAddress.go @@ -34,7 +34,7 @@ type GetSiteAddressInput struct { // This member is required. AddressType types.AddressType - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_UpdateOutpost.go b/service/outposts/api_op_UpdateOutpost.go new file mode 100644 index 00000000000..6f80ecfa812 --- /dev/null +++ b/service/outposts/api_op_UpdateOutpost.go @@ -0,0 +1,130 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package outposts + +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/outposts/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates an Outpost. +func (c *Client) UpdateOutpost(ctx context.Context, params *UpdateOutpostInput, optFns ...func(*Options)) (*UpdateOutpostOutput, error) { + if params == nil { + params = &UpdateOutpostInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateOutpost", params, optFns, c.addOperationUpdateOutpostMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateOutpostOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateOutpostInput struct { + + // The ID or the Amazon Resource Name (ARN) of the Outpost. + // + // This member is required. + OutpostId *string + + // The description of the Outpost. + Description *string + + // The name of the Outpost. + Name *string + + // The type of hardware for this Outpost. + SupportedHardwareType types.SupportedHardwareType + + noSmithyDocumentSerde +} + +type UpdateOutpostOutput struct { + + // Information about an Outpost. + Outpost *types.Outpost + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateOutpostMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateOutpost{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateOutpost{}, 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 = addOpUpdateOutpostValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateOutpost(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_opUpdateOutpost(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "outposts", + OperationName: "UpdateOutpost", + } +} diff --git a/service/outposts/api_op_UpdateSite.go b/service/outposts/api_op_UpdateSite.go index ab37bfb6cfa..03f4ca858da 100644 --- a/service/outposts/api_op_UpdateSite.go +++ b/service/outposts/api_op_UpdateSite.go @@ -29,7 +29,7 @@ func (c *Client) UpdateSite(ctx context.Context, params *UpdateSiteInput, optFns type UpdateSiteInput struct { - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_UpdateSiteAddress.go b/service/outposts/api_op_UpdateSiteAddress.go index dc2f45ac7b7..00aa77f6f56 100644 --- a/service/outposts/api_op_UpdateSiteAddress.go +++ b/service/outposts/api_op_UpdateSiteAddress.go @@ -42,7 +42,7 @@ type UpdateSiteAddressInput struct { // This member is required. AddressType types.AddressType - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/api_op_UpdateSiteRackPhysicalProperties.go b/service/outposts/api_op_UpdateSiteRackPhysicalProperties.go index 7a018fa26c1..2c87cd21c71 100644 --- a/service/outposts/api_op_UpdateSiteRackPhysicalProperties.go +++ b/service/outposts/api_op_UpdateSiteRackPhysicalProperties.go @@ -35,7 +35,7 @@ func (c *Client) UpdateSiteRackPhysicalProperties(ctx context.Context, params *U type UpdateSiteRackPhysicalPropertiesInput struct { - // The ID of the site. + // The ID or the Amazon Resource Name (ARN) of the site. // // This member is required. SiteId *string diff --git a/service/outposts/deserializers.go b/service/outposts/deserializers.go index 824f54cab5e..0c4f2b19ef9 100644 --- a/service/outposts/deserializers.go +++ b/service/outposts/deserializers.go @@ -2745,6 +2745,165 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } +type awsRestjson1_deserializeOpUpdateOutpost struct { +} + +func (*awsRestjson1_deserializeOpUpdateOutpost) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateOutpost) HandleDeserialize(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_deserializeOpErrorUpdateOutpost(response, &metadata) + } + output := &UpdateOutpostOutput{} + 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_deserializeOpDocumentUpdateOutpostOutput(&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_deserializeOpErrorUpdateOutpost(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateOutpostOutput(v **UpdateOutpostOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateOutpostOutput + if *v == nil { + sv = &UpdateOutpostOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Outpost": + if err := awsRestjson1_deserializeDocumentOutpost(&sv.Outpost, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpUpdateSite struct { } diff --git a/service/outposts/generated.json b/service/outposts/generated.json index b358f57799d..cf46cf1d7b0 100644 --- a/service/outposts/generated.json +++ b/service/outposts/generated.json @@ -26,6 +26,7 @@ "api_op_ListTagsForResource.go", "api_op_TagResource.go", "api_op_UntagResource.go", + "api_op_UpdateOutpost.go", "api_op_UpdateSite.go", "api_op_UpdateSiteAddress.go", "api_op_UpdateSiteRackPhysicalProperties.go", diff --git a/service/outposts/serializers.go b/service/outposts/serializers.go index 973b3c46ba0..3297a4aa21d 100644 --- a/service/outposts/serializers.go +++ b/service/outposts/serializers.go @@ -1312,6 +1312,97 @@ func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInpu return nil } +type awsRestjson1_serializeOpUpdateOutpost struct { +} + +func (*awsRestjson1_serializeOpUpdateOutpost) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateOutpost) 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.(*UpdateOutpostInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/outposts/{OutpostId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PATCH" + 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_serializeOpHttpBindingsUpdateOutpostInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateOutpostInput(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_serializeOpHttpBindingsUpdateOutpostInput(v *UpdateOutpostInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.OutpostId == nil || len(*v.OutpostId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member OutpostId must not be empty")} + } + if v.OutpostId != nil { + if err := encoder.SetURI("OutpostId").String(*v.OutpostId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateOutpostInput(v *UpdateOutpostInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if len(v.SupportedHardwareType) > 0 { + ok := object.Key("SupportedHardwareType") + ok.String(string(v.SupportedHardwareType)) + } + + return nil +} + type awsRestjson1_serializeOpUpdateSite struct { } diff --git a/service/outposts/validators.go b/service/outposts/validators.go index 4b7a302cf2c..f770d2e7eff 100644 --- a/service/outposts/validators.go +++ b/service/outposts/validators.go @@ -310,6 +310,26 @@ func (m *validateOpUntagResource) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpUpdateOutpost struct { +} + +func (*validateOpUpdateOutpost) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateOutpost) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateOutpostInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateOutpostInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateSiteAddress struct { } @@ -430,6 +450,10 @@ func addOpUntagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUntagResource{}, middleware.After) } +func addOpUpdateOutpostValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateOutpost{}, middleware.After) +} + func addOpUpdateSiteAddressValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateSiteAddress{}, middleware.After) } @@ -722,6 +746,21 @@ func validateOpUntagResourceInput(v *UntagResourceInput) error { } } +func validateOpUpdateOutpostInput(v *UpdateOutpostInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateOutpostInput"} + if v.OutpostId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutpostId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateSiteAddressInput(v *UpdateSiteAddressInput) error { if v == nil { return nil diff --git a/service/pi/internal/endpoints/endpoints.go b/service/pi/internal/endpoints/endpoints.go index 9226e31ef8e..8948ece9179 100644 --- a/service/pi/internal/endpoints/endpoints.go +++ b/service/pi/internal/endpoints/endpoints.go @@ -134,6 +134,71 @@ 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{}, + endpoints.EndpointKey{ + Region: "ap-northeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-3", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-north-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-3", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "me-south-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "sa-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-cn", @@ -169,6 +234,14 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsCn, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "cn-north-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "cn-northwest-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso", diff --git a/service/qldb/api_op_CreateLedger.go b/service/qldb/api_op_CreateLedger.go index 992ee578955..ff1c0792c7f 100644 --- a/service/qldb/api_op_CreateLedger.go +++ b/service/qldb/api_op_CreateLedger.go @@ -12,7 +12,7 @@ import ( "time" ) -// Creates a new ledger in your account in the current Region. +// Creates a new ledger in your Amazon Web Services account in the current Region. func (c *Client) CreateLedger(ctx context.Context, params *CreateLedgerInput, optFns ...func(*Options)) (*CreateLedgerOutput, error) { if params == nil { params = &CreateLedgerInput{} @@ -31,8 +31,8 @@ func (c *Client) CreateLedger(ctx context.Context, params *CreateLedgerInput, op type CreateLedgerInput struct { // The name of the ledger that you want to create. The name must be unique among - // all of the ledgers in your account in the current Region. Naming constraints for - // ledger names are defined in Quotas in Amazon QLDB + // all of the ledgers in your Amazon Web Services account in the current Region. + // Naming constraints for ledger names are defined in Quotas in Amazon QLDB // (https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) // in the Amazon QLDB Developer Guide. // @@ -95,10 +95,10 @@ type CreateLedgerInput struct { // To specify a customer managed // KMS key, you can use its key ID, Amazon Resource Name (ARN), alias name, or // alias ARN. When using an alias name, prefix it with "alias/". To specify a key - // in a different account, you must use the key ARN or alias ARN. For example: + // in a different Amazon Web Services account, you must use the key ARN or alias + // ARN. For example: // - // * - // Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab diff --git a/service/qldb/api_op_ExportJournalToS3.go b/service/qldb/api_op_ExportJournalToS3.go index 023888f7c92..43444fb2f69 100644 --- a/service/qldb/api_op_ExportJournalToS3.go +++ b/service/qldb/api_op_ExportJournalToS3.go @@ -13,10 +13,16 @@ import ( ) // Exports journal contents within a date and time range from a ledger into a -// specified Amazon Simple Storage Service (Amazon S3) bucket. The data is written -// as files in Amazon Ion format. If the ledger with the given Name doesn't exist, -// then throws ResourceNotFoundException. If the ledger with the given Name is in -// CREATING status, then throws ResourcePreconditionNotMetException. You can +// specified Amazon Simple Storage Service (Amazon S3) bucket. A journal export job +// can write the data objects in either the text or binary representation of Amazon +// Ion format, or in JSON Lines text format. In JSON Lines format, each journal +// block in the exported data object is a valid JSON object that is delimited by a +// newline. You can use this format to easily integrate JSON exports with analytics +// tools such as Glue and Amazon Athena because these services can parse +// newline-delimited JSON automatically. For more information about the format, see +// JSON Lines (https://jsonlines.org/). If the ledger with the given Name doesn't +// exist, then throws ResourceNotFoundException. If the ledger with the given Name +// is in CREATING status, then throws ResourcePreconditionNotMetException. You can // initiate up to two concurrent journal export requests for each ledger. Beyond // this limit, journal export requests throw LimitExceededException. func (c *Client) ExportJournalToS3(ctx context.Context, params *ExportJournalToS3Input, optFns ...func(*Options)) (*ExportJournalToS3Output, error) { @@ -66,8 +72,12 @@ type ExportJournalToS3Input struct { // Simple Storage Service (Amazon S3) bucket. // // * (Optional) Use your customer - // master key (CMK) in Key Management Service (KMS) for server-side encryption of - // your exported data. + // managed key in Key Management Service (KMS) for server-side encryption of your + // exported data. + // + // To pass a role to QLDB when requesting a journal export, you + // must have permissions to perform the iam:PassRole action on the IAM role + // resource. This is required for all journal export requests. // // This member is required. RoleArn *string @@ -78,6 +88,10 @@ type ExportJournalToS3Input struct { // This member is required. S3ExportConfiguration *types.S3ExportConfiguration + // The output format of your exported journal data. If this parameter is not + // specified, the exported data defaults to ION_TEXT format. + OutputFormat types.OutputFormat + noSmithyDocumentSerde } diff --git a/service/qldb/api_op_ListJournalS3Exports.go b/service/qldb/api_op_ListJournalS3Exports.go index b268724aa9b..c3056797c42 100644 --- a/service/qldb/api_op_ListJournalS3Exports.go +++ b/service/qldb/api_op_ListJournalS3Exports.go @@ -13,10 +13,11 @@ import ( ) // Returns an array of journal export job descriptions for all ledgers that are -// associated with the current account and Region. This action returns a maximum of -// MaxResults items, and is paginated so that you can retrieve all the items by -// calling ListJournalS3Exports multiple times. This action does not return any -// expired export jobs. For more information, see Export job expiration +// associated with the current Amazon Web Services account and Region. This action +// returns a maximum of MaxResults items, and is paginated so that you can retrieve +// all the items by calling ListJournalS3Exports multiple times. This action does +// not return any expired export jobs. For more information, see Export job +// expiration // (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration) // in the Amazon QLDB Developer Guide. func (c *Client) ListJournalS3Exports(ctx context.Context, params *ListJournalS3ExportsInput, optFns ...func(*Options)) (*ListJournalS3ExportsOutput, error) { @@ -51,7 +52,7 @@ type ListJournalS3ExportsInput struct { type ListJournalS3ExportsOutput struct { // The array of journal export job descriptions for all ledgers that are associated - // with the current account and Region. + // with the current Amazon Web Services account and Region. JournalS3Exports []types.JournalS3ExportDescription // * If NextToken is empty, then the last page of results has been processed and diff --git a/service/qldb/api_op_ListLedgers.go b/service/qldb/api_op_ListLedgers.go index 48a5f90d458..96c2e75b9d7 100644 --- a/service/qldb/api_op_ListLedgers.go +++ b/service/qldb/api_op_ListLedgers.go @@ -12,9 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns an array of ledger summaries that are associated with the current -// account and Region. This action returns a maximum of 100 items and is paginated -// so that you can retrieve all the items by calling ListLedgers multiple times. +// Returns an array of ledger summaries that are associated with the current Amazon +// Web Services account and Region. This action returns a maximum of 100 items and +// is paginated so that you can retrieve all the items by calling ListLedgers +// multiple times. func (c *Client) ListLedgers(ctx context.Context, params *ListLedgersInput, optFns ...func(*Options)) (*ListLedgersOutput, error) { if params == nil { params = &ListLedgersInput{} @@ -46,8 +47,8 @@ type ListLedgersInput struct { type ListLedgersOutput struct { - // The array of ledger summaries that are associated with the current account and - // Region. + // The array of ledger summaries that are associated with the current Amazon Web + // Services account and Region. Ledgers []types.LedgerSummary // A pagination token, indicating whether there are more results available: diff --git a/service/qldb/api_op_StreamJournalToKinesis.go b/service/qldb/api_op_StreamJournalToKinesis.go index 4209645d176..73b91cb0c46 100644 --- a/service/qldb/api_op_StreamJournalToKinesis.go +++ b/service/qldb/api_op_StreamJournalToKinesis.go @@ -54,7 +54,10 @@ type StreamJournalToKinesisInput struct { LedgerName *string // The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for - // a journal stream to write data records to a Kinesis Data Streams resource. + // a journal stream to write data records to a Kinesis Data Streams resource. To + // pass a role to QLDB when requesting a journal stream, you must have permissions + // to perform the iam:PassRole action on the IAM role resource. This is required + // for all journal stream requests. // // This member is required. RoleArn *string diff --git a/service/qldb/api_op_UpdateLedger.go b/service/qldb/api_op_UpdateLedger.go index 62a9984395f..90e91b3d6a1 100644 --- a/service/qldb/api_op_UpdateLedger.go +++ b/service/qldb/api_op_UpdateLedger.go @@ -64,10 +64,10 @@ type UpdateLedgerInput struct { // To specify a customer managed // KMS key, you can use its key ID, Amazon Resource Name (ARN), alias name, or // alias ARN. When using an alias name, prefix it with "alias/". To specify a key - // in a different account, you must use the key ARN or alias ARN. For example: + // in a different Amazon Web Services account, you must use the key ARN or alias + // ARN. For example: // - // * - // Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab diff --git a/service/qldb/deserializers.go b/service/qldb/deserializers.go index 4016d3779cc..f1ab144b1f6 100644 --- a/service/qldb/deserializers.go +++ b/service/qldb/deserializers.go @@ -3652,6 +3652,15 @@ func awsRestjson1_deserializeDocumentJournalS3ExportDescription(v **types.Journa sv.LedgerName = ptr.String(jtv) } + case "OutputFormat": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OutputFormat to be of type string, got %T instead", value) + } + sv.OutputFormat = types.OutputFormat(jtv) + } + case "RoleArn": if value != nil { jtv, ok := value.(string) diff --git a/service/qldb/serializers.go b/service/qldb/serializers.go index 8d98600be10..7c3999f8ed1 100644 --- a/service/qldb/serializers.go +++ b/service/qldb/serializers.go @@ -505,6 +505,11 @@ func awsRestjson1_serializeOpDocumentExportJournalToS3Input(v *ExportJournalToS3 ok.Double(smithytime.FormatEpochSeconds(*v.InclusiveStartTime)) } + if len(v.OutputFormat) > 0 { + ok := object.Key("OutputFormat") + ok.String(string(v.OutputFormat)) + } + if v.RoleArn != nil { ok := object.Key("RoleArn") ok.String(*v.RoleArn) diff --git a/service/qldb/types/enums.go b/service/qldb/types/enums.go index 9cfaf3ff8f1..141a9b34f20 100644 --- a/service/qldb/types/enums.go +++ b/service/qldb/types/enums.go @@ -82,6 +82,26 @@ func (LedgerState) Values() []LedgerState { } } +type OutputFormat string + +// Enum values for OutputFormat +const ( + OutputFormatIonBinary OutputFormat = "ION_BINARY" + OutputFormatIonText OutputFormat = "ION_TEXT" + OutputFormatJson OutputFormat = "JSON" +) + +// Values returns all known values for OutputFormat. 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 (OutputFormat) Values() []OutputFormat { + return []OutputFormat{ + "ION_BINARY", + "ION_TEXT", + "JSON", + } +} + type PermissionsMode string // Enum values for PermissionsMode diff --git a/service/qldb/types/types.go b/service/qldb/types/types.go index 27ded9dd483..08c075da2e2 100644 --- a/service/qldb/types/types.go +++ b/service/qldb/types/types.go @@ -72,7 +72,7 @@ type JournalKinesisStreamDescription struct { // creation request. type JournalS3ExportDescription struct { - // The exclusive end date and time for the range of journal contents that are + // The exclusive end date and time for the range of journal contents that was // specified in the original export request. // // This member is required. @@ -90,7 +90,7 @@ type JournalS3ExportDescription struct { // This member is required. ExportId *string - // The inclusive start date and time for the range of journal contents that are + // The inclusive start date and time for the range of journal contents that was // specified in the original export request. // // This member is required. @@ -108,8 +108,8 @@ type JournalS3ExportDescription struct { // Simple Storage Service (Amazon S3) bucket. // // * (Optional) Use your customer - // master key (CMK) in Key Management Service (KMS) for server-side encryption of - // your exported data. + // managed key in Key Management Service (KMS) for server-side encryption of your + // exported data. // // This member is required. RoleArn *string @@ -125,6 +125,9 @@ type JournalS3ExportDescription struct { // This member is required. Status ExportStatus + // The output format of the exported journal data. + OutputFormat OutputFormat + noSmithyDocumentSerde } @@ -228,10 +231,10 @@ type S3EncryptionConfiguration struct { // This member is required. ObjectEncryptionType S3ObjectEncryptionType - // The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) in Key - // Management Service (KMS). Amazon S3 does not support asymmetric CMKs. You must - // provide a KmsKeyArn if you specify SSE_KMS as the ObjectEncryptionType. - // KmsKeyArn is not required if you specify SSE_S3 as the ObjectEncryptionType. + // The Amazon Resource Name (ARN) of a symmetric key in Key Management Service + // (KMS). Amazon S3 does not support asymmetric KMS keys. You must provide a + // KmsKeyArn if you specify SSE_KMS as the ObjectEncryptionType. KmsKeyArn is not + // required if you specify SSE_S3 as the ObjectEncryptionType. KmsKeyArn *string noSmithyDocumentSerde diff --git a/service/redshift/api_op_AssociateDataShareConsumer.go b/service/redshift/api_op_AssociateDataShareConsumer.go index d284aa03f3c..b0f05264c5e 100644 --- a/service/redshift/api_op_AssociateDataShareConsumer.go +++ b/service/redshift/api_op_AssociateDataShareConsumer.go @@ -64,6 +64,9 @@ type AssociateDataShareConsumerOutput struct { // and data consumers. DataShareAssociations []types.DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/redshift/api_op_AuthorizeDataShare.go b/service/redshift/api_op_AuthorizeDataShare.go index 6e7f64fea26..55239a07363 100644 --- a/service/redshift/api_op_AuthorizeDataShare.go +++ b/service/redshift/api_op_AuthorizeDataShare.go @@ -12,8 +12,8 @@ import ( ) // From a data producer account, authorizes the sharing of a datashare with one or -// more consumer accounts. To authorize a datashare for a data consumer, the -// producer account must have the correct access privileges. +// more consumer accounts or managing entities. To authorize a datashare for a data +// consumer, the producer account must have the correct access privileges. func (c *Client) AuthorizeDataShare(ctx context.Context, params *AuthorizeDataShareInput, optFns ...func(*Options)) (*AuthorizeDataShareOutput, error) { if params == nil { params = &AuthorizeDataShareInput{} @@ -32,7 +32,7 @@ func (c *Client) AuthorizeDataShare(ctx context.Context, params *AuthorizeDataSh type AuthorizeDataShareInput struct { // The identifier of the data consumer that is authorized to access the datashare. - // This identifier is an Amazon Web Services account ID. + // This identifier is an Amazon Web Services account ID or a keyword, such as ADX. // // This member is required. ConsumerIdentifier *string @@ -62,6 +62,9 @@ type AuthorizeDataShareOutput struct { // and data consumers. DataShareAssociations []types.DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/redshift/api_op_DeauthorizeDataShare.go b/service/redshift/api_op_DeauthorizeDataShare.go index b87a053c297..1e09b5c621e 100644 --- a/service/redshift/api_op_DeauthorizeDataShare.go +++ b/service/redshift/api_op_DeauthorizeDataShare.go @@ -30,7 +30,8 @@ func (c *Client) DeauthorizeDataShare(ctx context.Context, params *DeauthorizeDa type DeauthorizeDataShareInput struct { // The identifier of the data consumer that is to have authorization removed from - // the datashare. This identifier is an Amazon Web Services account ID. + // the datashare. This identifier is an Amazon Web Services account ID or a + // keyword, such as ADX. // // This member is required. ConsumerIdentifier *string @@ -59,6 +60,9 @@ type DeauthorizeDataShareOutput struct { // and data consumers. DataShareAssociations []types.DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/redshift/api_op_DisassociateDataShareConsumer.go b/service/redshift/api_op_DisassociateDataShareConsumer.go index 1bce7f41a26..ff0f9cad595 100644 --- a/service/redshift/api_op_DisassociateDataShareConsumer.go +++ b/service/redshift/api_op_DisassociateDataShareConsumer.go @@ -61,6 +61,9 @@ type DisassociateDataShareConsumerOutput struct { // and data consumers. DataShareAssociations []types.DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/redshift/api_op_RejectDataShare.go b/service/redshift/api_op_RejectDataShare.go index 0f96f85c288..d76356c610c 100644 --- a/service/redshift/api_op_RejectDataShare.go +++ b/service/redshift/api_op_RejectDataShare.go @@ -53,6 +53,9 @@ type RejectDataShareOutput struct { // and data consumers. DataShareAssociations []types.DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/redshift/deserializers.go b/service/redshift/deserializers.go index eea415d4085..45fb38de48e 100644 --- a/service/redshift/deserializers.go +++ b/service/redshift/deserializers.go @@ -23453,6 +23453,19 @@ func awsAwsquery_deserializeDocumentDataShare(v **types.DataShare, decoder smith return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -37558,6 +37571,19 @@ func awsAwsquery_deserializeOpDocumentAssociateDataShareConsumerOutput(v **Assoc return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -37684,6 +37710,19 @@ func awsAwsquery_deserializeOpDocumentAuthorizeDataShareOutput(v **AuthorizeData return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -39343,6 +39382,19 @@ func awsAwsquery_deserializeOpDocumentDeauthorizeDataShareOutput(v **Deauthorize return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -42200,6 +42252,19 @@ func awsAwsquery_deserializeOpDocumentDisassociateDataShareConsumerOutput(v **Di return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -43815,6 +43880,19 @@ func awsAwsquery_deserializeOpDocumentRejectDataShareOutput(v **RejectDataShareO return err } + case strings.EqualFold("ManagedBy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ManagedBy = ptr.String(xtv) + } + case strings.EqualFold("ProducerArn", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/service/redshift/types/types.go b/service/redshift/types/types.go index d5108c9486a..881abaafb46 100644 --- a/service/redshift/types/types.go +++ b/service/redshift/types/types.go @@ -629,6 +629,9 @@ type DataShare struct { // and data consumers. DataShareAssociations []DataShareAssociation + // The identifier of a datashare to show its managing entity. + ManagedBy *string + // The Amazon Resource Name (ARN) of the producer. ProducerArn *string diff --git a/service/route53/api_op_CreateHostedZone.go b/service/route53/api_op_CreateHostedZone.go index 1e806e65463..a97a3f95239 100644 --- a/service/route53/api_op_CreateHostedZone.go +++ b/service/route53/api_op_CreateHostedZone.go @@ -109,8 +109,10 @@ type CreateHostedZoneInput struct { // (Private hosted zones only) A complex type that contains information about the // Amazon VPC that you're associating with this hosted zone. You can specify only - // one Amazon VPC when you create a private hosted zone. To associate additional - // Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone + // one Amazon VPC when you create a private hosted zone. If you are associating a + // VPC with a hosted zone with this request, the paramaters VPCId and VPCRegion are + // also required. To associate additional Amazon VPCs with the hosted zone, use + // AssociateVPCWithHostedZone // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) // after you create a hosted zone. VPC *types.VPC diff --git a/service/route53/api_op_CreateKeySigningKey.go b/service/route53/api_op_CreateKeySigningKey.go index aa9288054b0..819db8a2183 100644 --- a/service/route53/api_op_CreateKeySigningKey.go +++ b/service/route53/api_op_CreateKeySigningKey.go @@ -40,29 +40,29 @@ type CreateKeySigningKeyInput struct { // This member is required. HostedZoneId *string - // The Amazon resource name (ARN) for a customer managed customer master key (CMK) - // in Key Management Service (KMS). The KeyManagementServiceArn must be unique for - // each key-signing key (KSK) in a single hosted zone. To see an example of - // KeyManagementServiceArn that grants the correct permissions for DNSSEC, scroll - // down to Example. You must configure the customer managed CMK as follows: Status - // Enabled Key spec ECC_NIST_P256 Key usage Sign and verify Key policy The key - // policy must give permission for the following actions: + // The Amazon resource name (ARN) for a customer managed key in Key Management + // Service (KMS). The KeyManagementServiceArn must be unique for each key-signing + // key (KSK) in a single hosted zone. To see an example of KeyManagementServiceArn + // that grants the correct permissions for DNSSEC, scroll down to Example. You must + // configure the customer managed customer managed key as follows: Status Enabled + // Key spec ECC_NIST_P256 Key usage Sign and verify Key policy The key policy must + // give permission for the following actions: // // * DescribeKey // - // * - // GetPublicKey + // * GetPublicKey // - // * Sign + // * + // Sign // - // The key policy must also include the Amazon Route 53 - // service in the principal for your account. Specify the following: + // The key policy must also include the Amazon Route 53 service in the + // principal for your account. Specify the following: // // * "Service": // "dnssec-route53.amazonaws.com" // // For more information about working with a - // customer managed CMK in KMS, see Key Management Service concepts + // customer managed key in KMS, see Key Management Service concepts // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html). // // This member is required. diff --git a/service/route53/api_op_DeleteKeySigningKey.go b/service/route53/api_op_DeleteKeySigningKey.go index ceb1e757add..0e44d27d11e 100644 --- a/service/route53/api_op_DeleteKeySigningKey.go +++ b/service/route53/api_op_DeleteKeySigningKey.go @@ -13,7 +13,12 @@ import ( // Deletes a key-signing key (KSK). Before you can delete a KSK, you must // deactivate it. The KSK must be deactivated before you can delete it regardless -// of whether the hosted zone is enabled for DNSSEC signing. +// of whether the hosted zone is enabled for DNSSEC signing. You can use +// DeactivateKeySigningKey +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeactivateKeySigningKey.html) +// to deactivate the key before you delete it. Use GetDNSSEC +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetDNSSEC.html) to +// verify that the KSK is in an INACTIVE status. func (c *Client) DeleteKeySigningKey(ctx context.Context, params *DeleteKeySigningKeyInput, optFns ...func(*Options)) (*DeleteKeySigningKeyOutput, error) { if params == nil { params = &DeleteKeySigningKeyInput{} diff --git a/service/route53/api_op_UpdateHealthCheck.go b/service/route53/api_op_UpdateHealthCheck.go index ef39caa5fe0..e0603c5e5b6 100644 --- a/service/route53/api_op_UpdateHealthCheck.go +++ b/service/route53/api_op_UpdateHealthCheck.go @@ -244,10 +244,10 @@ type UpdateHealthCheckInput struct { // Unhealthy: Route 53 considers the health check to be unhealthy. // // * - // LastKnownStatus: Route 53 uses the status of the health check from the last time - // CloudWatch had sufficient data to determine the alarm state. For new health - // checks that have no last known status, the default status for the health check - // is healthy. + // LastKnownStatus: By default, Route 53 uses the status of the health check from + // the last time CloudWatch had sufficient data to determine the alarm state. For + // new health checks that have no last known status, the status for the health + // check is healthy. InsufficientDataHealthStatus types.InsufficientDataHealthStatus // Specify whether you want Amazon Route 53 to invert the status of a health check, diff --git a/service/route53/deserializers.go b/service/route53/deserializers.go index 93980a9a0ea..669afb9aac2 100644 --- a/service/route53/deserializers.go +++ b/service/route53/deserializers.go @@ -9555,6 +9555,9 @@ func awsRestxml_deserializeOpErrorUpdateHostedZoneComment(response *smithyhttp.R case strings.EqualFold("NoSuchHostedZone", errorCode): return awsRestxml_deserializeErrorNoSuchHostedZone(response, errorBody) + case strings.EqualFold("PriorRequestNotComplete", errorCode): + return awsRestxml_deserializeErrorPriorRequestNotComplete(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, diff --git a/service/route53/types/enums.go b/service/route53/types/enums.go index 5c764cdb998..0dccfd94d3b 100644 --- a/service/route53/types/enums.go +++ b/service/route53/types/enums.go @@ -82,6 +82,7 @@ const ( CloudWatchRegionApSouth1 CloudWatchRegion = "ap-south-1" CloudWatchRegionApSoutheast1 CloudWatchRegion = "ap-southeast-1" CloudWatchRegionApSoutheast2 CloudWatchRegion = "ap-southeast-2" + CloudWatchRegionApSoutheast3 CloudWatchRegion = "ap-southeast-3" CloudWatchRegionApNortheast1 CloudWatchRegion = "ap-northeast-1" CloudWatchRegionApNortheast2 CloudWatchRegion = "ap-northeast-2" CloudWatchRegionApNortheast3 CloudWatchRegion = "ap-northeast-3" @@ -94,6 +95,7 @@ const ( CloudWatchRegionUsGovWest1 CloudWatchRegion = "us-gov-west-1" CloudWatchRegionUsGovEast1 CloudWatchRegion = "us-gov-east-1" CloudWatchRegionUsIsoEast1 CloudWatchRegion = "us-iso-east-1" + CloudWatchRegionUsIsoWest1 CloudWatchRegion = "us-iso-west-1" CloudWatchRegionUsIsobEast1 CloudWatchRegion = "us-isob-east-1" ) @@ -116,6 +118,7 @@ func (CloudWatchRegion) Values() []CloudWatchRegion { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", @@ -128,6 +131,7 @@ func (CloudWatchRegion) Values() []CloudWatchRegion { "us-gov-west-1", "us-gov-east-1", "us-iso-east-1", + "us-iso-west-1", "us-isob-east-1", } } @@ -307,6 +311,7 @@ const ( ResourceRecordSetRegionEuCentral1 ResourceRecordSetRegion = "eu-central-1" ResourceRecordSetRegionApSoutheast1 ResourceRecordSetRegion = "ap-southeast-1" ResourceRecordSetRegionApSoutheast2 ResourceRecordSetRegion = "ap-southeast-2" + ResourceRecordSetRegionApSoutheast3 ResourceRecordSetRegion = "ap-southeast-3" ResourceRecordSetRegionApNortheast1 ResourceRecordSetRegion = "ap-northeast-1" ResourceRecordSetRegionApNortheast2 ResourceRecordSetRegion = "ap-northeast-2" ResourceRecordSetRegionApNortheast3 ResourceRecordSetRegion = "ap-northeast-3" @@ -337,6 +342,7 @@ func (ResourceRecordSetRegion) Values() []ResourceRecordSetRegion { "eu-central-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", @@ -468,9 +474,11 @@ const ( VPCRegionUsGovWest1 VPCRegion = "us-gov-west-1" VPCRegionUsGovEast1 VPCRegion = "us-gov-east-1" VPCRegionUsIsoEast1 VPCRegion = "us-iso-east-1" + VPCRegionUsIsoWest1 VPCRegion = "us-iso-west-1" VPCRegionUsIsobEast1 VPCRegion = "us-isob-east-1" VPCRegionApSoutheast1 VPCRegion = "ap-southeast-1" VPCRegionApSoutheast2 VPCRegion = "ap-southeast-2" + VPCRegionApSoutheast3 VPCRegion = "ap-southeast-3" VPCRegionApSouth1 VPCRegion = "ap-south-1" VPCRegionApNortheast1 VPCRegion = "ap-northeast-1" VPCRegionApNortheast2 VPCRegion = "ap-northeast-2" @@ -501,9 +509,11 @@ func (VPCRegion) Values() []VPCRegion { "us-gov-west-1", "us-gov-east-1", "us-iso-east-1", + "us-iso-west-1", "us-isob-east-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ap-south-1", "ap-northeast-1", "ap-northeast-2", diff --git a/service/route53/types/errors.go b/service/route53/types/errors.go index 520b6b24948..03f9225a0cd 100644 --- a/service/route53/types/errors.go +++ b/service/route53/types/errors.go @@ -649,7 +649,7 @@ func (e *InvalidVPCId) ErrorCode() string { return "InvalidVPCId" } func (e *InvalidVPCId) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // You've already created a key-signing key (KSK) with this name or with the same -// customer managed customer master key (CMK) ARN. +// customer managed key ARN. type KeySigningKeyAlreadyExists struct { Message *string diff --git a/service/route53/types/types.go b/service/route53/types/types.go index 86fd5f4cbe3..2b6ec627ebe 100644 --- a/service/route53/types/types.go +++ b/service/route53/types/types.go @@ -550,12 +550,12 @@ type DNSSECStatus struct { // zone. NOT_SIGNING DNSSEC signing is not enabled for the hosted zone. DELETING // DNSSEC signing is in the process of being removed for the hosted zone. // ACTION_NEEDED There is a problem with signing in the hosted zone that requires - // you to take action to resolve. For example, the customer managed customer master - // key (CMK) might have been deleted, or the permissions for the customer managed - // CMK might have been changed. INTERNAL_FAILURE There was an error during a - // request. Before you can continue to work with DNSSEC signing, including with - // key-signing keys (KSKs), you must correct the problem by enabling or disabling - // DNSSEC signing for the hosted zone. + // you to take action to resolve. For example, the customer managed key might have + // been deleted, or the permissions for the customer managed key might have been + // changed. INTERNAL_FAILURE There was an error during a request. Before you can + // continue to work with DNSSEC signing, including with key-signing keys (KSKs), + // you must correct the problem by enabling or disabling DNSSEC signing for the + // hosted zone. ServeSignature *string // The status message provided for the following DNSSEC signing status: @@ -1157,10 +1157,10 @@ type KeySigningKey struct { // (https://tools.ietf.org/rfc/rfc4034.txt). KeyTag int32 - // The Amazon resource name (ARN) used to identify the customer managed customer - // master key (CMK) in Key Management Service (KMS). The KmsArn must be unique for - // each key-signing key (KSK) in a single hosted zone. You must configure the CMK - // as follows: Status Enabled Key spec ECC_NIST_P256 Key usage Sign and verify Key + // The Amazon resource name (ARN) used to identify the customer managed key in Key + // Management Service (KMS). The KmsArn must be unique for each key-signing key + // (KSK) in a single hosted zone. You must configure the customer managed key as + // follows: Status Enabled Key spec ECC_NIST_P256 Key usage Sign and verify Key // policy The key policy must give permission for the following actions: // // * @@ -1177,7 +1177,7 @@ type KeySigningKey struct { // "Service": "dnssec-route53.amazonaws.com" // // For more information about working - // with the customer managed CMK in KMS, see Key Management Service concepts + // with the customer managed key in KMS, see Key Management Service concepts // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html). KmsArn *string @@ -1207,12 +1207,12 @@ type KeySigningKey struct { // have one of the following values: ACTIVE The KSK is being used for signing. // INACTIVE The KSK is not being used for signing. DELETING The KSK is in the // process of being deleted. ACTION_NEEDED There is a problem with the KSK that - // requires you to take action to resolve. For example, the customer managed - // customer master key (CMK) might have been deleted, or the permissions for the - // customer managed CMK might have been changed. INTERNAL_FAILURE There was an - // error during a request. Before you can continue to work with DNSSEC signing, - // including actions that involve this KSK, you must correct the problem. For - // example, you may need to activate or deactivate the KSK. + // requires you to take action to resolve. For example, the customer managed key + // might have been deleted, or the permissions for the customer managed key might + // have been changed. INTERNAL_FAILURE There was an error during a request. Before + // you can continue to work with DNSSEC signing, including actions that involve + // this KSK, you must correct the problem. For example, you may need to activate or + // deactivate the KSK. Status *string // The status message provided for the following key-signing key (KSK) statuses: @@ -1947,7 +1947,10 @@ type TrafficPolicySummary struct { } // (Private hosted zones only) A complex type that contains information about an -// Amazon VPC. +// Amazon VPC. If you associate a private hosted zone with an Amazon VPC when you +// make a CreateHostedZone +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html) +// request, the following parameters are also required. type VPC struct { // (Private hosted zones only) The ID of an Amazon VPC. diff --git a/service/route53domains/api_op_AcceptDomainTransferFromAnotherAwsAccount.go b/service/route53domains/api_op_AcceptDomainTransferFromAnotherAwsAccount.go index 942e80c413c..e8d5d4cf8ed 100644 --- a/service/route53domains/api_op_AcceptDomainTransferFromAnotherAwsAccount.go +++ b/service/route53domains/api_op_AcceptDomainTransferFromAnotherAwsAccount.go @@ -10,11 +10,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Accepts the transfer of a domain from another AWS account to the current AWS -// account. You initiate a transfer between AWS accounts using -// TransferDomainToAnotherAwsAccount +// Accepts the transfer of a domain from another Amazon Web Services account to the +// currentAmazon Web Services account. You initiate a transfer between Amazon Web +// Services accounts using TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html). -// Use either ListOperations +// If you use the CLI command at accept-domain-transfer-from-another-aws-account +// (https://docs.aws.amazon.com/cli/latest/reference/route53domains/accept-domain-transfer-from-another-aws-account.html), +// use JSON format as input instead of text because otherwise CLI will throw an +// error from domain transfer input that includes single quotes. Use either +// ListOperations // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html) // or GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html) @@ -41,8 +45,8 @@ func (c *Client) AcceptDomainTransferFromAnotherAwsAccount(ctx context.Context, // elements. type AcceptDomainTransferFromAnotherAwsAccountInput struct { - // The name of the domain that was specified when another AWS account submitted a - // TransferDomainToAnotherAwsAccount + // The name of the domain that was specified when another Amazon Web Services + // account submitted a TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html) // request. // diff --git a/service/route53domains/api_op_CancelDomainTransferToAnotherAwsAccount.go b/service/route53domains/api_op_CancelDomainTransferToAnotherAwsAccount.go index 10ed42ce50a..75a4dd40a1c 100644 --- a/service/route53domains/api_op_CancelDomainTransferToAnotherAwsAccount.go +++ b/service/route53domains/api_op_CancelDomainTransferToAnotherAwsAccount.go @@ -10,12 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels the transfer of a domain from the current AWS account to another AWS -// account. You initiate a transfer between AWS accounts using -// TransferDomainToAnotherAwsAccount +// Cancels the transfer of a domain from the current Amazon Web Services account to +// another Amazon Web Services account. You initiate a transfer betweenAmazon Web +// Services accounts using TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html). -// You must cancel the transfer before the other AWS account accepts the transfer -// using AcceptDomainTransferFromAnotherAwsAccount +// You must cancel the transfer before the other Amazon Web Services account +// accepts the transfer using AcceptDomainTransferFromAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html). // Use either ListOperations // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html) @@ -44,8 +44,8 @@ func (c *Client) CancelDomainTransferToAnotherAwsAccount(ctx context.Context, pa // element. type CancelDomainTransferToAnotherAwsAccountInput struct { - // The name of the domain for which you want to cancel the transfer to another AWS - // account. + // The name of the domain for which you want to cancel the transfer to another + // Amazon Web Services account. // // This member is required. DomainName *string diff --git a/service/route53domains/api_op_DeleteDomain.go b/service/route53domains/api_op_DeleteDomain.go new file mode 100644 index 00000000000..1b576f84c3a --- /dev/null +++ b/service/route53domains/api_op_DeleteDomain.go @@ -0,0 +1,138 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// This operation deletes the specified domain. This action is permanent. For more +// information, see Deleting a domain name registration +// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html). +// To transfer the domain registration to another registrar, use the transfer +// process that’s provided by the registrar to which you want to transfer the +// registration. Otherwise, the following apply: +// +// * You can’t get a refund for the +// cost of a deleted domain registration. +// +// * The registry for the top-level domain +// might hold the domain name for a brief time before releasing it for other users +// to register (varies by registry). +// +// * When the registration has been deleted, +// we'll send you a confirmation to the registrant contact. The email will come +// from noreply@domainnameverification.net or noreply@registrar.amazon.com. +func (c *Client) DeleteDomain(ctx context.Context, params *DeleteDomainInput, optFns ...func(*Options)) (*DeleteDomainOutput, error) { + if params == nil { + params = &DeleteDomainInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteDomain", params, optFns, c.addOperationDeleteDomainMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteDomainOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteDomainInput struct { + + // Name of the domain to be deleted. + // + // This member is required. + DomainName *string + + noSmithyDocumentSerde +} + +type DeleteDomainOutput struct { + + // Identifier for tracking the progress of the request. To query the operation + // status, use GetOperationDetail + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). + OperationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteDomainMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteDomain{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteDomain{}, 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 = addOpDeleteDomainValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteDomain(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_opDeleteDomain(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "DeleteDomain", + } +} diff --git a/service/route53domains/api_op_EnableDomainAutoRenew.go b/service/route53domains/api_op_EnableDomainAutoRenew.go index 2ce674470a4..34c826d4590 100644 --- a/service/route53domains/api_op_EnableDomainAutoRenew.go +++ b/service/route53domains/api_op_EnableDomainAutoRenew.go @@ -12,9 +12,9 @@ import ( // This operation configures Amazon Route 53 to automatically renew the specified // domain before the domain registration expires. The cost of renewing your domain -// registration is billed to your AWS account. The period during which you can -// renew a domain name varies by TLD. For a list of TLDs and their renewal -// policies, see Domains That You Can Register with Amazon Route 53 +// registration is billed to your Amazon Web Services account. The period during +// which you can renew a domain name varies by TLD. For a list of TLDs and their +// renewal policies, see Domains That You Can Register with Amazon Route 53 // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html) // in the Amazon Route 53 Developer Guide. Route 53 requires that you renew before // the end of the renewal period so we can complete processing before the deadline. diff --git a/service/route53domains/api_op_GetDomainDetail.go b/service/route53domains/api_op_GetDomainDetail.go index 333e97598fb..ccfe75b0693 100644 --- a/service/route53domains/api_op_GetDomainDetail.go +++ b/service/route53domains/api_op_GetDomainDetail.go @@ -13,8 +13,8 @@ import ( ) // This operation returns detailed information about a specified domain that is -// associated with the current AWS account. Contact information for the domain is -// also returned as part of the output. +// associated with the current Amazon Web Services account. Contact information for +// the domain is also returned as part of the output. func (c *Client) GetDomainDetail(ctx context.Context, params *GetDomainDetailInput, optFns ...func(*Options)) (*GetDomainDetailOutput, error) { if params == nil { params = &GetDomainDetailInput{} @@ -91,7 +91,7 @@ type GetDomainDetailOutput struct { // The date and time is in Unix time format and Coordinated Universal time (UTC). CreationDate *time.Time - // Reserved for future use. + // Deprecated. DnsSec *string // The date when the registration for the domain is set to expire. The date and diff --git a/service/route53domains/api_op_ListDomains.go b/service/route53domains/api_op_ListDomains.go index b878fa63f33..b1f00a6dec9 100644 --- a/service/route53domains/api_op_ListDomains.go +++ b/service/route53domains/api_op_ListDomains.go @@ -13,7 +13,7 @@ import ( ) // This operation returns all the domain names registered with Amazon Route 53 for -// the current AWS account. +// the current Amazon Web Services account if no filtering conditions are used. func (c *Client) ListDomains(ctx context.Context, params *ListDomainsInput, optFns ...func(*Options)) (*ListDomainsOutput, error) { if params == nil { params = &ListDomainsInput{} @@ -32,24 +32,34 @@ func (c *Client) ListDomains(ctx context.Context, params *ListDomainsInput, optF // The ListDomains request includes the following elements. type ListDomainsInput struct { + // A complex type that contains information about the filters applied during the + // ListDomains request. The filter conditions can include domain name and domain + // expiration. + FilterConditions []types.FilterCondition + // For an initial request for a list of domains, omit this element. If the number - // of domains that are associated with the current AWS account is greater than the - // value that you specified for MaxItems, you can use Marker to return additional - // domains. Get the value of NextPageMarker from the previous response, and submit - // another request that includes the value of NextPageMarker in the Marker element. - // Constraints: The marker must match the value specified in the previous request. + // of domains that are associated with the current Amazon Web Services account is + // greater than the value that you specified for MaxItems, you can use Marker to + // return additional domains. Get the value of NextPageMarker from the previous + // response, and submit another request that includes the value of NextPageMarker + // in the Marker element. Constraints: The marker must match the value specified in + // the previous request. Marker *string // Number of domains to be returned. Default: 20 MaxItems *int32 + // A complex type that contains information about the requested ordering of domains + // in the returned list. + SortCondition *types.SortCondition + noSmithyDocumentSerde } // The ListDomains response includes the following elements. type ListDomainsOutput struct { - // A summary of domains. + // A list of domains. // // This member is required. Domains []types.DomainSummary @@ -109,6 +119,9 @@ func (c *Client) addOperationListDomainsMiddlewares(stack *middleware.Stack, opt if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { return err } + if err = addOpListDomainsValidationMiddleware(stack); err != nil { + return err + } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListDomains(options.Region), middleware.Before); err != nil { return err } diff --git a/service/route53domains/api_op_ListOperations.go b/service/route53domains/api_op_ListOperations.go index e1195c25f41..1c193be80bd 100644 --- a/service/route53domains/api_op_ListOperations.go +++ b/service/route53domains/api_op_ListOperations.go @@ -15,7 +15,7 @@ import ( // Returns information about all of the operations that return an operation ID and // that have ever been performed on domains that were registered by the current -// account. +// account. This command runs only in the us-east-1 Region. func (c *Client) ListOperations(ctx context.Context, params *ListOperationsInput, optFns ...func(*Options)) (*ListOperationsOutput, error) { if params == nil { params = &ListOperationsInput{} diff --git a/service/route53domains/api_op_ListPrices.go b/service/route53domains/api_op_ListPrices.go new file mode 100644 index 00000000000..ff5a6b68f78 --- /dev/null +++ b/service/route53domains/api_op_ListPrices.go @@ -0,0 +1,241 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +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/route53domains/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the following prices for either all the TLDs supported by Route 53, or the +// specified TLD: +// +// * Registration +// +// * Transfer +// +// * Owner change +// +// * Domain renewal +// +// * +// Domain restoration +func (c *Client) ListPrices(ctx context.Context, params *ListPricesInput, optFns ...func(*Options)) (*ListPricesOutput, error) { + if params == nil { + params = &ListPricesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPrices", params, optFns, c.addOperationListPricesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPricesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPricesInput struct { + + // For an initial request for a list of prices, omit this element. If the number of + // prices that are not yet complete is greater than the value that you specified + // for MaxItems, you can use Marker to return additional prices. Get the value of + // NextPageMarker from the previous response, and submit another request that + // includes the value of NextPageMarker in the Marker element. Used only for all + // TLDs. If you specify a TLD, don't specify a Marker. + Marker *string + + // Number of Prices to be returned. Used only for all TLDs. If you specify a TLD, + // don't specify a MaxItems. + MaxItems *int32 + + // The TLD for which you want to receive the pricing information. For example. + // .net. If a Tld value is not provided, a list of prices for all TLDs supported by + // Route 53 is returned. + Tld *string + + noSmithyDocumentSerde +} + +type ListPricesOutput struct { + + // A complex type that includes all the pricing information. If you specify a TLD, + // this array contains only the pricing for that TLD. + // + // This member is required. + Prices []types.DomainPrice + + // If there are more prices than you specified for MaxItems in the request, submit + // another request and include the value of NextPageMarker in the value of Marker. + // Used only for all TLDs. If you specify a TLD, don't specify a NextPageMarker. + NextPageMarker *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPricesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListPrices{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListPrices{}, 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_opListPrices(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 +} + +// ListPricesAPIClient is a client that implements the ListPrices operation. +type ListPricesAPIClient interface { + ListPrices(context.Context, *ListPricesInput, ...func(*Options)) (*ListPricesOutput, error) +} + +var _ ListPricesAPIClient = (*Client)(nil) + +// ListPricesPaginatorOptions is the paginator options for ListPrices +type ListPricesPaginatorOptions struct { + // Number of Prices to be returned. Used only for all TLDs. If you specify a TLD, + // don't specify a MaxItems. + 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 +} + +// ListPricesPaginator is a paginator for ListPrices +type ListPricesPaginator struct { + options ListPricesPaginatorOptions + client ListPricesAPIClient + params *ListPricesInput + nextToken *string + firstPage bool +} + +// NewListPricesPaginator returns a new ListPricesPaginator +func NewListPricesPaginator(client ListPricesAPIClient, params *ListPricesInput, optFns ...func(*ListPricesPaginatorOptions)) *ListPricesPaginator { + if params == nil { + params = &ListPricesInput{} + } + + options := ListPricesPaginatorOptions{} + if params.MaxItems != nil { + options.Limit = *params.MaxItems + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPricesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.Marker, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPricesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPrices page. +func (p *ListPricesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPricesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.Marker = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxItems = limit + + result, err := p.client.ListPrices(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextPageMarker + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListPrices(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "ListPrices", + } +} diff --git a/service/route53domains/api_op_RegisterDomain.go b/service/route53domains/api_op_RegisterDomain.go index 3548a2e6f50..aee61b80ba8 100644 --- a/service/route53domains/api_op_RegisterDomain.go +++ b/service/route53domains/api_op_RegisterDomain.go @@ -30,15 +30,17 @@ import ( // queries return contact information either for Amazon Registrar (for .com, .net, // and .org domains) or for our registrar associate, Gandi (for all other TLDs). If // you don't enable privacy protection, WHOIS queries return the information that -// you entered for the registrant, admin, and tech contacts. +// you entered for the administrative, registrant, and technical contacts. You must +// specify the same privacy setting for the administrative, registrant, and +// technical contacts. // -// * If registration is -// successful, returns an operation ID that you can use to track the progress and -// completion of the action. If the request is not completed successfully, the -// domain registrant is notified by email. +// * If registration is successful, returns an operation ID +// that you can use to track the progress and completion of the action. If the +// request is not completed successfully, the domain registrant is notified by +// email. // -// * Charges your AWS account an amount -// based on the top-level domain. For more information, see Amazon Route 53 Pricing +// * Charges your Amazon Web Services account an amount based on the +// top-level domain. For more information, see Amazon Route 53 Pricing // (http://aws.amazon.com/route53/pricing/). func (c *Client) RegisterDomain(ctx context.Context, params *RegisterDomainInput, optFns ...func(*Options)) (*RegisterDomainOutput, error) { if params == nil { @@ -130,7 +132,9 @@ type RegisterDomainInput struct { // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the admin contact. Default: true + // return the information that you entered for the admin contact. You must specify + // the same privacy setting for the administrative, registrant, and technical + // contacts. Default: true PrivacyProtectAdminContact *bool // Whether you want to conceal contact information from WHOIS queries. If you @@ -138,14 +142,17 @@ type RegisterDomainInput struct { // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries // return the information that you entered for the registrant contact (the domain - // owner). Default: true + // owner). You must specify the same privacy setting for the administrative, + // registrant, and technical contacts. Default: true PrivacyProtectRegistrantContact *bool // Whether you want to conceal contact information from WHOIS queries. If you // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the technical contact. Default: true + // return the information that you entered for the technical contact. You must + // specify the same privacy setting for the administrative, registrant, and + // technical contacts. Default: true PrivacyProtectTechContact *bool noSmithyDocumentSerde diff --git a/service/route53domains/api_op_RejectDomainTransferFromAnotherAwsAccount.go b/service/route53domains/api_op_RejectDomainTransferFromAnotherAwsAccount.go index 17fb761452c..ecc63af2262 100644 --- a/service/route53domains/api_op_RejectDomainTransferFromAnotherAwsAccount.go +++ b/service/route53domains/api_op_RejectDomainTransferFromAnotherAwsAccount.go @@ -10,9 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Rejects the transfer of a domain from another AWS account to the current AWS -// account. You initiate a transfer between AWS accounts using -// TransferDomainToAnotherAwsAccount +// Rejects the transfer of a domain from another Amazon Web Services account to the +// current Amazon Web Services account. You initiate a transfer betweenAmazon Web +// Services accounts using TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html). // Use either ListOperations // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html) @@ -41,8 +41,8 @@ func (c *Client) RejectDomainTransferFromAnotherAwsAccount(ctx context.Context, // element. type RejectDomainTransferFromAnotherAwsAccountInput struct { - // The name of the domain that was specified when another AWS account submitted a - // TransferDomainToAnotherAwsAccount + // The name of the domain that was specified when another Amazon Web Services + // account submitted a TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html) // request. // diff --git a/service/route53domains/api_op_RenewDomain.go b/service/route53domains/api_op_RenewDomain.go index 67f09220f93..5a1ef6e1586 100644 --- a/service/route53domains/api_op_RenewDomain.go +++ b/service/route53domains/api_op_RenewDomain.go @@ -11,11 +11,11 @@ import ( ) // This operation renews a domain for the specified number of years. The cost of -// renewing your domain is billed to your AWS account. We recommend that you renew -// your domain several weeks before the expiration date. Some TLD registries delete -// domains before the expiration date if you haven't renewed far enough in advance. -// For more information about renewing domain registration, see Renewing -// Registration for a Domain +// renewing your domain is billed to your Amazon Web Services account. We recommend +// that you renew your domain several weeks before the expiration date. Some TLD +// registries delete domains before the expiration date if you haven't renewed far +// enough in advance. For more information about renewing domain registration, see +// Renewing Registration for a Domain // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-renew.html) in // the Amazon Route 53 Developer Guide. func (c *Client) RenewDomain(ctx context.Context, params *RenewDomainInput, optFns ...func(*Options)) (*RenewDomainOutput, error) { diff --git a/service/route53domains/api_op_TransferDomain.go b/service/route53domains/api_op_TransferDomain.go index 6117e6bb59c..43467cc9935 100644 --- a/service/route53domains/api_op_TransferDomain.go +++ b/service/route53domains/api_op_TransferDomain.go @@ -24,7 +24,8 @@ import ( // in the Amazon Route 53 Developer Guide. // // * For information about how to transfer -// a domain from one AWS account to another, see TransferDomainToAnotherAwsAccount +// a domain from one Amazon Web Services account to another, see +// TransferDomainToAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html). // // * @@ -126,7 +127,9 @@ type TransferDomainInput struct { // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the admin contact. Default: true + // return the information that you entered for the admin contact. You must specify + // the same privacy setting for the administrative, registrant, and technical + // contacts. Default: true PrivacyProtectAdminContact *bool // Whether you want to conceal contact information from WHOIS queries. If you @@ -134,14 +137,17 @@ type TransferDomainInput struct { // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries // return the information that you entered for the registrant contact (domain - // owner). Default: true + // owner). You must specify the same privacy setting for the administrative, + // registrant, and technical contacts. Default: true PrivacyProtectRegistrantContact *bool // Whether you want to conceal contact information from WHOIS queries. If you // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the technical contact. Default: true + // return the information that you entered for the technical contact. You must + // specify the same privacy setting for the administrative, registrant, and + // technical contacts. Default: true PrivacyProtectTechContact *bool noSmithyDocumentSerde diff --git a/service/route53domains/api_op_TransferDomainToAnotherAwsAccount.go b/service/route53domains/api_op_TransferDomainToAnotherAwsAccount.go index 39191f5bf21..02fa04abd8e 100644 --- a/service/route53domains/api_op_TransferDomainToAnotherAwsAccount.go +++ b/service/route53domains/api_op_TransferDomainToAnotherAwsAccount.go @@ -10,12 +10,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Transfers a domain from the current AWS account to another AWS account. Note the -// following: +// Transfers a domain from the current Amazon Web Services account to another +// Amazon Web Services account. Note the following: // -// * The AWS account that you're transferring the domain to must accept -// the transfer. If the other account doesn't accept the transfer within 3 days, we -// cancel the transfer. See AcceptDomainTransferFromAnotherAwsAccount +// * The Amazon Web Services +// account that you're transferring the domain to must accept the transfer. If the +// other account doesn't accept the transfer within 3 days, we cancel the transfer. +// See AcceptDomainTransferFromAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html). // // * @@ -29,12 +30,12 @@ import ( // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_RejectDomainTransferFromAnotherAwsAccount.html). // // When -// you transfer a domain from one AWS account to another, Route 53 doesn't transfer -// the hosted zone that is associated with the domain. DNS resolution isn't -// affected if the domain and the hosted zone are owned by separate accounts, so -// transferring the hosted zone is optional. For information about transferring the -// hosted zone to another AWS account, see Migrating a Hosted Zone to a Different -// AWS Account +// you transfer a domain from one Amazon Web Services account to another, Route 53 +// doesn't transfer the hosted zone that is associated with the domain. DNS +// resolution isn't affected if the domain and the hosted zone are owned by +// separate accounts, so transferring the hosted zone is optional. For information +// about transferring the hosted zone to another Amazon Web Services account, see +// Migrating a Hosted Zone to a Different Amazon Web Services Account // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-migrating.html) // in the Amazon Route 53 Developer Guide. Use either ListOperations // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html) @@ -62,14 +63,14 @@ func (c *Client) TransferDomainToAnotherAwsAccount(ctx context.Context, params * // The TransferDomainToAnotherAwsAccount request includes the following elements. type TransferDomainToAnotherAwsAccountInput struct { - // The account ID of the AWS account that you want to transfer the domain to, for - // example, 111122223333. + // The account ID of the Amazon Web Services account that you want to transfer the + // domain to, for example, 111122223333. // // This member is required. AccountId *string - // The name of the domain that you want to transfer from the current AWS account to - // another account. + // The name of the domain that you want to transfer from the current Amazon Web + // Services account to another account. // // This member is required. DomainName *string @@ -85,8 +86,8 @@ type TransferDomainToAnotherAwsAccountOutput struct { // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). OperationId *string - // To finish transferring a domain to another AWS account, the account that the - // domain is being transferred to must submit an + // To finish transferring a domain to another Amazon Web Services account, the + // account that the domain is being transferred to must submit an // AcceptDomainTransferFromAnotherAwsAccount // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html) // request. The request must include the value of the Password element that was diff --git a/service/route53domains/api_op_UpdateDomainContactPrivacy.go b/service/route53domains/api_op_UpdateDomainContactPrivacy.go index 0b89f257915..8d919aefd24 100644 --- a/service/route53domains/api_op_UpdateDomainContactPrivacy.go +++ b/service/route53domains/api_op_UpdateDomainContactPrivacy.go @@ -14,9 +14,11 @@ import ( // privacy protection is enabled, contact information such as email address is // replaced either with contact information for Amazon Registrar (for .com, .net, // and .org domains) or with contact information for our registrar associate, -// Gandi. This operation affects only the contact information for the specified -// contact type (registrant, administrator, or tech). If the request succeeds, -// Amazon Route 53 returns an operation ID that you can use with GetOperationDetail +// Gandi. You must specify the same privacy setting for the administrative, +// registrant, and technical contacts. This operation affects only the contact +// information for the specified contact type (administrative, registrant, or +// technical). If the request succeeds, Amazon Route 53 returns an operation ID +// that you can use with GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html) // to track the progress and completion of the action. If the request doesn't // complete successfully, the domain registrant will be notified by email. By @@ -56,7 +58,9 @@ type UpdateDomainContactPrivacyInput struct { // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the admin contact. + // return the information that you entered for the admin contact. You must specify + // the same privacy setting for the administrative, registrant, and technical + // contacts. AdminPrivacy *bool // Whether you want to conceal contact information from WHOIS queries. If you @@ -64,14 +68,17 @@ type UpdateDomainContactPrivacyInput struct { // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries // return the information that you entered for the registrant contact (domain - // owner). + // owner). You must specify the same privacy setting for the administrative, + // registrant, and technical contacts. RegistrantPrivacy *bool // Whether you want to conceal contact information from WHOIS queries. If you // specify true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar // associate, Gandi (for all other TLDs). If you specify false, WHOIS queries - // return the information that you entered for the technical contact. + // return the information that you entered for the technical contact. You must + // specify the same privacy setting for the administrative, registrant, and + // technical contacts. TechPrivacy *bool noSmithyDocumentSerde diff --git a/service/route53domains/api_op_ViewBilling.go b/service/route53domains/api_op_ViewBilling.go index 27c8db1c105..15ef7f11b10 100644 --- a/service/route53domains/api_op_ViewBilling.go +++ b/service/route53domains/api_op_ViewBilling.go @@ -4,6 +4,7 @@ package route53domains 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/route53domains/types" @@ -12,8 +13,8 @@ import ( "time" ) -// Returns all the domain-related billing records for the current AWS account for a -// specified period +// Returns all the domain-related billing records for the current Amazon Web +// Services account for a specified period func (c *Client) ViewBilling(ctx context.Context, params *ViewBillingInput, optFns ...func(*Options)) (*ViewBillingOutput, error) { if params == nil { params = &ViewBillingInput{} @@ -38,13 +39,13 @@ type ViewBillingInput struct { End *time.Time // For an initial request for a list of billing records, omit this element. If the - // number of billing records that are associated with the current AWS account - // during the specified period is greater than the value that you specified for - // MaxItems, you can use Marker to return additional billing records. Get the value - // of NextPageMarker from the previous response, and submit another request that - // includes the value of NextPageMarker in the Marker element. Constraints: The - // marker must match the value of NextPageMarker that was returned in the previous - // response. + // number of billing records that are associated with the current Amazon Web + // Services account during the specified period is greater than the value that you + // specified for MaxItems, you can use Marker to return additional billing records. + // Get the value of NextPageMarker from the previous response, and submit another + // request that includes the value of NextPageMarker in the Marker element. + // Constraints: The marker must match the value of NextPageMarker that was returned + // in the previous response. Marker *string // The number of billing records to be returned. Default: 20 @@ -135,6 +136,95 @@ func (c *Client) addOperationViewBillingMiddlewares(stack *middleware.Stack, opt return nil } +// ViewBillingAPIClient is a client that implements the ViewBilling operation. +type ViewBillingAPIClient interface { + ViewBilling(context.Context, *ViewBillingInput, ...func(*Options)) (*ViewBillingOutput, error) +} + +var _ ViewBillingAPIClient = (*Client)(nil) + +// ViewBillingPaginatorOptions is the paginator options for ViewBilling +type ViewBillingPaginatorOptions struct { + // The number of billing records to be returned. Default: 20 + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ViewBillingPaginator is a paginator for ViewBilling +type ViewBillingPaginator struct { + options ViewBillingPaginatorOptions + client ViewBillingAPIClient + params *ViewBillingInput + nextToken *string + firstPage bool +} + +// NewViewBillingPaginator returns a new ViewBillingPaginator +func NewViewBillingPaginator(client ViewBillingAPIClient, params *ViewBillingInput, optFns ...func(*ViewBillingPaginatorOptions)) *ViewBillingPaginator { + if params == nil { + params = &ViewBillingInput{} + } + + options := ViewBillingPaginatorOptions{} + if params.MaxItems != nil { + options.Limit = *params.MaxItems + } + + for _, fn := range optFns { + fn(&options) + } + + return &ViewBillingPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.Marker, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ViewBillingPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ViewBilling page. +func (p *ViewBillingPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ViewBillingOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.Marker = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxItems = limit + + result, err := p.client.ViewBilling(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextPageMarker + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + func newServiceMetadataMiddleware_opViewBilling(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/route53domains/deserializers.go b/service/route53domains/deserializers.go index 41e49280ed4..aeafe274d8c 100644 --- a/service/route53domains/deserializers.go +++ b/service/route53domains/deserializers.go @@ -127,6 +127,9 @@ func awsAwsjson11_deserializeOpErrorAcceptDomainTransferFromAnotherAwsAccount(re case strings.EqualFold("OperationLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -241,6 +244,9 @@ func awsAwsjson11_deserializeOpErrorCancelDomainTransferToAnotherAwsAccount(resp case strings.EqualFold("OperationLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -479,6 +485,126 @@ func awsAwsjson11_deserializeOpErrorCheckDomainTransferability(response *smithyh } } +type awsAwsjson11_deserializeOpDeleteDomain struct { +} + +func (*awsAwsjson11_deserializeOpDeleteDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + 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_deserializeOpErrorDeleteDomain(response, &metadata) + } + output := &DeleteDomainOutput{} + 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_deserializeOpDocumentDeleteDomainOutput(&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_deserializeOpErrorDeleteDomain(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("DuplicateRequest", errorCode): + return awsAwsjson11_deserializeErrorDuplicateRequest(response, errorBody) + + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("TLDRulesViolation", errorCode): + return awsAwsjson11_deserializeErrorTLDRulesViolation(response, errorBody) + + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDeleteTagsForDomain struct { } @@ -1751,6 +1877,120 @@ func awsAwsjson11_deserializeOpErrorListOperations(response *smithyhttp.Response } } +type awsAwsjson11_deserializeOpListPrices struct { +} + +func (*awsAwsjson11_deserializeOpListPrices) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpListPrices) HandleDeserialize(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_deserializeOpErrorListPrices(response, &metadata) + } + output := &ListPricesOutput{} + 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_deserializeOpDocumentListPricesOutput(&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_deserializeOpErrorListPrices(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpListTagsForDomain struct { } @@ -2098,6 +2338,9 @@ func awsAwsjson11_deserializeOpErrorRejectDomainTransferFromAnotherAwsAccount(re case strings.EqualFold("OperationLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2695,6 +2938,9 @@ func awsAwsjson11_deserializeOpErrorTransferDomainToAnotherAwsAccount(response * case strings.EqualFold("OperationLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -3847,6 +4093,105 @@ func awsAwsjson11_deserializeDocumentDomainLimitExceeded(v **types.DomainLimitEx return nil } +func awsAwsjson11_deserializeDocumentDomainPrice(v **types.DomainPrice, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DomainPrice + if *v == nil { + sv = &types.DomainPrice{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ChangeOwnershipPrice": + if err := awsAwsjson11_deserializeDocumentPriceWithCurrency(&sv.ChangeOwnershipPrice, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DomainPriceName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "RegistrationPrice": + if err := awsAwsjson11_deserializeDocumentPriceWithCurrency(&sv.RegistrationPrice, value); err != nil { + return err + } + + case "RenewalPrice": + if err := awsAwsjson11_deserializeDocumentPriceWithCurrency(&sv.RenewalPrice, value); err != nil { + return err + } + + case "RestorationPrice": + if err := awsAwsjson11_deserializeDocumentPriceWithCurrency(&sv.RestorationPrice, value); err != nil { + return err + } + + case "TransferPrice": + if err := awsAwsjson11_deserializeDocumentPriceWithCurrency(&sv.TransferPrice, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDomainPriceList(v *[]types.DomainPrice, 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.DomainPrice + if *v == nil { + cv = []types.DomainPrice{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DomainPrice + destAddr := &col + if err := awsAwsjson11_deserializeDocumentDomainPrice(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentDomainStatusList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4540,6 +4885,80 @@ func awsAwsjson11_deserializeDocumentOperationSummaryList(v *[]types.OperationSu return nil } +func awsAwsjson11_deserializeDocumentPriceWithCurrency(v **types.PriceWithCurrency, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PriceWithCurrency + if *v == nil { + sv = &types.PriceWithCurrency{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Currency": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Currency to be of type string, got %T instead", value) + } + sv.Currency = ptr.String(jtv) + } + + case "Price": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Price = 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.Price = f64 + + default: + return fmt.Errorf("expected Price to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4859,6 +5278,46 @@ func awsAwsjson11_deserializeOpDocumentCheckDomainTransferabilityOutput(v **Chec return nil } +func awsAwsjson11_deserializeOpDocumentDeleteDomainOutput(v **DeleteDomainOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteDomainOutput + if *v == nil { + sv = &DeleteDomainOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "OperationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OperationId to be of type string, got %T instead", value) + } + sv.OperationId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteTagsForDomainOutput(v **DeleteTagsForDomainOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5520,6 +5979,51 @@ func awsAwsjson11_deserializeOpDocumentListOperationsOutput(v **ListOperationsOu return nil } +func awsAwsjson11_deserializeOpDocumentListPricesOutput(v **ListPricesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListPricesOutput + if *v == nil { + sv = &ListPricesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NextPageMarker": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PageMarker to be of type string, got %T instead", value) + } + sv.NextPageMarker = ptr.String(jtv) + } + + case "Prices": + if err := awsAwsjson11_deserializeDocumentDomainPriceList(&sv.Prices, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListTagsForDomainOutput(v **ListTagsForDomainOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/route53domains/generated.json b/service/route53domains/generated.json index d47541a0ba9..460bbb6ddb4 100644 --- a/service/route53domains/generated.json +++ b/service/route53domains/generated.json @@ -11,6 +11,7 @@ "api_op_CancelDomainTransferToAnotherAwsAccount.go", "api_op_CheckDomainAvailability.go", "api_op_CheckDomainTransferability.go", + "api_op_DeleteDomain.go", "api_op_DeleteTagsForDomain.go", "api_op_DisableDomainAutoRenew.go", "api_op_DisableDomainTransferLock.go", @@ -22,6 +23,7 @@ "api_op_GetOperationDetail.go", "api_op_ListDomains.go", "api_op_ListOperations.go", + "api_op_ListPrices.go", "api_op_ListTagsForDomain.go", "api_op_RegisterDomain.go", "api_op_RejectDomainTransferFromAnotherAwsAccount.go", diff --git a/service/route53domains/serializers.go b/service/route53domains/serializers.go index af5f8a506d2..4f8970e5c66 100644 --- a/service/route53domains/serializers.go +++ b/service/route53domains/serializers.go @@ -236,6 +236,61 @@ func (m *awsAwsjson11_serializeOpCheckDomainTransferability) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteDomain struct { +} + +func (*awsAwsjson11_serializeOpDeleteDomain) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteDomain) 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.(*DeleteDomainInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("Route53Domains_v20140515.DeleteDomain") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteDomainInput(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_serializeOpDeleteTagsForDomain struct { } @@ -841,6 +896,61 @@ func (m *awsAwsjson11_serializeOpListOperations) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpListPrices struct { +} + +func (*awsAwsjson11_serializeOpListPrices) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListPrices) 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.(*ListPricesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("Route53Domains_v20140515.ListPrices") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListPricesInput(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_serializeOpListTagsForDomain struct { } @@ -1664,6 +1774,43 @@ func awsAwsjson11_serializeDocumentExtraParamList(v []types.ExtraParam, value sm return nil } +func awsAwsjson11_serializeDocumentFilterCondition(v *types.FilterCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + if len(v.Operator) > 0 { + ok := object.Key("Operator") + ok.String(string(v.Operator)) + } + + if v.Values != nil { + ok := object.Key("Values") + if err := awsAwsjson11_serializeDocumentValues(v.Values, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentFilterConditions(v []types.FilterCondition, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentFilterCondition(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentGlueIpList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1707,6 +1854,23 @@ func awsAwsjson11_serializeDocumentNameserverList(v []types.Nameserver, value sm return nil } +func awsAwsjson11_serializeDocumentSortCondition(v *types.SortCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) + } + + return nil +} + func awsAwsjson11_serializeDocumentTag(v *types.Tag, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1748,6 +1912,17 @@ func awsAwsjson11_serializeDocumentTagList(v []types.Tag, value smithyjson.Value return nil } +func awsAwsjson11_serializeDocumentValues(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsAwsjson11_serializeOpDocumentAcceptDomainTransferFromAnotherAwsAccountInput(v *AcceptDomainTransferFromAnotherAwsAccountInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1811,6 +1986,18 @@ func awsAwsjson11_serializeOpDocumentCheckDomainTransferabilityInput(v *CheckDom return nil } +func awsAwsjson11_serializeOpDocumentDeleteDomainInput(v *DeleteDomainInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteTagsForDomainInput(v *DeleteTagsForDomainInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1940,6 +2127,13 @@ func awsAwsjson11_serializeOpDocumentListDomainsInput(v *ListDomainsInput, value object := value.Object() defer object.Close() + if v.FilterConditions != nil { + ok := object.Key("FilterConditions") + if err := awsAwsjson11_serializeDocumentFilterConditions(v.FilterConditions, ok); err != nil { + return err + } + } + if v.Marker != nil { ok := object.Key("Marker") ok.String(*v.Marker) @@ -1950,6 +2144,13 @@ func awsAwsjson11_serializeOpDocumentListDomainsInput(v *ListDomainsInput, value ok.Integer(*v.MaxItems) } + if v.SortCondition != nil { + ok := object.Key("SortCondition") + if err := awsAwsjson11_serializeDocumentSortCondition(v.SortCondition, ok); err != nil { + return err + } + } + return nil } @@ -1975,6 +2176,28 @@ func awsAwsjson11_serializeOpDocumentListOperationsInput(v *ListOperationsInput, return nil } +func awsAwsjson11_serializeOpDocumentListPricesInput(v *ListPricesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Marker != nil { + ok := object.Key("Marker") + ok.String(*v.Marker) + } + + if v.MaxItems != nil { + ok := object.Key("MaxItems") + ok.Integer(*v.MaxItems) + } + + if v.Tld != nil { + ok := object.Key("Tld") + ok.String(*v.Tld) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListTagsForDomainInput(v *ListTagsForDomainInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/route53domains/types/enums.go b/service/route53domains/types/enums.go index 9c8742645de..9256a9db2d1 100644 --- a/service/route53domains/types/enums.go +++ b/service/route53domains/types/enums.go @@ -30,6 +30,7 @@ type CountryCode string // Enum values for CountryCode const ( + CountryCodeAc CountryCode = "AC" CountryCodeAd CountryCode = "AD" CountryCodeAe CountryCode = "AE" CountryCodeAf CountryCode = "AF" @@ -45,6 +46,7 @@ const ( CountryCodeAt CountryCode = "AT" CountryCodeAu CountryCode = "AU" CountryCodeAw CountryCode = "AW" + CountryCodeAx CountryCode = "AX" CountryCodeAz CountryCode = "AZ" CountryCodeBa CountryCode = "BA" CountryCodeBb CountryCode = "BB" @@ -59,9 +61,11 @@ const ( CountryCodeBm CountryCode = "BM" CountryCodeBn CountryCode = "BN" CountryCodeBo CountryCode = "BO" + CountryCodeBq CountryCode = "BQ" CountryCodeBr CountryCode = "BR" CountryCodeBs CountryCode = "BS" CountryCodeBt CountryCode = "BT" + CountryCodeBv CountryCode = "BV" CountryCodeBw CountryCode = "BW" CountryCodeBy CountryCode = "BY" CountryCodeBz CountryCode = "BZ" @@ -80,6 +84,7 @@ const ( CountryCodeCr CountryCode = "CR" CountryCodeCu CountryCode = "CU" CountryCodeCv CountryCode = "CV" + CountryCodeCw CountryCode = "CW" CountryCodeCx CountryCode = "CX" CountryCodeCy CountryCode = "CY" CountryCodeCz CountryCode = "CZ" @@ -92,6 +97,7 @@ const ( CountryCodeEc CountryCode = "EC" CountryCodeEe CountryCode = "EE" CountryCodeEg CountryCode = "EG" + CountryCodeEh CountryCode = "EH" CountryCodeEr CountryCode = "ER" CountryCodeEs CountryCode = "ES" CountryCodeEt CountryCode = "ET" @@ -105,18 +111,23 @@ const ( CountryCodeGb CountryCode = "GB" CountryCodeGd CountryCode = "GD" CountryCodeGe CountryCode = "GE" + CountryCodeGf CountryCode = "GF" + CountryCodeGg CountryCode = "GG" CountryCodeGh CountryCode = "GH" CountryCodeGi CountryCode = "GI" CountryCodeGl CountryCode = "GL" CountryCodeGm CountryCode = "GM" CountryCodeGn CountryCode = "GN" + CountryCodeGp CountryCode = "GP" CountryCodeGq CountryCode = "GQ" CountryCodeGr CountryCode = "GR" + CountryCodeGs CountryCode = "GS" CountryCodeGt CountryCode = "GT" CountryCodeGu CountryCode = "GU" CountryCodeGw CountryCode = "GW" CountryCodeGy CountryCode = "GY" CountryCodeHk CountryCode = "HK" + CountryCodeHm CountryCode = "HM" CountryCodeHn CountryCode = "HN" CountryCodeHr CountryCode = "HR" CountryCodeHt CountryCode = "HT" @@ -126,10 +137,12 @@ const ( CountryCodeIl CountryCode = "IL" CountryCodeIm CountryCode = "IM" CountryCodeIn CountryCode = "IN" + CountryCodeIo CountryCode = "IO" CountryCodeIq CountryCode = "IQ" CountryCodeIr CountryCode = "IR" CountryCodeIs CountryCode = "IS" CountryCodeIt CountryCode = "IT" + CountryCodeJe CountryCode = "JE" CountryCodeJm CountryCode = "JM" CountryCodeJo CountryCode = "JO" CountryCodeJp CountryCode = "JP" @@ -168,6 +181,7 @@ const ( CountryCodeMn CountryCode = "MN" CountryCodeMo CountryCode = "MO" CountryCodeMp CountryCode = "MP" + CountryCodeMq CountryCode = "MQ" CountryCodeMr CountryCode = "MR" CountryCodeMs CountryCode = "MS" CountryCodeMt CountryCode = "MT" @@ -180,6 +194,7 @@ const ( CountryCodeNa CountryCode = "NA" CountryCodeNc CountryCode = "NC" CountryCodeNe CountryCode = "NE" + CountryCodeNf CountryCode = "NF" CountryCodeNg CountryCode = "NG" CountryCodeNi CountryCode = "NI" CountryCodeNl CountryCode = "NL" @@ -199,10 +214,12 @@ const ( CountryCodePm CountryCode = "PM" CountryCodePn CountryCode = "PN" CountryCodePr CountryCode = "PR" + CountryCodePs CountryCode = "PS" CountryCodePt CountryCode = "PT" CountryCodePw CountryCode = "PW" CountryCodePy CountryCode = "PY" CountryCodeQa CountryCode = "QA" + CountryCodeRe CountryCode = "RE" CountryCodeRo CountryCode = "RO" CountryCodeRs CountryCode = "RS" CountryCodeRu CountryCode = "RU" @@ -215,18 +232,22 @@ const ( CountryCodeSg CountryCode = "SG" CountryCodeSh CountryCode = "SH" CountryCodeSi CountryCode = "SI" + CountryCodeSj CountryCode = "SJ" CountryCodeSk CountryCode = "SK" CountryCodeSl CountryCode = "SL" CountryCodeSm CountryCode = "SM" CountryCodeSn CountryCode = "SN" CountryCodeSo CountryCode = "SO" CountryCodeSr CountryCode = "SR" + CountryCodeSs CountryCode = "SS" CountryCodeSt CountryCode = "ST" CountryCodeSv CountryCode = "SV" + CountryCodeSx CountryCode = "SX" CountryCodeSy CountryCode = "SY" CountryCodeSz CountryCode = "SZ" CountryCodeTc CountryCode = "TC" CountryCodeTd CountryCode = "TD" + CountryCodeTf CountryCode = "TF" CountryCodeTg CountryCode = "TG" CountryCodeTh CountryCode = "TH" CountryCodeTj CountryCode = "TJ" @@ -235,6 +256,7 @@ const ( CountryCodeTm CountryCode = "TM" CountryCodeTn CountryCode = "TN" CountryCodeTo CountryCode = "TO" + CountryCodeTp CountryCode = "TP" CountryCodeTr CountryCode = "TR" CountryCodeTt CountryCode = "TT" CountryCodeTv CountryCode = "TV" @@ -266,6 +288,7 @@ const ( // this slice is not guaranteed to be stable across updates. func (CountryCode) Values() []CountryCode { return []CountryCode{ + "AC", "AD", "AE", "AF", @@ -281,6 +304,7 @@ func (CountryCode) Values() []CountryCode { "AT", "AU", "AW", + "AX", "AZ", "BA", "BB", @@ -295,9 +319,11 @@ func (CountryCode) Values() []CountryCode { "BM", "BN", "BO", + "BQ", "BR", "BS", "BT", + "BV", "BW", "BY", "BZ", @@ -316,6 +342,7 @@ func (CountryCode) Values() []CountryCode { "CR", "CU", "CV", + "CW", "CX", "CY", "CZ", @@ -328,6 +355,7 @@ func (CountryCode) Values() []CountryCode { "EC", "EE", "EG", + "EH", "ER", "ES", "ET", @@ -341,18 +369,23 @@ func (CountryCode) Values() []CountryCode { "GB", "GD", "GE", + "GF", + "GG", "GH", "GI", "GL", "GM", "GN", + "GP", "GQ", "GR", + "GS", "GT", "GU", "GW", "GY", "HK", + "HM", "HN", "HR", "HT", @@ -362,10 +395,12 @@ func (CountryCode) Values() []CountryCode { "IL", "IM", "IN", + "IO", "IQ", "IR", "IS", "IT", + "JE", "JM", "JO", "JP", @@ -404,6 +439,7 @@ func (CountryCode) Values() []CountryCode { "MN", "MO", "MP", + "MQ", "MR", "MS", "MT", @@ -416,6 +452,7 @@ func (CountryCode) Values() []CountryCode { "NA", "NC", "NE", + "NF", "NG", "NI", "NL", @@ -435,10 +472,12 @@ func (CountryCode) Values() []CountryCode { "PM", "PN", "PR", + "PS", "PT", "PW", "PY", "QA", + "RE", "RO", "RS", "RU", @@ -451,18 +490,22 @@ func (CountryCode) Values() []CountryCode { "SG", "SH", "SI", + "SJ", "SK", "SL", "SM", "SN", "SO", "SR", + "SS", "ST", "SV", + "SX", "SY", "SZ", "TC", "TD", + "TF", "TG", "TH", "TJ", @@ -471,6 +514,7 @@ func (CountryCode) Values() []CountryCode { "TM", "TN", "TO", + "TP", "TR", "TT", "TV", @@ -561,6 +605,7 @@ const ( ExtraParamNameVatNumber ExtraParamName = "VAT_NUMBER" ExtraParamNameUkContactType ExtraParamName = "UK_CONTACT_TYPE" ExtraParamNameUkCompanyNumber ExtraParamName = "UK_COMPANY_NUMBER" + ExtraParamNameEuCountryOfCitizenship ExtraParamName = "EU_COUNTRY_OF_CITIZENSHIP" ) // Values returns all known values for ExtraParamName. Note that this can be @@ -597,6 +642,25 @@ func (ExtraParamName) Values() []ExtraParamName { "VAT_NUMBER", "UK_CONTACT_TYPE", "UK_COMPANY_NUMBER", + "EU_COUNTRY_OF_CITIZENSHIP", + } +} + +type ListDomainsAttributeName string + +// Enum values for ListDomainsAttributeName +const ( + ListDomainsAttributeNameDomainName ListDomainsAttributeName = "DomainName" + ListDomainsAttributeNameExpiry ListDomainsAttributeName = "Expiry" +) + +// Values returns all known values for ListDomainsAttributeName. 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 (ListDomainsAttributeName) Values() []ListDomainsAttributeName { + return []ListDomainsAttributeName{ + "DomainName", + "Expiry", } } @@ -674,6 +738,26 @@ func (OperationType) Values() []OperationType { } } +type Operator string + +// Enum values for Operator +const ( + OperatorLe Operator = "LE" + OperatorGe Operator = "GE" + OperatorBeginsWith Operator = "BEGINS_WITH" +) + +// Values returns all known values for Operator. 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 (Operator) Values() []Operator { + return []Operator{ + "LE", + "GE", + "BEGINS_WITH", + } +} + type ReachabilityStatus string // Enum values for ReachabilityStatus @@ -694,6 +778,24 @@ func (ReachabilityStatus) Values() []ReachabilityStatus { } } +type SortOrder string + +// Enum values for SortOrder +const ( + SortOrderAsc SortOrder = "ASC" + SortOrderDesc SortOrder = "DESC" +) + +// Values returns all known values for SortOrder. Note that this can be expanded in +// the future, and so it is only as up to date as the client. The ordering of this +// slice is not guaranteed to be stable across updates. +func (SortOrder) Values() []SortOrder { + return []SortOrder{ + "ASC", + "DESC", + } +} + type Transferable string // Enum values for Transferable diff --git a/service/route53domains/types/types.go b/service/route53domains/types/types.go index a1a8faaae68..375a0a0dac1 100644 --- a/service/route53domains/types/types.go +++ b/service/route53domains/types/types.go @@ -59,8 +59,8 @@ type ContactDetail struct { // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html) // in the Amazon Route 53 Developer Guide // - // * For .es domains, if you specify - // PERSON, you must specify INDIVIDUAL for the value of ES_LEGAL_FORM. + // * For .es domains, the value of + // ContactType must be PERSON for all three contacts. ContactType ContactType // Code for the country of the contact's address. @@ -100,6 +100,30 @@ type ContactDetail struct { noSmithyDocumentSerde } +// Information about the domain price associated with a TLD. +type DomainPrice struct { + + // The price for changing domain ownership. + ChangeOwnershipPrice *PriceWithCurrency + + // The name of the TLD for which the prices apply. + Name *string + + // The price for domain registration with Route 53. + RegistrationPrice *PriceWithCurrency + + // The price for renewing domain registration with Route 53. + RenewalPrice *PriceWithCurrency + + // The price for restoring the domain with Route 53. + RestorationPrice *PriceWithCurrency + + // The price for transferring the domain registration to Route 53. + TransferPrice *PriceWithCurrency + + noSmithyDocumentSerde +} + // Information about one suggested domain name. type DomainSuggestion struct { @@ -297,73 +321,107 @@ type ExtraParam struct { // // .es // - // * ES_IDENTIFICATION Specify the applicable value: + // * ES_IDENTIFICATION The value of ES_IDENTIFICATION depends on the + // following values: // - // * For contacts - // inside Spain: Enter your passport ID. + // * The value of ES_LEGAL_FORM // - // * For contacts outside of Spain: Enter - // the VAT identification number for the company. For .es domains, the value of - // ContactType must be PERSON. + // * The value of + // ES_IDENTIFICATION_TYPE // - // * ES_IDENTIFICATION_TYPE Valid values include the - // following: + // If ES_LEGAL_FORM is any value other than INDIVIDUAL: + // + // * + // Specify 1 letter + 8 numbers (CIF [Certificado de Identificación Fiscal]) + // + // * + // Example: B12345678 + // + // If ES_LEGAL_FORM is INDIVIDUAL, the value that you specify + // for ES_IDENTIFICATION depends on the value of ES_IDENTIFICATION_TYPE: + // + // * If + // ES_IDENTIFICATION_TYPE is DNI_AND_NIF (for Spanish contacts): + // + // * Specify 8 + // numbers + 1 letter (DNI [Documento Nacional de Identidad], NIF [Número de + // Identificación Fiscal]) + // + // * Example: 12345678M + // + // * If ES_IDENTIFICATION_TYPE is + // NIE (for foreigners with legal residence): + // + // * Specify 1 letter + 7 numbers + 1 + // letter ( NIE [Número de Identidad de Extranjero]) + // + // * Example: Y1234567X // - // * DNI_AND_NIF (For Spanish contacts) + // * If + // ES_IDENTIFICATION_TYPE is OTHER (for contacts outside of Spain): // - // * NIE (For foreigners with - // legal residence) + // * Specify a + // passport number, drivers license number, or national identity card number // - // * OTHER (For contacts outside of Spain) + // * + // ES_IDENTIFICATION_TYPE Valid values include the following: + // + // * DNI_AND_NIF (For + // Spanish contacts) + // + // * NIE (For foreigners with legal residence) // - // * ES_LEGAL_FORM Valid - // values include the following: + // * OTHER (For + // contacts outside of Spain) + // + // * ES_LEGAL_FORM Valid values include the + // following: // // * ASSOCIATION // // * CENTRAL_GOVERNMENT_BODY // - // * - // CIVIL_SOCIETY + // * CIVIL_SOCIETY // - // * COMMUNITY_OF_OWNERS + // * + // COMMUNITY_OF_OWNERS // // * COMMUNITY_PROPERTY // // * CONSULATE // + // * COOPERATIVE + // // * - // COOPERATIVE + // DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL // - // * DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL + // * ECONOMIC_INTEREST_GROUP // // * - // ECONOMIC_INTEREST_GROUP - // - // * EMBASSY + // EMBASSY // // * ENTITY_MANAGING_NATURAL_AREAS // - // * - // FARM_PARTNERSHIP + // * FARM_PARTNERSHIP // // * FOUNDATION // - // * GENERAL_AND_LIMITED_PARTNERSHIP - // // * - // GENERAL_PARTNERSHIP + // GENERAL_AND_LIMITED_PARTNERSHIP + // + // * GENERAL_PARTNERSHIP // // * INDIVIDUAL // - // * LIMITED_COMPANY + // * + // LIMITED_COMPANY // // * LOCAL_AUTHORITY // - // * - // LOCAL_PUBLIC_ENTITY + // * LOCAL_PUBLIC_ENTITY // - // * MUTUAL_INSURANCE_COMPANY + // * + // MUTUAL_INSURANCE_COMPANY // // * NATIONAL_PUBLIC_ENTITY // @@ -407,38 +465,42 @@ type ExtraParam struct { // // * WORKER_OWNED_LIMITED_COMPANY // - // .fi + // .eu // // * - // BIRTH_DATE_IN_YYYY_MM_DD + // EU_COUNTRY_OF_CITIZENSHIP // - // * FI_BUSINESS_NUMBER + // .fi + // + // * BIRTH_DATE_IN_YYYY_MM_DD + // + // * + // FI_BUSINESS_NUMBER // // * FI_ID_NUMBER // - // * FI_NATIONALITY - // Valid values include the following: + // * FI_NATIONALITY Valid values include the + // following: // // * FINNISH // // * NOT_FINNISH // - // * - // FI_ORGANIZATION_TYPE Valid values include the following: + // * FI_ORGANIZATION_TYPE Valid values + // include the following: // // * COMPANY // - // * - // CORPORATION + // * CORPORATION // // * GOVERNMENT // // * INSTITUTION // - // * POLITICAL_PARTY - // // * - // PUBLIC_COMMUNITY + // POLITICAL_PARTY + // + // * PUBLIC_COMMUNITY // // * TOWNSHIP // @@ -446,16 +508,16 @@ type ExtraParam struct { // // * BIRTH_CITY // - // * BIRTH_COUNTRY - // // * - // BIRTH_DATE_IN_YYYY_MM_DD + // BIRTH_COUNTRY + // + // * BIRTH_DATE_IN_YYYY_MM_DD // - // * BIRTH_DEPARTMENT: Specify the INSEE code that - // corresponds with the department where the contact was born. If the contact was - // born somewhere other than France or its overseas departments, specify 99. For - // more information, including a list of departments and the corresponding INSEE - // numbers, see the Wikipedia entry Departments of France + // * BIRTH_DEPARTMENT: Specify the INSEE + // code that corresponds with the department where the contact was born. If the + // contact was born somewhere other than France or its overseas departments, + // specify 99. For more information, including a list of departments and the + // corresponding INSEE numbers, see the Wikipedia entry Departments of France // (https://en.wikipedia.org/wiki/Departments_of_France). // // * BRAND_NUMBER @@ -563,6 +625,36 @@ type ExtraParam struct { noSmithyDocumentSerde } +// Information for the filtering of a list of domains returned by ListDomains +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains__ListDomains.html). +type FilterCondition struct { + + // Name of the field which should be used for filtering the list of domains. + // + // This member is required. + Name ListDomainsAttributeName + + // The operator values for filtering domain names. The values can be: + // + // * LE: Less + // than, or equal to + // + // * GE: Greater than, or equal to + // + // * BEGINS_WITH: Begins with + // + // This member is required. + Operator Operator + + // An array of strings presenting values to compare. Only 1 item in the list is + // currently supported. + // + // This member is required. + Values []string + + noSmithyDocumentSerde +} + // Nameserver includes the following elements. type Nameserver struct { @@ -608,6 +700,44 @@ type OperationSummary struct { noSmithyDocumentSerde } +// Currency-specific price information. +type PriceWithCurrency struct { + + // The currency specifier. + // + // This member is required. + Currency *string + + // The price of a domain, in a specific currency. + // + // This member is required. + Price float64 + + noSmithyDocumentSerde +} + +// Information for sorting a list of domains. +type SortCondition struct { + + // Field to be used for sorting the list of domains. It can be either the name or + // the expiration for a domain. Note that if filterCondition is used in the same + // ListDomains + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains__ListDomains.html) + // call, the field used for sorting has to be the same as the field used for + // filtering. + // + // This member is required. + Name ListDomainsAttributeName + + // The sort order for a list of domains. Either ascending (ASC) or descending + // (DES). + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + // Each tag includes the following elements. type Tag struct { diff --git a/service/route53domains/validators.go b/service/route53domains/validators.go index 614584758da..6725f31ff6f 100644 --- a/service/route53domains/validators.go +++ b/service/route53domains/validators.go @@ -90,6 +90,26 @@ func (m *validateOpCheckDomainTransferability) HandleInitialize(ctx context.Cont return next.HandleInitialize(ctx, in) } +type validateOpDeleteDomain struct { +} + +func (*validateOpDeleteDomain) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteDomain) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteDomainInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteDomainInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteTagsForDomain struct { } @@ -250,6 +270,26 @@ func (m *validateOpGetOperationDetail) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpListDomains struct { +} + +func (*validateOpListDomains) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListDomains) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListDomainsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListDomainsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListTagsForDomain struct { } @@ -486,6 +526,10 @@ func addOpCheckDomainTransferabilityValidationMiddleware(stack *middleware.Stack return stack.Initialize.Add(&validateOpCheckDomainTransferability{}, middleware.After) } +func addOpDeleteDomainValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteDomain{}, middleware.After) +} + func addOpDeleteTagsForDomainValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteTagsForDomain{}, middleware.After) } @@ -518,6 +562,10 @@ func addOpGetOperationDetailValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetOperationDetail{}, middleware.After) } +func addOpListDomainsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListDomains{}, middleware.After) +} + func addOpListTagsForDomainValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListTagsForDomain{}, middleware.After) } @@ -614,6 +662,44 @@ func validateExtraParamList(v []types.ExtraParam) error { } } +func validateFilterCondition(v *types.FilterCondition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FilterCondition"} + if len(v.Name) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if len(v.Operator) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Operator")) + } + if v.Values == nil { + invalidParams.Add(smithy.NewErrParamRequired("Values")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFilterConditions(v []types.FilterCondition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FilterConditions"} + for i := range v { + if err := validateFilterCondition(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateNameserver(v *types.Nameserver) error { if v == nil { return nil @@ -646,6 +732,24 @@ func validateNameserverList(v []types.Nameserver) error { } } +func validateSortCondition(v *types.SortCondition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SortCondition"} + if len(v.Name) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if len(v.SortOrder) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpAcceptDomainTransferFromAnotherAwsAccountInput(v *AcceptDomainTransferFromAnotherAwsAccountInput) error { if v == nil { return nil @@ -709,6 +813,21 @@ func validateOpCheckDomainTransferabilityInput(v *CheckDomainTransferabilityInpu } } +func validateOpDeleteDomainInput(v *DeleteDomainInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteDomainInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteTagsForDomainInput(v *DeleteTagsForDomainInput) error { if v == nil { return nil @@ -835,6 +954,28 @@ func validateOpGetOperationDetailInput(v *GetOperationDetailInput) error { } } +func validateOpListDomainsInput(v *ListDomainsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListDomainsInput"} + if v.FilterConditions != nil { + if err := validateFilterConditions(v.FilterConditions); err != nil { + invalidParams.AddNested("FilterConditions", err.(smithy.InvalidParamsError)) + } + } + if v.SortCondition != nil { + if err := validateSortCondition(v.SortCondition); err != nil { + invalidParams.AddNested("SortCondition", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListTagsForDomainInput(v *ListTagsForDomainInput) error { if v == nil { return nil diff --git a/service/route53recoverycontrolconfig/api_op_CreateCluster.go b/service/route53recoverycontrolconfig/api_op_CreateCluster.go index 39c03bae7ea..3a96dda834e 100644 --- a/service/route53recoverycontrolconfig/api_op_CreateCluster.go +++ b/service/route53recoverycontrolconfig/api_op_CreateCluster.go @@ -16,8 +16,7 @@ import ( // which you can run API calls to update or get the state of one or more routing // controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an // array of the five cluster endpoints (one for each supported Amazon Web Services -// Region) that you can use with API calls to the Amazon Route 53 Application -// Recovery Controller cluster data plane. +// Region) that you can use with API calls to the cluster data plane. func (c *Client) CreateCluster(ctx context.Context, params *CreateClusterInput, optFns ...func(*Options)) (*CreateClusterOutput, error) { if params == nil { params = &CreateClusterInput{} @@ -41,9 +40,13 @@ type CreateClusterInput struct { // This member is required. ClusterName *string - // Unique client idempotency token. + // A unique, case-sensitive string of up to 64 ASCII characters. To make an + // idempotent API request with an action, specify a client token in the request. ClientToken *string + // The tags associated with the cluster. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/route53recoverycontrolconfig/api_op_CreateControlPanel.go b/service/route53recoverycontrolconfig/api_op_CreateControlPanel.go index 923b84cda69..fa6bb8e5b9b 100644 --- a/service/route53recoverycontrolconfig/api_op_CreateControlPanel.go +++ b/service/route53recoverycontrolconfig/api_op_CreateControlPanel.go @@ -16,7 +16,7 @@ import ( // controls that can be changed together in a single transaction. You can use a // control panel to centrally view the operational status of applications across // your organization, and trigger multi-app failovers in a single transaction, for -// example, to fail over an Availability Zone or AWS Region. +// example, to fail over an Availability Zone or Amazon Web Services Region. func (c *Client) CreateControlPanel(ctx context.Context, params *CreateControlPanelInput, optFns ...func(*Options)) (*CreateControlPanelOutput, error) { if params == nil { params = &CreateControlPanelInput{} @@ -45,9 +45,13 @@ type CreateControlPanelInput struct { // This member is required. ControlPanelName *string - // Unique client idempotency token. + // A unique, case-sensitive string of up to 64 ASCII characters. To make an + // idempotent API request with an action, specify a client token in the request. ClientToken *string + // The tags associated with the control panel. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/route53recoverycontrolconfig/api_op_CreateRoutingControl.go b/service/route53recoverycontrolconfig/api_op_CreateRoutingControl.go index c5603935bff..a408545fec6 100644 --- a/service/route53recoverycontrolconfig/api_op_CreateRoutingControl.go +++ b/service/route53recoverycontrolconfig/api_op_CreateRoutingControl.go @@ -45,7 +45,8 @@ type CreateRoutingControlInput struct { // This member is required. RoutingControlName *string - // Unique client idempotency token. + // A unique, case-sensitive string of up to 64 ASCII characters. To make an + // idempotent API request with an action, specify a client token in the request. ClientToken *string // The Amazon Resource Name (ARN) of the control panel that includes the routing diff --git a/service/route53recoverycontrolconfig/api_op_CreateSafetyRule.go b/service/route53recoverycontrolconfig/api_op_CreateSafetyRule.go index 614d888b407..bdcb45127bd 100644 --- a/service/route53recoverycontrolconfig/api_op_CreateSafetyRule.go +++ b/service/route53recoverycontrolconfig/api_op_CreateSafetyRule.go @@ -13,15 +13,19 @@ import ( ) // Creates a safety rule in a control panel. Safety rules let you add safeguards -// around enabling and disabling routing controls, to help prevent unexpected -// outcomes. There are two types of safety rules: assertion rules and gating rules. -// Assertion rule: An assertion rule enforces that, when a routing control state is -// changed, the criteria set by the rule configuration is met. Otherwise, the -// change to the routing control is not accepted. Gating rule: A gating rule -// verifies that a set of gating controls evaluates as true, based on a rule -// configuration that you specify. If the gating rule evaluates to true, Amazon -// Route 53 Application Recovery Controller allows a set of routing control state -// changes to run and complete against the set of target controls. +// around changing routing control states, and for enabling and disabling routing +// controls, to help prevent unexpected outcomes. There are two types of safety +// rules: assertion rules and gating rules. Assertion rule: An assertion rule +// enforces that, when you change a routing control state, that a certain criteria +// is met. For example, the criteria might be that at least one routing control +// state is On after the transation so that traffic continues to flow to at least +// one cell for the application. This ensures that you avoid a fail-open scenario. +// Gating rule: A gating rule lets you configure a gating routing control as an +// overall "on/off" switch for a group of routing controls. Or, you can configure +// more complex gating scenarios, for example by configuring multiple gating +// routing controls. For more information, see Safety rules +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.safety-rules.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. func (c *Client) CreateSafetyRule(ctx context.Context, params *CreateSafetyRuleInput, optFns ...func(*Options)) (*CreateSafetyRuleOutput, error) { if params == nil { params = &CreateSafetyRuleInput{} @@ -40,29 +44,28 @@ func (c *Client) CreateSafetyRule(ctx context.Context, params *CreateSafetyRuleI // The request body that you include when you create a safety rule. type CreateSafetyRuleInput struct { - // A new assertion rule for a control panel. + // The assertion rule requested. AssertionRule *types.NewAssertionRule - // Unique client idempotency token. + // A unique, case-sensitive string of up to 64 ASCII characters. To make an + // idempotent API request with an action, specify a client token in the request. ClientToken *string - // A new gating rule for a control panel. + // The gating rule requested. GatingRule *types.NewGatingRule + // The tags associated with the safety rule. + Tags map[string]string + noSmithyDocumentSerde } type CreateSafetyRuleOutput struct { - // An assertion rule enforces that, when a routing control state is changed, the - // criteria set by the rule configuration is met. Otherwise, the change to the - // routing control is not accepted. + // The assertion rule created. AssertionRule *types.AssertionRule - // A gating rule verifies that a set of gating controls evaluates as true, based on - // a rule configuration that you specify. If the gating rule evaluates to true, - // Amazon Route 53 Application Recovery Controller allows a set of routing control - // state changes to run and complete against the set of target controls. + // The gating rule created. GatingRule *types.GatingRule // Metadata pertaining to the operation's result. diff --git a/service/route53recoverycontrolconfig/api_op_DeleteControlPanel.go b/service/route53recoverycontrolconfig/api_op_DeleteControlPanel.go index 015a0bc6996..e2770e1689b 100644 --- a/service/route53recoverycontrolconfig/api_op_DeleteControlPanel.go +++ b/service/route53recoverycontrolconfig/api_op_DeleteControlPanel.go @@ -28,7 +28,7 @@ func (c *Client) DeleteControlPanel(ctx context.Context, params *DeleteControlPa type DeleteControlPanelInput struct { - // The Amazon Resource Name (ARN) of the control panel that you're deleting. + // The Amazon Resource Name (ARN) of the control panel. // // This member is required. ControlPanelArn *string diff --git a/service/route53recoverycontrolconfig/api_op_DeleteSafetyRule.go b/service/route53recoverycontrolconfig/api_op_DeleteSafetyRule.go index fe8f5f81b37..d27dcbc3b43 100644 --- a/service/route53recoverycontrolconfig/api_op_DeleteSafetyRule.go +++ b/service/route53recoverycontrolconfig/api_op_DeleteSafetyRule.go @@ -28,7 +28,7 @@ func (c *Client) DeleteSafetyRule(ctx context.Context, params *DeleteSafetyRuleI type DeleteSafetyRuleInput struct { - // The request body that you include when you update a safety rule. + // The ARN of the safety rule. // // This member is required. SafetyRuleArn *string diff --git a/service/route53recoverycontrolconfig/api_op_DescribeCluster.go b/service/route53recoverycontrolconfig/api_op_DescribeCluster.go index 737dd115eab..93f825b0ebe 100644 --- a/service/route53recoverycontrolconfig/api_op_DescribeCluster.go +++ b/service/route53recoverycontrolconfig/api_op_DescribeCluster.go @@ -36,7 +36,7 @@ func (c *Client) DescribeCluster(ctx context.Context, params *DescribeClusterInp type DescribeClusterInput struct { - // The Amazon Resource Name (ARN) of the cluster that you're getting details for. + // The Amazon Resource Name (ARN) of the cluster. // // This member is required. ClusterArn *string diff --git a/service/route53recoverycontrolconfig/api_op_DescribeControlPanel.go b/service/route53recoverycontrolconfig/api_op_DescribeControlPanel.go index 1955373590c..9785b642394 100644 --- a/service/route53recoverycontrolconfig/api_op_DescribeControlPanel.go +++ b/service/route53recoverycontrolconfig/api_op_DescribeControlPanel.go @@ -35,8 +35,7 @@ func (c *Client) DescribeControlPanel(ctx context.Context, params *DescribeContr type DescribeControlPanelInput struct { - // The Amazon Resource Name (ARN) of the control panel that you're getting details - // for. + // The Amazon Resource Name (ARN) of the control panel. // // This member is required. ControlPanelArn *string diff --git a/service/route53recoverycontrolconfig/api_op_DescribeRoutingControl.go b/service/route53recoverycontrolconfig/api_op_DescribeRoutingControl.go index b22b2a32f8c..9a2f28d55f9 100644 --- a/service/route53recoverycontrolconfig/api_op_DescribeRoutingControl.go +++ b/service/route53recoverycontrolconfig/api_op_DescribeRoutingControl.go @@ -39,8 +39,7 @@ func (c *Client) DescribeRoutingControl(ctx context.Context, params *DescribeRou type DescribeRoutingControlInput struct { - // The Amazon Resource Name (ARN) of the routing control that you're getting - // details for. + // The Amazon Resource Name (ARN) of the routing control. // // This member is required. RoutingControlArn *string diff --git a/service/route53recoverycontrolconfig/api_op_DescribeSafetyRule.go b/service/route53recoverycontrolconfig/api_op_DescribeSafetyRule.go index b643653e8c0..529d0808adc 100644 --- a/service/route53recoverycontrolconfig/api_op_DescribeSafetyRule.go +++ b/service/route53recoverycontrolconfig/api_op_DescribeSafetyRule.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the safety rules (that is, the assertion rules and gating rules) for -// the routing controls in a control panel. +// Returns information about a safety rule. func (c *Client) DescribeSafetyRule(ctx context.Context, params *DescribeSafetyRuleInput, optFns ...func(*Options)) (*DescribeSafetyRuleOutput, error) { if params == nil { params = &DescribeSafetyRuleInput{} @@ -30,7 +29,7 @@ func (c *Client) DescribeSafetyRule(ctx context.Context, params *DescribeSafetyR type DescribeSafetyRuleInput struct { - // The request body that you include when you update a safety rule. + // The ARN of the safety rule. // // This member is required. SafetyRuleArn *string @@ -40,15 +39,10 @@ type DescribeSafetyRuleInput struct { type DescribeSafetyRuleOutput struct { - // An assertion rule enforces that, when a routing control state is changed, the - // criteria set by the rule configuration is met. Otherwise, the change to the - // routing control is not accepted. + // The assertion rule in the response. AssertionRule *types.AssertionRule - // A gating rule verifies that a set of gating controls evaluates as true, based on - // a rule configuration that you specify. If the gating rule evaluates to true, - // Amazon Route 53 Application Recovery Controller allows a set of routing control - // state changes to run and complete against the set of target controls. + // The gating rule in the response. GatingRule *types.GatingRule // Metadata pertaining to the operation's result. diff --git a/service/route53recoverycontrolconfig/api_op_ListAssociatedRoute53HealthChecks.go b/service/route53recoverycontrolconfig/api_op_ListAssociatedRoute53HealthChecks.go index b0add921eee..f11a05457fd 100644 --- a/service/route53recoverycontrolconfig/api_op_ListAssociatedRoute53HealthChecks.go +++ b/service/route53recoverycontrolconfig/api_op_ListAssociatedRoute53HealthChecks.go @@ -30,8 +30,7 @@ func (c *Client) ListAssociatedRoute53HealthChecks(ctx context.Context, params * type ListAssociatedRoute53HealthChecksInput struct { - // The Amazon Resource Name (ARN) of the routing control that you're getting - // details for. + // The Amazon Resource Name (ARN) of the routing control. // // This member is required. RoutingControlArn *string @@ -50,7 +49,7 @@ type ListAssociatedRoute53HealthChecksOutput struct { // Identifiers for the health checks. HealthCheckIds []string - // The token that identifies which batch of results you want to see. + // Next token for listing health checks. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/route53recoverycontrolconfig/api_op_ListControlPanels.go b/service/route53recoverycontrolconfig/api_op_ListControlPanels.go index fa6cf8dea97..c7bc276cd19 100644 --- a/service/route53recoverycontrolconfig/api_op_ListControlPanels.go +++ b/service/route53recoverycontrolconfig/api_op_ListControlPanels.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns an array of control panels for a cluster. +// Returns an array of control panels in an account or in a cluster. func (c *Client) ListControlPanels(ctx context.Context, params *ListControlPanelsInput, optFns ...func(*Options)) (*ListControlPanelsOutput, error) { if params == nil { params = &ListControlPanelsInput{} diff --git a/service/route53recoverycontrolconfig/api_op_ListRoutingControls.go b/service/route53recoverycontrolconfig/api_op_ListRoutingControls.go index e001022447b..70b6527a23b 100644 --- a/service/route53recoverycontrolconfig/api_op_ListRoutingControls.go +++ b/service/route53recoverycontrolconfig/api_op_ListRoutingControls.go @@ -33,8 +33,7 @@ func (c *Client) ListRoutingControls(ctx context.Context, params *ListRoutingCon type ListRoutingControlsInput struct { - // The Amazon Resource Name (ARN) of the control panel that you're getting routing - // control details for. + // The Amazon Resource Name (ARN) of the control panel. // // This member is required. ControlPanelArn *string diff --git a/service/route53recoverycontrolconfig/api_op_ListSafetyRules.go b/service/route53recoverycontrolconfig/api_op_ListSafetyRules.go index d80a9d27bf7..9de1361a0eb 100644 --- a/service/route53recoverycontrolconfig/api_op_ListSafetyRules.go +++ b/service/route53recoverycontrolconfig/api_op_ListSafetyRules.go @@ -31,8 +31,7 @@ func (c *Client) ListSafetyRules(ctx context.Context, params *ListSafetyRulesInp type ListSafetyRulesInput struct { - // The Amazon Resource Name (ARN) of the control panel that you're getting details - // for. + // The Amazon Resource Name (ARN) of the control panel. // // This member is required. ControlPanelArn *string diff --git a/service/route53recoverycontrolconfig/api_op_ListTagsForResource.go b/service/route53recoverycontrolconfig/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..f5c6c0d61c7 --- /dev/null +++ b/service/route53recoverycontrolconfig/api_op_ListTagsForResource.go @@ -0,0 +1,120 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53recoverycontrolconfig + +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" +) + +// Lists the tags for a resource. +func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { + if params == nil { + params = &ListTagsForResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListTagsForResource", params, optFns, c.addOperationListTagsForResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListTagsForResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListTagsForResourceInput struct { + + // The Amazon Resource Name (ARN) for the resource that's tagged. + // + // This member is required. + ResourceArn *string + + noSmithyDocumentSerde +} + +type ListTagsForResourceOutput struct { + + // The tags associated with the resource. + Tags map[string]string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListTagsForResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListTagsForResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListTagsForResource{}, middleware.After) + if err != nil { + return err + } + if err = 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 = addOpListTagsForResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListTagsForResource(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_opListTagsForResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53-recovery-control-config", + OperationName: "ListTagsForResource", + } +} diff --git a/service/route53recoverycontrolconfig/api_op_TagResource.go b/service/route53recoverycontrolconfig/api_op_TagResource.go new file mode 100644 index 00000000000..1ba619af350 --- /dev/null +++ b/service/route53recoverycontrolconfig/api_op_TagResource.go @@ -0,0 +1,122 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53recoverycontrolconfig + +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" +) + +// 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{} + } + + result, metadata, err := c.invokeOperation(ctx, "TagResource", params, optFns, c.addOperationTagResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*TagResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +// Request of adding tag to the resource +type TagResourceInput struct { + + // The Amazon Resource Name (ARN) for the resource that's tagged. + // + // This member is required. + ResourceArn *string + + // The tags associated with the resource. + // + // This member is required. + Tags map[string]string + + noSmithyDocumentSerde +} + +type TagResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationTagResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpTagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpTagResource{}, middleware.After) + if err != nil { + return err + } + if err = 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 = addOpTagResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opTagResource(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_opTagResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53-recovery-control-config", + OperationName: "TagResource", + } +} diff --git a/service/route53recoverycontrolconfig/api_op_UntagResource.go b/service/route53recoverycontrolconfig/api_op_UntagResource.go new file mode 100644 index 00000000000..569350f5189 --- /dev/null +++ b/service/route53recoverycontrolconfig/api_op_UntagResource.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53recoverycontrolconfig + +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" +) + +// 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{} + } + + result, metadata, err := c.invokeOperation(ctx, "UntagResource", params, optFns, c.addOperationUntagResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UntagResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UntagResourceInput struct { + + // The Amazon Resource Name (ARN) for the resource that's tagged. + // + // This member is required. + ResourceArn *string + + // Keys for the tags to be removed. + // + // This member is required. + TagKeys []string + + noSmithyDocumentSerde +} + +type UntagResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUntagResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUntagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUntagResource{}, middleware.After) + if err != nil { + return err + } + if err = 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 = addOpUntagResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUntagResource(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_opUntagResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53-recovery-control-config", + OperationName: "UntagResource", + } +} diff --git a/service/route53recoverycontrolconfig/api_op_UpdateSafetyRule.go b/service/route53recoverycontrolconfig/api_op_UpdateSafetyRule.go index 84fd2be01e4..9b7b0690ed7 100644 --- a/service/route53recoverycontrolconfig/api_op_UpdateSafetyRule.go +++ b/service/route53recoverycontrolconfig/api_op_UpdateSafetyRule.go @@ -11,10 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Update a safety rule (an assertion rule or gating rule) for the routing controls -// in a control panel. You can only update the name and the waiting period for a -// safety rule. To make other updates, delete the safety rule and create a new -// safety rule. +// Update a safety rule (an assertion rule or gating rule). You can only update the +// name and the waiting period for a safety rule. To make other updates, delete the +// safety rule and create a new one. func (c *Client) UpdateSafetyRule(ctx context.Context, params *UpdateSafetyRuleInput, optFns ...func(*Options)) (*UpdateSafetyRuleOutput, error) { if params == nil { params = &UpdateSafetyRuleInput{} @@ -30,15 +29,14 @@ func (c *Client) UpdateSafetyRule(ctx context.Context, params *UpdateSafetyRuleI return out, nil } +// A rule that you add to Application Recovery Controller to ensure that recovery +// actions don't accidentally impair your application's availability. type UpdateSafetyRuleInput struct { - // An update to an assertion rule. You can update the name or the evaluation period - // (wait period). If you don't specify one of the items to update, the item is - // unchanged. + // The assertion rule to update. AssertionRuleUpdate *types.AssertionRuleUpdate - // Update to a gating rule. You can update the name or the evaluation period (wait - // period). If you don't specify one of the items to update, the item is unchanged. + // The gating rule to update. GatingRuleUpdate *types.GatingRuleUpdate noSmithyDocumentSerde @@ -46,15 +44,10 @@ type UpdateSafetyRuleInput struct { type UpdateSafetyRuleOutput struct { - // An assertion rule enforces that, when a routing control state is changed, the - // criteria set by the rule configuration is met. Otherwise, the change to the - // routing control is not accepted. + // The assertion rule updated. AssertionRule *types.AssertionRule - // A gating rule verifies that a set of gating controls evaluates as true, based on - // a rule configuration that you specify. If the gating rule evaluates to true, - // Amazon Route 53 Application Recovery Controller allows a set of routing control - // state changes to run and complete against the set of target controls. + // The gating rule updated. GatingRule *types.GatingRule // Metadata pertaining to the operation's result. diff --git a/service/route53recoverycontrolconfig/deserializers.go b/service/route53recoverycontrolconfig/deserializers.go index f351c79eb10..57bf1ce2c5b 100644 --- a/service/route53recoverycontrolconfig/deserializers.go +++ b/service/route53recoverycontrolconfig/deserializers.go @@ -1832,7 +1832,7 @@ func awsRestjson1_deserializeOpDocumentListAssociatedRoute53HealthChecksOutput(v for key, value := range shape { switch key { case "HealthCheckIds": - if err := awsRestjson1_deserializeDocument__listOf__string(&sv.HealthCheckIds, value); err != nil { + if err := awsRestjson1_deserializeDocument__listOf__stringMax36PatternS(&sv.HealthCheckIds, value); err != nil { return err } @@ -1840,7 +1840,7 @@ func awsRestjson1_deserializeOpDocumentListAssociatedRoute53HealthChecksOutput(v if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMax8096 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max8096PatternS to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -2008,7 +2008,7 @@ func awsRestjson1_deserializeOpDocumentListClustersOutput(v **ListClustersOutput if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMax8096 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max8096PatternS to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -2176,7 +2176,7 @@ func awsRestjson1_deserializeOpDocumentListControlPanelsOutput(v **ListControlPa if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMax8096 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max8096PatternS to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -2339,7 +2339,7 @@ func awsRestjson1_deserializeOpDocumentListRoutingControlsOutput(v **ListRouting if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMax8096 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max8096PatternS to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -2507,7 +2507,7 @@ func awsRestjson1_deserializeOpDocumentListSafetyRulesOutput(v **ListSafetyRules if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMax8096 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max8096PatternS to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -2526,6 +2526,337 @@ func awsRestjson1_deserializeOpDocumentListSafetyRulesOutput(v **ListSafetyRules return nil } +type awsRestjson1_deserializeOpListTagsForResource struct { +} + +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) + } + output := &ListTagsForResourceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListTagsForResourceOutput + if *v == nil { + sv = &ListTagsForResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Tags": + if err := awsRestjson1_deserializeDocument__mapOf__stringMin0Max256PatternS(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpTagResource struct { +} + +func (*awsRestjson1_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) + } + output := &TagResourceOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpUntagResource struct { +} + +func (*awsRestjson1_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) + } + output := &UntagResourceOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpUpdateControlPanel struct { } @@ -3260,7 +3591,43 @@ func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Respo return output } -func awsRestjson1_deserializeDocument__listOf__string(v *[]string, value interface{}) error { +func awsRestjson1_deserializeDocument__listOf__stringMax36PatternS(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 __stringMax36PatternS to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocument__listOf__stringMin1Max256PatternAZaZ09(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3285,7 +3652,7 @@ func awsRestjson1_deserializeDocument__listOf__string(v *[]string, value interfa if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } col = jtv } @@ -3466,6 +3833,42 @@ func awsRestjson1_deserializeDocument__listOfRule(v *[]types.Rule, value interfa return nil } +func awsRestjson1_deserializeDocument__mapOf__stringMin0Max256PatternS(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 __stringMin0Max256PatternS to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3529,7 +3932,7 @@ func awsRestjson1_deserializeDocumentAssertionRule(v **types.AssertionRule, valu for key, value := range shape { switch key { case "AssertedControls": - if err := awsRestjson1_deserializeDocument__listOf__string(&sv.AssertedControls, value); err != nil { + if err := awsRestjson1_deserializeDocument__listOf__stringMin1Max256PatternAZaZ09(&sv.AssertedControls, value); err != nil { return err } @@ -3537,7 +3940,7 @@ func awsRestjson1_deserializeDocumentAssertionRule(v **types.AssertionRule, valu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ControlPanelArn = ptr.String(jtv) } @@ -3560,7 +3963,7 @@ func awsRestjson1_deserializeDocumentAssertionRule(v **types.AssertionRule, valu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.SafetyRuleArn = ptr.String(jtv) } @@ -3622,7 +4025,7 @@ func awsRestjson1_deserializeDocumentCluster(v **types.Cluster, value interface{ if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ClusterArn = ptr.String(jtv) } @@ -3685,7 +4088,7 @@ func awsRestjson1_deserializeDocumentClusterEndpoint(v **types.ClusterEndpoint, if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMin1Max128 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max128PatternAZaZ09 to be of type string, got %T instead", value) } sv.Endpoint = ptr.String(jtv) } @@ -3694,7 +4097,7 @@ func awsRestjson1_deserializeDocumentClusterEndpoint(v **types.ClusterEndpoint, if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMin1Max32 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max32PatternS to be of type string, got %T instead", value) } sv.Region = ptr.String(jtv) } @@ -3774,7 +4177,7 @@ func awsRestjson1_deserializeDocumentControlPanel(v **types.ControlPanel, value if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ClusterArn = ptr.String(jtv) } @@ -3783,7 +4186,7 @@ func awsRestjson1_deserializeDocumentControlPanel(v **types.ControlPanel, value if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ControlPanelArn = ptr.String(jtv) } @@ -3863,13 +4266,13 @@ func awsRestjson1_deserializeDocumentGatingRule(v **types.GatingRule, value inte if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ControlPanelArn = ptr.String(jtv) } case "GatingControls": - if err := awsRestjson1_deserializeDocument__listOf__string(&sv.GatingControls, value); err != nil { + if err := awsRestjson1_deserializeDocument__listOf__stringMin1Max256PatternAZaZ09(&sv.GatingControls, value); err != nil { return err } @@ -3891,7 +4294,7 @@ func awsRestjson1_deserializeDocumentGatingRule(v **types.GatingRule, value inte if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.SafetyRuleArn = ptr.String(jtv) } @@ -3906,7 +4309,7 @@ func awsRestjson1_deserializeDocumentGatingRule(v **types.GatingRule, value inte } case "TargetControls": - if err := awsRestjson1_deserializeDocument__listOf__string(&sv.TargetControls, value); err != nil { + if err := awsRestjson1_deserializeDocument__listOf__stringMin1Max256PatternAZaZ09(&sv.TargetControls, value); err != nil { return err } @@ -4038,7 +4441,7 @@ func awsRestjson1_deserializeDocumentRoutingControl(v **types.RoutingControl, va if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.ControlPanelArn = ptr.String(jtv) } @@ -4056,7 +4459,7 @@ func awsRestjson1_deserializeDocumentRoutingControl(v **types.RoutingControl, va if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __string to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max256PatternAZaZ09 to be of type string, got %T instead", value) } sv.RoutingControlArn = ptr.String(jtv) } diff --git a/service/route53recoverycontrolconfig/generated.json b/service/route53recoverycontrolconfig/generated.json index 7e77ca561a6..3484cb1df6c 100644 --- a/service/route53recoverycontrolconfig/generated.json +++ b/service/route53recoverycontrolconfig/generated.json @@ -25,6 +25,9 @@ "api_op_ListControlPanels.go", "api_op_ListRoutingControls.go", "api_op_ListSafetyRules.go", + "api_op_ListTagsForResource.go", + "api_op_TagResource.go", + "api_op_UntagResource.go", "api_op_UpdateControlPanel.go", "api_op_UpdateRoutingControl.go", "api_op_UpdateSafetyRule.go", diff --git a/service/route53recoverycontrolconfig/serializers.go b/service/route53recoverycontrolconfig/serializers.go index 70716092ab3..ebef89acbe6 100644 --- a/service/route53recoverycontrolconfig/serializers.go +++ b/service/route53recoverycontrolconfig/serializers.go @@ -84,6 +84,13 @@ func awsRestjson1_serializeOpDocumentCreateClusterInput(v *CreateClusterInput, v ok.String(*v.ClusterName) } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocument__mapOf__stringMin0Max256PatternS(v.Tags, ok); err != nil { + return err + } + } + return nil } @@ -162,6 +169,13 @@ func awsRestjson1_serializeOpDocumentCreateControlPanelInput(v *CreateControlPan ok.String(*v.ControlPanelName) } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocument__mapOf__stringMin0Max256PatternS(v.Tags, ok); err != nil { + return err + } + } + return nil } @@ -327,6 +341,13 @@ func awsRestjson1_serializeOpDocumentCreateSafetyRuleInput(v *CreateSafetyRuleIn } } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocument__mapOf__stringMin0Max256PatternS(v.Tags, ok); err != nil { + return err + } + } + return nil } @@ -1110,6 +1131,211 @@ func awsRestjson1_serializeOpHttpBindingsListSafetyRulesInput(v *ListSafetyRules return nil } +type awsRestjson1_serializeOpListTagsForResource struct { +} + +func (*awsRestjson1_serializeOpListTagsForResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListTagsForResource) 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.(*ListTagsForResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "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_serializeOpHttpBindingsListTagsForResourceInput(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_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpTagResource struct { +} + +func (*awsRestjson1_serializeOpTagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "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_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocument__mapOf__stringMin0Max256PatternS(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpUntagResource struct { +} + +func (*awsRestjson1_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UntagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") + 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_serializeOpHttpBindingsUntagResourceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + if v.TagKeys != nil { + for i := range v.TagKeys { + encoder.AddQuery("TagKeys").String(v.TagKeys[i]) + } + } + + return nil +} + type awsRestjson1_serializeOpUpdateControlPanel struct { } @@ -1333,7 +1559,7 @@ func awsRestjson1_serializeOpDocumentUpdateSafetyRuleInput(v *UpdateSafetyRuleIn return nil } -func awsRestjson1_serializeDocument__listOf__string(v []string, value smithyjson.Value) error { +func awsRestjson1_serializeDocument__listOf__stringMin1Max256PatternAZaZ09(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1344,6 +1570,17 @@ func awsRestjson1_serializeDocument__listOf__string(v []string, value smithyjson return nil } +func awsRestjson1_serializeDocument__mapOf__stringMin0Max256PatternS(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsRestjson1_serializeDocumentAssertionRuleUpdate(v *types.AssertionRuleUpdate, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1394,7 +1631,7 @@ func awsRestjson1_serializeDocumentNewAssertionRule(v *types.NewAssertionRule, v if v.AssertedControls != nil { ok := object.Key("AssertedControls") - if err := awsRestjson1_serializeDocument__listOf__string(v.AssertedControls, ok); err != nil { + if err := awsRestjson1_serializeDocument__listOf__stringMin1Max256PatternAZaZ09(v.AssertedControls, ok); err != nil { return err } } @@ -1435,7 +1672,7 @@ func awsRestjson1_serializeDocumentNewGatingRule(v *types.NewGatingRule, value s if v.GatingControls != nil { ok := object.Key("GatingControls") - if err := awsRestjson1_serializeDocument__listOf__string(v.GatingControls, ok); err != nil { + if err := awsRestjson1_serializeDocument__listOf__stringMin1Max256PatternAZaZ09(v.GatingControls, ok); err != nil { return err } } @@ -1454,7 +1691,7 @@ func awsRestjson1_serializeDocumentNewGatingRule(v *types.NewGatingRule, value s if v.TargetControls != nil { ok := object.Key("TargetControls") - if err := awsRestjson1_serializeDocument__listOf__string(v.TargetControls, ok); err != nil { + if err := awsRestjson1_serializeDocument__listOf__stringMin1Max256PatternAZaZ09(v.TargetControls, ok); err != nil { return err } } diff --git a/service/route53recoverycontrolconfig/types/errors.go b/service/route53recoverycontrolconfig/types/errors.go index 31fd73698ac..083469f5c85 100644 --- a/service/route53recoverycontrolconfig/types/errors.go +++ b/service/route53recoverycontrolconfig/types/errors.go @@ -7,8 +7,7 @@ import ( smithy "github.com/aws/smithy-go" ) -// 403 response - AccessDeniedException. You do not have sufficient access to -// perform this action. +// 403 response - You do not have sufficient access to perform this action. type AccessDeniedException struct { Message *string @@ -27,7 +26,7 @@ func (e *AccessDeniedException) ErrorMessage() string { func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// 409 response - ConflictException. +// 409 response - ConflictException. You might be using a predefined variable. type ConflictException struct { Message *string @@ -65,7 +64,8 @@ func (e *InternalServerException) ErrorMessage() string { func (e *InternalServerException) ErrorCode() string { return "InternalServerException" } func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// 404 response - The query string contains a syntax error or resource not found. +// 404 response - MalformedQueryString. The query string contains a syntax error or +// resource not found.. type ResourceNotFoundException struct { Message *string @@ -84,7 +84,8 @@ func (e *ResourceNotFoundException) ErrorMessage() string { func (e *ResourceNotFoundException) ErrorCode() string { return "ResourceNotFoundException" } func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// 402 response +// 402 response - You attempted to create more resources than the service allows +// based on service quotas. type ServiceQuotaExceededException struct { Message *string @@ -103,7 +104,7 @@ func (e *ServiceQuotaExceededException) ErrorMessage() string { func (e *ServiceQuotaExceededException) ErrorCode() string { return "ServiceQuotaExceededException" } func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// 429 response - ThrottlingException. +// 429 response - LimitExceededException or TooManyRequestsException. type ThrottlingException struct { Message *string @@ -123,8 +124,8 @@ func (e *ThrottlingException) ErrorCode() string { return "Throttlin func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // 400 response - Multiple causes. For example, you might have a malformed query -// string and input parameter might be out of range, or you used parameters -// together incorrectly. +// string and input parameter might be out of range, or you might have used +// parameters together incorrectly. type ValidationException struct { Message *string diff --git a/service/route53recoverycontrolconfig/types/types.go b/service/route53recoverycontrolconfig/types/types.go index 0b293288d2e..0a6ba4083a1 100644 --- a/service/route53recoverycontrolconfig/types/types.go +++ b/service/route53recoverycontrolconfig/types/types.go @@ -6,9 +6,12 @@ import ( smithydocument "github.com/aws/smithy-go/document" ) -// An assertion rule enforces that, when a routing control state is changed, the -// criteria set by the rule configuration is met. Otherwise, the change to the -// routing control is not accepted. +// An assertion rule enforces that, when you change a routing control state, that +// the criteria that you set in the rule configuration is met. Otherwise, the +// change to the routing control is not accepted. For example, the criteria might +// be that at least one routing control state is On after the transation so that +// traffic continues to flow to at least one cell for the application. This ensures +// that you avoid a fail-open scenario. type AssertionRule struct { // The routing controls that are part of transactions that are evaluated to @@ -30,11 +33,12 @@ type AssertionRule struct { // This member is required. Name *string - // The criteria that you set for specific assertion controls (routing controls) - // that designate how many controls must be enabled as the result of a transaction. - // For example, if you have three assertion controls, you might specify atleast 2 - // for your rule configuration. This means that at least two assertion controls - // must be enabled, so that at least two Amazon Web Services Regions are enabled. + // The criteria that you set for specific assertion routing controls + // (AssertedControls) that designate how many routing control states must be ON as + // the result of a transaction. For example, if you have three assertion routing + // controls, you might specify atleast 2 for your rule configuration. This means + // that at least two assertion routing control states must be ON, so that at least + // two Amazon Web Services Regions have traffic flowing to them. // // This member is required. RuleConfig *RuleConfig @@ -86,9 +90,9 @@ type AssertionRuleUpdate struct { noSmithyDocumentSerde } -// A cluster is a set of five consensus-forming Regional endpoints that represent -// the infrastructure that hosts your routing controls. Typically, you host -// together on one cluster all of the routing controls for your applications. +// A set of five redundant Regional endpoints against which you can execute API +// calls to update or get the state of routing controls. You can host multiple +// control panels and routing controls on one cluster. type Cluster struct { // The Amazon Resource Name (ARN) of the cluster. @@ -96,8 +100,8 @@ type Cluster struct { // Endpoints for a cluster. Specify one of these endpoints when you want to set or // retrieve a routing control state in the cluster. To get or update the routing - // control state, see the Amazon Route 53 Application Recovery Controller Cluster - // (Data Plane) Actions. + // control state, see the Amazon Route 53 Application Recovery Controller Routing + // Control Actions. ClusterEndpoints []ClusterEndpoint // The name of the cluster. @@ -117,7 +121,7 @@ type ClusterEndpoint struct { // A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you // want to set or retrieve a routing control state in the cluster. To get or update // the routing control state, see the Amazon Route 53 Application Recovery - // Controller Cluster (Data Plane) Actions. + // Controller Routing Control Actions. Endpoint *string // The Amazon Web Services Region for a cluster endpoint. @@ -157,10 +161,14 @@ type ControlPanel struct { noSmithyDocumentSerde } -// A gating rule verifies that a set of gating controls evaluates as true, based on -// a rule configuration that you specify. If the gating rule evaluates to true, -// Amazon Route 53 Application Recovery Controller allows a set of routing control -// state changes to run and complete against the set of target controls. +// A gating rule verifies that a gating routing control or set of gating rounting +// controls, evaluates as true, based on a rule configuration that you specify, +// which allows a set of routing control state changes to complete. For example, if +// you specify one gating routing control and you set the Type in the rule +// configuration to OR, that indicates that you must set the gating routing control +// to On for the rule to evaluate as true; that is, for the gating control "switch" +// to be "On". When you do that, then you can update the routing control states for +// the target routing controls that you specify in the gating rule. type GatingRule struct { // The Amazon Resource Name (ARN) of the control panel. @@ -168,20 +176,23 @@ type GatingRule struct { // This member is required. ControlPanelArn *string - // The gating controls for the gating rule. That is, routing controls that are - // evaluated by the rule configuration that you specify. + // An array of gating routing control Amazon Resource Names (ARNs). For a simple + // "on/off" switch, specify the ARN for one routing control. The gating routing + // controls are evaluated by the rule configuration that you specify to determine + // if the target routing control states can be changed. // // This member is required. GatingControls []string - // The name for the gating rule. + // The name for the gating rule. You can use any non-white space character in the + // name. // // This member is required. Name *string - // The criteria that you set for specific gating controls (routing controls) that - // designates how many controls must be enabled to allow you to change (set or - // unset) the target controls. + // The criteria that you set for gating routing controls that designates how many + // of the routing control states must be ON to allow you to update target routing + // control states. // // This member is required. RuleConfig *RuleConfig @@ -197,14 +208,12 @@ type GatingRule struct { // This member is required. Status Status - // Routing controls that can only be set or unset if the specified RuleConfig - // evaluates to true for the specified GatingControls. For example, say you have - // three gating controls, one for each of three Amazon Web Services Regions. Now - // you specify ATLEAST 2 as your RuleConfig. With these settings, you can only - // change (set or unset) the routing controls that you have specified as - // TargetControls if that rule evaluates to true. In other words, your ability to - // change the routing controls that you have specified as TargetControls is gated - // by the rule that you set for the routing controls in GatingControls. + // An array of target routing control Amazon Resource Names (ARNs) for which the + // states can only be updated if the rule configuration that you specify evaluates + // to true for the gating routing control. As a simple example, if you have a + // single gating control, it acts as an overall "on/off" switch for a set of target + // routing controls. You can use this to manually override automated fail over, for + // example. // // This member is required. TargetControls []string @@ -223,7 +232,8 @@ type GatingRule struct { // period). If you don't specify one of the items to update, the item is unchanged. type GatingRuleUpdate struct { - // The name for the gating rule. + // The name for the gating rule. You can use any non-white space character in the + // name. // // This member is required. Name *string @@ -266,10 +276,11 @@ type NewAssertionRule struct { Name *string // The criteria that you set for specific assertion controls (routing controls) - // that designate how many controls must be enabled as the result of a transaction. - // For example, if you have three assertion controls, you might specify atleast 2 - // for your rule configuration. This means that at least two assertion controls - // must be enabled, so that at least two Amazon Web Services Regions are enabled. + // that designate how many control states must be ON as the result of a + // transaction. For example, if you have three assertion controls, you might + // specify ATLEAST 2for your rule configuration. This means that at least two + // assertion controls must be ON, so that at least two Amazon Web Services Regions + // have traffic flowing to them. // // This member is required. RuleConfig *RuleConfig @@ -304,8 +315,8 @@ type NewGatingRule struct { Name *string // The criteria that you set for specific gating controls (routing controls) that - // designates how many controls must be enabled to allow you to change (set or - // unset) the target controls. + // designates how many control states must be ON to allow you to change (set or + // unset) the target control states. // // This member is required. RuleConfig *RuleConfig @@ -359,21 +370,28 @@ type Rule struct { // An assertion rule enforces that, when a routing control state is changed, the // criteria set by the rule configuration is met. Otherwise, the change to the - // routing control is not accepted. + // routing control state is not accepted. For example, the criteria might be that + // at least one routing control state is On after the transation so that traffic + // continues to flow to at least one cell for the application. This ensures that + // you avoid a fail-open scenario. ASSERTION *AssertionRule - // A gating rule verifies that a set of gating controls evaluates as true, based on - // a rule configuration that you specify. If the gating rule evaluates to true, - // Amazon Route 53 Application Recovery Controller allows a set of routing control - // state changes to run and complete against the set of target controls. + // A gating rule verifies that a gating routing control or set of gating rounting + // controls, evaluates as true, based on a rule configuration that you specify, + // which allows a set of routing control state changes to complete. For example, if + // you specify one gating routing control and you set the Type in the rule + // configuration to OR, that indicates that you must set the gating routing control + // to On for the rule to evaluate as true; that is, for the gating control "switch" + // to be "On". When you do that, then you can update the routing control states for + // the target routing controls that you specify in the gating rule. GATING *GatingRule noSmithyDocumentSerde } // The rule configuration for an assertion rule. That is, the criteria that you set -// for specific assertion controls (routing controls) that specify how many -// controls must be enabled after a transaction completes. +// for specific assertion controls (routing controls) that specify how many control +// states must be ON after a transaction completes. type RuleConfig struct { // Logical negation of the rule. If the rule would usually evaluate true, it's diff --git a/service/route53recoverycontrolconfig/validators.go b/service/route53recoverycontrolconfig/validators.go index cdee2fd9518..6edae6e0fc8 100644 --- a/service/route53recoverycontrolconfig/validators.go +++ b/service/route53recoverycontrolconfig/validators.go @@ -310,6 +310,66 @@ func (m *validateOpListSafetyRules) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpListTagsForResource struct { +} + +func (*validateOpListTagsForResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListTagsForResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListTagsForResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListTagsForResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpTagResource struct { +} + +func (*validateOpTagResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpTagResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*TagResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpTagResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUntagResource struct { +} + +func (*validateOpUntagResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUntagResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UntagResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUntagResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateControlPanel struct { } @@ -430,6 +490,18 @@ func addOpListSafetyRulesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListSafetyRules{}, middleware.After) } +func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) +} + +func addOpTagResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpTagResource{}, middleware.After) +} + +func addOpUntagResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUntagResource{}, middleware.After) +} + func addOpUpdateControlPanelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateControlPanel{}, middleware.After) } @@ -790,6 +862,57 @@ func validateOpListSafetyRulesInput(v *ListSafetyRulesInput) error { } } +func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTagsForResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpTagResourceInput(v *TagResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TagResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if v.Tags == nil { + invalidParams.Add(smithy.NewErrParamRequired("Tags")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUntagResourceInput(v *UntagResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UntagResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if v.TagKeys == nil { + invalidParams.Add(smithy.NewErrParamRequired("TagKeys")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateControlPanelInput(v *UpdateControlPanelInput) error { if v == nil { return nil diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index 752a6eb5851..46c27d76c53 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -29281,6 +29281,15 @@ func awsAwsjson11_deserializeDocumentAutoMLChannel(v **types.AutoMLChannel, valu sv.CompressionType = types.CompressionType(jtv) } + case "ContentType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContentType to be of type string, got %T instead", value) + } + sv.ContentType = ptr.String(jtv) + } + case "DataSource": if err := awsAwsjson11_deserializeDocumentAutoMLDataSource(&sv.DataSource, value); err != nil { return err @@ -47865,6 +47874,19 @@ func awsAwsjson11_deserializeDocumentPipelineExecutionStep(v **types.PipelineExe for key, value := range shape { switch key { + case "AttemptCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected IntegerValue to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AttemptCount = int32(i64) + } + case "CacheHitResult": if err := awsAwsjson11_deserializeDocumentCacheHitResult(&sv.CacheHitResult, value); err != nil { return err diff --git a/service/sagemaker/serializers.go b/service/sagemaker/serializers.go index 27871f8c2b4..e374e226f6f 100644 --- a/service/sagemaker/serializers.go +++ b/service/sagemaker/serializers.go @@ -14264,6 +14264,11 @@ func awsAwsjson11_serializeDocumentAutoMLChannel(v *types.AutoMLChannel, value s ok.String(string(v.CompressionType)) } + if v.ContentType != nil { + ok := object.Key("ContentType") + ok.String(*v.ContentType) + } + if v.DataSource != nil { ok := object.Key("DataSource") if err := awsAwsjson11_serializeDocumentAutoMLDataSource(v.DataSource, ok); err != nil { diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index 7c833930812..e3b44be6ff2 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -3851,6 +3851,7 @@ const ( TargetDeviceQcs605 TargetDevice = "qcs605" TargetDeviceQcs603 TargetDevice = "qcs603" TargetDeviceSitaraAm57x TargetDevice = "sitara_am57x" + TargetDeviceAmbaCv2 TargetDevice = "amba_cv2" TargetDeviceAmbaCv22 TargetDevice = "amba_cv22" TargetDeviceAmbaCv25 TargetDevice = "amba_cv25" TargetDeviceX86Win32 TargetDevice = "x86_win32" @@ -3889,6 +3890,7 @@ func (TargetDevice) Values() []TargetDevice { "qcs605", "qcs603", "sitara_am57x", + "amba_cv2", "amba_cv22", "amba_cv25", "x86_win32", diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index e37816eb980..91188b3b5a8 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -1573,6 +1573,11 @@ type AutoMLChannel struct { // You can use Gzip or None. The default value is None. CompressionType CompressionType + // The content type of the data from the input source. You can use + // text/csv;header=present or x-application/vnd.amazon+parquet. The default value + // is text/csv;header=present. + ContentType *string + noSmithyDocumentSerde } @@ -9086,6 +9091,7 @@ type PipelineExecution struct { // An execution of a step in a pipeline. type PipelineExecutionStep struct { + AttemptCount int32 // If this pipeline execution step was cached, details on the cache hit. CacheHitResult *CacheHitResult diff --git a/service/securityhub/api_op_BatchImportFindings.go b/service/securityhub/api_op_BatchImportFindings.go index 0f2538bebcf..bb65d5b7b8b 100644 --- a/service/securityhub/api_op_BatchImportFindings.go +++ b/service/securityhub/api_op_BatchImportFindings.go @@ -11,9 +11,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Imports security findings generated from an integrated product into Security -// Hub. This action is requested by the integrated product to import its findings -// into Security Hub. The maximum allowed size for a finding is 240 Kb. An error is +// Imports security findings generated by a finding provider into Security Hub. +// This action is requested by the finding provider to import its findings into +// Security Hub. BatchImportFindings must be called by one of the following: +// +// * The +// account that is associated with the findings. The identifier of the associated +// account is the value of the AwsAccountId attribute for the finding. +// +// * An +// account that is allow-listed for an official Security Hub partner +// integration. +// +// The maximum allowed size for a finding is 240 Kb. An error is // returned for any finding larger than 240 Kb. After a finding is created, // BatchImportFindings cannot be used to update the following finding fields and // objects, which Security Hub customers use to manage their investigation diff --git a/service/securityhub/deserializers.go b/service/securityhub/deserializers.go index 90276a617fc..ec9195bb3d9 100644 --- a/service/securityhub/deserializers.go +++ b/service/securityhub/deserializers.go @@ -9948,6 +9948,80 @@ func awsRestjson1_deserializeDocumentAwsApiGatewayV2StageDetails(v **types.AwsAp return nil } +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesList(v *[]types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, 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.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails + if *v == nil { + cv = []types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(v **types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails + if *v == nil { + sv = &types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **types.AwsAutoScalingAutoScalingGroupDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9970,6 +10044,11 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **t for key, value := range shape { switch key { + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesList(&sv.AvailabilityZones, value); err != nil { + return err + } + case "CreatedTime": if value != nil { jtv, ok := value.(string) @@ -10015,6 +10094,11 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **t return err } + case "MixedInstancesPolicy": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails(&sv.MixedInstancesPolicy, value); err != nil { + return err + } + default: _, _ = key, value @@ -10024,7 +10108,7 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **t return nil } -func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails(v **types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10037,45 +10121,23 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + var sv *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails if *v == nil { - sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} + sv = &types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DeviceName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DeviceName = ptr.String(jtv) - } - - case "Ebs": - if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(&sv.Ebs, value); err != nil { + case "InstancesDistribution": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails(&sv.InstancesDistribution, value); err != nil { return err } - case "NoDevice": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.NoDevice = jtv - } - - case "VirtualName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VirtualName = ptr.String(jtv) + case "LaunchTemplate": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails(&sv.LaunchTemplate, value); err != nil { + return err } default: @@ -10087,7 +10149,7 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic return nil } -func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails(v **types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10100,34 +10162,38 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails + var sv *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails if *v == nil { - sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails{} + sv = &types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DeleteOnTermination": + case "OnDemandAllocationStrategy": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeleteOnTermination = jtv + sv.OnDemandAllocationStrategy = ptr.String(jtv) } - case "Encrypted": + case "OnDemandBaseCapacity": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Encrypted = jtv + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.OnDemandBaseCapacity = int32(i64) } - case "Iops": + case "OnDemandPercentageAboveBaseCapacity": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -10137,19 +10203,19 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic if err != nil { return err } - sv.Iops = int32(i64) + sv.OnDemandPercentageAboveBaseCapacity = int32(i64) } - case "SnapshotId": + case "SpotAllocationStrategy": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnapshotId = ptr.String(jtv) + sv.SpotAllocationStrategy = ptr.String(jtv) } - case "VolumeSize": + case "SpotInstancePools": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -10159,16 +10225,16 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic if err != nil { return err } - sv.VolumeSize = int32(i64) + sv.SpotInstancePools = int32(i64) } - case "VolumeType": + case "SpotMaxPrice": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VolumeType = ptr.String(jtv) + sv.SpotMaxPrice = ptr.String(jtv) } default: @@ -10180,7 +10246,7 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic return nil } -func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v *[]types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails(v **types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10188,33 +10254,40 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDevic return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + var sv *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails if *v == nil { - cv = []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} + sv = &types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "LaunchTemplateSpecification": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification(&sv.LaunchTemplateSpecification, value); err != nil { + return err + } + + case "Overrides": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList(&sv.Overrides, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v **types.AwsAutoScalingLaunchConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification(v **types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10227,159 +10300,279 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsAutoScalingLaunchConfigurationDetails + var sv *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification if *v == nil { - sv = &types.AwsAutoScalingLaunchConfigurationDetails{} + sv = &types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification{} } else { sv = *v } for key, value := range shape { switch key { - case "AssociatePublicIpAddress": + case "LaunchTemplateId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AssociatePublicIpAddress = jtv + sv.LaunchTemplateId = ptr.String(jtv) } - case "BlockDeviceMappings": - if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(&sv.BlockDeviceMappings, value); err != nil { - return err - } - - case "ClassicLinkVpcId": + case "LaunchTemplateName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ClassicLinkVpcId = ptr.String(jtv) - } - - case "ClassicLinkVpcSecurityGroups": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ClassicLinkVpcSecurityGroups, value); err != nil { - return err + sv.LaunchTemplateName = ptr.String(jtv) } - case "CreatedTime": + case "Version": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreatedTime = ptr.String(jtv) + sv.Version = ptr.String(jtv) } - case "EbsOptimized": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.EbsOptimized = jtv - } + default: + _, _ = key, value - case "IamInstanceProfile": + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList(v *[]types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, 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.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails + if *v == nil { + cv = []types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails(v **types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails + if *v == nil { + sv = &types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IamInstanceProfile = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } - case "ImageId": + case "WeightedCapacity": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ImageId = ptr.String(jtv) + sv.WeightedCapacity = ptr.String(jtv) } - case "InstanceMonitoring": - if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(&sv.InstanceMonitoring, value); err != nil { - return err - } + default: + _, _ = key, value - case "InstanceType": + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + if *v == nil { + sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeviceName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceType = ptr.String(jtv) + sv.DeviceName = ptr.String(jtv) } - case "KernelId": + case "Ebs": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(&sv.Ebs, value); err != nil { + return err + } + + case "NoDevice": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.KernelId = ptr.String(jtv) + sv.NoDevice = jtv } - case "KeyName": + case "VirtualName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KeyName = ptr.String(jtv) + sv.VirtualName = ptr.String(jtv) } - case "LaunchConfigurationName": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails + if *v == nil { + sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeleteOnTermination": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.LaunchConfigurationName = ptr.String(jtv) + sv.DeleteOnTermination = jtv } - case "PlacementTenancy": + case "Encrypted": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PlacementTenancy = ptr.String(jtv) + sv.Encrypted = jtv } - case "RamdiskId": + case "Iops": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.RamdiskId = ptr.String(jtv) - } - - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Iops = int32(i64) } - case "SpotPrice": + case "SnapshotId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SpotPrice = ptr.String(jtv) + sv.SnapshotId = ptr.String(jtv) } - case "UserData": + case "VolumeSize": + 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.VolumeSize = int32(i64) + } + + case "VolumeType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserData = ptr.String(jtv) + sv.VolumeType = ptr.String(jtv) } default: @@ -10391,7 +10584,7 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v return nil } -func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v **types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v *[]types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10399,39 +10592,33 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMo 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.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails + var cv []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails if *v == nil { - sv = &types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails{} + cv = []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v **types.AwsCertificateManagerCertificateDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v **types.AwsAutoScalingLaunchConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10444,192 +10631,164 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateDetails + var sv *types.AwsAutoScalingLaunchConfigurationDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateDetails{} + sv = &types.AwsAutoScalingLaunchConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CertificateAuthorityArn": + case "AssociatePublicIpAddress": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CertificateAuthorityArn = ptr.String(jtv) + sv.AssociatePublicIpAddress = jtv } - case "CreatedAt": + case "BlockDeviceMappings": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(&sv.BlockDeviceMappings, value); err != nil { + return err + } + + case "ClassicLinkVpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreatedAt = ptr.String(jtv) + sv.ClassicLinkVpcId = ptr.String(jtv) } - case "DomainName": + case "ClassicLinkVpcSecurityGroups": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ClassicLinkVpcSecurityGroups, value); err != nil { + return err + } + + case "CreatedTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) - } - - case "DomainValidationOptions": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { - return err + sv.CreatedTime = ptr.String(jtv) } - case "ExtendedKeyUsages": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(&sv.ExtendedKeyUsages, value); err != nil { - return err + case "EbsOptimized": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EbsOptimized = jtv } - case "FailureReason": + case "IamInstanceProfile": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.FailureReason = ptr.String(jtv) + sv.IamInstanceProfile = ptr.String(jtv) } - case "ImportedAt": + case "ImageId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ImportedAt = ptr.String(jtv) + sv.ImageId = ptr.String(jtv) } - case "InUseBy": - if err := awsRestjson1_deserializeDocumentStringList(&sv.InUseBy, value); err != nil { + case "InstanceMonitoring": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(&sv.InstanceMonitoring, value); err != nil { return err } - case "IssuedAt": + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IssuedAt = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } - case "Issuer": + case "KernelId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Issuer = ptr.String(jtv) + sv.KernelId = ptr.String(jtv) } - case "KeyAlgorithm": + case "KeyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KeyAlgorithm = ptr.String(jtv) + sv.KeyName = ptr.String(jtv) } - case "KeyUsages": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(&sv.KeyUsages, value); err != nil { + case "LaunchConfigurationName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LaunchConfigurationName = ptr.String(jtv) + } + + case "MetadataOptions": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationMetadataOptions(&sv.MetadataOptions, value); err != nil { return err } - case "NotAfter": + case "PlacementTenancy": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NotAfter = ptr.String(jtv) - } - - case "NotBefore": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.NotBefore = ptr.String(jtv) - } - - case "Options": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(&sv.Options, value); err != nil { - return err + sv.PlacementTenancy = ptr.String(jtv) } - case "RenewalEligibility": + case "RamdiskId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RenewalEligibility = ptr.String(jtv) + sv.RamdiskId = ptr.String(jtv) } - case "RenewalSummary": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(&sv.RenewalSummary, value); err != nil { + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil { return err } - case "Serial": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Serial = ptr.String(jtv) - } - - case "SignatureAlgorithm": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SignatureAlgorithm = ptr.String(jtv) - } - - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Status = ptr.String(jtv) - } - - case "Subject": + case "SpotPrice": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Subject = ptr.String(jtv) - } - - case "SubjectAlternativeNames": - if err := awsRestjson1_deserializeDocumentStringList(&sv.SubjectAlternativeNames, value); err != nil { - return err + sv.SpotPrice = ptr.String(jtv) } - case "Type": + case "UserData": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.UserData = ptr.String(jtv) } default: @@ -10641,7 +10800,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v * return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v **types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v **types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10654,59 +10813,22 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValid return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateDomainValidationOption + var sv *types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateDomainValidationOption{} + sv = &types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) - } - - case "ResourceRecord": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(&sv.ResourceRecord, value); err != nil { - return err - } - - case "ValidationDomain": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ValidationDomain = ptr.String(jtv) - } - - case "ValidationEmails": - if err := awsRestjson1_deserializeDocumentStringList(&sv.ValidationEmails, value); err != nil { - return err - } - - case "ValidationMethod": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ValidationMethod = ptr.String(jtv) - } - - case "ValidationStatus": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ValidationStatus = ptr.String(jtv) + sv.Enabled = jtv } default: @@ -10718,41 +10840,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValid return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v *[]types.AwsCertificateManagerCertificateDomainValidationOption, 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.AwsCertificateManagerCertificateDomainValidationOption - if *v == nil { - cv = []types.AwsCertificateManagerCertificateDomainValidationOption{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCertificateManagerCertificateDomainValidationOption - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v **types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationMetadataOptions(v **types.AwsAutoScalingLaunchConfigurationMetadataOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10765,31 +10853,44 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKey return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateExtendedKeyUsage + var sv *types.AwsAutoScalingLaunchConfigurationMetadataOptions if *v == nil { - sv = &types.AwsCertificateManagerCertificateExtendedKeyUsage{} + sv = &types.AwsAutoScalingLaunchConfigurationMetadataOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "HttpEndpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.HttpEndpoint = ptr.String(jtv) } - case "OId": + case "HttpPutResponseHopLimit": + 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.HttpPutResponseHopLimit = int32(i64) + } + + case "HttpTokens": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OId = ptr.String(jtv) + sv.HttpTokens = ptr.String(jtv) } default: @@ -10801,41 +10902,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKey return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v *[]types.AwsCertificateManagerCertificateExtendedKeyUsage, 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.AwsCertificateManagerCertificateExtendedKeyUsage - if *v == nil { - cv = []types.AwsCertificateManagerCertificateExtendedKeyUsage{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCertificateManagerCertificateExtendedKeyUsage - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v **types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v **types.AwsCertificateManagerCertificateDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10848,159 +10915,192 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateKeyUsage + var sv *types.AwsCertificateManagerCertificateDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateKeyUsage{} + sv = &types.AwsCertificateManagerCertificateDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "CertificateAuthorityArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.CertificateAuthorityArn = ptr.String(jtv) } - default: - _, _ = key, value + case "CreatedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreatedAt = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(v *[]types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "DomainValidationOptions": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { + return err + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "ExtendedKeyUsages": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(&sv.ExtendedKeyUsages, value); err != nil { + return err + } - var cv []types.AwsCertificateManagerCertificateKeyUsage - if *v == nil { - cv = []types.AwsCertificateManagerCertificateKeyUsage{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCertificateManagerCertificateKeyUsage - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } - } - *v = cv - return nil -} + case "ImportedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ImportedAt = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(v **types.AwsCertificateManagerCertificateOptions, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "InUseBy": + if err := awsRestjson1_deserializeDocumentStringList(&sv.InUseBy, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "IssuedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IssuedAt = ptr.String(jtv) + } - var sv *types.AwsCertificateManagerCertificateOptions - if *v == nil { - sv = &types.AwsCertificateManagerCertificateOptions{} - } else { - sv = *v - } + case "Issuer": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Issuer = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "CertificateTransparencyLoggingPreference": + case "KeyAlgorithm": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CertificateTransparencyLoggingPreference = ptr.String(jtv) + sv.KeyAlgorithm = ptr.String(jtv) } - default: - _, _ = key, value + case "KeyUsages": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(&sv.KeyUsages, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "NotAfter": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NotAfter = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(v **types.AwsCertificateManagerCertificateRenewalSummary, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "NotBefore": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NotBefore = ptr.String(jtv) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Options": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(&sv.Options, value); err != nil { + return err + } - var sv *types.AwsCertificateManagerCertificateRenewalSummary - if *v == nil { - sv = &types.AwsCertificateManagerCertificateRenewalSummary{} - } else { - sv = *v - } + case "RenewalEligibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RenewalEligibility = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "DomainValidationOptions": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { + case "RenewalSummary": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(&sv.RenewalSummary, value); err != nil { return err } - case "RenewalStatus": + case "Serial": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RenewalStatus = ptr.String(jtv) + sv.Serial = ptr.String(jtv) } - case "RenewalStatusReason": + case "SignatureAlgorithm": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RenewalStatusReason = ptr.String(jtv) + sv.SignatureAlgorithm = ptr.String(jtv) } - case "UpdatedAt": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UpdatedAt = ptr.String(jtv) + sv.Status = ptr.String(jtv) + } + + case "Subject": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Subject = ptr.String(jtv) + } + + case "SubjectAlternativeNames": + if err := awsRestjson1_deserializeDocumentStringList(&sv.SubjectAlternativeNames, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -11012,7 +11112,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSumm return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(v **types.AwsCertificateManagerCertificateResourceRecord, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v **types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11025,40 +11125,59 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRec return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateResourceRecord + var sv *types.AwsCertificateManagerCertificateDomainValidationOption if *v == nil { - sv = &types.AwsCertificateManagerCertificateResourceRecord{} + sv = &types.AwsCertificateManagerCertificateDomainValidationOption{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "Type": + case "ResourceRecord": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(&sv.ResourceRecord, value); err != nil { + return err + } + + case "ValidationDomain": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.ValidationDomain = ptr.String(jtv) } - case "Value": + case "ValidationEmails": + if err := awsRestjson1_deserializeDocumentStringList(&sv.ValidationEmails, value); err != nil { + return err + } + + case "ValidationMethod": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.ValidationMethod = ptr.String(jtv) + } + + case "ValidationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ValidationStatus = ptr.String(jtv) } default: @@ -11070,7 +11189,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRec return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v **types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v *[]types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11078,39 +11197,33 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v ** 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.AwsCloudFrontDistributionCacheBehavior + var cv []types.AwsCertificateManagerCertificateDomainValidationOption if *v == nil { - sv = &types.AwsCloudFrontDistributionCacheBehavior{} + cv = []types.AwsCertificateManagerCertificateDomainValidationOption{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "ViewerProtocolPolicy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ViewerProtocolPolicy = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsCertificateManagerCertificateDomainValidationOption + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v **types.AwsCloudFrontDistributionCacheBehaviors, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v **types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11123,22 +11236,35 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionCacheBehaviors + var sv *types.AwsCertificateManagerCertificateExtendedKeyUsage if *v == nil { - sv = &types.AwsCloudFrontDistributionCacheBehaviors{} + sv = &types.AwsCertificateManagerCertificateExtendedKeyUsage{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(&sv.Items, value); err != nil { - return err - } - - default: - _, _ = key, value + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OId = ptr.String(jtv) + } + + default: + _, _ = key, value } } @@ -11146,7 +11272,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v * return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v *[]types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v *[]types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11159,17 +11285,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItem return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCloudFrontDistributionCacheBehavior + var cv []types.AwsCertificateManagerCertificateExtendedKeyUsage if *v == nil { - cv = []types.AwsCloudFrontDistributionCacheBehavior{} + cv = []types.AwsCertificateManagerCertificateExtendedKeyUsage{} } else { cv = *v } for _, value := range shape { - var col types.AwsCloudFrontDistributionCacheBehavior + var col types.AwsCertificateManagerCertificateExtendedKeyUsage destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&destAddr, value); err != nil { return err } col = *destAddr @@ -11180,7 +11306,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItem return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v **types.AwsCloudFrontDistributionDefaultCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v **types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11193,22 +11319,22 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionDefaultCacheBehavior + var sv *types.AwsCertificateManagerCertificateKeyUsage if *v == nil { - sv = &types.AwsCloudFrontDistributionDefaultCacheBehavior{} + sv = &types.AwsCertificateManagerCertificateKeyUsage{} } else { sv = *v } for key, value := range shape { switch key { - case "ViewerProtocolPolicy": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ViewerProtocolPolicy = ptr.String(jtv) + sv.Name = ptr.String(jtv) } default: @@ -11220,7 +11346,41 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavi return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types.AwsCloudFrontDistributionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(v *[]types.AwsCertificateManagerCertificateKeyUsage, 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.AwsCertificateManagerCertificateKeyUsage + if *v == nil { + cv = []types.AwsCertificateManagerCertificateKeyUsage{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCertificateManagerCertificateKeyUsage + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(v **types.AwsCertificateManagerCertificateOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11233,97 +11393,85 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionDetails + var sv *types.AwsCertificateManagerCertificateOptions if *v == nil { - sv = &types.AwsCloudFrontDistributionDetails{} + sv = &types.AwsCertificateManagerCertificateOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "CacheBehaviors": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(&sv.CacheBehaviors, value); err != nil { - return err - } - - case "DefaultCacheBehavior": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(&sv.DefaultCacheBehavior, value); err != nil { - return err - } - - case "DefaultRootObject": + case "CertificateTransparencyLoggingPreference": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DefaultRootObject = ptr.String(jtv) + sv.CertificateTransparencyLoggingPreference = ptr.String(jtv) } - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) - } + default: + _, _ = key, value - case "ETag": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ETag = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "LastModifiedTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.LastModifiedTime = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(v **types.AwsCertificateManagerCertificateRenewalSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "Logging": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(&sv.Logging, value); err != nil { - return err - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "OriginGroups": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(&sv.OriginGroups, value); err != nil { - return err - } + var sv *types.AwsCertificateManagerCertificateRenewalSummary + if *v == nil { + sv = &types.AwsCertificateManagerCertificateRenewalSummary{} + } else { + sv = *v + } - case "Origins": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(&sv.Origins, value); err != nil { + for key, value := range shape { + switch key { + case "DomainValidationOptions": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { return err } - case "Status": + case "RenewalStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.RenewalStatus = ptr.String(jtv) } - case "ViewerCertificate": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(&sv.ViewerCertificate, value); err != nil { - return err + case "RenewalStatusReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RenewalStatusReason = ptr.String(jtv) } - case "WebAclId": + case "UpdatedAt": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.WebAclId = ptr.String(jtv) + sv.UpdatedAt = ptr.String(jtv) } default: @@ -11335,7 +11483,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types.AwsCloudFrontDistributionLogging, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(v **types.AwsCertificateManagerCertificateResourceRecord, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11348,49 +11496,40 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionLogging + var sv *types.AwsCertificateManagerCertificateResourceRecord if *v == nil { - sv = &types.AwsCloudFrontDistributionLogging{} + sv = &types.AwsCertificateManagerCertificateResourceRecord{} } else { sv = *v } for key, value := range shape { switch key { - case "Bucket": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Bucket = ptr.String(jtv) - } - - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv + sv.Name = ptr.String(jtv) } - case "IncludeCookies": + case "Type": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IncludeCookies = jtv + sv.Type = ptr.String(jtv) } - case "Prefix": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Prefix = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -11402,7 +11541,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v **types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11415,18 +11554,22 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroup + var sv *types.AwsCloudFrontDistributionCacheBehavior if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroup{} + sv = &types.AwsCloudFrontDistributionCacheBehavior{} } else { sv = *v } for key, value := range shape { switch key { - case "FailoverCriteria": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(&sv.FailoverCriteria, value); err != nil { - return err + case "ViewerProtocolPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ViewerProtocolPolicy = ptr.String(jtv) } default: @@ -11438,7 +11581,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v **types.AwsCloudFrontDistributionOriginGroupFailover, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v **types.AwsCloudFrontDistributionCacheBehaviors, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11451,17 +11594,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroupFailover + var sv *types.AwsCloudFrontDistributionCacheBehaviors if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroupFailover{} + sv = &types.AwsCloudFrontDistributionCacheBehaviors{} } else { sv = *v } for key, value := range shape { switch key { - case "StatusCodes": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(&sv.StatusCodes, value); err != nil { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(&sv.Items, value); err != nil { return err } @@ -11474,7 +11617,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v **types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v *[]types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11482,48 +11625,33 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove 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.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes + var cv []types.AwsCloudFrontDistributionCacheBehavior if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes{} + cv = []types.AwsCloudFrontDistributionCacheBehavior{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(&sv.Items, value); err != nil { - return err - } + for _, value := range shape { + var col types.AwsCloudFrontDistributionCacheBehavior + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - case "Quantity": - 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.Quantity = int32(i64) - } - - default: - _, _ = key, value - - } } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v *[]int32, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v **types.AwsCloudFrontDistributionDefaultCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11531,39 +11659,39 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []int32 + var sv *types.AwsCloudFrontDistributionDefaultCacheBehavior if *v == nil { - cv = []int32{} + sv = &types.AwsCloudFrontDistributionDefaultCacheBehavior{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col int32 - 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 + for key, value := range shape { + switch key { + case "ViewerProtocolPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ViewerProtocolPolicy = ptr.String(jtv) } - col = int32(i64) - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **types.AwsCloudFrontDistributionOriginGroups, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types.AwsCloudFrontDistributionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11576,64 +11704,109 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroups + var sv *types.AwsCloudFrontDistributionDetails if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroups{} + sv = &types.AwsCloudFrontDistributionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(&sv.Items, value); err != nil { + case "CacheBehaviors": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(&sv.CacheBehaviors, value); err != nil { return err } - default: - _, _ = key, value + case "DefaultCacheBehavior": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(&sv.DefaultCacheBehavior, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "DefaultRootObject": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DefaultRootObject = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v *[]types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "ETag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ETag = ptr.String(jtv) + } - var cv []types.AwsCloudFrontDistributionOriginGroup - if *v == nil { - cv = []types.AwsCloudFrontDistributionOriginGroup{} - } else { - cv = *v - } + case "LastModifiedTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LastModifiedTime = ptr.String(jtv) + } - for _, value := range shape { - var col types.AwsCloudFrontDistributionOriginGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "Logging": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(&sv.Logging, value); err != nil { + return err + } + + case "OriginGroups": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(&sv.OriginGroups, value); err != nil { + return err + } + + case "Origins": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(&sv.Origins, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "ViewerCertificate": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(&sv.ViewerCertificate, value); err != nil { + return err + } + + case "WebAclId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.WebAclId = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **types.AwsCloudFrontDistributionOriginItem, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types.AwsCloudFrontDistributionLogging, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11646,45 +11819,49 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginItem + var sv *types.AwsCloudFrontDistributionLogging if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginItem{} + sv = &types.AwsCloudFrontDistributionLogging{} } else { sv = *v } for key, value := range shape { switch key { - case "DomainName": + case "Bucket": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) + sv.Bucket = ptr.String(jtv) } - case "Id": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.Enabled = jtv } - case "OriginPath": + case "IncludeCookies": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.OriginPath = ptr.String(jtv) + sv.IncludeCookies = jtv } - case "S3OriginConfig": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(&sv.S3OriginConfig, value); err != nil { - return err + case "Prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) } default: @@ -11696,7 +11873,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v *[]types.AwsCloudFrontDistributionOriginItem, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11704,33 +11881,35 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v * return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCloudFrontDistributionOriginItem + var sv *types.AwsCloudFrontDistributionOriginGroup if *v == nil { - cv = []types.AwsCloudFrontDistributionOriginItem{} + sv = &types.AwsCloudFrontDistributionOriginGroup{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsCloudFrontDistributionOriginItem - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "FailoverCriteria": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(&sv.FailoverCriteria, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types.AwsCloudFrontDistributionOrigins, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v **types.AwsCloudFrontDistributionOriginGroupFailover, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11743,17 +11922,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOrigins + var sv *types.AwsCloudFrontDistributionOriginGroupFailover if *v == nil { - sv = &types.AwsCloudFrontDistributionOrigins{} + sv = &types.AwsCloudFrontDistributionOriginGroupFailover{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(&sv.Items, value); err != nil { + case "StatusCodes": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(&sv.StatusCodes, value); err != nil { return err } @@ -11766,7 +11945,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v **types.AwsCloudFrontDistributionOriginS3OriginConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v **types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11779,22 +11958,31 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginS3OriginConfig + var sv *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginS3OriginConfig{} + sv = &types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes{} } else { sv = *v } for key, value := range shape { switch key { - case "OriginAccessIdentity": + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(&sv.Items, value); err != nil { + return err + } + + case "Quantity": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.OriginAccessIdentity = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Quantity = int32(i64) } default: @@ -11806,7 +11994,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConf return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(v **types.AwsCloudFrontDistributionViewerCertificate, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v *[]int32, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11814,81 +12002,63 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate( 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.AwsCloudFrontDistributionViewerCertificate + var cv []int32 if *v == nil { - sv = &types.AwsCloudFrontDistributionViewerCertificate{} + cv = []int32{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "AcmCertificateArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AcmCertificateArn = ptr.String(jtv) + for _, value := range shape { + var col int32 + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - - case "Certificate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Certificate = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err } + col = int32(i64) + } + cv = append(cv, col) - case "CertificateSource": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CertificateSource = ptr.String(jtv) - } + } + *v = cv + return nil +} - case "CloudFrontDefaultCertificate": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.CloudFrontDefaultCertificate = jtv - } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **types.AwsCloudFrontDistributionOriginGroups, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "IamCertificateId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.IamCertificateId = ptr.String(jtv) - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "MinimumProtocolVersion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.MinimumProtocolVersion = ptr.String(jtv) - } + var sv *types.AwsCloudFrontDistributionOriginGroups + if *v == nil { + sv = &types.AwsCloudFrontDistributionOriginGroups{} + } else { + sv = *v + } - case "SslSupportMethod": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SslSupportMethod = ptr.String(jtv) + for key, value := range shape { + switch key { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(&sv.Items, value); err != nil { + return err } default: @@ -11900,7 +12070,41 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate( return nil } -func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v *[]types.AwsCloudFrontDistributionOriginGroup, 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.AwsCloudFrontDistributionOriginGroup + if *v == nil { + cv = []types.AwsCloudFrontDistributionOriginGroup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCloudFrontDistributionOriginGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **types.AwsCloudFrontDistributionOriginItem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11913,148 +12117,115 @@ func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsClou return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudTrailTrailDetails + var sv *types.AwsCloudFrontDistributionOriginItem if *v == nil { - sv = &types.AwsCloudTrailTrailDetails{} + sv = &types.AwsCloudFrontDistributionOriginItem{} } else { sv = *v } for key, value := range shape { switch key { - case "CloudWatchLogsLogGroupArn": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "CloudWatchLogsRoleArn": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CloudWatchLogsRoleArn = ptr.String(jtv) - } - - case "HasCustomEventSelectors": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.HasCustomEventSelectors = jtv + sv.Id = ptr.String(jtv) } - case "HomeRegion": + case "OriginPath": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HomeRegion = ptr.String(jtv) - } - - case "IncludeGlobalServiceEvents": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludeGlobalServiceEvents = jtv + sv.OriginPath = ptr.String(jtv) } - case "IsMultiRegionTrail": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IsMultiRegionTrail = jtv + case "S3OriginConfig": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(&sv.S3OriginConfig, value); err != nil { + return err } - case "IsOrganizationTrail": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IsOrganizationTrail = jtv - } + default: + _, _ = key, value - case "KmsKeyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KmsKeyId = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "LogFileValidationEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.LogFileValidationEnabled = jtv - } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v *[]types.AwsCloudFrontDistributionOriginItem, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "S3BucketName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3BucketName = ptr.String(jtv) - } + var cv []types.AwsCloudFrontDistributionOriginItem + if *v == nil { + cv = []types.AwsCloudFrontDistributionOriginItem{} + } else { + cv = *v + } - case "S3KeyPrefix": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3KeyPrefix = ptr.String(jtv) - } + for _, value := range shape { + var col types.AwsCloudFrontDistributionOriginItem + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - case "SnsTopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnsTopicArn = ptr.String(jtv) - } + } + *v = cv + return nil +} - case "SnsTopicName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnsTopicName = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types.AwsCloudFrontDistributionOrigins, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "TrailArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.TrailArn = ptr.String(jtv) + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCloudFrontDistributionOrigins + if *v == nil { + sv = &types.AwsCloudFrontDistributionOrigins{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(&sv.Items, value); err != nil { + return err } default: @@ -12066,7 +12237,7 @@ func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsClou return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(v **types.AwsCodeBuildProjectArtifactsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v **types.AwsCloudFrontDistributionOriginS3OriginConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12079,94 +12250,116 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectArtifactsDetails + var sv *types.AwsCloudFrontDistributionOriginS3OriginConfig if *v == nil { - sv = &types.AwsCodeBuildProjectArtifactsDetails{} + sv = &types.AwsCloudFrontDistributionOriginS3OriginConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "ArtifactIdentifier": + case "OriginAccessIdentity": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ArtifactIdentifier = ptr.String(jtv) + sv.OriginAccessIdentity = ptr.String(jtv) } - case "EncryptionDisabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.EncryptionDisabled = jtv - } + default: + _, _ = key, value - case "Location": + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(v **types.AwsCloudFrontDistributionViewerCertificate, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCloudFrontDistributionViewerCertificate + if *v == nil { + sv = &types.AwsCloudFrontDistributionViewerCertificate{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AcmCertificateArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Location = ptr.String(jtv) + sv.AcmCertificateArn = ptr.String(jtv) } - case "Name": + case "Certificate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Certificate = ptr.String(jtv) } - case "NamespaceType": + case "CertificateSource": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NamespaceType = ptr.String(jtv) + sv.CertificateSource = ptr.String(jtv) } - case "OverrideArtifactName": + case "CloudFrontDefaultCertificate": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.OverrideArtifactName = jtv + sv.CloudFrontDefaultCertificate = jtv } - case "Packaging": + case "IamCertificateId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Packaging = ptr.String(jtv) + sv.IamCertificateId = ptr.String(jtv) } - case "Path": + case "MinimumProtocolVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.MinimumProtocolVersion = ptr.String(jtv) } - case "Type": + case "SslSupportMethod": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.SslSupportMethod = ptr.String(jtv) } default: @@ -12178,41 +12371,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(v *[]types.AwsCodeBuildProjectArtifactsDetails, 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.AwsCodeBuildProjectArtifactsDetails - if *v == nil { - cv = []types.AwsCodeBuildProjectArtifactsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCodeBuildProjectArtifactsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12225,142 +12384,148 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCod return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectDetails + var sv *types.AwsCloudTrailTrailDetails if *v == nil { - sv = &types.AwsCodeBuildProjectDetails{} + sv = &types.AwsCloudTrailTrailDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Artifacts": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(&sv.Artifacts, value); err != nil { - return err - } - - case "EncryptionKey": + case "CloudWatchLogsLogGroupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EncryptionKey = ptr.String(jtv) + sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) } - case "Environment": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(&sv.Environment, value); err != nil { - return err + case "CloudWatchLogsRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CloudWatchLogsRoleArn = ptr.String(jtv) } - case "LogsConfig": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(&sv.LogsConfig, value); err != nil { - return err + case "HasCustomEventSelectors": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.HasCustomEventSelectors = jtv } - case "Name": + case "HomeRegion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.HomeRegion = ptr.String(jtv) } - case "ServiceRole": + case "IncludeGlobalServiceEvents": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ServiceRole = ptr.String(jtv) + sv.IncludeGlobalServiceEvents = jtv } - case "Source": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(&sv.Source, value); err != nil { - return err + case "IsMultiRegionTrail": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsMultiRegionTrail = jtv } - case "VpcConfig": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(&sv.VpcConfig, value); err != nil { - return err + case "IsOrganizationTrail": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsOrganizationTrail = jtv } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.AwsCodeBuildProjectEnvironment, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } - var sv *types.AwsCodeBuildProjectEnvironment - if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironment{} - } else { - sv = *v - } + case "LogFileValidationEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.LogFileValidationEnabled = jtv + } - for key, value := range shape { - switch key { - case "Certificate": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Certificate = ptr.String(jtv) + sv.Name = ptr.String(jtv) } - case "EnvironmentVariables": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(&sv.EnvironmentVariables, value); err != nil { - return err + case "S3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) } - case "ImagePullCredentialsType": + case "S3KeyPrefix": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ImagePullCredentialsType = ptr.String(jtv) + sv.S3KeyPrefix = ptr.String(jtv) } - case "PrivilegedMode": + case "SnsTopicArn": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrivilegedMode = jtv + sv.SnsTopicArn = ptr.String(jtv) } - case "RegistryCredential": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil { - return err + case "SnsTopicName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SnsTopicName = ptr.String(jtv) } - case "Type": + case "TrailArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.TrailArn = ptr.String(jtv) } default: @@ -12372,7 +12537,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(v **types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(v **types.AwsCodeBuildProjectArtifactsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12385,15 +12550,42 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + var sv *types.AwsCodeBuildProjectArtifactsDetails if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} + sv = &types.AwsCodeBuildProjectArtifactsDetails{} } else { sv = *v } for key, value := range shape { switch key { + case "ArtifactIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ArtifactIdentifier = ptr.String(jtv) + } + + case "EncryptionDisabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EncryptionDisabled = jtv + } + + case "Location": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Location = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -12403,22 +12595,49 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVa sv.Name = ptr.String(jtv) } - case "Type": + case "NamespaceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.NamespaceType = ptr.String(jtv) } - case "Value": + case "OverrideArtifactName": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.OverrideArtifactName = jtv + } + + case "Packaging": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Packaging = ptr.String(jtv) + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -12430,7 +12649,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVa return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(v *[]types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(v *[]types.AwsCodeBuildProjectArtifactsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12443,17 +12662,17 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVa return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + var cv []types.AwsCodeBuildProjectArtifactsDetails if *v == nil { - cv = []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} + cv = []types.AwsCodeBuildProjectArtifactsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + var col types.AwsCodeBuildProjectArtifactsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -12464,7 +12683,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVa return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12477,31 +12696,65 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential + var sv *types.AwsCodeBuildProjectDetails if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} + sv = &types.AwsCodeBuildProjectDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Credential": + case "Artifacts": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(&sv.Artifacts, value); err != nil { + return err + } + + case "EncryptionKey": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Credential = ptr.String(jtv) + sv.EncryptionKey = ptr.String(jtv) } - case "CredentialProvider": + case "Environment": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(&sv.Environment, value); err != nil { + return err + } + + case "LogsConfig": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(&sv.LogsConfig, value); err != nil { + return err + } + + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CredentialProvider = ptr.String(jtv) + sv.Name = ptr.String(jtv) + } + + case "ServiceRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceRole = ptr.String(jtv) + } + + case "Source": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(&sv.Source, value); err != nil { + return err + } + + case "VpcConfig": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(&sv.VpcConfig, value); err != nil { + return err } default: @@ -12513,7 +12766,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(v **types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.AwsCodeBuildProjectEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12526,40 +12779,59 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogs return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails + var sv *types.AwsCodeBuildProjectEnvironment if *v == nil { - sv = &types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails{} + sv = &types.AwsCodeBuildProjectEnvironment{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupName": + case "Certificate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupName = ptr.String(jtv) + sv.Certificate = ptr.String(jtv) } - case "Status": + case "EnvironmentVariables": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(&sv.EnvironmentVariables, value); err != nil { + return err + } + + case "ImagePullCredentialsType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.ImagePullCredentialsType = ptr.String(jtv) } - case "StreamName": + case "PrivilegedMode": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.PrivilegedMode = jtv + } + + case "RegistryCredential": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil { + return err + } + + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StreamName = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -12571,7 +12843,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogs return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(v **types.AwsCodeBuildProjectLogsConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(v **types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12584,17 +12856,216 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectLogsConfigDetails + var sv *types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails if *v == nil { - sv = &types.AwsCodeBuildProjectLogsConfigDetails{} + sv = &types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CloudWatchLogs": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(&sv.CloudWatchLogs, value); err != nil { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(v *[]types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, 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.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + if *v == nil { + cv = []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential + if *v == nil { + sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Credential": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Credential = ptr.String(jtv) + } + + case "CredentialProvider": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CredentialProvider = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(v **types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "StreamName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StreamName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(v **types.AwsCodeBuildProjectLogsConfigDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectLogsConfigDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectLogsConfigDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CloudWatchLogs": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(&sv.CloudWatchLogs, value); err != nil { return err } @@ -25687,7 +26158,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsL return nil } -func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallDetails(v **types.AwsNetworkFirewallFirewallDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25700,111 +26171,99 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDeta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpenSearchServiceDomainClusterConfigDetails + var sv *types.AwsNetworkFirewallFirewallDetails if *v == nil { - sv = &types.AwsOpenSearchServiceDomainClusterConfigDetails{} + sv = &types.AwsNetworkFirewallFirewallDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DedicatedMasterCount": + case "DeleteProtection": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.DedicatedMasterCount = int32(i64) + sv.DeleteProtection = jtv } - case "DedicatedMasterEnabled": + case "Description": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DedicatedMasterEnabled = jtv + sv.Description = ptr.String(jtv) } - case "DedicatedMasterType": + case "FirewallArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DedicatedMasterType = ptr.String(jtv) + sv.FirewallArn = ptr.String(jtv) } - case "InstanceCount": + case "FirewallId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceCount = int32(i64) + sv.FirewallId = ptr.String(jtv) } - case "InstanceType": + case "FirewallName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceType = ptr.String(jtv) + sv.FirewallName = ptr.String(jtv) } - case "WarmCount": + case "FirewallPolicyArn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.WarmCount = int32(i64) + sv.FirewallPolicyArn = ptr.String(jtv) } - case "WarmEnabled": + case "FirewallPolicyChangeProtection": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.WarmEnabled = jtv + sv.FirewallPolicyChangeProtection = jtv } - case "WarmType": + case "SubnetChangeProtection": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.WarmType = ptr.String(jtv) + sv.SubnetChangeProtection = jtv } - case "ZoneAwarenessConfig": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + case "SubnetMappings": + if err := awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallSubnetMappingsList(&sv.SubnetMappings, value); err != nil { return err } - case "ZoneAwarenessEnabled": + case "VpcId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ZoneAwarenessEnabled = jtv + sv.VpcId = ptr.String(jtv) } default: @@ -25816,7 +26275,7 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDeta return nil } -func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallPolicyDetails(v **types.AwsNetworkFirewallFirewallPolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25829,26 +26288,54 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZone return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails + var sv *types.AwsNetworkFirewallFirewallPolicyDetails if *v == nil { - sv = &types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails{} + sv = &types.AwsNetworkFirewallFirewallPolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZoneCount": + case "Description": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.Description = ptr.String(jtv) + } + + case "FirewallPolicy": + if err := awsRestjson1_deserializeDocumentFirewallPolicyDetails(&sv.FirewallPolicy, value); err != nil { + return err + } + + case "FirewallPolicyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AvailabilityZoneCount = int32(i64) + sv.FirewallPolicyArn = ptr.String(jtv) + } + + case "FirewallPolicyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.FirewallPolicyId = ptr.String(jtv) + } + + case "FirewallPolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.FirewallPolicyName = ptr.String(jtv) } default: @@ -25860,7 +26347,7 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZone return nil } -func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(v **types.AwsOpenSearchServiceDomainDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallSubnetMappingsDetails(v **types.AwsNetworkFirewallFirewallSubnetMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25873,107 +26360,150 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpenSearchServiceDomainDetails + var sv *types.AwsNetworkFirewallFirewallSubnetMappingsDetails if *v == nil { - sv = &types.AwsOpenSearchServiceDomainDetails{} + sv = &types.AwsNetworkFirewallFirewallSubnetMappingsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessPolicies": + case "SubnetId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AccessPolicies = ptr.String(jtv) + sv.SubnetId = ptr.String(jtv) } - case "Arn": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallSubnetMappingsList(v *[]types.AwsNetworkFirewallFirewallSubnetMappingsDetails, 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.AwsNetworkFirewallFirewallSubnetMappingsDetails + if *v == nil { + cv = []types.AwsNetworkFirewallFirewallSubnetMappingsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsNetworkFirewallFirewallSubnetMappingsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallSubnetMappingsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsNetworkFirewallRuleGroupDetails(v **types.AwsNetworkFirewallRuleGroupDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsNetworkFirewallRuleGroupDetails + if *v == nil { + sv = &types.AwsNetworkFirewallRuleGroupDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Capacity": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Arn = ptr.String(jtv) - } - - case "ClusterConfig": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(&sv.ClusterConfig, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Capacity = int32(i64) } - case "DomainEndpoint": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainEndpoint = ptr.String(jtv) - } - - case "DomainEndpointOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(&sv.DomainEndpointOptions, value); err != nil { - return err + sv.Description = ptr.String(jtv) } - case "DomainEndpoints": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DomainEndpoints, value); err != nil { + case "RuleGroup": + if err := awsRestjson1_deserializeDocumentRuleGroupDetails(&sv.RuleGroup, value); err != nil { return err } - case "DomainName": + case "RuleGroupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) - } - - case "EncryptionAtRestOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(&sv.EncryptionAtRestOptions, value); err != nil { - return err + sv.RuleGroupArn = ptr.String(jtv) } - case "EngineVersion": + case "RuleGroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EngineVersion = ptr.String(jtv) + sv.RuleGroupId = ptr.String(jtv) } - case "Id": + case "RuleGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) - } - - case "LogPublishingOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(&sv.LogPublishingOptions, value); err != nil { - return err - } - - case "NodeToNodeEncryptionOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(&sv.NodeToNodeEncryptionOptions, value); err != nil { - return err - } - - case "ServiceSoftwareOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(&sv.ServiceSoftwareOptions, value); err != nil { - return err + sv.RuleGroupName = ptr.String(jtv) } - case "VpcOptions": - if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(&sv.VpcOptions, value); err != nil { - return err + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -25985,7 +26515,7 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(v **types return nil } -func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(v **types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25998,58 +26528,111 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOpt return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails + var sv *types.AwsOpenSearchServiceDomainClusterConfigDetails if *v == nil { - sv = &types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails{} + sv = &types.AwsOpenSearchServiceDomainClusterConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CustomEndpoint": + case "DedicatedMasterCount": + 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.DedicatedMasterCount = int32(i64) + } + + case "DedicatedMasterEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DedicatedMasterEnabled = jtv + } + + case "DedicatedMasterType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CustomEndpoint = ptr.String(jtv) + sv.DedicatedMasterType = ptr.String(jtv) } - case "CustomEndpointCertificateArn": + case "InstanceCount": + 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.InstanceCount = int32(i64) + } + + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CustomEndpointCertificateArn = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } - case "CustomEndpointEnabled": + case "WarmCount": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.CustomEndpointEnabled = jtv + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WarmCount = int32(i64) } - case "EnforceHTTPS": + case "WarmEnabled": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.EnforceHTTPS = jtv + sv.WarmEnabled = jtv } - case "TLSSecurityPolicy": + case "WarmType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TLSSecurityPolicy = ptr.String(jtv) + sv.WarmType = ptr.String(jtv) + } + + case "ZoneAwarenessConfig": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + return err + } + + case "ZoneAwarenessEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ZoneAwarenessEnabled = jtv } default: @@ -26061,7 +26644,252 @@ func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOpt return nil } -func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(v **types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails + if *v == nil { + sv = &types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZoneCount": + 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.AvailabilityZoneCount = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(v **types.AwsOpenSearchServiceDomainDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsOpenSearchServiceDomainDetails + if *v == nil { + sv = &types.AwsOpenSearchServiceDomainDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccessPolicies": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AccessPolicies = ptr.String(jtv) + } + + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "ClusterConfig": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(&sv.ClusterConfig, value); err != nil { + return err + } + + case "DomainEndpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainEndpoint = ptr.String(jtv) + } + + case "DomainEndpointOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(&sv.DomainEndpointOptions, value); err != nil { + return err + } + + case "DomainEndpoints": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DomainEndpoints, value); err != nil { + return err + } + + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + case "EncryptionAtRestOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(&sv.EncryptionAtRestOptions, value); err != nil { + return err + } + + case "EngineVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.EngineVersion = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LogPublishingOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(&sv.LogPublishingOptions, value); err != nil { + return err + } + + case "NodeToNodeEncryptionOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(&sv.NodeToNodeEncryptionOptions, value); err != nil { + return err + } + + case "ServiceSoftwareOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(&sv.ServiceSoftwareOptions, value); err != nil { + return err + } + + case "VpcOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(&sv.VpcOptions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(v **types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails + if *v == nil { + sv = &types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CustomEndpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomEndpoint = ptr.String(jtv) + } + + case "CustomEndpointCertificateArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomEndpointCertificateArn = ptr.String(jtv) + } + + case "CustomEndpointEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.CustomEndpointEnabled = jtv + } + + case "EnforceHTTPS": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnforceHTTPS = jtv + } + + case "TLSSecurityPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TLSSecurityPolicy = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(v **types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -31530,7 +32358,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketVersioningConfiguration(v **types.AwsS3BucketBucketVersioningConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -31543,26 +32371,75 @@ func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketDetails + var sv *types.AwsS3BucketBucketVersioningConfiguration if *v == nil { - sv = &types.AwsS3BucketDetails{} + sv = &types.AwsS3BucketBucketVersioningConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessControlList": + case "IsMfaDeleteEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.AccessControlList = ptr.String(jtv) + sv.IsMfaDeleteEnabled = jtv } - case "BucketLifecycleConfiguration": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(&sv.BucketLifecycleConfiguration, value); err != nil { + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsS3BucketDetails + if *v == nil { + sv = &types.AwsS3BucketDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccessControlList": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AccessControlList = ptr.String(jtv) + } + + case "BucketLifecycleConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(&sv.BucketLifecycleConfiguration, value); err != nil { return err } @@ -31576,6 +32453,11 @@ func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDet return err } + case "BucketVersioningConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketVersioningConfiguration(&sv.BucketVersioningConfiguration, value); err != nil { + return err + } + case "BucketWebsiteConfiguration": if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfiguration(&sv.BucketWebsiteConfiguration, value); err != nil { return err @@ -36157,7 +37039,7 @@ func awsRestjson1_deserializeDocumentFindingProviderSeverity(v **types.FindingPr return nil } -func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyDetails(v **types.FirewallPolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36170,81 +37052,38 @@ func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value in return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.GeoLocation + var sv *types.FirewallPolicyDetails if *v == nil { - sv = &types.GeoLocation{} + sv = &types.FirewallPolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Lat": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.Lat = 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.Lat = f64 - - default: - return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) - - } + case "StatefulRuleGroupReferences": + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatefulRuleGroupReferencesList(&sv.StatefulRuleGroupReferences, value); err != nil { + return err } - case "Lon": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.Lon = f64 - - case string: - var f64 float64 - switch { - case strings.EqualFold(jtv, "NaN"): - f64 = math.NaN() - - case strings.EqualFold(jtv, "Infinity"): - f64 = math.Inf(1) - - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) - - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) + case "StatelessCustomActions": + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatelessCustomActionsList(&sv.StatelessCustomActions, value); err != nil { + return err + } - } - sv.Lon = f64 + case "StatelessDefaultActions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.StatelessDefaultActions, value); err != nil { + return err + } - default: - return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + case "StatelessFragmentDefaultActions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.StatelessFragmentDefaultActions, value); err != nil { + return err + } - } + case "StatelessRuleGroupReferences": + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatelessRuleGroupReferencesList(&sv.StatelessRuleGroupReferences, value); err != nil { + return err } default: @@ -36256,7 +37095,7 @@ func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value in return nil } -func awsRestjson1_deserializeDocumentIcmpTypeCode(v **types.IcmpTypeCode, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyStatefulRuleGroupReferencesDetails(v **types.FirewallPolicyStatefulRuleGroupReferencesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36269,39 +37108,22 @@ func awsRestjson1_deserializeDocumentIcmpTypeCode(v **types.IcmpTypeCode, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IcmpTypeCode + var sv *types.FirewallPolicyStatefulRuleGroupReferencesDetails if *v == nil { - sv = &types.IcmpTypeCode{} + sv = &types.FirewallPolicyStatefulRuleGroupReferencesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Code": - 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.Code = int32(i64) - } - - case "Type": + case "ResourceArn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = int32(i64) + sv.ResourceArn = ptr.String(jtv) } default: @@ -36313,7 +37135,41 @@ func awsRestjson1_deserializeDocumentIcmpTypeCode(v **types.IcmpTypeCode, value return nil } -func awsRestjson1_deserializeDocumentImportFindingsError(v **types.ImportFindingsError, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyStatefulRuleGroupReferencesList(v *[]types.FirewallPolicyStatefulRuleGroupReferencesDetails, 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.FirewallPolicyStatefulRuleGroupReferencesDetails + if *v == nil { + cv = []types.FirewallPolicyStatefulRuleGroupReferencesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FirewallPolicyStatefulRuleGroupReferencesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatefulRuleGroupReferencesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentFirewallPolicyStatelessCustomActionsDetails(v **types.FirewallPolicyStatelessCustomActionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36326,40 +37182,27 @@ func awsRestjson1_deserializeDocumentImportFindingsError(v **types.ImportFinding return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ImportFindingsError + var sv *types.FirewallPolicyStatelessCustomActionsDetails if *v == nil { - sv = &types.ImportFindingsError{} + sv = &types.FirewallPolicyStatelessCustomActionsDetails{} } 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 NonEmptyString to be of type string, got %T instead", value) - } - sv.ErrorCode = ptr.String(jtv) - } - - case "ErrorMessage": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ErrorMessage = ptr.String(jtv) + case "ActionDefinition": + if err := awsRestjson1_deserializeDocumentStatelessCustomActionDefinition(&sv.ActionDefinition, value); err != nil { + return err } - case "Id": + case "ActionName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.ActionName = ptr.String(jtv) } default: @@ -36371,7 +37214,7 @@ func awsRestjson1_deserializeDocumentImportFindingsError(v **types.ImportFinding return nil } -func awsRestjson1_deserializeDocumentImportFindingsErrorList(v *[]types.ImportFindingsError, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyStatelessCustomActionsList(v *[]types.FirewallPolicyStatelessCustomActionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36384,17 +37227,17 @@ func awsRestjson1_deserializeDocumentImportFindingsErrorList(v *[]types.ImportFi return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ImportFindingsError + var cv []types.FirewallPolicyStatelessCustomActionsDetails if *v == nil { - cv = []types.ImportFindingsError{} + cv = []types.FirewallPolicyStatelessCustomActionsDetails{} } else { cv = *v } for _, value := range shape { - var col types.ImportFindingsError + var col types.FirewallPolicyStatelessCustomActionsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentImportFindingsError(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatelessCustomActionsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -36405,7 +37248,7 @@ func awsRestjson1_deserializeDocumentImportFindingsErrorList(v *[]types.ImportFi return nil } -func awsRestjson1_deserializeDocumentInsight(v **types.Insight, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyStatelessRuleGroupReferencesDetails(v **types.FirewallPolicyStatelessRuleGroupReferencesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36418,45 +37261,35 @@ func awsRestjson1_deserializeDocumentInsight(v **types.Insight, value interface{ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Insight + var sv *types.FirewallPolicyStatelessRuleGroupReferencesDetails if *v == nil { - sv = &types.Insight{} + sv = &types.FirewallPolicyStatelessRuleGroupReferencesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Filters": - if err := awsRestjson1_deserializeDocumentAwsSecurityFindingFilters(&sv.Filters, value); err != nil { - return err - } - - case "GroupByAttribute": + case "Priority": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.GroupByAttribute = ptr.String(jtv) - } - - case "InsightArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.InsightArn = ptr.String(jtv) + sv.Priority = int32(i64) } - case "Name": + case "ResourceArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.ResourceArn = ptr.String(jtv) } default: @@ -36468,7 +37301,7 @@ func awsRestjson1_deserializeDocumentInsight(v **types.Insight, value interface{ return nil } -func awsRestjson1_deserializeDocumentInsightList(v *[]types.Insight, value interface{}) error { +func awsRestjson1_deserializeDocumentFirewallPolicyStatelessRuleGroupReferencesList(v *[]types.FirewallPolicyStatelessRuleGroupReferencesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36481,17 +37314,17 @@ func awsRestjson1_deserializeDocumentInsightList(v *[]types.Insight, value inter return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Insight + var cv []types.FirewallPolicyStatelessRuleGroupReferencesDetails if *v == nil { - cv = []types.Insight{} + cv = []types.FirewallPolicyStatelessRuleGroupReferencesDetails{} } else { cv = *v } for _, value := range shape { - var col types.Insight + var col types.FirewallPolicyStatelessRuleGroupReferencesDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentInsight(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentFirewallPolicyStatelessRuleGroupReferencesDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -36502,7 +37335,7 @@ func awsRestjson1_deserializeDocumentInsightList(v *[]types.Insight, value inter return nil } -func awsRestjson1_deserializeDocumentInsightResults(v **types.InsightResults, value interface{}) error { +func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36515,36 +37348,81 @@ func awsRestjson1_deserializeDocumentInsightResults(v **types.InsightResults, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InsightResults + var sv *types.GeoLocation if *v == nil { - sv = &types.InsightResults{} + sv = &types.GeoLocation{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupByAttribute": + case "Lat": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupByAttribute = ptr.String(jtv) - } + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Lat = 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.Lat = f64 + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) - case "InsightArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InsightArn = ptr.String(jtv) } - case "ResultValues": - if err := awsRestjson1_deserializeDocumentInsightResultValueList(&sv.ResultValues, value); err != nil { - return err + case "Lon": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Lon = 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.Lon = f64 + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } } default: @@ -36556,7 +37434,7 @@ func awsRestjson1_deserializeDocumentInsightResults(v **types.InsightResults, va return nil } -func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultValue, value interface{}) error { +func awsRestjson1_deserializeDocumentIcmpTypeCode(v **types.IcmpTypeCode, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36569,16 +37447,16 @@ func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultV return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InsightResultValue + var sv *types.IcmpTypeCode if *v == nil { - sv = &types.InsightResultValue{} + sv = &types.IcmpTypeCode{} } else { sv = *v } for key, value := range shape { switch key { - case "Count": + case "Code": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -36588,16 +37466,78 @@ func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultV if err != nil { return err } - sv.Count = int32(i64) + sv.Code = int32(i64) } - case "GroupByAttributeValue": + case "Type": + 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.Type = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImportFindingsError(v **types.ImportFindingsError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ImportFindingsError + if *v == nil { + sv = &types.ImportFindingsError{} + } 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 NonEmptyString to be of type string, got %T instead", value) } - sv.GroupByAttributeValue = ptr.String(jtv) + sv.ErrorCode = ptr.String(jtv) + } + + case "ErrorMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ErrorMessage = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) } default: @@ -36609,7 +37549,7 @@ func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultV return nil } -func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightResultValue, value interface{}) error { +func awsRestjson1_deserializeDocumentImportFindingsErrorList(v *[]types.ImportFindingsError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36622,17 +37562,17 @@ func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightRe return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.InsightResultValue + var cv []types.ImportFindingsError if *v == nil { - cv = []types.InsightResultValue{} + cv = []types.ImportFindingsError{} } else { cv = *v } for _, value := range shape { - var col types.InsightResultValue + var col types.ImportFindingsError destAddr := &col - if err := awsRestjson1_deserializeDocumentInsightResultValue(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentImportFindingsError(&destAddr, value); err != nil { return err } col = *destAddr @@ -36643,7 +37583,7 @@ func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightRe return nil } -func awsRestjson1_deserializeDocumentIntegerList(v *[]int32, value interface{}) error { +func awsRestjson1_deserializeDocumentInsight(v **types.Insight, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36651,39 +37591,62 @@ func awsRestjson1_deserializeDocumentIntegerList(v *[]int32, value interface{}) return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []int32 + var sv *types.Insight if *v == nil { - cv = []int32{} + sv = &types.Insight{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col int32 - 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 { + for key, value := range shape { + switch key { + case "Filters": + if err := awsRestjson1_deserializeDocumentAwsSecurityFindingFilters(&sv.Filters, value); err != nil { return err } - col = int32(i64) - } - cv = append(cv, col) + case "GroupByAttribute": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupByAttribute = ptr.String(jtv) + } + + case "InsightArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InsightArn = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationType, value interface{}) error { +func awsRestjson1_deserializeDocumentInsightList(v *[]types.Insight, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36696,22 +37659,20 @@ func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationT return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.IntegrationType + var cv []types.Insight if *v == nil { - cv = []types.IntegrationType{} + cv = []types.Insight{} } else { cv = *v } for _, value := range shape { - var col types.IntegrationType - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IntegrationType to be of type string, got %T instead", value) - } - col = types.IntegrationType(jtv) + var col types.Insight + destAddr := &col + if err := awsRestjson1_deserializeDocumentInsight(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -36719,7 +37680,7 @@ func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationT return nil } -func awsRestjson1_deserializeDocumentInternalException(v **types.InternalException, value interface{}) error { +func awsRestjson1_deserializeDocumentInsightResults(v **types.InsightResults, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36732,31 +37693,36 @@ func awsRestjson1_deserializeDocumentInternalException(v **types.InternalExcepti return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalException + var sv *types.InsightResults if *v == nil { - sv = &types.InternalException{} + sv = &types.InsightResults{} } else { sv = *v } for key, value := range shape { switch key { - case "Code": + case "GroupByAttribute": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Code = ptr.String(jtv) + sv.GroupByAttribute = ptr.String(jtv) } - case "Message": + case "InsightArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.InsightArn = ptr.String(jtv) + } + + case "ResultValues": + if err := awsRestjson1_deserializeDocumentInsightResultValueList(&sv.ResultValues, value); err != nil { + return err } default: @@ -36768,7 +37734,7 @@ func awsRestjson1_deserializeDocumentInternalException(v **types.InternalExcepti return nil } -func awsRestjson1_deserializeDocumentInvalidAccessException(v **types.InvalidAccessException, value interface{}) error { +func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultValue, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36781,9 +37747,221 @@ func awsRestjson1_deserializeDocumentInvalidAccessException(v **types.InvalidAcc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidAccessException + var sv *types.InsightResultValue if *v == nil { - sv = &types.InvalidAccessException{} + sv = &types.InsightResultValue{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Count": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Count = int32(i64) + } + + case "GroupByAttributeValue": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupByAttributeValue = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightResultValue, 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.InsightResultValue + if *v == nil { + cv = []types.InsightResultValue{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.InsightResultValue + destAddr := &col + if err := awsRestjson1_deserializeDocumentInsightResultValue(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentIntegerList(v *[]int32, 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 []int32 + if *v == nil { + cv = []int32{} + } else { + cv = *v + } + + for _, value := range shape { + var col int32 + 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 + } + col = int32(i64) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationType, 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.IntegrationType + if *v == nil { + cv = []types.IntegrationType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.IntegrationType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IntegrationType to be of type string, got %T instead", value) + } + col = types.IntegrationType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentInternalException(v **types.InternalException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InternalException + if *v == nil { + sv = &types.InternalException{} + } 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 NonEmptyString to be of type string, got %T instead", value) + } + sv.Code = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentInvalidAccessException(v **types.InvalidAccessException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InvalidAccessException + if *v == nil { + sv = &types.InvalidAccessException{} } else { sv = *v } @@ -39960,6 +41138,21 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsNetworkFirewallFirewall": + if err := awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallDetails(&sv.AwsNetworkFirewallFirewall, value); err != nil { + return err + } + + case "AwsNetworkFirewallFirewallPolicy": + if err := awsRestjson1_deserializeDocumentAwsNetworkFirewallFirewallPolicyDetails(&sv.AwsNetworkFirewallFirewallPolicy, value); err != nil { + return err + } + + case "AwsNetworkFirewallRuleGroup": + if err := awsRestjson1_deserializeDocumentAwsNetworkFirewallRuleGroupDetails(&sv.AwsNetworkFirewallRuleGroup, value); err != nil { + return err + } + case "AwsOpenSearchServiceDomain": if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(&sv.AwsOpenSearchServiceDomain, value); err != nil { return err @@ -40050,13 +41243,1325 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } - case "Container": - if err := awsRestjson1_deserializeDocumentContainerDetails(&sv.Container, value); err != nil { - return err + case "Container": + if err := awsRestjson1_deserializeDocumentContainerDetails(&sv.Container, value); err != nil { + return err + } + + case "Other": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Other, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentResourceList(v *[]types.Resource, 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.Resource + if *v == nil { + cv = []types.Resource{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Resource + destAddr := &col + if err := awsRestjson1_deserializeDocumentResource(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceNotFoundException + if *v == nil { + sv = &types.ResourceNotFoundException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Code": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Code = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentResult(v **types.Result, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Result + if *v == nil { + sv = &types.Result{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) + } + sv.AccountId = ptr.String(jtv) + } + + case "ProcessingResult": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ProcessingResult = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentResultList(v *[]types.Result, 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.Result + if *v == nil { + cv = []types.Result{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Result + destAddr := &col + if err := awsRestjson1_deserializeDocumentResult(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupDetails(v **types.RuleGroupDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupDetails + if *v == nil { + sv = &types.RuleGroupDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "RulesSource": + if err := awsRestjson1_deserializeDocumentRuleGroupSource(&sv.RulesSource, value); err != nil { + return err + } + + case "RuleVariables": + if err := awsRestjson1_deserializeDocumentRuleGroupVariables(&sv.RuleVariables, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSource(v **types.RuleGroupSource, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSource + if *v == nil { + sv = &types.RuleGroupSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "RulesSourceList": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceListDetails(&sv.RulesSourceList, value); err != nil { + return err + } + + case "RulesString": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RulesString = ptr.String(jtv) + } + + case "StatefulRules": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesList(&sv.StatefulRules, value); err != nil { + return err + } + + case "StatelessRulesAndCustomActions": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesAndCustomActionsDetails(&sv.StatelessRulesAndCustomActions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceCustomActionsDetails(v **types.RuleGroupSourceCustomActionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceCustomActionsDetails + if *v == nil { + sv = &types.RuleGroupSourceCustomActionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActionDefinition": + if err := awsRestjson1_deserializeDocumentStatelessCustomActionDefinition(&sv.ActionDefinition, value); err != nil { + return err + } + + case "ActionName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ActionName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceCustomActionsList(v *[]types.RuleGroupSourceCustomActionsDetails, 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.RuleGroupSourceCustomActionsDetails + if *v == nil { + cv = []types.RuleGroupSourceCustomActionsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceCustomActionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceCustomActionsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceListDetails(v **types.RuleGroupSourceListDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceListDetails + if *v == nil { + sv = &types.RuleGroupSourceListDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GeneratedRulesType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GeneratedRulesType = ptr.String(jtv) + } + + case "Targets": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Targets, value); err != nil { + return err + } + + case "TargetTypes": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.TargetTypes, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesDetails(v **types.RuleGroupSourceStatefulRulesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatefulRulesDetails + if *v == nil { + sv = &types.RuleGroupSourceStatefulRulesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Action": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Action = ptr.String(jtv) + } + + case "Header": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesHeaderDetails(&sv.Header, value); err != nil { + return err + } + + case "RuleOptions": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesOptionsList(&sv.RuleOptions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesHeaderDetails(v **types.RuleGroupSourceStatefulRulesHeaderDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatefulRulesHeaderDetails + if *v == nil { + sv = &types.RuleGroupSourceStatefulRulesHeaderDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Destination": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Destination = ptr.String(jtv) + } + + case "DestinationPort": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DestinationPort = ptr.String(jtv) + } + + case "Direction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Direction = ptr.String(jtv) + } + + case "Protocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Protocol = ptr.String(jtv) + } + + case "Source": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Source = ptr.String(jtv) + } + + case "SourcePort": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SourcePort = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesList(v *[]types.RuleGroupSourceStatefulRulesDetails, 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.RuleGroupSourceStatefulRulesDetails + if *v == nil { + cv = []types.RuleGroupSourceStatefulRulesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatefulRulesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesOptionsDetails(v **types.RuleGroupSourceStatefulRulesOptionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatefulRulesOptionsDetails + if *v == nil { + sv = &types.RuleGroupSourceStatefulRulesOptionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Keyword": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Keyword = ptr.String(jtv) + } + + case "Settings": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesRuleOptionsSettingsList(&sv.Settings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesOptionsList(v *[]types.RuleGroupSourceStatefulRulesOptionsDetails, 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.RuleGroupSourceStatefulRulesOptionsDetails + if *v == nil { + cv = []types.RuleGroupSourceStatefulRulesOptionsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatefulRulesOptionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesOptionsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatefulRulesRuleOptionsSettingsList(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 NonEmptyString to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleDefinition(v **types.RuleGroupSourceStatelessRuleDefinition, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleDefinition + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Actions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Actions, value); err != nil { + return err + } + + case "MatchAttributes": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributes(&sv.MatchAttributes, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributes(v **types.RuleGroupSourceStatelessRuleMatchAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributes + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DestinationPorts": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList(&sv.DestinationPorts, value); err != nil { + return err + } + + case "Destinations": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationsList(&sv.Destinations, value); err != nil { + return err + } + + case "Protocols": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesProtocolsList(&sv.Protocols, value); err != nil { + return err + } + + case "SourcePorts": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePortsList(&sv.SourcePorts, value); err != nil { + return err + } + + case "Sources": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcesList(&sv.Sources, value); err != nil { + return err + } + + case "TcpFlags": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList(&sv.TcpFlags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(v **types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FromPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FromPort = int32(i64) + } + + case "ToPort": + 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.ToPort = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList(v *[]types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, 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.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts + if *v == nil { + cv = []types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinations(v **types.RuleGroupSourceStatelessRuleMatchAttributesDestinations, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributesDestinations + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributesDestinations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AddressDefinition": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AddressDefinition = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationsList(v *[]types.RuleGroupSourceStatelessRuleMatchAttributesDestinations, 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.RuleGroupSourceStatelessRuleMatchAttributesDestinations + if *v == nil { + cv = []types.RuleGroupSourceStatelessRuleMatchAttributesDestinations{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatelessRuleMatchAttributesDestinations + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinations(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesProtocolsList(v *[]int32, 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 []int32 + if *v == nil { + cv = []int32{} + } else { + cv = *v + } + + for _, value := range shape { + var col int32 + 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 + } + col = int32(i64) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePorts(v **types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FromPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FromPort = int32(i64) + } + + case "ToPort": + 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.ToPort = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePortsList(v *[]types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, 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.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts + if *v == nil { + cv = []types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePorts(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSources(v **types.RuleGroupSourceStatelessRuleMatchAttributesSources, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributesSources + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributesSources{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AddressDefinition": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AddressDefinition = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcesList(v *[]types.RuleGroupSourceStatelessRuleMatchAttributesSources, 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.RuleGroupSourceStatelessRuleMatchAttributesSources + if *v == nil { + cv = []types.RuleGroupSourceStatelessRuleMatchAttributesSources{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatelessRuleMatchAttributesSources + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSources(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlags(v **types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags + if *v == nil { + sv = &types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Flags": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Flags, value); err != nil { + return err + } + + case "Masks": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Masks, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList(v *[]types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, 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.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags + if *v == nil { + cv = []types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags + destAddr := &col + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlags(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesAndCustomActionsDetails(v **types.RuleGroupSourceStatelessRulesAndCustomActionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRulesAndCustomActionsDetails + if *v == nil { + sv = &types.RuleGroupSourceStatelessRulesAndCustomActionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CustomActions": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceCustomActionsList(&sv.CustomActions, value); err != nil { + return err + } + + case "StatelessRules": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesList(&sv.StatelessRules, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesDetails(v **types.RuleGroupSourceStatelessRulesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RuleGroupSourceStatelessRulesDetails + if *v == nil { + sv = &types.RuleGroupSourceStatelessRulesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Priority": + 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.Priority = int32(i64) } - case "Other": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Other, value); err != nil { + case "RuleDefinition": + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRuleDefinition(&sv.RuleDefinition, value); err != nil { return err } @@ -40069,7 +42574,7 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return nil } -func awsRestjson1_deserializeDocumentResourceList(v *[]types.Resource, value interface{}) error { +func awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesList(v *[]types.RuleGroupSourceStatelessRulesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -40082,17 +42587,17 @@ func awsRestjson1_deserializeDocumentResourceList(v *[]types.Resource, value int return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Resource + var cv []types.RuleGroupSourceStatelessRulesDetails if *v == nil { - cv = []types.Resource{} + cv = []types.RuleGroupSourceStatelessRulesDetails{} } else { cv = *v } for _, value := range shape { - var col types.Resource + var col types.RuleGroupSourceStatelessRulesDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentResource(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentRuleGroupSourceStatelessRulesDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -40103,7 +42608,7 @@ func awsRestjson1_deserializeDocumentResourceList(v *[]types.Resource, value int return nil } -func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { +func awsRestjson1_deserializeDocumentRuleGroupVariables(v **types.RuleGroupVariables, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -40116,31 +42621,23 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceNotFoundException + var sv *types.RuleGroupVariables if *v == nil { - sv = &types.ResourceNotFoundException{} + sv = &types.RuleGroupVariables{} } 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 NonEmptyString to be of type string, got %T instead", value) - } - sv.Code = ptr.String(jtv) + case "IpSets": + if err := awsRestjson1_deserializeDocumentRuleGroupVariablesIpSetsDetails(&sv.IpSets, value); err != nil { + return err } - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + case "PortSets": + if err := awsRestjson1_deserializeDocumentRuleGroupVariablesPortSetsDetails(&sv.PortSets, value); err != nil { + return err } default: @@ -40152,7 +42649,7 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } -func awsRestjson1_deserializeDocumentResult(v **types.Result, value interface{}) error { +func awsRestjson1_deserializeDocumentRuleGroupVariablesIpSetsDetails(v **types.RuleGroupVariablesIpSetsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -40165,31 +42662,18 @@ func awsRestjson1_deserializeDocumentResult(v **types.Result, value interface{}) return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Result + var sv *types.RuleGroupVariablesIpSetsDetails if *v == nil { - sv = &types.Result{} + sv = &types.RuleGroupVariablesIpSetsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) - } - sv.AccountId = ptr.String(jtv) - } - - case "ProcessingResult": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ProcessingResult = ptr.String(jtv) + case "Definition": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Definition, value); err != nil { + return err } default: @@ -40201,7 +42685,7 @@ func awsRestjson1_deserializeDocumentResult(v **types.Result, value interface{}) return nil } -func awsRestjson1_deserializeDocumentResultList(v *[]types.Result, value interface{}) error { +func awsRestjson1_deserializeDocumentRuleGroupVariablesPortSetsDetails(v **types.RuleGroupVariablesPortSetsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -40209,29 +42693,31 @@ func awsRestjson1_deserializeDocumentResultList(v *[]types.Result, value interfa return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Result + var sv *types.RuleGroupVariablesPortSetsDetails if *v == nil { - cv = []types.Result{} + sv = &types.RuleGroupVariablesPortSetsDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.Result - destAddr := &col - if err := awsRestjson1_deserializeDocumentResult(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Definition": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Definition, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } @@ -40971,6 +43457,46 @@ func awsRestjson1_deserializeDocumentStandardsInputParameterMap(v *map[string]st return nil } +func awsRestjson1_deserializeDocumentStandardsStatusReason(v **types.StandardsStatusReason, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StandardsStatusReason + if *v == nil { + sv = &types.StandardsStatusReason{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "StatusReasonCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusReasonCode to be of type string, got %T instead", value) + } + sv.StatusReasonCode = types.StatusReasonCode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStandardsSubscription(v **types.StandardsSubscription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -41016,6 +43542,11 @@ func awsRestjson1_deserializeDocumentStandardsSubscription(v **types.StandardsSu sv.StandardsStatus = types.StandardsStatus(jtv) } + case "StandardsStatusReason": + if err := awsRestjson1_deserializeDocumentStandardsStatusReason(&sv.StandardsStatusReason, value); err != nil { + return err + } + case "StandardsSubscriptionArn": if value != nil { jtv, ok := value.(string) @@ -41068,6 +43599,152 @@ func awsRestjson1_deserializeDocumentStandardsSubscriptions(v *[]types.Standards return nil } +func awsRestjson1_deserializeDocumentStatelessCustomActionDefinition(v **types.StatelessCustomActionDefinition, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StatelessCustomActionDefinition + if *v == nil { + sv = &types.StatelessCustomActionDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "PublishMetricAction": + if err := awsRestjson1_deserializeDocumentStatelessCustomPublishMetricAction(&sv.PublishMetricAction, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStatelessCustomPublishMetricAction(v **types.StatelessCustomPublishMetricAction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StatelessCustomPublishMetricAction + if *v == nil { + sv = &types.StatelessCustomPublishMetricAction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Dimensions": + if err := awsRestjson1_deserializeDocumentStatelessCustomPublishMetricActionDimensionsList(&sv.Dimensions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStatelessCustomPublishMetricActionDimension(v **types.StatelessCustomPublishMetricActionDimension, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StatelessCustomPublishMetricActionDimension + if *v == nil { + sv = &types.StatelessCustomPublishMetricActionDimension{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStatelessCustomPublishMetricActionDimensionsList(v *[]types.StatelessCustomPublishMetricActionDimension, 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.StatelessCustomPublishMetricActionDimension + if *v == nil { + cv = []types.StatelessCustomPublishMetricActionDimension{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.StatelessCustomPublishMetricActionDimension + destAddr := &col + if err := awsRestjson1_deserializeDocumentStatelessCustomPublishMetricActionDimension(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentStatusReason(v **types.StatusReason, 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 24a064da7e6..3f36c64a7e3 100644 --- a/service/securityhub/serializers.go +++ b/service/securityhub/serializers.go @@ -4588,10 +4588,42 @@ func awsRestjson1_serializeDocumentAwsApiGatewayV2StageDetails(v *types.AwsApiGa return nil } +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesList(v []types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(v *types.AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, 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 awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v *types.AwsAutoScalingAutoScalingGroupDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() + if v.AvailabilityZones != nil { + ok := object.Key("AvailabilityZones") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupAvailabilityZonesList(v.AvailabilityZones, ok); err != nil { + return err + } + } + if v.CreatedTime != nil { ok := object.Key("CreatedTime") ok.String(*v.CreatedTime) @@ -4619,6 +4651,144 @@ func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v *type } } + if v.MixedInstancesPolicy != nil { + ok := object.Key("MixedInstancesPolicy") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails(v.MixedInstancesPolicy, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails(v *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InstancesDistribution != nil { + ok := object.Key("InstancesDistribution") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails(v.InstancesDistribution, ok); err != nil { + return err + } + } + + if v.LaunchTemplate != nil { + ok := object.Key("LaunchTemplate") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails(v.LaunchTemplate, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails(v *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OnDemandAllocationStrategy != nil { + ok := object.Key("OnDemandAllocationStrategy") + ok.String(*v.OnDemandAllocationStrategy) + } + + if v.OnDemandBaseCapacity != 0 { + ok := object.Key("OnDemandBaseCapacity") + ok.Integer(v.OnDemandBaseCapacity) + } + + if v.OnDemandPercentageAboveBaseCapacity != 0 { + ok := object.Key("OnDemandPercentageAboveBaseCapacity") + ok.Integer(v.OnDemandPercentageAboveBaseCapacity) + } + + if v.SpotAllocationStrategy != nil { + ok := object.Key("SpotAllocationStrategy") + ok.String(*v.SpotAllocationStrategy) + } + + if v.SpotInstancePools != 0 { + ok := object.Key("SpotInstancePools") + ok.Integer(v.SpotInstancePools) + } + + if v.SpotMaxPrice != nil { + ok := object.Key("SpotMaxPrice") + ok.String(*v.SpotMaxPrice) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails(v *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LaunchTemplateSpecification != nil { + ok := object.Key("LaunchTemplateSpecification") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification(v.LaunchTemplateSpecification, ok); err != nil { + return err + } + } + + if v.Overrides != nil { + ok := object.Key("Overrides") + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList(v.Overrides, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification(v *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LaunchTemplateId != nil { + ok := object.Key("LaunchTemplateId") + ok.String(*v.LaunchTemplateId) + } + + if v.LaunchTemplateName != nil { + ok := object.Key("LaunchTemplateName") + ok.String(*v.LaunchTemplateName) + } + + if v.Version != nil { + ok := object.Key("Version") + ok.String(*v.Version) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList(v []types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails(v *types.AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InstanceType != nil { + ok := object.Key("InstanceType") + ok.String(*v.InstanceType) + } + + if v.WeightedCapacity != nil { + ok := object.Key("WeightedCapacity") + ok.String(*v.WeightedCapacity) + } + return nil } @@ -4776,6 +4946,13 @@ func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationDetails(v *t ok.String(*v.LaunchConfigurationName) } + if v.MetadataOptions != nil { + ok := object.Key("MetadataOptions") + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationMetadataOptions(v.MetadataOptions, ok); err != nil { + return err + } + } + if v.PlacementTenancy != nil { ok := object.Key("PlacementTenancy") ok.String(*v.PlacementTenancy) @@ -4818,6 +4995,28 @@ func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationInstanceMoni return nil } +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationMetadataOptions(v *types.AwsAutoScalingLaunchConfigurationMetadataOptions, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.HttpEndpoint != nil { + ok := object.Key("HttpEndpoint") + ok.String(*v.HttpEndpoint) + } + + if v.HttpPutResponseHopLimit != 0 { + ok := object.Key("HttpPutResponseHopLimit") + ok.Integer(v.HttpPutResponseHopLimit) + } + + if v.HttpTokens != nil { + ok := object.Key("HttpTokens") + ok.String(*v.HttpTokens) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v *types.AwsCertificateManagerCertificateDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -11772,6 +11971,168 @@ func awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v *types.AwsLamb return nil } +func awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallDetails(v *types.AwsNetworkFirewallFirewallDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeleteProtection { + ok := object.Key("DeleteProtection") + ok.Boolean(v.DeleteProtection) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.FirewallArn != nil { + ok := object.Key("FirewallArn") + ok.String(*v.FirewallArn) + } + + if v.FirewallId != nil { + ok := object.Key("FirewallId") + ok.String(*v.FirewallId) + } + + if v.FirewallName != nil { + ok := object.Key("FirewallName") + ok.String(*v.FirewallName) + } + + if v.FirewallPolicyArn != nil { + ok := object.Key("FirewallPolicyArn") + ok.String(*v.FirewallPolicyArn) + } + + if v.FirewallPolicyChangeProtection { + ok := object.Key("FirewallPolicyChangeProtection") + ok.Boolean(v.FirewallPolicyChangeProtection) + } + + if v.SubnetChangeProtection { + ok := object.Key("SubnetChangeProtection") + ok.Boolean(v.SubnetChangeProtection) + } + + if v.SubnetMappings != nil { + ok := object.Key("SubnetMappings") + if err := awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallSubnetMappingsList(v.SubnetMappings, ok); err != nil { + return err + } + } + + if v.VpcId != nil { + ok := object.Key("VpcId") + ok.String(*v.VpcId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallPolicyDetails(v *types.AwsNetworkFirewallFirewallPolicyDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.FirewallPolicy != nil { + ok := object.Key("FirewallPolicy") + if err := awsRestjson1_serializeDocumentFirewallPolicyDetails(v.FirewallPolicy, ok); err != nil { + return err + } + } + + if v.FirewallPolicyArn != nil { + ok := object.Key("FirewallPolicyArn") + ok.String(*v.FirewallPolicyArn) + } + + if v.FirewallPolicyId != nil { + ok := object.Key("FirewallPolicyId") + ok.String(*v.FirewallPolicyId) + } + + if v.FirewallPolicyName != nil { + ok := object.Key("FirewallPolicyName") + ok.String(*v.FirewallPolicyName) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallSubnetMappingsDetails(v *types.AwsNetworkFirewallFirewallSubnetMappingsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SubnetId != nil { + ok := object.Key("SubnetId") + ok.String(*v.SubnetId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallSubnetMappingsList(v []types.AwsNetworkFirewallFirewallSubnetMappingsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallSubnetMappingsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsNetworkFirewallRuleGroupDetails(v *types.AwsNetworkFirewallRuleGroupDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Capacity != 0 { + ok := object.Key("Capacity") + ok.Integer(v.Capacity) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.RuleGroup != nil { + ok := object.Key("RuleGroup") + if err := awsRestjson1_serializeDocumentRuleGroupDetails(v.RuleGroup, ok); err != nil { + return err + } + } + + if v.RuleGroupArn != nil { + ok := object.Key("RuleGroupArn") + ok.String(*v.RuleGroupArn) + } + + if v.RuleGroupId != nil { + ok := object.Key("RuleGroupId") + ok.String(*v.RuleGroupId) + } + + if v.RuleGroupName != nil { + ok := object.Key("RuleGroupName") + ok.String(*v.RuleGroupName) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v *types.AwsOpenSearchServiceDomainClusterConfigDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14509,6 +14870,23 @@ func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesT return nil } +func awsRestjson1_serializeDocumentAwsS3BucketBucketVersioningConfiguration(v *types.AwsS3BucketBucketVersioningConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IsMfaDeleteEnabled { + ok := object.Key("IsMfaDeleteEnabled") + ok.Boolean(v.IsMfaDeleteEnabled) + } + + if v.Status != nil { + ok := object.Key("Status") + ok.String(*v.Status) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14539,6 +14917,13 @@ func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetail } } + if v.BucketVersioningConfiguration != nil { + ok := object.Key("BucketVersioningConfiguration") + if err := awsRestjson1_serializeDocumentAwsS3BucketBucketVersioningConfiguration(v.BucketVersioningConfiguration, ok); err != nil { + return err + } + } + if v.BucketWebsiteConfiguration != nil { ok := object.Key("BucketWebsiteConfiguration") if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfiguration(v.BucketWebsiteConfiguration, ok); err != nil { @@ -16927,7 +17312,136 @@ func awsRestjson1_serializeDocumentFindingProviderSeverity(v *types.FindingProvi return nil } -func awsRestjson1_serializeDocumentGeoLocation(v *types.GeoLocation, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentFirewallPolicyDetails(v *types.FirewallPolicyDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.StatefulRuleGroupReferences != nil { + ok := object.Key("StatefulRuleGroupReferences") + if err := awsRestjson1_serializeDocumentFirewallPolicyStatefulRuleGroupReferencesList(v.StatefulRuleGroupReferences, ok); err != nil { + return err + } + } + + if v.StatelessCustomActions != nil { + ok := object.Key("StatelessCustomActions") + if err := awsRestjson1_serializeDocumentFirewallPolicyStatelessCustomActionsList(v.StatelessCustomActions, ok); err != nil { + return err + } + } + + if v.StatelessDefaultActions != nil { + ok := object.Key("StatelessDefaultActions") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.StatelessDefaultActions, ok); err != nil { + return err + } + } + + if v.StatelessFragmentDefaultActions != nil { + ok := object.Key("StatelessFragmentDefaultActions") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.StatelessFragmentDefaultActions, ok); err != nil { + return err + } + } + + if v.StatelessRuleGroupReferences != nil { + ok := object.Key("StatelessRuleGroupReferences") + if err := awsRestjson1_serializeDocumentFirewallPolicyStatelessRuleGroupReferencesList(v.StatelessRuleGroupReferences, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatefulRuleGroupReferencesDetails(v *types.FirewallPolicyStatefulRuleGroupReferencesDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ResourceArn != nil { + ok := object.Key("ResourceArn") + ok.String(*v.ResourceArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatefulRuleGroupReferencesList(v []types.FirewallPolicyStatefulRuleGroupReferencesDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentFirewallPolicyStatefulRuleGroupReferencesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatelessCustomActionsDetails(v *types.FirewallPolicyStatelessCustomActionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ActionDefinition != nil { + ok := object.Key("ActionDefinition") + if err := awsRestjson1_serializeDocumentStatelessCustomActionDefinition(v.ActionDefinition, ok); err != nil { + return err + } + } + + if v.ActionName != nil { + ok := object.Key("ActionName") + ok.String(*v.ActionName) + } + + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatelessCustomActionsList(v []types.FirewallPolicyStatelessCustomActionsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentFirewallPolicyStatelessCustomActionsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatelessRuleGroupReferencesDetails(v *types.FirewallPolicyStatelessRuleGroupReferencesDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Priority != 0 { + ok := object.Key("Priority") + ok.Integer(v.Priority) + } + + if v.ResourceArn != nil { + ok := object.Key("ResourceArn") + ok.String(*v.ResourceArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentFirewallPolicyStatelessRuleGroupReferencesList(v []types.FirewallPolicyStatelessRuleGroupReferencesDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentFirewallPolicyStatelessRuleGroupReferencesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentGeoLocation(v *types.GeoLocation, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -18283,6 +18797,27 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsNetworkFirewallFirewall != nil { + ok := object.Key("AwsNetworkFirewallFirewall") + if err := awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallDetails(v.AwsNetworkFirewallFirewall, ok); err != nil { + return err + } + } + + if v.AwsNetworkFirewallFirewallPolicy != nil { + ok := object.Key("AwsNetworkFirewallFirewallPolicy") + if err := awsRestjson1_serializeDocumentAwsNetworkFirewallFirewallPolicyDetails(v.AwsNetworkFirewallFirewallPolicy, ok); err != nil { + return err + } + } + + if v.AwsNetworkFirewallRuleGroup != nil { + ok := object.Key("AwsNetworkFirewallRuleGroup") + if err := awsRestjson1_serializeDocumentAwsNetworkFirewallRuleGroupDetails(v.AwsNetworkFirewallRuleGroup, ok); err != nil { + return err + } + } + if v.AwsOpenSearchServiceDomain != nil { ok := object.Key("AwsOpenSearchServiceDomain") if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainDetails(v.AwsOpenSearchServiceDomain, ok); err != nil { @@ -18439,215 +18974,773 @@ func awsRestjson1_serializeDocumentResourceList(v []types.Resource, value smithy return nil } -func awsRestjson1_serializeDocumentSecurityGroups(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func awsRestjson1_serializeDocumentRuleGroupDetails(v *types.RuleGroupDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - for i := range v { - av := array.Value() - av.String(v[i]) + if v.RulesSource != nil { + ok := object.Key("RulesSource") + if err := awsRestjson1_serializeDocumentRuleGroupSource(v.RulesSource, ok); err != nil { + return err + } + } + + if v.RuleVariables != nil { + ok := object.Key("RuleVariables") + if err := awsRestjson1_serializeDocumentRuleGroupVariables(v.RuleVariables, ok); err != nil { + return err + } } + return nil } -func awsRestjson1_serializeDocumentSensitiveDataDetections(v *types.SensitiveDataDetections, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSource(v *types.RuleGroupSource, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Count != 0 { - ok := object.Key("Count") - ok.Long(v.Count) - } - - if v.Occurrences != nil { - ok := object.Key("Occurrences") - if err := awsRestjson1_serializeDocumentOccurrences(v.Occurrences, ok); err != nil { + if v.RulesSourceList != nil { + ok := object.Key("RulesSourceList") + if err := awsRestjson1_serializeDocumentRuleGroupSourceListDetails(v.RulesSourceList, ok); err != nil { return err } } - if v.Type != nil { - ok := object.Key("Type") - ok.String(*v.Type) + if v.RulesString != nil { + ok := object.Key("RulesString") + ok.String(*v.RulesString) } - return nil -} - -func awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v []types.SensitiveDataDetections, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.StatefulRules != nil { + ok := object.Key("StatefulRules") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesList(v.StatefulRules, ok); err != nil { + return err + } + } - for i := range v { - av := array.Value() - if err := awsRestjson1_serializeDocumentSensitiveDataDetections(&v[i], av); err != nil { + if v.StatelessRulesAndCustomActions != nil { + ok := object.Key("StatelessRulesAndCustomActions") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesAndCustomActionsDetails(v.StatelessRulesAndCustomActions, ok); err != nil { return err } } + return nil } -func awsRestjson1_serializeDocumentSensitiveDataResult(v *types.SensitiveDataResult, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceCustomActionsDetails(v *types.RuleGroupSourceCustomActionsDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Category != nil { - ok := object.Key("Category") - ok.String(*v.Category) - } - - if v.Detections != nil { - ok := object.Key("Detections") - if err := awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v.Detections, ok); err != nil { + if v.ActionDefinition != nil { + ok := object.Key("ActionDefinition") + if err := awsRestjson1_serializeDocumentStatelessCustomActionDefinition(v.ActionDefinition, ok); err != nil { return err } } - if v.TotalCount != 0 { - ok := object.Key("TotalCount") - ok.Long(v.TotalCount) + if v.ActionName != nil { + ok := object.Key("ActionName") + ok.String(*v.ActionName) } return nil } -func awsRestjson1_serializeDocumentSensitiveDataResultList(v []types.SensitiveDataResult, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceCustomActionsList(v []types.RuleGroupSourceCustomActionsDetails, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - if err := awsRestjson1_serializeDocumentSensitiveDataResult(&v[i], av); err != nil { + if err := awsRestjson1_serializeDocumentRuleGroupSourceCustomActionsDetails(&v[i], av); err != nil { return err } } return nil } -func awsRestjson1_serializeDocumentSeverity(v *types.Severity, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceListDetails(v *types.RuleGroupSourceListDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if len(v.Label) > 0 { - ok := object.Key("Label") - ok.String(string(v.Label)) - } - - if v.Normalized != 0 { - ok := object.Key("Normalized") - ok.Integer(v.Normalized) + if v.GeneratedRulesType != nil { + ok := object.Key("GeneratedRulesType") + ok.String(*v.GeneratedRulesType) } - if v.Original != nil { - ok := object.Key("Original") - ok.String(*v.Original) + if v.Targets != nil { + ok := object.Key("Targets") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Targets, ok); err != nil { + return err + } } - if v.Product != 0 { - ok := object.Key("Product") - switch { - case math.IsNaN(v.Product): - ok.String("NaN") - - case math.IsInf(v.Product, 1): - ok.String("Infinity") - - case math.IsInf(v.Product, -1): - ok.String("-Infinity") - - default: - ok.Double(v.Product) - + if v.TargetTypes != nil { + ok := object.Key("TargetTypes") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.TargetTypes, ok); err != nil { + return err } } return nil } -func awsRestjson1_serializeDocumentSeverityUpdate(v *types.SeverityUpdate, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesDetails(v *types.RuleGroupSourceStatefulRulesDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if len(v.Label) > 0 { - ok := object.Key("Label") - ok.String(string(v.Label)) + if v.Action != nil { + ok := object.Key("Action") + ok.String(*v.Action) } - if v.Normalized != 0 { - ok := object.Key("Normalized") - ok.Integer(v.Normalized) + if v.Header != nil { + ok := object.Key("Header") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesHeaderDetails(v.Header, ok); err != nil { + return err + } } - if v.Product != 0 { - ok := object.Key("Product") - switch { - case math.IsNaN(v.Product): - ok.String("NaN") - - case math.IsInf(v.Product, 1): - ok.String("Infinity") - - case math.IsInf(v.Product, -1): - ok.String("-Infinity") - - default: - ok.Double(v.Product) - + if v.RuleOptions != nil { + ok := object.Key("RuleOptions") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesOptionsList(v.RuleOptions, ok); err != nil { + return err } } return nil } -func awsRestjson1_serializeDocumentSoftwarePackage(v *types.SoftwarePackage, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesHeaderDetails(v *types.RuleGroupSourceStatefulRulesHeaderDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Architecture != nil { - ok := object.Key("Architecture") - ok.String(*v.Architecture) - } - - if v.Epoch != nil { - ok := object.Key("Epoch") - ok.String(*v.Epoch) + if v.Destination != nil { + ok := object.Key("Destination") + ok.String(*v.Destination) } - if v.FilePath != nil { - ok := object.Key("FilePath") - ok.String(*v.FilePath) + if v.DestinationPort != nil { + ok := object.Key("DestinationPort") + ok.String(*v.DestinationPort) } - if v.Name != nil { - ok := object.Key("Name") - ok.String(*v.Name) + if v.Direction != nil { + ok := object.Key("Direction") + ok.String(*v.Direction) } - if v.PackageManager != nil { - ok := object.Key("PackageManager") - ok.String(*v.PackageManager) + if v.Protocol != nil { + ok := object.Key("Protocol") + ok.String(*v.Protocol) } - if v.Release != nil { - ok := object.Key("Release") - ok.String(*v.Release) + if v.Source != nil { + ok := object.Key("Source") + ok.String(*v.Source) } - if v.Version != nil { - ok := object.Key("Version") - ok.String(*v.Version) + if v.SourcePort != nil { + ok := object.Key("SourcePort") + ok.String(*v.SourcePort) } return nil } -func awsRestjson1_serializeDocumentSoftwarePackageList(v []types.SoftwarePackage, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesList(v []types.RuleGroupSourceStatefulRulesDetails, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - if err := awsRestjson1_serializeDocumentSoftwarePackage(&v[i], av); err != nil { + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesOptionsDetails(v *types.RuleGroupSourceStatefulRulesOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Keyword != nil { + ok := object.Key("Keyword") + ok.String(*v.Keyword) + } + + if v.Settings != nil { + ok := object.Key("Settings") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesRuleOptionsSettingsList(v.Settings, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesOptionsList(v []types.RuleGroupSourceStatefulRulesOptionsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesOptionsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatefulRulesRuleOptionsSettingsList(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_serializeDocumentRuleGroupSourceStatelessRuleDefinition(v *types.RuleGroupSourceStatelessRuleDefinition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Actions != nil { + ok := object.Key("Actions") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Actions, ok); err != nil { + return err + } + } + + if v.MatchAttributes != nil { + ok := object.Key("MatchAttributes") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributes(v.MatchAttributes, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributes(v *types.RuleGroupSourceStatelessRuleMatchAttributes, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DestinationPorts != nil { + ok := object.Key("DestinationPorts") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList(v.DestinationPorts, ok); err != nil { + return err + } + } + + if v.Destinations != nil { + ok := object.Key("Destinations") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationsList(v.Destinations, ok); err != nil { + return err + } + } + + if v.Protocols != nil { + ok := object.Key("Protocols") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesProtocolsList(v.Protocols, ok); err != nil { + return err + } + } + + if v.SourcePorts != nil { + ok := object.Key("SourcePorts") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePortsList(v.SourcePorts, ok); err != nil { + return err + } + } + + if v.Sources != nil { + ok := object.Key("Sources") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcesList(v.Sources, ok); err != nil { + return err + } + } + + if v.TcpFlags != nil { + ok := object.Key("TcpFlags") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList(v.TcpFlags, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(v *types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FromPort != 0 { + ok := object.Key("FromPort") + ok.Integer(v.FromPort) + } + + if v.ToPort != 0 { + ok := object.Key("ToPort") + ok.Integer(v.ToPort) + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList(v []types.RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinations(v *types.RuleGroupSourceStatelessRuleMatchAttributesDestinations, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AddressDefinition != nil { + ok := object.Key("AddressDefinition") + ok.String(*v.AddressDefinition) + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinationsList(v []types.RuleGroupSourceStatelessRuleMatchAttributesDestinations, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesDestinations(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesProtocolsList(v []int32, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.Integer(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePorts(v *types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FromPort != 0 { + ok := object.Key("FromPort") + ok.Integer(v.FromPort) + } + + if v.ToPort != 0 { + ok := object.Key("ToPort") + ok.Integer(v.ToPort) + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePortsList(v []types.RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcePorts(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSources(v *types.RuleGroupSourceStatelessRuleMatchAttributesSources, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AddressDefinition != nil { + ok := object.Key("AddressDefinition") + ok.String(*v.AddressDefinition) + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSourcesList(v []types.RuleGroupSourceStatelessRuleMatchAttributesSources, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesSources(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlags(v *types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Flags != nil { + ok := object.Key("Flags") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Flags, ok); err != nil { + return err + } + } + + if v.Masks != nil { + ok := object.Key("Masks") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Masks, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList(v []types.RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleMatchAttributesTcpFlags(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesAndCustomActionsDetails(v *types.RuleGroupSourceStatelessRulesAndCustomActionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CustomActions != nil { + ok := object.Key("CustomActions") + if err := awsRestjson1_serializeDocumentRuleGroupSourceCustomActionsList(v.CustomActions, ok); err != nil { + return err + } + } + + if v.StatelessRules != nil { + ok := object.Key("StatelessRules") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesList(v.StatelessRules, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesDetails(v *types.RuleGroupSourceStatelessRulesDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Priority != 0 { + ok := object.Key("Priority") + ok.Integer(v.Priority) + } + + if v.RuleDefinition != nil { + ok := object.Key("RuleDefinition") + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRuleDefinition(v.RuleDefinition, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesList(v []types.RuleGroupSourceStatelessRulesDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentRuleGroupSourceStatelessRulesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupVariables(v *types.RuleGroupVariables, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IpSets != nil { + ok := object.Key("IpSets") + if err := awsRestjson1_serializeDocumentRuleGroupVariablesIpSetsDetails(v.IpSets, ok); err != nil { + return err + } + } + + if v.PortSets != nil { + ok := object.Key("PortSets") + if err := awsRestjson1_serializeDocumentRuleGroupVariablesPortSetsDetails(v.PortSets, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupVariablesIpSetsDetails(v *types.RuleGroupVariablesIpSetsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Definition != nil { + ok := object.Key("Definition") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Definition, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentRuleGroupVariablesPortSetsDetails(v *types.RuleGroupVariablesPortSetsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Definition != nil { + ok := object.Key("Definition") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Definition, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSecurityGroups(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_serializeDocumentSensitiveDataDetections(v *types.SensitiveDataDetections, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Count != 0 { + ok := object.Key("Count") + ok.Long(v.Count) + } + + if v.Occurrences != nil { + ok := object.Key("Occurrences") + if err := awsRestjson1_serializeDocumentOccurrences(v.Occurrences, ok); err != nil { + return err + } + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + +func awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v []types.SensitiveDataDetections, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentSensitiveDataDetections(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentSensitiveDataResult(v *types.SensitiveDataResult, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Category != nil { + ok := object.Key("Category") + ok.String(*v.Category) + } + + if v.Detections != nil { + ok := object.Key("Detections") + if err := awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v.Detections, ok); err != nil { + return err + } + } + + if v.TotalCount != 0 { + ok := object.Key("TotalCount") + ok.Long(v.TotalCount) + } + + return nil +} + +func awsRestjson1_serializeDocumentSensitiveDataResultList(v []types.SensitiveDataResult, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentSensitiveDataResult(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentSeverity(v *types.Severity, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Label) > 0 { + ok := object.Key("Label") + ok.String(string(v.Label)) + } + + if v.Normalized != 0 { + ok := object.Key("Normalized") + ok.Integer(v.Normalized) + } + + if v.Original != nil { + ok := object.Key("Original") + ok.String(*v.Original) + } + + if v.Product != 0 { + ok := object.Key("Product") + switch { + case math.IsNaN(v.Product): + ok.String("NaN") + + case math.IsInf(v.Product, 1): + ok.String("Infinity") + + case math.IsInf(v.Product, -1): + ok.String("-Infinity") + + default: + ok.Double(v.Product) + + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSeverityUpdate(v *types.SeverityUpdate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Label) > 0 { + ok := object.Key("Label") + ok.String(string(v.Label)) + } + + if v.Normalized != 0 { + ok := object.Key("Normalized") + ok.Integer(v.Normalized) + } + + if v.Product != 0 { + ok := object.Key("Product") + switch { + case math.IsNaN(v.Product): + ok.String("NaN") + + case math.IsInf(v.Product, 1): + ok.String("Infinity") + + case math.IsInf(v.Product, -1): + ok.String("-Infinity") + + default: + ok.Double(v.Product) + + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSoftwarePackage(v *types.SoftwarePackage, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Architecture != nil { + ok := object.Key("Architecture") + ok.String(*v.Architecture) + } + + if v.Epoch != nil { + ok := object.Key("Epoch") + ok.String(*v.Epoch) + } + + if v.FilePath != nil { + ok := object.Key("FilePath") + ok.String(*v.FilePath) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.PackageManager != nil { + ok := object.Key("PackageManager") + ok.String(*v.PackageManager) + } + + if v.Release != nil { + ok := object.Key("Release") + ok.String(*v.Release) + } + + if v.Version != nil { + ok := object.Key("Version") + ok.String(*v.Version) + } + + return nil +} + +func awsRestjson1_serializeDocumentSoftwarePackageList(v []types.SoftwarePackage, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentSoftwarePackage(&v[i], av); err != nil { return err } } @@ -18738,6 +19831,59 @@ func awsRestjson1_serializeDocumentStandardsSubscriptionRequests(v []types.Stand return nil } +func awsRestjson1_serializeDocumentStatelessCustomActionDefinition(v *types.StatelessCustomActionDefinition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.PublishMetricAction != nil { + ok := object.Key("PublishMetricAction") + if err := awsRestjson1_serializeDocumentStatelessCustomPublishMetricAction(v.PublishMetricAction, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentStatelessCustomPublishMetricAction(v *types.StatelessCustomPublishMetricAction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Dimensions != nil { + ok := object.Key("Dimensions") + if err := awsRestjson1_serializeDocumentStatelessCustomPublishMetricActionDimensionsList(v.Dimensions, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentStatelessCustomPublishMetricActionDimension(v *types.StatelessCustomPublishMetricActionDimension, 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 awsRestjson1_serializeDocumentStatelessCustomPublishMetricActionDimensionsList(v []types.StatelessCustomPublishMetricActionDimension, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentStatelessCustomPublishMetricActionDimension(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentStatusReason(v *types.StatusReason, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/securityhub/types/enums.go b/service/securityhub/types/enums.go index d513139ee86..335d9d9255a 100644 --- a/service/securityhub/types/enums.go +++ b/service/securityhub/types/enums.go @@ -359,6 +359,24 @@ func (StandardsStatus) Values() []StandardsStatus { } } +type StatusReasonCode string + +// Enum values for StatusReasonCode +const ( + StatusReasonCodeNoAvailableConfigurationRecorder StatusReasonCode = "NO_AVAILABLE_CONFIGURATION_RECORDER" + StatusReasonCodeInternalError StatusReasonCode = "INTERNAL_ERROR" +) + +// Values returns all known values for StatusReasonCode. 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 (StatusReasonCode) Values() []StatusReasonCode { + return []StatusReasonCode{ + "NO_AVAILABLE_CONFIGURATION_RECORDER", + "INTERNAL_ERROR", + } +} + type StringFilterComparison string // Enum values for StringFilterComparison diff --git a/service/securityhub/types/types.go b/service/securityhub/types/types.go index 3f57230471c..44bf0425733 100644 --- a/service/securityhub/types/types.go +++ b/service/securityhub/types/types.go @@ -575,9 +575,21 @@ type AwsApiGatewayV2StageDetails struct { noSmithyDocumentSerde } +// An Availability Zone for the automatic scaling group. +type AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails struct { + + // The name of the Availability Zone. + Value *string + + noSmithyDocumentSerde +} + // Provides details about an auto scaling group. type AwsAutoScalingAutoScalingGroupDetails struct { + // The list of Availability Zones for the automatic scaling group. + AvailabilityZones []AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails + // Indicates when the auto scaling group was created. Uses the date-time format // specified in RFC 3339 section 5.6, Internet Date/Time Format // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain @@ -597,6 +609,95 @@ type AwsAutoScalingAutoScalingGroupDetails struct { // The list of load balancers associated with the group. LoadBalancerNames []string + // The mixed instances policy for the automatic scaling group. + MixedInstancesPolicy *AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails + + noSmithyDocumentSerde +} + +// The mixed instances policy for the automatic scaling group. +type AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails struct { + + // The instances distribution. The instances distribution specifies the + // distribution of On-Demand Instances and Spot Instances, the maximum price to pay + // for Spot Instances, and how the Auto Scaling group allocates instance types to + // fulfill On-Demand and Spot capacity. + InstancesDistribution *AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails + + // The launch template to use and the instance types (overrides) to use to + // provision EC2 instances to fulfill On-Demand and Spot capacities. + LaunchTemplate *AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails + + noSmithyDocumentSerde +} + +// Information about the instances distribution. +type AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails struct { + + // How to allocate instance types to fulfill On-Demand capacity. + OnDemandAllocationStrategy *string + + // The minimum amount of the Auto Scaling group's capacity that must be fulfilled + // by On-Demand Instances. + OnDemandBaseCapacity int32 + + // The percentage of On-Demand Instances and Spot Instances for additional capacity + // beyond OnDemandBaseCapacity. + OnDemandPercentageAboveBaseCapacity int32 + + // How to allocate instances across Spot Instance pools. + SpotAllocationStrategy *string + + // The number of Spot Instance pools across which to allocate your Spot Instances. + SpotInstancePools int32 + + // The maximum price per unit hour that you are willing to pay for a Spot Instance. + SpotMaxPrice *string + + noSmithyDocumentSerde +} + +// Describes a launch template and overrides for a mixed instances policy. +type AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails struct { + + // The launch template to use. + LaunchTemplateSpecification *AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification + + // Property values to use to override the values in the launch template. + Overrides []AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails + + noSmithyDocumentSerde +} + +// Details about the launch template to use. +type AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification struct { + + // The identifier of the launch template. You must specify either LaunchTemplateId + // or LaunchTemplateName. + LaunchTemplateId *string + + // The name of the launch template. You must specify either LaunchTemplateId or + // LaunchTemplateName. + LaunchTemplateName *string + + // Identifies the version of the launch template. You can specify a version + // identifier, or use the values $Latest or $Default. + Version *string + + noSmithyDocumentSerde +} + +// Property values to use to override the values in the launch template. +type AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails struct { + + // The instance type. For example, m3.xlarge. + InstanceType *string + + // The number of capacity units provided by the specified instance type in terms of + // virtual CPUs, memory, storage, throughput, or other relative performance + // characteristic. + WeightedCapacity *string + noSmithyDocumentSerde } @@ -715,6 +816,9 @@ type AwsAutoScalingLaunchConfigurationDetails struct { // The name of the launch configuration. LaunchConfigurationName *string + // The metadata options for the instances. + MetadataOptions *AwsAutoScalingLaunchConfigurationMetadataOptions + // The tenancy of the instance. An instance with dedicated tenancy runs on // isolated, single-tenant hardware and can only be launched into a VPC. PlacementTenancy *string @@ -746,6 +850,24 @@ type AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails struct { noSmithyDocumentSerde } +// The metadata options for the instances. +type AwsAutoScalingLaunchConfigurationMetadataOptions struct { + + // Enables or disables the HTTP metadata endpoint on your instances. By default, + // the metadata endpoint is enabled. + HttpEndpoint *string + + // The HTTP PUT response hop limit for instance metadata requests. The larger the + // number, the further instance metadata requests can travel. + HttpPutResponseHopLimit int32 + + // Indicates whether token usage is required or optional for metadata requests. By + // default, token usage is optional. + HttpTokens *string + + noSmithyDocumentSerde +} + // Provides details about an Certificate Manager certificate. type AwsCertificateManagerCertificateDetails struct { @@ -5011,6 +5133,107 @@ type AwsLambdaLayerVersionDetails struct { noSmithyDocumentSerde } +// Details about an Network Firewall firewall. +type AwsNetworkFirewallFirewallDetails struct { + + // Whether the firewall is protected from deletion. If set to true, then the + // firewall cannot be deleted. + DeleteProtection bool + + // A description of the firewall. + Description *string + + // The ARN of the firewall. + FirewallArn *string + + // The identifier of the firewall. + FirewallId *string + + // A descriptive name of the firewall. + FirewallName *string + + // The ARN of the firewall policy. + FirewallPolicyArn *string + + // Whether the firewall is protected from a change to the firewall policy. If set + // to true, you cannot associate a different policy with the firewall. + FirewallPolicyChangeProtection bool + + // Whether the firewall is protected from a change to the subnet associations. If + // set to true, you cannot map different subnets to the firewall. + SubnetChangeProtection bool + + // The public subnets that Network Firewall uses for the firewall. Each subnet must + // belong to a different Availability Zone. + SubnetMappings []AwsNetworkFirewallFirewallSubnetMappingsDetails + + // The identifier of the VPC where the firewall is used. + VpcId *string + + noSmithyDocumentSerde +} + +// Details about a firewall policy. A firewall policy defines the behavior of a +// network firewall. +type AwsNetworkFirewallFirewallPolicyDetails struct { + + // A description of the firewall policy. + Description *string + + // The firewall policy configuration. + FirewallPolicy *FirewallPolicyDetails + + // The ARN of the firewall policy. + FirewallPolicyArn *string + + // The identifier of the firewall policy. + FirewallPolicyId *string + + // The name of the firewall policy. + FirewallPolicyName *string + + noSmithyDocumentSerde +} + +// A public subnet that Network Firewall uses for the firewall. +type AwsNetworkFirewallFirewallSubnetMappingsDetails struct { + + // The identifier of the subnet + SubnetId *string + + noSmithyDocumentSerde +} + +// Details about an Network Firewall rule group. Rule groups are used to inspect +// and control network traffic. Stateless rule groups apply to individual packets. +// Stateful rule groups apply to packets in the context of their traffic flow. Rule +// groups are referenced in firewall policies. +type AwsNetworkFirewallRuleGroupDetails struct { + + // The maximum number of operating resources that this rule group can use. + Capacity int32 + + // A description of the rule group. + Description *string + + // Details about the rule group. + RuleGroup *RuleGroupDetails + + // The ARN of the rule group. + RuleGroupArn *string + + // The identifier of the rule group. + RuleGroupId *string + + // The descriptive name of the rule group. + RuleGroupName *string + + // The type of rule group. A rule group can be stateful or stateless. + Type *string + + noSmithyDocumentSerde +} + // Details about the configuration of an OpenSearch cluster. type AwsOpenSearchServiceDomainClusterConfigDetails struct { @@ -6713,6 +6936,20 @@ type AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails struct { noSmithyDocumentSerde } +// Describes the versioning state of an S3 bucket. +type AwsS3BucketBucketVersioningConfiguration struct { + + // Specifies whether MFA delete is currently enabled in the S3 bucket versioning + // configuration. If the S3 bucket was never configured with MFA delete, then this + // attribute is not included. + IsMfaDeleteEnabled bool + + // The versioning status of the S3 bucket. + Status *string + + noSmithyDocumentSerde +} + // The details of an Amazon S3 bucket. type AwsS3BucketDetails struct { @@ -6728,6 +6965,9 @@ type AwsS3BucketDetails struct { // The notification configuration for the S3 bucket. BucketNotificationConfiguration *AwsS3BucketNotificationConfiguration + // The versioning state of an S3 bucket. + BucketVersioningConfiguration *AwsS3BucketBucketVersioningConfiguration + // The website configuration parameters for the S3 bucket. BucketWebsiteConfiguration *AwsS3BucketWebsiteConfiguration @@ -7566,21 +7806,41 @@ type AwsSecurityFindingFilters struct { // Security Hub also resets the workflow status from NOTIFIED or RESOLVED to NEW in // the following cases: // - // * The record state changes from ARCHIVED to ACTIVE. + // * RecordState changes from ARCHIVED to ACTIVE. // - // * The - // compliance status changes from PASSED to either WARNING, FAILED, or + // * + // Compliance.Status changes from PASSED to either WARNING, FAILED, or // NOT_AVAILABLE. // // * NOTIFIED - Indicates that the resource owner has been notified // about the security issue. Used when the initial reviewer is not the resource - // owner, and needs intervention from the resource owner. + // owner, and needs intervention from the resource owner. If one of the following + // occurs, the workflow status is changed automatically from NOTIFIED to NEW: + // + // * + // RecordState changes from ARCHIVED to ACTIVE. // - // * SUPPRESSED - The - // finding will not be reviewed again and will not be acted upon. + // * Compliance.Status changes from + // PASSED to FAILED, WARNING, or NOT_AVAILABLE. // - // * RESOLVED - The - // finding was reviewed and remediated and is now considered resolved. + // * SUPPRESSED - Indicates that you + // reviewed the finding and do not believe that any action is needed. The workflow + // status of a SUPPRESSED finding does not change if RecordState changes from + // ARCHIVED to ACTIVE. + // + // * RESOLVED - The finding was reviewed and remediated and is + // now considered resolved. The finding remains RESOLVED unless one of the + // following occurs: + // + // * RecordState changes from ARCHIVED to ACTIVE. + // + // * + // Compliance.Status changes from PASSED to FAILED, WARNING, or NOT_AVAILABLE. + // + // In + // those cases, the workflow status is automatically reset to NEW. For findings + // from controls, if Compliance.Status is PASSED, then Security Hub automatically + // sets the workflow status to RESOLVED. WorkflowStatus []StringFilter noSmithyDocumentSerde @@ -8265,6 +8525,67 @@ type FindingProviderSeverity struct { noSmithyDocumentSerde } +// Defines the behavior of the firewall. +type FirewallPolicyDetails struct { + + // The stateful rule groups that are used in the firewall policy. + StatefulRuleGroupReferences []FirewallPolicyStatefulRuleGroupReferencesDetails + + // The custom action definitions that are available to use in the firewall policy's + // StatelessDefaultActions setting. + StatelessCustomActions []FirewallPolicyStatelessCustomActionsDetails + + // The actions to take on a packet if it doesn't match any of the stateless rules + // in the policy. You must specify a standard action (aws:pass, aws:drop, + // aws:forward_to_sfe), and can optionally include a custom action from + // StatelessCustomActions. + StatelessDefaultActions []string + + // The actions to take on a fragmented UDP packet if it doesn't match any of the + // stateless rules in the policy. You must specify a standard action (aws:pass, + // aws:drop, aws:forward_to_sfe), and can optionally include a custom action from + // StatelessCustomActions. + StatelessFragmentDefaultActions []string + + // The stateless rule groups that are used in the firewall policy. + StatelessRuleGroupReferences []FirewallPolicyStatelessRuleGroupReferencesDetails + + noSmithyDocumentSerde +} + +// A stateful rule group that is used by the firewall policy. +type FirewallPolicyStatefulRuleGroupReferencesDetails struct { + + // The ARN of the stateful rule group. + ResourceArn *string + + noSmithyDocumentSerde +} + +// A custom action that can be used for stateless packet handling. +type FirewallPolicyStatelessCustomActionsDetails struct { + + // The definition of the custom action. + ActionDefinition *StatelessCustomActionDefinition + + // The name of the custom action. + ActionName *string + + noSmithyDocumentSerde +} + +// A stateless rule group that is used by the firewall policy. +type FirewallPolicyStatelessRuleGroupReferencesDetails struct { + + // The order in which to run the stateless rule group. + Priority int32 + + // The ARN of the stateless rule group. + ResourceArn *string + + noSmithyDocumentSerde +} + // Provides the latitude and longitude coordinates of a location. type GeoLocation struct { @@ -9221,6 +9542,15 @@ type ResourceDetails struct { // Details for a Lambda layer version. AwsLambdaLayerVersion *AwsLambdaLayerVersionDetails + // Details about an Network Firewall firewall. + AwsNetworkFirewallFirewall *AwsNetworkFirewallFirewallDetails + + // Details about an Network Firewall firewall policy. + AwsNetworkFirewallFirewallPolicy *AwsNetworkFirewallFirewallPolicyDetails + + // Details about an Network Firewall rule group. + AwsNetworkFirewallRuleGroup *AwsNetworkFirewallRuleGroupDetails + // Details about an Amazon OpenSearch Service domain. AwsOpenSearchServiceDomain *AwsOpenSearchServiceDomainDetails @@ -9307,6 +9637,284 @@ type Result struct { noSmithyDocumentSerde } +// Details about the rule group. +type RuleGroupDetails struct { + + // Additional settings to use in the specified rules. + RuleVariables *RuleGroupVariables + + // The rules and actions for the rule group. For stateful rule groups, can contain + // RulesString, RulesSourceList, or StatefulRules. For stateless rule groups, + // contains StatelessRulesAndCustomActions. + RulesSource *RuleGroupSource + + noSmithyDocumentSerde +} + +// The rules and actions for the rule group. +type RuleGroupSource struct { + + // Stateful inspection criteria for a domain list rule group. A domain list rule + // group determines access by specific protocols to specific domains. + RulesSourceList *RuleGroupSourceListDetails + + // Stateful inspection criteria, provided in Suricata compatible intrusion + // prevention system (IPS) rules. + RulesString *string + + // Suricata rule specifications. + StatefulRules []RuleGroupSourceStatefulRulesDetails + + // The stateless rules and custom actions used by a stateless rule group. + StatelessRulesAndCustomActions *RuleGroupSourceStatelessRulesAndCustomActionsDetails + + noSmithyDocumentSerde +} + +// A custom action definition. A custom action is an optional, non-standard action +// to use for stateless packet handling. +type RuleGroupSourceCustomActionsDetails struct { + + // The definition of a custom action. + ActionDefinition *StatelessCustomActionDefinition + + // A descriptive name of the custom action. + ActionName *string + + noSmithyDocumentSerde +} + +// Stateful inspection criteria for a domain list rule group. +type RuleGroupSourceListDetails struct { + + // Indicates whether to allow or deny access to the domains listed in Targets. + GeneratedRulesType *string + + // The protocols that you want to inspect. Specify LS_SNI for HTTPS. Specify + // HTTP_HOST for HTTP. You can specify either or both. + TargetTypes []string + + // The domains that you want to inspect for in your traffic flows. You can provide + // full domain names, or use the '.' prefix as a wildcard. For example, + // .example.com matches all domains that end with example.com. + Targets []string + + noSmithyDocumentSerde +} + +// A Suricata rule specification. +type RuleGroupSourceStatefulRulesDetails struct { + + // Defines what Network Firewall should do with the packets in a traffic flow when + // the flow matches the stateful rule criteria. + Action *string + + // The stateful inspection criteria for the rule. + Header *RuleGroupSourceStatefulRulesHeaderDetails + + // Additional options for the rule. + RuleOptions []RuleGroupSourceStatefulRulesOptionsDetails + + noSmithyDocumentSerde +} + +// The inspection criteria for a stateful rule. +type RuleGroupSourceStatefulRulesHeaderDetails struct { + + // The destination IP address or address range to inspect for, in CIDR notation. To + // match with any address, specify ANY. + Destination *string + + // The destination port to inspect for. You can specify an individual port, such as + // 1994. You also can specify a port range, such as 1990:1994. To match with any + // port, specify ANY. + DestinationPort *string + + // The direction of traffic flow to inspect. If set to ANY, the inspection matches + // bidirectional traffic, both from the source to the destination and from the + // destination to the source. If set to FORWARD, the inspection only matches + // traffic going from the source to the destination. + Direction *string + + // The protocol to inspect for. To inspector for all protocols, use IP. + Protocol *string + + // The source IP address or address range to inspect for, in CIDR notation. To + // match with any address, specify ANY. + Source *string + + // The source port to inspect for. You can specify an individual port, such as + // 1994. You also can specify a port range, such as 1990:1994. To match with any + // port, specify ANY. + SourcePort *string + + noSmithyDocumentSerde +} + +// A rule option for a stateful rule. +type RuleGroupSourceStatefulRulesOptionsDetails struct { + + // A keyword to look for. + Keyword *string + + // A list of settings. + Settings []string + + noSmithyDocumentSerde +} + +// The definition of the stateless rule. +type RuleGroupSourceStatelessRuleDefinition struct { + + // The actions to take on a packet that matches one of the stateless rule + // definition's match attributes. You must specify a standard action (aws:pass, + // aws:drop, or aws:forward_to_sfe). You can then add custom actions. + Actions []string + + // The criteria for Network Firewall to use to inspect an individual packet in a + // stateless rule inspection. + MatchAttributes *RuleGroupSourceStatelessRuleMatchAttributes + + noSmithyDocumentSerde +} + +// Criteria for the stateless rule. +type RuleGroupSourceStatelessRuleMatchAttributes struct { + + // A list of port ranges to specify the destination ports to inspect for. + DestinationPorts []RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts + + // The destination IP addresses and address ranges to inspect for, in CIDR + // notation. + Destinations []RuleGroupSourceStatelessRuleMatchAttributesDestinations + + // The protocols to inspect for. + Protocols []int32 + + // A list of port ranges to specify the source ports to inspect for. + SourcePorts []RuleGroupSourceStatelessRuleMatchAttributesSourcePorts + + // The source IP addresses and address ranges to inspect for, in CIDR notation. + Sources []RuleGroupSourceStatelessRuleMatchAttributesSources + + // The TCP flags and masks to inspect for. + TcpFlags []RuleGroupSourceStatelessRuleMatchAttributesTcpFlags + + noSmithyDocumentSerde +} + +// A port range to specify the destination ports to inspect for. +type RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts struct { + + // The starting port value for the port range. + FromPort int32 + + // The ending port value for the port range. + ToPort int32 + + noSmithyDocumentSerde +} + +// A destination IP address or range. +type RuleGroupSourceStatelessRuleMatchAttributesDestinations struct { + + // An IP address or a block of IP addresses. + AddressDefinition *string + + noSmithyDocumentSerde +} + +// A port range to specify the source ports to inspect for. +type RuleGroupSourceStatelessRuleMatchAttributesSourcePorts struct { + + // The starting port value for the port range. + FromPort int32 + + // The ending port value for the port range. + ToPort int32 + + noSmithyDocumentSerde +} + +// A source IP addresses and address range to inspect for. +type RuleGroupSourceStatelessRuleMatchAttributesSources struct { + + // An IP address or a block of IP addresses. + AddressDefinition *string + + noSmithyDocumentSerde +} + +// A set of TCP flags and masks to inspect for. +type RuleGroupSourceStatelessRuleMatchAttributesTcpFlags struct { + + // Defines the flags from the Masks setting that must be set in order for the + // packet to match. Flags that are listed must be set. Flags that are not listed + // must not be set. + Flags []string + + // The set of flags to consider in the inspection. If not specified, then all flags + // are inspected. + Masks []string + + noSmithyDocumentSerde +} + +// Stateless rules and custom actions for a stateless rule group. +type RuleGroupSourceStatelessRulesAndCustomActionsDetails struct { + + // Custom actions for the rule group. + CustomActions []RuleGroupSourceCustomActionsDetails + + // Stateless rules for the rule group. + StatelessRules []RuleGroupSourceStatelessRulesDetails + + noSmithyDocumentSerde +} + +// A stateless rule in the rule group. +type RuleGroupSourceStatelessRulesDetails struct { + + // Indicates the order in which to run this rule relative to all of the rules in + // the stateless rule group. + Priority int32 + + // Provides the definition of the stateless rule. + RuleDefinition *RuleGroupSourceStatelessRuleDefinition + + noSmithyDocumentSerde +} + +// Additional settings to use in the specified rules. +type RuleGroupVariables struct { + + // A list of IP addresses and address ranges, in CIDR notation. + IpSets *RuleGroupVariablesIpSetsDetails + + // A list of port ranges. + PortSets *RuleGroupVariablesPortSetsDetails + + noSmithyDocumentSerde +} + +// A list of IP addresses and address ranges, in CIDR notation. +type RuleGroupVariablesIpSetsDetails struct { + + // The list of IP addresses and ranges. + Definition []string + + noSmithyDocumentSerde +} + +// A list of port ranges. +type RuleGroupVariablesPortSetsDetails struct { + + // The list of port ranges. + Definition []string + + noSmithyDocumentSerde +} + // The list of detected instances of sensitive data. type SensitiveDataDetections struct { @@ -9556,6 +10164,18 @@ type StandardsControl struct { noSmithyDocumentSerde } +// The reason for the current status of a standard subscription. +type StandardsStatusReason struct { + + // The reason code that represents the reason for the current status of a standard + // subscription. + // + // This member is required. + StatusReasonCode StatusReasonCode + + noSmithyDocumentSerde +} + // A resource that represents your subscription to a supported standard. type StandardsSubscription struct { @@ -9593,6 +10213,9 @@ type StandardsSubscription struct { // This member is required. StandardsSubscriptionArn *string + // The reason for the current status. + StandardsStatusReason *StandardsStatusReason + noSmithyDocumentSerde } @@ -9611,6 +10234,34 @@ type StandardsSubscriptionRequest struct { noSmithyDocumentSerde } +// The definition of a custom action that can be used for stateless packet +// handling. +type StatelessCustomActionDefinition struct { + + // Information about metrics to publish to CloudWatch. + PublishMetricAction *StatelessCustomPublishMetricAction + + noSmithyDocumentSerde +} + +// Information about metrics to publish to CloudWatch. +type StatelessCustomPublishMetricAction struct { + + // Defines CloudWatch dimension values to publish. + Dimensions []StatelessCustomPublishMetricActionDimension + + noSmithyDocumentSerde +} + +// Defines a CloudWatch dimension value to publish. +type StatelessCustomPublishMetricActionDimension struct { + + // The value to use for the custom metric dimension. + Value *string + + noSmithyDocumentSerde +} + // Provides additional context for the value of Compliance.Status. type StatusReason struct { diff --git a/service/transfer/api_op_CreateServer.go b/service/transfer/api_op_CreateServer.go index 35f271b7e9a..753518e20f5 100644 --- a/service/transfer/api_op_CreateServer.go +++ b/service/transfer/api_op_CreateServer.go @@ -120,10 +120,10 @@ type CreateServerInput struct { // provide a Directory ID using the IdentityProviderDetails parameter. Use the // API_GATEWAY value to integrate with an identity provider of your choosing. The // API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - // for authentication using the IdentityProviderDetails parameter. Use the LAMBDA - // value to directly use a Lambda function as your identity provider. If you choose - // this value, you must specify the ARN for the lambda function in the Function - // parameter for the IdentityProviderDetails data type. + // for authentication using the IdentityProviderDetails parameter. Use the + // AWS_LAMBDA value to directly use a Lambda function as your identity provider. If + // you choose this value, you must specify the ARN for the lambda function in the + // Function parameter for the IdentityProviderDetails data type. IdentityProviderType types.IdentityProviderType // Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and @@ -132,6 +132,14 @@ type CreateServerInput struct { // viewed in your CloudWatch logs. LoggingRole *string + // The protocol settings that are configured for your server. Use the PassiveIp + // parameter to indicate passive mode (for FTP and FTPS protocols). Enter a single + // dotted-quad IPv4 address, such as the external IP address of a firewall, router, + // or load balancer. Use the TlsSessionResumptionMode parameter to determine + // whether or not your Transfer server resumes recent, negotiated sessions through + // a unique session ID. + ProtocolDetails *types.ProtocolDetails + // Specifies the file transfer protocol or protocols over which your file transfer // protocol client can connect to your server's endpoint. The available protocols // are: diff --git a/service/transfer/api_op_CreateUser.go b/service/transfer/api_op_CreateUser.go index 92280d71fb0..6abdb6e0e0f 100644 --- a/service/transfer/api_op_CreateUser.go +++ b/service/transfer/api_op_CreateUser.go @@ -117,7 +117,8 @@ type CreateUserInput struct { PosixProfile *types.PosixProfile // The public portion of the Secure Shell (SSH) key used to authenticate the user - // to the server. + // to the server. Currently, Transfer Family does not accept elliptical curve keys + // (keys beginning with ecdsa). SshPublicKeyBody *string // Key-value pairs that can be used to group and search for users. Tags are diff --git a/service/transfer/api_op_UpdateServer.go b/service/transfer/api_op_UpdateServer.go index 3e2eca49f91..761f558fc0e 100644 --- a/service/transfer/api_op_UpdateServer.go +++ b/service/transfer/api_op_UpdateServer.go @@ -116,7 +116,9 @@ type UpdateServerInput struct { // The protocol settings that are configured for your server. Use the PassiveIp // parameter to indicate passive mode (for FTP and FTPS protocols). Enter a single // dotted-quad IPv4 address, such as the external IP address of a firewall, router, - // or load balancer. + // or load balancer. Use the TlsSessionResumptionMode parameter to determine + // whether or not your Transfer server resumes recent, negotiated sessions through + // a unique session ID. ProtocolDetails *types.ProtocolDetails // Specifies the file transfer protocol or protocols over which your file transfer diff --git a/service/transfer/deserializers.go b/service/transfer/deserializers.go index acc3db91f51..a98da18bb58 100644 --- a/service/transfer/deserializers.go +++ b/service/transfer/deserializers.go @@ -6273,6 +6273,15 @@ func awsAwsjson11_deserializeDocumentProtocolDetails(v **types.ProtocolDetails, sv.PassiveIp = ptr.String(jtv) } + case "TlsSessionResumptionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TlsSessionResumptionMode to be of type string, got %T instead", value) + } + sv.TlsSessionResumptionMode = types.TlsSessionResumptionMode(jtv) + } + default: _, _ = key, value diff --git a/service/transfer/serializers.go b/service/transfer/serializers.go index 3af10d0fbef..4c2e26d6e12 100644 --- a/service/transfer/serializers.go +++ b/service/transfer/serializers.go @@ -2022,6 +2022,11 @@ func awsAwsjson11_serializeDocumentProtocolDetails(v *types.ProtocolDetails, val ok.String(*v.PassiveIp) } + if len(v.TlsSessionResumptionMode) > 0 { + ok := object.Key("TlsSessionResumptionMode") + ok.String(string(v.TlsSessionResumptionMode)) + } + return nil } @@ -2359,6 +2364,13 @@ func awsAwsjson11_serializeOpDocumentCreateServerInput(v *CreateServerInput, val ok.String(*v.LoggingRole) } + if v.ProtocolDetails != nil { + ok := object.Key("ProtocolDetails") + if err := awsAwsjson11_serializeDocumentProtocolDetails(v.ProtocolDetails, ok); err != nil { + return err + } + } + if v.Protocols != nil { ok := object.Key("Protocols") if err := awsAwsjson11_serializeDocumentProtocols(v.Protocols, ok); err != nil { diff --git a/service/transfer/types/enums.go b/service/transfer/types/enums.go index e36d7664af4..93ad7c8eaff 100644 --- a/service/transfer/types/enums.go +++ b/service/transfer/types/enums.go @@ -200,6 +200,26 @@ func (State) Values() []State { } } +type TlsSessionResumptionMode string + +// Enum values for TlsSessionResumptionMode +const ( + TlsSessionResumptionModeDisabled TlsSessionResumptionMode = "DISABLED" + TlsSessionResumptionModeEnabled TlsSessionResumptionMode = "ENABLED" + TlsSessionResumptionModeEnforced TlsSessionResumptionMode = "ENFORCED" +) + +// Values returns all known values for TlsSessionResumptionMode. 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 (TlsSessionResumptionMode) Values() []TlsSessionResumptionMode { + return []TlsSessionResumptionMode{ + "DISABLED", + "ENABLED", + "ENFORCED", + } +} + type WorkflowStepType string // Enum values for WorkflowStepType diff --git a/service/transfer/types/types.go b/service/transfer/types/types.go index b30f5c2c2b1..19f528db822 100644 --- a/service/transfer/types/types.go +++ b/service/transfer/types/types.go @@ -231,10 +231,10 @@ type DescribedServer struct { // provide a Directory ID using the IdentityProviderDetails parameter. Use the // API_GATEWAY value to integrate with an identity provider of your choosing. The // API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - // for authentication using the IdentityProviderDetails parameter. Use the LAMBDA - // value to directly use a Lambda function as your identity provider. If you choose - // this value, you must specify the ARN for the lambda function in the Function - // parameter for the IdentityProviderDetails data type. + // for authentication using the IdentityProviderDetails parameter. Use the + // AWS_LAMBDA value to directly use a Lambda function as your identity provider. If + // you choose this value, you must specify the ARN for the lambda function in the + // Function parameter for the IdentityProviderDetails data type. IdentityProviderType IdentityProviderType // Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and @@ -551,7 +551,7 @@ type HomeDirectoryMapEntry struct { // method of authentication. type IdentityProviderDetails struct { - // The identifier of the Amazon Web ServicesDirectory Service directory that you + // The identifier of the Amazon Web Services Directory Service directory that you // want to stop sharing. DirectoryId *string @@ -666,10 +666,10 @@ type ListedServer struct { // provide a Directory ID using the IdentityProviderDetails parameter. Use the // API_GATEWAY value to integrate with an identity provider of your choosing. The // API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - // for authentication using the IdentityProviderDetails parameter. Use the LAMBDA - // value to directly use a Lambda function as your identity provider. If you choose - // this value, you must specify the ARN for the lambda function in the Function - // parameter for the IdentityProviderDetails data type. + // for authentication using the IdentityProviderDetails parameter. Use the + // AWS_LAMBDA value to directly use a Lambda function as your identity provider. If + // you choose this value, you must specify the ARN for the lambda function in the + // Function parameter for the IdentityProviderDetails data type. IdentityProviderType IdentityProviderType // Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and @@ -796,8 +796,7 @@ type PosixProfile struct { noSmithyDocumentSerde } -// The protocol settings that are configured for your server. This type is only -// valid in the UpdateServer API. +// The protocol settings that are configured for your server. type ProtocolDetails struct { // Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad @@ -811,6 +810,33 @@ type ProtocolDetails struct { // (http://aws.amazon.com/blogs/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/). PassiveIp *string + // A property used with Transfer servers that use the FTPS protocol. TLS Session + // Resumption provides a mechanism to resume or share a negotiated secret key + // between the control and data connection for an FTPS session. + // TlsSessionResumptionMode determines whether or not the server resumes recent, + // negotiated sessions through a unique session ID. This property is available + // during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value + // is not specified during CreateServer, it is set to ENFORCED by default. + // + // * + // DISABLED: the server does not process TLS session resumption client requests and + // creates a new TLS session for each request. + // + // * ENABLED: the server processes and + // accepts clients that are performing TLS session resumption. The server doesn't + // reject client data connections that do not perform the TLS session resumption + // client processing. + // + // * ENFORCED: the server processes and accepts clients that + // are performing TLS session resumption. The server rejects client data + // connections that do not perform the TLS session resumption client processing. + // Before you set the value to ENFORCED, test your clients. Not all FTPS clients + // perform TLS session resumption. So, if you choose to enforce TLS session + // resumption, you prevent any connections from FTPS clients that don't perform the + // protocol negotiation. To determine whether or not you can use the ENFORCED + // value, you need to test your clients. + TlsSessionResumptionMode TlsSessionResumptionMode + noSmithyDocumentSerde } diff --git a/service/workmail/api_op_DeleteEmailMonitoringConfiguration.go b/service/workmail/api_op_DeleteEmailMonitoringConfiguration.go new file mode 100644 index 00000000000..1400cf9e3f0 --- /dev/null +++ b/service/workmail/api_op_DeleteEmailMonitoringConfiguration.go @@ -0,0 +1,117 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package workmail + +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 the email monitoring configuration for a specified organization. +func (c *Client) DeleteEmailMonitoringConfiguration(ctx context.Context, params *DeleteEmailMonitoringConfigurationInput, optFns ...func(*Options)) (*DeleteEmailMonitoringConfigurationOutput, error) { + if params == nil { + params = &DeleteEmailMonitoringConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteEmailMonitoringConfiguration", params, optFns, c.addOperationDeleteEmailMonitoringConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteEmailMonitoringConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteEmailMonitoringConfigurationInput struct { + + // The ID of the organization from which the email monitoring configuration is + // deleted. + // + // This member is required. + OrganizationId *string + + noSmithyDocumentSerde +} + +type DeleteEmailMonitoringConfigurationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteEmailMonitoringConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteEmailMonitoringConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteEmailMonitoringConfiguration{}, 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 = addOpDeleteEmailMonitoringConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteEmailMonitoringConfiguration(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_opDeleteEmailMonitoringConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "workmail", + OperationName: "DeleteEmailMonitoringConfiguration", + } +} diff --git a/service/workmail/api_op_DescribeEmailMonitoringConfiguration.go b/service/workmail/api_op_DescribeEmailMonitoringConfiguration.go new file mode 100644 index 00000000000..2b5be86d405 --- /dev/null +++ b/service/workmail/api_op_DescribeEmailMonitoringConfiguration.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package workmail + +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" +) + +// Describes the current email monitoring configuration for a specified +// organization. +func (c *Client) DescribeEmailMonitoringConfiguration(ctx context.Context, params *DescribeEmailMonitoringConfigurationInput, optFns ...func(*Options)) (*DescribeEmailMonitoringConfigurationOutput, error) { + if params == nil { + params = &DescribeEmailMonitoringConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeEmailMonitoringConfiguration", params, optFns, c.addOperationDescribeEmailMonitoringConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeEmailMonitoringConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeEmailMonitoringConfigurationInput struct { + + // The ID of the organization for which the email monitoring configuration is + // described. + // + // This member is required. + OrganizationId *string + + noSmithyDocumentSerde +} + +type DescribeEmailMonitoringConfigurationOutput struct { + + // The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the + // email monitoring configuration. + LogGroupArn *string + + // The Amazon Resource Name (ARN) of the IAM Role associated with the email + // monitoring configuration. + RoleArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeEmailMonitoringConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeEmailMonitoringConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeEmailMonitoringConfiguration{}, 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 = addOpDescribeEmailMonitoringConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeEmailMonitoringConfiguration(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_opDescribeEmailMonitoringConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "workmail", + OperationName: "DescribeEmailMonitoringConfiguration", + } +} diff --git a/service/workmail/api_op_PutEmailMonitoringConfiguration.go b/service/workmail/api_op_PutEmailMonitoringConfiguration.go new file mode 100644 index 00000000000..69269d7b0dc --- /dev/null +++ b/service/workmail/api_op_PutEmailMonitoringConfiguration.go @@ -0,0 +1,129 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package workmail + +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" +) + +// Creates or updates the email monitoring configuration for a specified +// organization. +func (c *Client) PutEmailMonitoringConfiguration(ctx context.Context, params *PutEmailMonitoringConfigurationInput, optFns ...func(*Options)) (*PutEmailMonitoringConfigurationOutput, error) { + if params == nil { + params = &PutEmailMonitoringConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutEmailMonitoringConfiguration", params, optFns, c.addOperationPutEmailMonitoringConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutEmailMonitoringConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutEmailMonitoringConfigurationInput struct { + + // The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the + // email monitoring configuration. + // + // This member is required. + LogGroupArn *string + + // The ID of the organization for which the email monitoring configuration is set. + // + // This member is required. + OrganizationId *string + + // The Amazon Resource Name (ARN) of the IAM Role associated with the email + // monitoring configuration. + // + // This member is required. + RoleArn *string + + noSmithyDocumentSerde +} + +type PutEmailMonitoringConfigurationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutEmailMonitoringConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutEmailMonitoringConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutEmailMonitoringConfiguration{}, 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 = addOpPutEmailMonitoringConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutEmailMonitoringConfiguration(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_opPutEmailMonitoringConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "workmail", + OperationName: "PutEmailMonitoringConfiguration", + } +} diff --git a/service/workmail/deserializers.go b/service/workmail/deserializers.go index 5519dc97162..f92a8a752a7 100644 --- a/service/workmail/deserializers.go +++ b/service/workmail/deserializers.go @@ -1406,6 +1406,123 @@ func awsAwsjson11_deserializeOpErrorDeleteAlias(response *smithyhttp.Response, m } } +type awsAwsjson11_deserializeOpDeleteEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_deserializeOpDeleteEmailMonitoringConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteEmailMonitoringConfiguration) HandleDeserialize(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_deserializeOpErrorDeleteEmailMonitoringConfiguration(response, &metadata) + } + output := &DeleteEmailMonitoringConfigurationOutput{} + 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_deserializeOpDocumentDeleteEmailMonitoringConfigurationOutput(&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_deserializeOpErrorDeleteEmailMonitoringConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidParameterException", errorCode): + return awsAwsjson11_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationStateException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationStateException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDeleteGroup struct { } @@ -2624,6 +2741,126 @@ func awsAwsjson11_deserializeOpErrorDeregisterMailDomain(response *smithyhttp.Re } } +type awsAwsjson11_deserializeOpDescribeEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_deserializeOpDescribeEmailMonitoringConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeEmailMonitoringConfiguration) HandleDeserialize(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_deserializeOpErrorDescribeEmailMonitoringConfiguration(response, &metadata) + } + output := &DescribeEmailMonitoringConfigurationOutput{} + 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_deserializeOpDocumentDescribeEmailMonitoringConfigurationOutput(&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_deserializeOpErrorDescribeEmailMonitoringConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidParameterException", errorCode): + return awsAwsjson11_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationStateException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationStateException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDescribeGroup struct { } @@ -6077,6 +6314,126 @@ func awsAwsjson11_deserializeOpErrorPutAccessControlRule(response *smithyhttp.Re } } +type awsAwsjson11_deserializeOpPutEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_deserializeOpPutEmailMonitoringConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpPutEmailMonitoringConfiguration) HandleDeserialize(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_deserializeOpErrorPutEmailMonitoringConfiguration(response, &metadata) + } + output := &PutEmailMonitoringConfigurationOutput{} + 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_deserializeOpDocumentPutEmailMonitoringConfigurationOutput(&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_deserializeOpErrorPutEmailMonitoringConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("InvalidParameterException", errorCode): + return awsAwsjson11_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationStateException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationStateException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpPutInboundDmarcSettings struct { } @@ -12307,6 +12664,37 @@ func awsAwsjson11_deserializeOpDocumentDeleteAliasOutput(v **DeleteAliasOutput, return nil } +func awsAwsjson11_deserializeOpDocumentDeleteEmailMonitoringConfigurationOutput(v **DeleteEmailMonitoringConfigurationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteEmailMonitoringConfigurationOutput + if *v == nil { + sv = &DeleteEmailMonitoringConfigurationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteGroupOutput(v **DeleteGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12635,6 +13023,55 @@ func awsAwsjson11_deserializeOpDocumentDeregisterMailDomainOutput(v **Deregister return nil } +func awsAwsjson11_deserializeOpDocumentDescribeEmailMonitoringConfigurationOutput(v **DescribeEmailMonitoringConfigurationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeEmailMonitoringConfigurationOutput + if *v == nil { + sv = &DescribeEmailMonitoringConfigurationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "LogGroupArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LogGroupArn to be of type string, got %T instead", value) + } + sv.LogGroupArn = ptr.String(jtv) + } + + case "RoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.RoleArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14378,6 +14815,37 @@ func awsAwsjson11_deserializeOpDocumentPutAccessControlRuleOutput(v **PutAccessC return nil } +func awsAwsjson11_deserializeOpDocumentPutEmailMonitoringConfigurationOutput(v **PutEmailMonitoringConfigurationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *PutEmailMonitoringConfigurationOutput + if *v == nil { + sv = &PutEmailMonitoringConfigurationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentPutInboundDmarcSettingsOutput(v **PutInboundDmarcSettingsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/workmail/generated.json b/service/workmail/generated.json index 645882243a8..d9f231795a4 100644 --- a/service/workmail/generated.json +++ b/service/workmail/generated.json @@ -18,6 +18,7 @@ "api_op_CreateUser.go", "api_op_DeleteAccessControlRule.go", "api_op_DeleteAlias.go", + "api_op_DeleteEmailMonitoringConfiguration.go", "api_op_DeleteGroup.go", "api_op_DeleteMailboxPermissions.go", "api_op_DeleteMobileDeviceAccessOverride.go", @@ -28,6 +29,7 @@ "api_op_DeleteUser.go", "api_op_DeregisterFromWorkMail.go", "api_op_DeregisterMailDomain.go", + "api_op_DescribeEmailMonitoringConfiguration.go", "api_op_DescribeGroup.go", "api_op_DescribeInboundDmarcSettings.go", "api_op_DescribeMailboxExportJob.go", @@ -57,6 +59,7 @@ "api_op_ListTagsForResource.go", "api_op_ListUsers.go", "api_op_PutAccessControlRule.go", + "api_op_PutEmailMonitoringConfiguration.go", "api_op_PutInboundDmarcSettings.go", "api_op_PutMailboxPermissions.go", "api_op_PutMobileDeviceAccessOverride.go", diff --git a/service/workmail/serializers.go b/service/workmail/serializers.go index 7823a50e68b..6130dcab216 100644 --- a/service/workmail/serializers.go +++ b/service/workmail/serializers.go @@ -620,6 +620,61 @@ func (m *awsAwsjson11_serializeOpDeleteAlias) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_serializeOpDeleteEmailMonitoringConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteEmailMonitoringConfiguration) 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.(*DeleteEmailMonitoringConfigurationInput) + _ = 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("WorkMailService.DeleteEmailMonitoringConfiguration") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteEmailMonitoringConfigurationInput(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_serializeOpDeleteGroup struct { } @@ -1170,6 +1225,61 @@ func (m *awsAwsjson11_serializeOpDeregisterMailDomain) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_serializeOpDescribeEmailMonitoringConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeEmailMonitoringConfiguration) 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.(*DescribeEmailMonitoringConfigurationInput) + _ = 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("WorkMailService.DescribeEmailMonitoringConfiguration") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeEmailMonitoringConfigurationInput(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_serializeOpDescribeGroup struct { } @@ -2765,6 +2875,61 @@ func (m *awsAwsjson11_serializeOpPutAccessControlRule) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpPutEmailMonitoringConfiguration struct { +} + +func (*awsAwsjson11_serializeOpPutEmailMonitoringConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpPutEmailMonitoringConfiguration) 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.(*PutEmailMonitoringConfigurationInput) + _ = 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("WorkMailService.PutEmailMonitoringConfiguration") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentPutEmailMonitoringConfigurationInput(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_serializeOpPutInboundDmarcSettings struct { } @@ -4125,6 +4290,18 @@ func awsAwsjson11_serializeOpDocumentDeleteAliasInput(v *DeleteAliasInput, value return nil } +func awsAwsjson11_serializeOpDocumentDeleteEmailMonitoringConfigurationInput(v *DeleteEmailMonitoringConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OrganizationId != nil { + ok := object.Key("OrganizationId") + ok.String(*v.OrganizationId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteGroupInput(v *DeleteGroupInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4310,6 +4487,18 @@ func awsAwsjson11_serializeOpDocumentDeregisterMailDomainInput(v *DeregisterMail return nil } +func awsAwsjson11_serializeOpDocumentDescribeEmailMonitoringConfigurationInput(v *DescribeEmailMonitoringConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OrganizationId != nil { + ok := object.Key("OrganizationId") + ok.String(*v.OrganizationId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeGroupInput(v *DescribeGroupInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4945,6 +5134,28 @@ func awsAwsjson11_serializeOpDocumentPutAccessControlRuleInput(v *PutAccessContr return nil } +func awsAwsjson11_serializeOpDocumentPutEmailMonitoringConfigurationInput(v *PutEmailMonitoringConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LogGroupArn != nil { + ok := object.Key("LogGroupArn") + ok.String(*v.LogGroupArn) + } + + if v.OrganizationId != nil { + ok := object.Key("OrganizationId") + ok.String(*v.OrganizationId) + } + + if v.RoleArn != nil { + ok := object.Key("RoleArn") + ok.String(*v.RoleArn) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentPutInboundDmarcSettingsInput(v *PutInboundDmarcSettingsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/workmail/validators.go b/service/workmail/validators.go index 93c5f4de6f0..1ba73e4a079 100644 --- a/service/workmail/validators.go +++ b/service/workmail/validators.go @@ -230,6 +230,26 @@ func (m *validateOpDeleteAlias) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpDeleteEmailMonitoringConfiguration struct { +} + +func (*validateOpDeleteEmailMonitoringConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteEmailMonitoringConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteEmailMonitoringConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteEmailMonitoringConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteGroup struct { } @@ -430,6 +450,26 @@ func (m *validateOpDeregisterMailDomain) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpDescribeEmailMonitoringConfiguration struct { +} + +func (*validateOpDescribeEmailMonitoringConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeEmailMonitoringConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeEmailMonitoringConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeEmailMonitoringConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeGroup struct { } @@ -990,6 +1030,26 @@ func (m *validateOpPutAccessControlRule) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpPutEmailMonitoringConfiguration struct { +} + +func (*validateOpPutEmailMonitoringConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutEmailMonitoringConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutEmailMonitoringConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutEmailMonitoringConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutInboundDmarcSettings struct { } @@ -1334,6 +1394,10 @@ func addOpDeleteAliasValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAlias{}, middleware.After) } +func addOpDeleteEmailMonitoringConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteEmailMonitoringConfiguration{}, middleware.After) +} + func addOpDeleteGroupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteGroup{}, middleware.After) } @@ -1374,6 +1438,10 @@ func addOpDeregisterMailDomainValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpDeregisterMailDomain{}, middleware.After) } +func addOpDescribeEmailMonitoringConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeEmailMonitoringConfiguration{}, middleware.After) +} + func addOpDescribeGroupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeGroup{}, middleware.After) } @@ -1486,6 +1554,10 @@ func addOpPutAccessControlRuleValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpPutAccessControlRule{}, middleware.After) } +func addOpPutEmailMonitoringConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutEmailMonitoringConfiguration{}, middleware.After) +} + func addOpPutInboundDmarcSettingsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutInboundDmarcSettings{}, middleware.After) } @@ -1838,6 +1910,21 @@ func validateOpDeleteAliasInput(v *DeleteAliasInput) error { } } +func validateOpDeleteEmailMonitoringConfigurationInput(v *DeleteEmailMonitoringConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteEmailMonitoringConfigurationInput"} + if v.OrganizationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OrganizationId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteGroupInput(v *DeleteGroupInput) error { if v == nil { return nil @@ -2021,6 +2108,21 @@ func validateOpDeregisterMailDomainInput(v *DeregisterMailDomainInput) error { } } +func validateOpDescribeEmailMonitoringConfigurationInput(v *DescribeEmailMonitoringConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeEmailMonitoringConfigurationInput"} + if v.OrganizationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OrganizationId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeGroupInput(v *DescribeGroupInput) error { if v == nil { return nil @@ -2507,6 +2609,27 @@ func validateOpPutAccessControlRuleInput(v *PutAccessControlRuleInput) error { } } +func validateOpPutEmailMonitoringConfigurationInput(v *PutEmailMonitoringConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutEmailMonitoringConfigurationInput"} + if v.OrganizationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OrganizationId")) + } + if v.RoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoleArn")) + } + if v.LogGroupArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("LogGroupArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutInboundDmarcSettingsInput(v *PutInboundDmarcSettingsInput) error { if v == nil { return nil From 97386d6afc140dce63d323165ecca5bc8b834c4a Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Fri, 10 Dec 2021 11:25:34 -0800 Subject: [PATCH 3/7] documentation: Updated Service Clients --- service/apigateway/api_op_CreateUsagePlan.go | 19 +- service/apigateway/api_op_GetUsagePlan.go | 19 +- service/apigateway/api_op_UpdateUsagePlan.go | 19 +- service/apigateway/types/types.go | 28 +- ...nableHealthServiceAccessForOrganization.go | 18 +- service/health/doc.go | 9 +- service/health/types/types.go | 2 +- .../savingsplans/api_op_CreateSavingsPlan.go | 2 +- .../api_op_CancelRotateSecret.go | 58 +--- service/secretsmanager/api_op_CreateSecret.go | 275 +++++++----------- .../api_op_DeleteResourcePolicy.go | 25 +- service/secretsmanager/api_op_DeleteSecret.go | 97 +++--- .../secretsmanager/api_op_DescribeSecret.go | 125 ++++---- .../api_op_GetRandomPassword.go | 54 ++-- .../api_op_GetResourcePolicy.go | 43 +-- .../secretsmanager/api_op_GetSecretValue.go | 82 ++---- .../api_op_ListSecretVersionIds.go | 86 ++---- service/secretsmanager/api_op_ListSecrets.go | 70 ++--- .../api_op_PutResourcePolicy.go | 59 ++-- .../secretsmanager/api_op_PutSecretValue.go | 182 ++++-------- .../api_op_RemoveRegionsFromReplication.go | 12 +- .../api_op_ReplicateSecretToRegions.go | 18 +- .../secretsmanager/api_op_RestoreSecret.go | 19 +- service/secretsmanager/api_op_RotateSecret.go | 117 +++----- .../api_op_StopReplicationToReplica.go | 11 +- service/secretsmanager/api_op_TagResource.go | 77 ++--- .../secretsmanager/api_op_UntagResource.go | 35 +-- service/secretsmanager/api_op_UpdateSecret.go | 210 ++++--------- .../api_op_UpdateSecretVersionStage.go | 71 ++--- .../api_op_ValidateResourcePolicy.go | 46 +-- service/secretsmanager/doc.go | 2 +- service/secretsmanager/types/errors.go | 33 +-- service/secretsmanager/types/types.go | 46 ++- service/sms/api_op_CreateApp.go | 3 +- service/sms/api_op_CreateReplicationJob.go | 6 +- service/sms/api_op_DeleteApp.go | 4 +- service/sms/api_op_DeleteReplicationJob.go | 6 +- service/sms/api_op_DisassociateConnector.go | 4 +- service/sms/api_op_GenerateTemplate.go | 9 +- .../sms/api_op_GetAppLaunchConfiguration.go | 4 +- service/sms/api_op_GetConnectors.go | 2 +- service/sms/api_op_ImportAppCatalog.go | 8 +- service/sms/api_op_LaunchApp.go | 2 +- .../sms/api_op_NotifyAppValidationOutput.go | 4 +- .../sms/api_op_PutAppLaunchConfiguration.go | 4 +- service/sms/api_op_UpdateApp.go | 3 +- service/sms/api_op_UpdateReplicationJob.go | 2 +- service/sms/doc.go | 24 +- service/sms/types/types.go | 9 +- service/support/api_op_AddAttachmentsToSet.go | 11 +- .../support/api_op_AddCommunicationToCase.go | 19 +- service/support/api_op_CreateCase.go | 86 +++--- service/support/api_op_DescribeAttachment.go | 11 +- service/support/api_op_DescribeCases.go | 21 +- .../support/api_op_DescribeCommunications.go | 11 +- service/support/api_op_DescribeServices.go | 48 +-- .../support/api_op_DescribeSeverityLevels.go | 20 +- ...cribeTrustedAdvisorCheckRefreshStatuses.go | 25 +- ...pi_op_DescribeTrustedAdvisorCheckResult.go | 25 +- ...op_DescribeTrustedAdvisorCheckSummaries.go | 15 +- .../api_op_DescribeTrustedAdvisorChecks.go | 38 +-- .../api_op_RefreshTrustedAdvisorCheck.go | 22 +- service/support/api_op_ResolveCase.go | 11 +- service/support/doc.go | 98 ++++--- service/support/types/types.go | 159 +++++----- 65 files changed, 1119 insertions(+), 1564 deletions(-) diff --git a/service/apigateway/api_op_CreateUsagePlan.go b/service/apigateway/api_op_CreateUsagePlan.go index 9c4d3d7c34c..9b6927a20cc 100644 --- a/service/apigateway/api_op_CreateUsagePlan.go +++ b/service/apigateway/api_op_CreateUsagePlan.go @@ -58,10 +58,16 @@ type CreateUsagePlanInput struct { noSmithyDocumentSerde } -// Represents a usage plan than can specify who can assess associated API stages -// with specified request limits and quotas. In a usage plan, you associate an API -// by specifying the API's Id and a stage name of the specified API. You add plan -// customers by adding API keys to the plan. Create and Use Usage Plans +// Represents a usage plan used to specify who can assess associated API stages. +// Optionally, target request rate and quota limits can be set. In some cases +// clients can exceed the targets that you set. Don’t rely on usage plans to +// control costs. Consider using AWS Budgets +// (https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) +// to monitor costs and AWS WAF +// (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to +// manage API requests. In a usage plan, you associate an API by specifying the +// API's Id and a stage name of the specified API. You add plan customers by adding +// API keys to the plan. Create and Use Usage Plans // (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) type CreateUsagePlanOutput struct { @@ -81,13 +87,14 @@ type CreateUsagePlanOutput struct { // product on AWS Marketplace. ProductCode *string - // The maximum number of permitted requests per a given unit time interval. + // The target maximum number of permitted requests per a given unit time interval. Quota *types.QuotaSettings // The collection of tags. Each tag element is associated with a given resource. Tags map[string]string - // The request throttle limits of a usage plan. + // Map containing method level throttling information for API stage in a usage + // plan. Throttle *types.ThrottleSettings // Metadata pertaining to the operation's result. diff --git a/service/apigateway/api_op_GetUsagePlan.go b/service/apigateway/api_op_GetUsagePlan.go index b66086cbda5..e100cd110a7 100644 --- a/service/apigateway/api_op_GetUsagePlan.go +++ b/service/apigateway/api_op_GetUsagePlan.go @@ -38,10 +38,16 @@ type GetUsagePlanInput struct { noSmithyDocumentSerde } -// Represents a usage plan than can specify who can assess associated API stages -// with specified request limits and quotas. In a usage plan, you associate an API -// by specifying the API's Id and a stage name of the specified API. You add plan -// customers by adding API keys to the plan. Create and Use Usage Plans +// Represents a usage plan used to specify who can assess associated API stages. +// Optionally, target request rate and quota limits can be set. In some cases +// clients can exceed the targets that you set. Don’t rely on usage plans to +// control costs. Consider using AWS Budgets +// (https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) +// to monitor costs and AWS WAF +// (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to +// manage API requests. In a usage plan, you associate an API by specifying the +// API's Id and a stage name of the specified API. You add plan customers by adding +// API keys to the plan. Create and Use Usage Plans // (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) type GetUsagePlanOutput struct { @@ -61,13 +67,14 @@ type GetUsagePlanOutput struct { // product on AWS Marketplace. ProductCode *string - // The maximum number of permitted requests per a given unit time interval. + // The target maximum number of permitted requests per a given unit time interval. Quota *types.QuotaSettings // The collection of tags. Each tag element is associated with a given resource. Tags map[string]string - // The request throttle limits of a usage plan. + // Map containing method level throttling information for API stage in a usage + // plan. Throttle *types.ThrottleSettings // Metadata pertaining to the operation's result. diff --git a/service/apigateway/api_op_UpdateUsagePlan.go b/service/apigateway/api_op_UpdateUsagePlan.go index 94761c3b454..1ddfa432ae1 100644 --- a/service/apigateway/api_op_UpdateUsagePlan.go +++ b/service/apigateway/api_op_UpdateUsagePlan.go @@ -42,10 +42,16 @@ type UpdateUsagePlanInput struct { noSmithyDocumentSerde } -// Represents a usage plan than can specify who can assess associated API stages -// with specified request limits and quotas. In a usage plan, you associate an API -// by specifying the API's Id and a stage name of the specified API. You add plan -// customers by adding API keys to the plan. Create and Use Usage Plans +// Represents a usage plan used to specify who can assess associated API stages. +// Optionally, target request rate and quota limits can be set. In some cases +// clients can exceed the targets that you set. Don’t rely on usage plans to +// control costs. Consider using AWS Budgets +// (https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) +// to monitor costs and AWS WAF +// (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to +// manage API requests. In a usage plan, you associate an API by specifying the +// API's Id and a stage name of the specified API. You add plan customers by adding +// API keys to the plan. Create and Use Usage Plans // (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) type UpdateUsagePlanOutput struct { @@ -65,13 +71,14 @@ type UpdateUsagePlanOutput struct { // product on AWS Marketplace. ProductCode *string - // The maximum number of permitted requests per a given unit time interval. + // The target maximum number of permitted requests per a given unit time interval. Quota *types.QuotaSettings // The collection of tags. Each tag element is associated with a given resource. Tags map[string]string - // The request throttle limits of a usage plan. + // Map containing method level throttling information for API stage in a usage + // plan. Throttle *types.ThrottleSettings // Metadata pertaining to the operation's result. diff --git a/service/apigateway/types/types.go b/service/apigateway/types/types.go index ac301443b13..565e9b62737 100644 --- a/service/apigateway/types/types.go +++ b/service/apigateway/types/types.go @@ -1322,7 +1322,7 @@ type PatchOperation struct { // Quotas configured for a usage plan. type QuotaSettings struct { - // The maximum number of requests that can be made in a given time period. + // The target maximum number of requests that can be made in a given time period. Limit int32 // The day that a time period starts. For example, with a time period of WEEK, an @@ -1651,12 +1651,11 @@ type StageKey struct { // The API request rate limits. type ThrottleSettings struct { - // The API request burst limit, the maximum rate limit over a time ranging from one - // to a few seconds, depending upon whether the underlying token bucket is at its - // full capacity. + // The API target request burst rate limit. This allows more requests through for a + // period of time than the target rate limit. BurstLimit int32 - // The API request steady-state rate limit. + // The API target request rate limit. RateLimit float64 noSmithyDocumentSerde @@ -1677,10 +1676,16 @@ type TlsConfig struct { noSmithyDocumentSerde } -// Represents a usage plan than can specify who can assess associated API stages -// with specified request limits and quotas. In a usage plan, you associate an API -// by specifying the API's Id and a stage name of the specified API. You add plan -// customers by adding API keys to the plan. Create and Use Usage Plans +// Represents a usage plan used to specify who can assess associated API stages. +// Optionally, target request rate and quota limits can be set. In some cases +// clients can exceed the targets that you set. Don’t rely on usage plans to +// control costs. Consider using AWS Budgets +// (https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) +// to monitor costs and AWS WAF +// (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to +// manage API requests. In a usage plan, you associate an API by specifying the +// API's Id and a stage name of the specified API. You add plan customers by adding +// API keys to the plan. Create and Use Usage Plans // (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) type UsagePlan struct { @@ -1700,13 +1705,14 @@ type UsagePlan struct { // product on AWS Marketplace. ProductCode *string - // The maximum number of permitted requests per a given unit time interval. + // The target maximum number of permitted requests per a given unit time interval. Quota *QuotaSettings // The collection of tags. Each tag element is associated with a given resource. Tags map[string]string - // The request throttle limits of a usage plan. + // Map containing method level throttling information for API stage in a usage + // plan. Throttle *ThrottleSettings noSmithyDocumentSerde diff --git a/service/health/api_op_EnableHealthServiceAccessForOrganization.go b/service/health/api_op_EnableHealthServiceAccessForOrganization.go index 14b81130a4c..ce62f0f1359 100644 --- a/service/health/api_op_EnableHealthServiceAccessForOrganization.go +++ b/service/health/api_op_EnableHealthServiceAccessForOrganization.go @@ -16,16 +16,16 @@ import ( // service-linked role for the management account in the organization. To call this // operation, you must meet the following requirements: // -// * You must have a Business -// or Enterprise Support plan from Amazon Web Services Support -// (http://aws.amazon.com/premiumsupport/) to use the Health API. If you call the -// Health API from an Amazon Web Services account that doesn't have a Business or -// Enterprise Support plan, you receive a SubscriptionRequiredException error. +// * You must have a +// Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web +// Services Support (http://aws.amazon.com/premiumsupport/) to use the Health API. +// If you call the Health API from an Amazon Web Services account that doesn't have +// a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a +// SubscriptionRequiredException error. // -// * -// You must have permission to call this operation from the organization's -// management account. For example IAM policies, see Health identity-based policy -// examples +// * You must have permission to call this +// operation from the organization's management account. For example IAM policies, +// see Health identity-based policy examples // (https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html). // // If diff --git a/service/health/doc.go b/service/health/doc.go index 661a78c4f60..93378080a15 100644 --- a/service/health/doc.go +++ b/service/health/doc.go @@ -9,10 +9,11 @@ // information about events that might affect your Amazon Web Services services and // resources. // -// * You must have a Business or Enterprise Support plan from Amazon -// Web Services Support (http://aws.amazon.com/premiumsupport/) to use the Health -// API. If you call the Health API from an Amazon Web Services account that doesn't -// have a Business or Enterprise Support plan, you receive a +// * You must have a Business, Enterprise On-Ramp, or Enterprise +// Support plan from Amazon Web Services Support +// (http://aws.amazon.com/premiumsupport/) to use the Health API. If you call the +// Health API from an Amazon Web Services account that doesn't have a Business, +// Enterprise On-Ramp, or Enterprise Support plan, you receive a // SubscriptionRequiredException error. // // * You can use the Health endpoint diff --git a/service/health/types/types.go b/service/health/types/types.go index 9c4e9914175..171c4c7c36c 100644 --- a/service/health/types/types.go +++ b/service/health/types/types.go @@ -547,7 +547,7 @@ type OrganizationEventDetailsErrorItem struct { // // * Your Amazon Web Services account doesn't include // the Amazon Web Services Support plan required to use the Health API. You must - // have either a Business or Enterprise Support plan. + // have either a Business, Enterprise On-Ramp, or Enterprise Support plan. ErrorMessage *string // The name of the error. diff --git a/service/savingsplans/api_op_CreateSavingsPlan.go b/service/savingsplans/api_op_CreateSavingsPlan.go index a5961efda8d..673af47b1d1 100644 --- a/service/savingsplans/api_op_CreateSavingsPlan.go +++ b/service/savingsplans/api_op_CreateSavingsPlan.go @@ -31,7 +31,7 @@ func (c *Client) CreateSavingsPlan(ctx context.Context, params *CreateSavingsPla type CreateSavingsPlanInput struct { // The hourly commitment, in USD. This is a value between 0.001 and 1 million. You - // cannot specify more than three digits after the decimal point. + // cannot specify more than five digits after the decimal point. // // This member is required. Commitment *string diff --git a/service/secretsmanager/api_op_CancelRotateSecret.go b/service/secretsmanager/api_op_CancelRotateSecret.go index 965f77bf309..57b2f859662 100644 --- a/service/secretsmanager/api_op_CancelRotateSecret.go +++ b/service/secretsmanager/api_op_CancelRotateSecret.go @@ -10,45 +10,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disables automatic scheduled rotation and cancels the rotation of a secret if -// currently in progress. To re-enable scheduled rotation, call RotateSecret with -// AutomaticallyRotateAfterDays set to a value greater than 0. This immediately -// rotates your secret and then enables the automatic schedule. If you cancel a -// rotation while in progress, it can leave the VersionStage labels in an +// Turns off automatic rotation, and if a rotation is currently in progress, +// cancels the rotation. To turn on automatic rotation again, call RotateSecret. If +// you cancel a rotation in progress, it can leave the VersionStage labels in an // unexpected state. Depending on the step of the rotation in progress, you might // need to remove the staging label AWSPENDING from the partially created version, -// specified by the VersionId response value. You should also evaluate the -// partially rotated new version to see if it should be deleted, which you can do -// by removing all staging labels from the new version VersionStage field. To -// successfully start a rotation, the staging label AWSPENDING must be in one of -// the following states: -// -// * Not attached to any version at all -// -// * Attached to the -// same version as the staging label AWSCURRENT -// -// If the staging label AWSPENDING -// attached to a different version than the version with AWSCURRENT then the -// attempt to rotate fails. Minimum permissions To run this command, you must have -// the following permissions: -// -// * secretsmanager:CancelRotateSecret -// -// Related -// operations -// -// * To configure rotation for a secret or to manually trigger a -// rotation, use RotateSecret. -// -// * To get the rotation configuration details for a -// secret, use DescribeSecret. -// -// * To list all of the currently available secrets, -// use ListSecrets. -// -// * To list all of the versions currently associated with a -// secret, use ListSecretVersionIds. +// specified by the VersionId response value. We recommend you also evaluate the +// partially rotated new version to see if it should be deleted. You can delete a +// version by removing all staging labels from it. func (c *Client) CancelRotateSecret(ctx context.Context, params *CancelRotateSecretInput, optFns ...func(*Options)) (*CancelRotateSecretOutput, error) { if params == nil { params = &CancelRotateSecretInput{} @@ -66,9 +35,8 @@ func (c *Client) CancelRotateSecret(ctx context.Context, params *CancelRotateSec type CancelRotateSecretInput struct { - // Specifies the secret to cancel a rotation request. You can specify either the - // Amazon Resource Name (ARN) or the friendly name of the secret. For an ARN, we - // recommend that you specify a complete ARN rather than a partial ARN. + // The ARN or name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. // // This member is required. SecretId *string @@ -78,17 +46,17 @@ type CancelRotateSecretInput struct { type CancelRotateSecretOutput struct { - // The ARN of the secret for which rotation was canceled. + // The ARN of the secret. ARN *string - // The friendly name of the secret for which rotation was canceled. + // The name of the secret. Name *string // The unique identifier of the version of the secret created during the rotation. // This version might not be complete, and should be evaluated for possible - // deletion. At the very least, you should remove the VersionStage value AWSPENDING - // to enable this version to be deleted. Failing to clean up a cancelled rotation - // can block you from successfully starting future rotations. + // deletion. We recommend that you remove the VersionStage value AWSPENDING from + // this version so that Secrets Manager can delete it. Failing to clean up a + // cancelled rotation can block you from starting future rotations. VersionId *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_CreateSecret.go b/service/secretsmanager/api_op_CreateSecret.go index d4bd4617d02..b38d06f17c9 100644 --- a/service/secretsmanager/api_op_CreateSecret.go +++ b/service/secretsmanager/api_op_CreateSecret.go @@ -12,83 +12,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new secret. A secret in Secrets Manager consists of both the protected -// secret data and the important information needed to manage the secret. Secrets -// Manager stores the encrypted secret data in one of a collection of "versions" -// associated with the secret. Each version contains a copy of the encrypted secret -// data. Each version is associated with one or more "staging labels" that identify -// where the version is in the rotation cycle. The SecretVersionsToStages field of -// the secret contains the mapping of staging labels to the active versions of the -// secret. Versions without a staging label are considered deprecated and not -// included in the list. You provide the secret data to be encrypted by putting -// text in either the SecretString parameter or binary data in the SecretBinary -// parameter, but not both. If you include SecretString or SecretBinary then -// Secrets Manager also creates an initial secret version and automatically -// attaches the staging label AWSCURRENT to the new version. -// -// * If you call an -// operation to encrypt or decrypt the SecretString or SecretBinary for a secret in -// the same account as the calling user and that secret doesn't specify a Amazon -// Web Services KMS encryption key, Secrets Manager uses the account's default -// Amazon Web Services managed customer master key (CMK) with the alias -// aws/secretsmanager. If this key doesn't already exist in your account then -// Secrets Manager creates it for you automatically. All users and roles in the -// same Amazon Web Services account automatically have access to use the default -// CMK. Note that if an Secrets Manager API call results in Amazon Web Services -// creating the account's Amazon Web Services-managed CMK, it can result in a -// one-time significant delay in returning the result. -// -// * If the secret resides in -// a different Amazon Web Services account from the credentials calling an API that -// requires encryption or decryption of the secret value then you must create and -// use a custom Amazon Web Services KMS CMK because you can't access the default -// CMK for the account using credentials from a different Amazon Web Services -// account. Store the ARN of the CMK in the secret when you create the secret or -// when you update it by including it in the KMSKeyId. If you call an API that must -// encrypt or decrypt SecretString or SecretBinary using credentials from a -// different account then the Amazon Web Services KMS key policy must grant -// cross-account access to that other account's user or role for both the -// kms:GenerateDataKey and kms:Decrypt operations. -// -// Minimum permissions To run this -// command, you must have the following permissions: -// -// * -// secretsmanager:CreateSecret -// -// * kms:GenerateDataKey - needed only if you use a -// customer-managed Amazon Web Services KMS key to encrypt the secret. You do not -// need this permission to use the account default Amazon Web Services managed CMK -// for Secrets Manager. -// -// * kms:Decrypt - needed only if you use a customer-managed -// Amazon Web Services KMS key to encrypt the secret. You do not need this -// permission to use the account default Amazon Web Services managed CMK for -// Secrets Manager. -// -// * secretsmanager:TagResource - needed only if you include the -// Tags parameter. -// -// Related operations -// -// * To delete a secret, use DeleteSecret. -// -// * -// To modify an existing secret, use UpdateSecret. -// -// * To create a new version of a -// secret, use PutSecretValue. -// -// * To retrieve the encrypted secure string and -// secure binary values, use GetSecretValue. -// -// * To retrieve all other details for a -// secret, use DescribeSecret. This does not include the encrypted secure string -// and secure binary values. -// -// * To retrieve the list of secret versions associated -// with the current secret, use DescribeSecret and examine the -// SecretVersionsToStages response value. +// Creates a new secret. A secret is a set of credentials, such as a user name and +// password, that you store in an encrypted form in Secrets Manager. The secret +// also includes the connection information to access a database or other service, +// which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of +// both the protected secret data and the important information needed to manage +// the secret. For information about creating a secret in the console, see Create a +// secret +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). +// To create a secret, you can provide the secret value to be encrypted in either +// the SecretString parameter or the SecretBinary parameter, but not both. If you +// include SecretString or SecretBinary then Secrets Manager creates an initial +// secret version and automatically attaches the staging label AWSCURRENT to it. If +// you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web +// Services managed key aws/secretsmanager. If this key doesn't already exist in +// your account, then Secrets Manager creates it for you automatically. All users +// and roles in the Amazon Web Services account automatically have access to use +// aws/secretsmanager. Creating aws/secretsmanager can result in a one-time +// significant delay in returning the result. If the secret is in a different +// Amazon Web Services account from the credentials calling the API, then you can't +// use aws/secretsmanager to encrypt the secret, and you must create and use a +// customer managed KMS key. func (c *Client) CreateSecret(ctx context.Context, params *CreateSecretInput, optFns ...func(*Options)) (*CreateSecretOutput, error) { if params == nil { params = &CreateSecretInput{} @@ -106,25 +50,23 @@ func (c *Client) CreateSecret(ctx context.Context, params *CreateSecretInput, op type CreateSecretInput struct { - // Specifies the friendly name of the new secret. The secret name must be ASCII - // letters, digits, or the following characters : /_+=.@- Do not end your secret - // name with a hyphen followed by six characters. If you do so, you risk confusion - // and unexpected results when searching for a secret by partial ARN. Secrets - // Manager automatically adds a hyphen and six random characters at the end of the - // ARN. + // The name of the new secret. The secret name can contain ASCII letters, numbers, + // and the following characters: /_+=.@- Do not end your secret name with a hyphen + // followed by six characters. If you do so, you risk confusion and unexpected + // results when searching for a secret by partial ARN. Secrets Manager + // automatically adds a hyphen and six random characters after the secret name at + // the end of the ARN. // // This member is required. Name *string - // (Optional) Add a list of regions to replicate secrets. Secrets Manager - // replicates the KMSKeyID objects to the list of regions specified in the - // parameter. + // A list of Regions and KMS keys to replicate secrets. AddReplicaRegions []types.ReplicaRegionType - // (Optional) If you include SecretString or SecretBinary, then an initial version - // is created as part of the secret, and this parameter specifies a unique + // If you include SecretString or SecretBinary, then Secrets Manager creates an + // initial version for the secret, and this parameter specifies the unique // identifier for the new version. If you use the Amazon Web Services CLI or one of - // the Amazon Web Services SDK to call this operation, then you can leave this + // the Amazon Web Services SDKs to call this operation, then you can leave this // parameter empty. The CLI or SDK generates a random UUID for you and includes it // as the value for this parameter in the request. If you don't use the SDK and // instead generate a raw HTTP request to the Secrets Manager service endpoint, @@ -152,98 +94,80 @@ type CreateSecretInput struct { // This value becomes the VersionId of the new version. ClientRequestToken *string - // (Optional) Specifies a user-provided description of the secret. + // The description of the secret. Description *string - // (Optional) If set, the replication overwrites a secret with the same name in the - // destination region. + // Specifies whether to overwrite a secret with the same name in the destination + // Region. ForceOverwriteReplicaSecret bool - // (Optional) Specifies the ARN, Key ID, or alias of the Amazon Web Services KMS - // customer master key (CMK) to be used to encrypt the SecretString or SecretBinary - // values in the versions stored in this secret. You can specify any of the - // supported ways to identify a Amazon Web Services KMS key ID. If you need to - // reference a CMK in a different account, you can use only the key ARN or the - // alias ARN. If you don't specify this value, then Secrets Manager defaults to - // using the Amazon Web Services account's default CMK (the one named - // aws/secretsmanager). If a Amazon Web Services KMS CMK with that name doesn't yet - // exist, then Secrets Manager creates it for you automatically the first time it - // needs to encrypt a version's SecretString or SecretBinary fields. You can use - // the account default CMK to encrypt and decrypt only if you call this operation - // using credentials from the same account that owns the secret. If the secret - // resides in a different account, then you must create a custom CMK and specify - // the ARN in this field. + // The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt + // the secret value in the secret. To use a KMS key in a different account, use the + // key ARN or the alias ARN. If you don't specify this value, then Secrets Manager + // uses the key aws/secretsmanager. If that key doesn't yet exist, then Secrets + // Manager creates it for you automatically the first time it encrypts the secret + // value. If the secret is in a different Amazon Web Services account from the + // credentials calling the API, then you can't use aws/secretsmanager to encrypt + // the secret, and you must create and use a customer managed KMS key. KmsKeyId *string - // (Optional) Specifies binary data that you want to encrypt and store in the new - // version of the secret. To use this parameter in the command-line tools, we - // recommend that you store your binary data in a file and then use the appropriate - // technique for your tool to pass the contents of the file as a parameter. Either - // SecretString or SecretBinary must have a value, but not both. They cannot both - // be empty. This parameter is not available using the Secrets Manager console. It - // can be accessed only by using the Amazon Web Services CLI or one of the Amazon - // Web Services SDKs. + // The binary data to encrypt and store in the new version of the secret. We + // recommend that you store your binary data in a file and then pass the contents + // of the file as a parameter. Either SecretString or SecretBinary must have a + // value, but not both. This parameter is not available in the Secrets Manager + // console. SecretBinary []byte - // (Optional) Specifies text data that you want to encrypt and store in this new - // version of the secret. Either SecretString or SecretBinary must have a value, - // but not both. They cannot both be empty. If you create a secret by using the - // Secrets Manager console then Secrets Manager puts the protected secret text in - // only the SecretString parameter. The Secrets Manager console stores the - // information as a JSON structure of key/value pairs that the Lambda rotation - // function knows how to parse. For storing multiple values, we recommend that you - // use a JSON text string argument and specify key/value pairs. For more - // information, see Specifying parameter values for the Amazon Web Services CLI - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in - // the Amazon Web Services CLI User Guide. + // The text data to encrypt and store in this new version of the secret. We + // recommend you use a JSON structure of key/value pairs for your secret value. + // Either SecretString or SecretBinary must have a value, but not both. If you + // create a secret by using the Secrets Manager console then Secrets Manager puts + // the protected secret text in only the SecretString parameter. The Secrets + // Manager console stores the information as a JSON structure of key/value pairs + // that a Lambda rotation function can parse. SecretString *string - // (Optional) Specifies a list of user-defined tags that are attached to the - // secret. Each tag is a "Key" and "Value" pair of strings. This operation only - // appends tags to the existing list of tags. To remove tags, you must use - // UntagResource. - // - // * Secrets Manager tag key names are case sensitive. A tag with - // the key "ABC" is a different tag from one with key "abc". - // - // * If you check tags - // in IAM policy Condition elements as part of your security strategy, then adding - // or removing a tag can change permissions. If the successful completion of this - // operation would result in you losing your permissions for this secret, then this - // operation is blocked and returns an Access Denied error. - // - // This parameter - // requires a JSON text string argument. For information on how to format a JSON - // parameter for the various command line tool environments, see Using JSON for - // Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. For example: + // A list of tags to attach to the secret. Each tag is a key and value pair of + // strings in a JSON text string, for example: // [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] + // Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a + // different tag from one with key "abc". If you check tags in permissions policies + // as part of your security strategy, then adding or removing a tag can change + // permissions. If the completion of this operation would result in you losing your + // permissions for this secret, then Secrets Manager blocks the operation and + // returns an Access Denied error. For more information, see Control access to + // secrets using tags + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#tag-secrets-abac) + // and Limit access to identities with tags that match secrets' tags + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_tags2). + // For information about how to format a JSON parameter for the various command + // line tool environments, see Using JSON for Parameters + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json). // If your command-line tool or SDK requires quotation marks around the parameter, // you should use single quotes to avoid confusion with the double quotes required - // in the JSON text. The following basic restrictions apply to tags: + // in the JSON text. The following restrictions apply to tags: // - // * Maximum - // number of tags per secret—50 + // * Maximum number of + // tags per secret: 50 // - // * Maximum key length—127 Unicode characters in - // UTF-8 + // * Maximum key length: 127 Unicode characters in UTF-8 // - // * Maximum value length—255 Unicode characters in UTF-8 + // * + // Maximum value length: 255 Unicode characters in UTF-8 // - // * Tag keys and - // values are case sensitive. + // * Tag keys and values are + // case sensitive. // - // * Do not use the aws: prefix in your tag names or - // values because Amazon Web Services reserves it for Amazon Web Services use. You - // can't edit or delete tag names or values with this prefix. Tags with this prefix - // do not count against your tags per secret limit. + // * Do not use the aws: prefix in your tag names or values + // because Amazon Web Services reserves it for Amazon Web Services use. You can't + // edit or delete tag names or values with this prefix. Tags with this prefix do + // not count against your tags per secret limit. // - // * If you use your tagging - // schema across multiple services and resources, remember other services might - // have restrictions on allowed characters. Generally allowed characters: letters, - // spaces, and numbers representable in UTF-8, plus the following special - // characters: + - = . _ : / @. + // * If you use your tagging schema + // across multiple services and resources, other services might have restrictions + // on allowed characters. Generally allowed characters: letters, spaces, and + // numbers representable in UTF-8, plus the following special characters: + - = . _ + // : / @. Tags []types.Tag noSmithyDocumentSerde @@ -251,23 +175,28 @@ type CreateSecretInput struct { type CreateSecretOutput struct { - // The Amazon Resource Name (ARN) of the secret that you just created. Secrets - // Manager automatically adds several random characters to the name at the end of - // the ARN when you initially create a secret. This affects only the ARN and not - // the actual friendly name. This ensures that if you create a new secret with the - // same name as an old secret that you previously deleted, then users with access - // to the old secret don't automatically get access to the new secret because the - // ARNs are different. + // The ARN of the new secret. The ARN includes the name of the secret followed by + // six random characters. This ensures that if you create a new secret with the + // same name as a deleted secret, then users with access to the old secret don't + // get access to the new secret because the ARNs are different. ARN *string - // The friendly name of the secret that you just created. + // The name of the new secret. Name *string - // Describes a list of replication status objects as InProgress, Failed or InSync. + // A list of the replicas of this secret and their status: + // + // * Failed, which + // indicates that the replica was not created. + // + // * InProgress, which indicates that + // Secrets Manager is in the process of creating the replica. + // + // * InSync, which + // indicates that the replica was created. ReplicationStatus []types.ReplicationStatusType - // The unique identifier associated with the version of the secret you just - // created. + // The unique identifier associated with the version of the new secret. VersionId *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_DeleteResourcePolicy.go b/service/secretsmanager/api_op_DeleteResourcePolicy.go index c812e4c6281..564b9fd4633 100644 --- a/service/secretsmanager/api_op_DeleteResourcePolicy.go +++ b/service/secretsmanager/api_op_DeleteResourcePolicy.go @@ -10,22 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the resource-based permission policy attached to the secret. Minimum -// permissions To run this command, you must have the following permissions: -// -// * -// secretsmanager:DeleteResourcePolicy -// -// Related operations -// -// * To attach a resource +// Deletes the resource-based permission policy attached to the secret. To attach a // policy to a secret, use PutResourcePolicy. -// -// * To retrieve the current -// resource-based policy attached to a secret, use GetResourcePolicy. -// -// * To list -// all of the currently available secrets, use ListSecrets. func (c *Client) DeleteResourcePolicy(ctx context.Context, params *DeleteResourcePolicyInput, optFns ...func(*Options)) (*DeleteResourcePolicyOutput, error) { if params == nil { params = &DeleteResourcePolicyInput{} @@ -43,10 +29,9 @@ func (c *Client) DeleteResourcePolicy(ctx context.Context, params *DeleteResourc type DeleteResourcePolicyInput struct { - // Specifies the secret that you want to delete the attached resource-based policy - // for. You can specify either the Amazon Resource Name (ARN) or the friendly name - // of the secret. For an ARN, we recommend that you specify a complete ARN rather - // than a partial ARN. + // The ARN or name of the secret to delete the attached resource-based policy for. + // For an ARN, we recommend that you specify a complete ARN rather than a partial + // ARN. // // This member is required. SecretId *string @@ -59,7 +44,7 @@ type DeleteResourcePolicyOutput struct { // The ARN of the secret that the resource-based policy was deleted for. ARN *string - // The friendly name of the secret that the resource-based policy was deleted for. + // The name of the secret that the resource-based policy was deleted for. Name *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_DeleteSecret.go b/service/secretsmanager/api_op_DeleteSecret.go index 454a74dbecc..57413159588 100644 --- a/service/secretsmanager/api_op_DeleteSecret.go +++ b/service/secretsmanager/api_op_DeleteSecret.go @@ -11,41 +11,22 @@ import ( "time" ) -// Deletes an entire secret and all of the versions. You can optionally include a -// recovery window during which you can restore the secret. If you don't specify a -// recovery window value, the operation defaults to 30 days. Secrets Manager -// attaches a DeletionDate stamp to the secret that specifies the end of the -// recovery window. At the end of the recovery window, Secrets Manager deletes the -// secret permanently. At any time before recovery window ends, you can use -// RestoreSecret to remove the DeletionDate and cancel the deletion of the secret. -// You cannot access the encrypted secret information in any secret scheduled for -// deletion. If you need to access that information, you must cancel the deletion -// with RestoreSecret and then retrieve the information. -// -// * There is no explicit -// operation to delete a version of a secret. Instead, remove all staging labels -// from the VersionStage field of a version. That marks the version as deprecated -// and allows Secrets Manager to delete it as needed. Versions without any staging -// labels do not show up in ListSecretVersionIds unless you specify -// IncludeDeprecated. -// -// * The permanent secret deletion at the end of the waiting -// period is performed as a background task with low priority. There is no -// guarantee of a specific time after the recovery window for the actual delete -// operation to occur. -// -// Minimum permissions To run this command, you must have the -// following permissions: -// -// * secretsmanager:DeleteSecret -// -// Related operations -// -// * To -// create a secret, use CreateSecret. -// -// * To cancel deletion of a version of a -// secret before the recovery window has expired, use RestoreSecret. +// Deletes a secret and all of its versions. You can specify a recovery window +// during which you can restore the secret. The minimum recovery window is 7 days. +// The default recovery window is 30 days. Secrets Manager attaches a DeletionDate +// stamp to the secret that specifies the end of the recovery window. At the end of +// the recovery window, Secrets Manager deletes the secret permanently. For +// information about deleting a secret in the console, see +// https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html). +// Secrets Manager performs the permanent secret deletion at the end of the waiting +// period as a background task with low priority. There is no guarantee of a +// specific time after the recovery window for the permanent delete to occur. At +// any time before recovery window ends, you can use RestoreSecret to remove the +// DeletionDate and cancel the deletion of the secret. In a secret scheduled for +// deletion, you cannot access the encrypted secret value. To access that +// information, first cancel the deletion with RestoreSecret and then retrieve the +// information. func (c *Client) DeleteSecret(ctx context.Context, params *DeleteSecretInput, optFns ...func(*Options)) (*DeleteSecretOutput, error) { if params == nil { params = &DeleteSecretInput{} @@ -63,32 +44,30 @@ func (c *Client) DeleteSecret(ctx context.Context, params *DeleteSecretInput, op type DeleteSecretInput struct { - // Specifies the secret to delete. You can specify either the Amazon Resource Name - // (ARN) or the friendly name of the secret. For an ARN, we recommend that you + // The ARN or name of the secret to delete. For an ARN, we recommend that you // specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // (Optional) Specifies that the secret is to be deleted without any recovery - // window. You can't use both this parameter and the RecoveryWindowInDays parameter - // in the same API call. An asynchronous background process performs the actual - // deletion, so there can be a short delay before the operation completes. If you - // write code to delete and then immediately recreate a secret with the same name, - // ensure that your code includes appropriate back off and retry logic. Use this - // parameter with caution. This parameter causes the operation to skip the normal - // waiting period before the permanent deletion that Amazon Web Services would - // normally impose with the RecoveryWindowInDays parameter. If you delete a secret - // with the ForceDeleteWithouRecovery parameter, then you have no opportunity to - // recover the secret. You lose the secret permanently. If you use this parameter - // and include a previously deleted or nonexistent secret, the operation does not - // return the error ResourceNotFoundException in order to correctly handle retries. + // Specifies whether to delete the secret without any recovery window. You can't + // use both this parameter and RecoveryWindowInDays in the same call. If you don't + // use either, then Secrets Manager defaults to a 30 day recovery window. Secrets + // Manager performs the actual deletion with an asynchronous background process, so + // there might be a short delay before the secret is permanently deleted. If you + // delete a secret and then immediately create a secret with the same name, use + // appropriate back off and retry logic. Use this parameter with caution. This + // parameter causes the operation to skip the normal recovery window before the + // permanent deletion that Secrets Manager would normally impose with the + // RecoveryWindowInDays parameter. If you delete a secret with the + // ForceDeleteWithouRecovery parameter, then you have no opportunity to recover the + // secret. You lose the secret permanently. ForceDeleteWithoutRecovery bool - // (Optional) Specifies the number of days that Secrets Manager waits before - // Secrets Manager can delete the secret. You can't use both this parameter and the - // ForceDeleteWithoutRecovery parameter in the same API call. This value can range - // from 7 to 30 days with a default value of 30. + // The number of days from 7 to 30 that Secrets Manager waits before permanently + // deleting the secret. You can't use both this parameter and + // ForceDeleteWithoutRecovery in the same call. If you don't use either, then + // Secrets Manager defaults to a 30 day recovery window. RecoveryWindowInDays int64 noSmithyDocumentSerde @@ -96,15 +75,15 @@ type DeleteSecretInput struct { type DeleteSecretOutput struct { - // The ARN of the secret that is now scheduled for deletion. + // The ARN of the secret. ARN *string - // The date and time after which this secret can be deleted by Secrets Manager and - // can no longer be restored. This value is the date and time of the delete request - // plus the number of days specified in RecoveryWindowInDays. + // The date and time after which this secret Secrets Manager can permanently delete + // this secret, and it can no longer be restored. This value is the date and time + // of the delete request plus the number of days in RecoveryWindowInDays. DeletionDate *time.Time - // The friendly name of the secret currently scheduled for deletion. + // The name of the secret. Name *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_DescribeSecret.go b/service/secretsmanager/api_op_DescribeSecret.go index f55437ff567..e506048ebc3 100644 --- a/service/secretsmanager/api_op_DescribeSecret.go +++ b/service/secretsmanager/api_op_DescribeSecret.go @@ -12,26 +12,8 @@ import ( "time" ) -// Retrieves the details of a secret. It does not include the encrypted fields. -// Secrets Manager only returns fields populated with a value in the response. -// Minimum permissions To run this command, you must have the following -// permissions: -// -// * secretsmanager:DescribeSecret -// -// Related operations -// -// * To create a -// secret, use CreateSecret. -// -// * To modify a secret, use UpdateSecret. -// -// * To -// retrieve the encrypted secret information in a version of the secret, use -// GetSecretValue. -// -// * To list all of the secrets in the Amazon Web Services -// account, use ListSecrets. +// Retrieves the details of a secret. It does not include the encrypted secret +// value. Secrets Manager only returns fields that have a value in the response. func (c *Client) DescribeSecret(ctx context.Context, params *DescribeSecretInput, optFns ...func(*Options)) (*DescribeSecretOutput, error) { if params == nil { params = &DescribeSecretInput{} @@ -49,9 +31,8 @@ func (c *Client) DescribeSecret(ctx context.Context, params *DescribeSecretInput type DescribeSecretInput struct { - // The identifier of the secret whose details you want to retrieve. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an - // ARN, we recommend that you specify a complete ARN rather than a partial ARN. + // The ARN or name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. // // This member is required. SecretId *string @@ -64,74 +45,98 @@ type DescribeSecretOutput struct { // The ARN of the secret. ARN *string - // The date you created the secret. + // The date the secret was created. CreatedDate *time.Time - // This value exists if the secret is scheduled for deletion. Some time after the - // specified date and time, Secrets Manager deletes the secret and all of its - // versions. If a secret is scheduled for deletion, then its details, including the - // encrypted secret information, is not accessible. To cancel a scheduled deletion - // and restore access, use RestoreSecret. + // The date the secret is scheduled for deletion. If it is not scheduled for + // deletion, this field is omitted. When you delete a secret, Secrets Manager + // requires a recovery window of at least 7 days before deleting the secret. Some + // time after the deleted date, Secrets Manager deletes the secret, including all + // of its versions. If a secret is scheduled for deletion, then its details, + // including the encrypted secret value, is not accessible. To cancel a scheduled + // deletion and restore access to the secret, use RestoreSecret. DeletedDate *time.Time - // The user-provided description of the secret. + // The description of the secret. Description *string - // The ARN or alias of the Amazon Web Services KMS customer master key (CMK) that's - // used to encrypt the SecretString or SecretBinary fields in each version of the - // secret. If you don't provide a key, then Secrets Manager defaults to encrypting - // the secret fields with the default Amazon Web Services KMS CMK (the one named - // awssecretsmanager) for this account. + // The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If + // the secret is encrypted with the Amazon Web Services managed key + // aws/secretsmanager, this field is omitted. KmsKeyId *string - // The last date that this secret was accessed. This value is truncated to midnight - // of the date and therefore shows only the date, not the time. + // The last date that the secret value was retrieved. This value does not include + // the time. This field is omitted if the secret has never been retrieved. LastAccessedDate *time.Time // The last date and time that this secret was modified in any way. LastChangedDate *time.Time - // The last date and time that the rotation process for this secret was invoked. - // The most recent date and time that the Secrets Manager rotation process - // successfully completed. If the secret doesn't rotate, Secrets Manager returns a - // null value. + // The last date and time that Secrets Manager rotated the secret. If the secret + // isn't configured for rotation, Secrets Manager returns null. LastRotatedDate *time.Time - // The user-provided friendly name of the secret. + // The name of the secret. Name *string - // Returns the name of the service that created this secret. + // The name of the service that created this secret. OwningService *string - // Specifies the primary region for secret replication. + // The Region the secret is in. If a secret is replicated to other Regions, the + // replicas are listed in ReplicationStatus. PrimaryRegion *string - // Describes a list of replication status objects as InProgress, Failed or InSync.P + // A list of the replicas of this secret and their status: + // + // * Failed, which + // indicates that the replica was not created. + // + // * InProgress, which indicates that + // Secrets Manager is in the process of creating the replica. + // + // * InSync, which + // indicates that the replica was created. ReplicationStatus []types.ReplicationStatusType - // Specifies whether automatic rotation is enabled for this secret. To enable - // rotation, use RotateSecret with AutomaticallyRotateAfterDays set to a value - // greater than 0. To disable rotation, use CancelRotateSecret. + // Specifies whether automatic rotation is turned on for this secret. To turn on + // rotation, use RotateSecret. To turn off rotation, use CancelRotateSecret. RotationEnabled bool - // The ARN of a Lambda function that's invoked by Secrets Manager to rotate the - // secret either automatically per the schedule or manually by a call to - // RotateSecret. + // The ARN of the Lambda function that Secrets Manager invokes to rotate the + // secret. RotationLambdaARN *string - // A structure with the rotation configuration for this secret. This field is only - // populated if rotation is configured. + // The rotation schedule and Lambda function for this secret. If the secret + // previously had rotation turned on, but it is now turned off, this field shows + // the previous rotation schedule and rotation function. If the secret never had + // rotation turned on, this field is omitted. RotationRules *types.RotationRulesType - // The list of user-defined tags that are associated with the secret. To add tags - // to a secret, use TagResource. To remove tags, use UntagResource. + // The list of tags attached to the secret. To add tags to a secret, use + // TagResource. To remove tags, use UntagResource. Tags []types.Tag - // A list of all of the currently assigned VersionStage staging labels and the - // VersionId that each is attached to. Staging labels are used to keep track of the - // different versions during the rotation process. A version that does not have any - // staging labels attached is considered deprecated and subject to deletion. Such - // versions are not included in this list. + // A list of the versions of the secret that have staging labels attached. Versions + // that don't have staging labels are considered deprecated and Secrets Manager can + // delete them. Secrets Manager uses staging labels to indicate the status of a + // secret version during rotation. The three staging labels for rotation are: + // + // * + // AWSCURRENT, which indicates the current version of the secret. + // + // * AWSPENDING, + // which indicates the version of the secret that contains new secret information + // that will become the next current version when rotation finishes. During + // rotation, Secrets Manager creates an AWSPENDING version ID before creating the + // new secret version. To check if a secret version exists, call GetSecretValue. + // + // * + // AWSPREVIOUS, which indicates the previous current version of the secret. You can + // use this as the last known good version. + // + // For more information about rotation + // and staging labels, see How rotation works + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html). VersionIdsToStages map[string][]string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_GetRandomPassword.go b/service/secretsmanager/api_op_GetRandomPassword.go index 2f5b3b263b3..2be530c4b93 100644 --- a/service/secretsmanager/api_op_GetRandomPassword.go +++ b/service/secretsmanager/api_op_GetRandomPassword.go @@ -10,14 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Generates a random password of the specified complexity. This operation is -// intended for use in the Lambda rotation function. Per best practice, we -// recommend that you specify the maximum length and include every character type -// that the system you are generating a password for can support. Minimum -// permissions To run this command, you must have the following permissions: -// -// * -// secretsmanager:GetRandomPassword +// Generates a random password. We recommend that you specify the maximum length +// and include every character type that the system you are generating a password +// for can support. func (c *Client) GetRandomPassword(ctx context.Context, params *GetRandomPasswordInput, optFns ...func(*Options)) (*GetRandomPasswordOutput, error) { if params == nil { params = &GetRandomPasswordInput{} @@ -35,44 +30,37 @@ func (c *Client) GetRandomPassword(ctx context.Context, params *GetRandomPasswor type GetRandomPasswordInput struct { - // A string that includes characters that should not be included in the generated - // password. The default is that all characters from the included sets can be used. + // A string of the characters that you don't want in the password. ExcludeCharacters *string - // Specifies that the generated password should not include lowercase letters. The - // default if you do not include this switch parameter is that lowercase letters - // can be included. + // Specifies whether to exclude lowercase letters from the password. If you don't + // include this switch, the password can contain lowercase letters. ExcludeLowercase bool - // Specifies that the generated password should not include digits. The default if - // you do not include this switch parameter is that digits can be included. + // Specifies whether to exclude numbers from the password. If you don't include + // this switch, the password can contain numbers. ExcludeNumbers bool - // Specifies that the generated password should not include punctuation characters. - // The default if you do not include this switch parameter is that punctuation - // characters can be included. The following are the punctuation characters that - // can be included in the generated password if you don't explicitly exclude them - // with ExcludeCharacters or ExcludePunctuation: ! " # $ % & ' ( ) * + , - . / : ; - // < = > ? @ [ \ ] ^ _ ` { | } ~ + // Specifies whether to exclude the following punctuation characters from the + // password: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~. If + // you don't include this switch, the password can contain punctuation. ExcludePunctuation bool - // Specifies that the generated password should not include uppercase letters. The - // default if you do not include this switch parameter is that uppercase letters - // can be included. + // Specifies whether to exclude uppercase letters from the password. If you don't + // include this switch, the password can contain uppercase letters. ExcludeUppercase bool - // Specifies that the generated password can include the space character. The - // default if you do not include this switch parameter is that the space character - // is not included. + // Specifies whether to include the space character. If you include this switch, + // the password can contain space characters. IncludeSpace bool - // The desired length of the generated password. The default value if you do not - // include this parameter is 32 characters. + // The length of the password. If you don't include this parameter, the default + // length is 32 characters. PasswordLength int64 - // A boolean value that specifies whether the generated password must include at - // least one of every allowed character type. The default value is True and the - // operation requires at least one of every character type. + // Specifies whether to include at least one upper and lowercase letter, one + // number, and one punctuation. If you don't include this switch, the password + // contains at least one of every character type. RequireEachIncludedType bool noSmithyDocumentSerde @@ -80,7 +68,7 @@ type GetRandomPasswordInput struct { type GetRandomPasswordOutput struct { - // A string with the generated password. + // A string with the password. RandomPassword *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_GetResourcePolicy.go b/service/secretsmanager/api_op_GetResourcePolicy.go index 59abd32c0de..bf2a4599571 100644 --- a/service/secretsmanager/api_op_GetResourcePolicy.go +++ b/service/secretsmanager/api_op_GetResourcePolicy.go @@ -11,24 +11,9 @@ import ( ) // Retrieves the JSON text of the resource-based policy document attached to the -// specified secret. The JSON request string input and response output displays -// formatted code with white space and line breaks for better readability. Submit -// your input as a single line JSON string. Minimum permissions To run this -// command, you must have the following permissions: -// -// * -// secretsmanager:GetResourcePolicy -// -// Related operations -// -// * To attach a resource -// policy to a secret, use PutResourcePolicy. -// -// * To delete the resource-based -// policy attached to a secret, use DeleteResourcePolicy. -// -// * To list all of the -// currently available secrets, use ListSecrets. +// secret. For more information about permissions policies attached to a secret, +// see Permissions policies attached to a secret +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html). func (c *Client) GetResourcePolicy(ctx context.Context, params *GetResourcePolicyInput, optFns ...func(*Options)) (*GetResourcePolicyOutput, error) { if params == nil { params = &GetResourcePolicyInput{} @@ -46,10 +31,9 @@ func (c *Client) GetResourcePolicy(ctx context.Context, params *GetResourcePolic type GetResourcePolicyInput struct { - // Specifies the secret that you want to retrieve the attached resource-based - // policy for. You can specify either the Amazon Resource Name (ARN) or the - // friendly name of the secret. For an ARN, we recommend that you specify a - // complete ARN rather than a partial ARN. + // The ARN or name of the secret to retrieve the attached resource-based policy + // for. For an ARN, we recommend that you specify a complete ARN rather than a + // partial ARN. // // This member is required. SecretId *string @@ -62,18 +46,13 @@ type GetResourcePolicyOutput struct { // The ARN of the secret that the resource-based policy was retrieved for. ARN *string - // The friendly name of the secret that the resource-based policy was retrieved - // for. + // The name of the secret that the resource-based policy was retrieved for. Name *string - // A JSON-formatted string that describes the permissions that are associated with - // the attached secret. These permissions are combined with any permissions that - // are associated with the user or role that attempts to access this secret. The - // combined permissions specify who can access the secret and what actions they can - // perform. For more information, see Authentication and Access Control for Amazon - // Web Services Secrets Manager - // (http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) - // in the Amazon Web Services Secrets Manager User Guide. + // A JSON-formatted string that contains the permissions policy attached to the + // secret. For more information about permissions policies, see Authentication and + // access control for Secrets Manager + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). ResourcePolicy *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_GetSecretValue.go b/service/secretsmanager/api_op_GetSecretValue.go index 639366cfeb0..bfd2105f5c1 100644 --- a/service/secretsmanager/api_op_GetSecretValue.go +++ b/service/secretsmanager/api_op_GetSecretValue.go @@ -12,24 +12,13 @@ import ( ) // Retrieves the contents of the encrypted fields SecretString or SecretBinary from -// the specified version of a secret, whichever contains content. Minimum -// permissions To run this command, you must have the following permissions: -// -// * -// secretsmanager:GetSecretValue -// -// * kms:Decrypt - required only if you use a -// customer-managed Amazon Web Services KMS key to encrypt the secret. You do not -// need this permission to use the account's default Amazon Web Services managed -// CMK for Secrets Manager. -// -// Related operations -// -// * To create a new version of the -// secret with different encrypted information, use PutSecretValue. -// -// * To retrieve -// the non-encrypted details for the secret, use DescribeSecret. +// the specified version of a secret, whichever contains content. For information +// about retrieving the secret value in the console, see Retrieve secrets +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). +// To run this command, you must have secretsmanager:GetSecretValue permissions. If +// the secret is encrypted using a customer-managed key instead of the Amazon Web +// Services managed key aws/secretsmanager, then you also need kms:Decrypt +// permissions for that key. func (c *Client) GetSecretValue(ctx context.Context, params *GetSecretValueInput, optFns ...func(*Options)) (*GetSecretValueOutput, error) { if params == nil { params = &GetSecretValueInput{} @@ -47,29 +36,25 @@ func (c *Client) GetSecretValue(ctx context.Context, params *GetSecretValueInput type GetSecretValueInput struct { - // Specifies the secret containing the version that you want to retrieve. You can - // specify either the Amazon Resource Name (ARN) or the friendly name of the - // secret. For an ARN, we recommend that you specify a complete ARN rather than a - // partial ARN. + // The ARN or name of the secret to retrieve. For an ARN, we recommend that you + // specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // Specifies the unique identifier of the version of the secret that you want to - // retrieve. If you specify both this parameter and VersionStage, the two - // parameters must refer to the same secret version. If you don't specify either a - // VersionStage or VersionId then the default is to perform the operation on the - // version with the VersionStage value of AWSCURRENT. This value is typically a + // The unique identifier of the version of the secret to retrieve. If you include + // both this parameter and VersionStage, the two parameters must refer to the same + // secret version. If you don't specify either a VersionStage or VersionId, then + // Secrets Manager returns the AWSCURRENT version. This value is typically a // UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier) value with // 32 hexadecimal digits. VersionId *string - // Specifies the secret version that you want to retrieve by the staging label - // attached to the version. Staging labels are used to keep track of different - // versions during the rotation process. If you specify both this parameter and - // VersionId, the two parameters must refer to the same secret version . If you - // don't specify either a VersionStage or VersionId, then the default is to perform - // the operation on the version with the VersionStage value of AWSCURRENT. + // The staging label of the version of the secret to retrieve. Secrets Manager uses + // staging labels to keep track of different versions during the rotation process. + // If you include both this parameter and VersionId, the two parameters must refer + // to the same secret version. If you don't specify either a VersionStage or + // VersionId, Secrets Manager returns the AWSCURRENT version. VersionStage *string noSmithyDocumentSerde @@ -80,31 +65,26 @@ type GetSecretValueOutput struct { // The ARN of the secret. ARN *string - // The date and time that this version of the secret was created. + // The date and time that this version of the secret was created. If you don't + // specify which version in VersionId or VersionStage, then Secrets Manager uses + // the AWSCURRENT version. CreatedDate *time.Time // The friendly name of the secret. Name *string - // The decrypted part of the protected secret information that was originally - // provided as binary data in the form of a byte array. The response parameter - // represents the binary data as a base64-encoded - // (https://tools.ietf.org/html/rfc4648#section-4) string. This parameter is not - // used if the secret is created by the Secrets Manager console. If you store - // custom information in this field of the secret, then you must code your Lambda - // rotation function to parse and interpret whatever you store in the SecretString - // or SecretBinary fields. + // The decrypted secret value, if the secret value was originally provided as + // binary data in the form of a byte array. The response parameter represents the + // binary data as a base64-encoded (https://tools.ietf.org/html/rfc4648#section-4) + // string. If the secret was created by using the Secrets Manager console, or if + // the secret value was originally provided as a string, then this field is + // omitted. The secret value appears in SecretString instead. SecretBinary []byte - // The decrypted part of the protected secret information that was originally - // provided as a string. If you create this secret by using the Secrets Manager - // console then only the SecretString parameter contains data. Secrets Manager - // stores the information as a JSON structure of key/value pairs that the Lambda - // rotation function knows how to parse. If you store custom information in the - // secret by using the CreateSecret, UpdateSecret, or PutSecretValue API operations - // instead of the Secrets Manager console, or by using the Other secret type in the - // console, then you must code your Lambda rotation function to parse and interpret - // those values. + // The decrypted secret value, if the secret value was originally provided as a + // string or through the Secrets Manager console. If this secret was created by + // using the console, then Secrets Manager stores the information as a JSON + // structure of key/value pairs. SecretString *string // The unique identifier of this version of the secret. diff --git a/service/secretsmanager/api_op_ListSecretVersionIds.go b/service/secretsmanager/api_op_ListSecretVersionIds.go index a2c27d32859..3dcd97508b3 100644 --- a/service/secretsmanager/api_op_ListSecretVersionIds.go +++ b/service/secretsmanager/api_op_ListSecretVersionIds.go @@ -12,23 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all of the versions attached to the specified secret. The output does not -// include the SecretString or SecretBinary fields. By default, the list includes -// only versions that have at least one staging label in VersionStage attached. -// Always check the NextToken response parameter when calling any of the List* -// operations. These operations can occasionally return an empty or shorter than -// expected list of results even when there more results become available. When -// this happens, the NextToken response parameter contains a value to pass to the -// next call to the same API to request the next part of the list. Minimum -// permissions To run this command, you must have the following permissions: -// -// * -// secretsmanager:ListSecretVersionIds -// -// Related operations -// -// * To list the secrets -// in an account, use ListSecrets. +// Lists the versions for a secret. To list the secrets in the account, use +// ListSecrets. To get the secret value from SecretString or SecretBinary, call +// GetSecretValue. Minimum permissions To run this command, you must have +// secretsmanager:ListSecretVersionIds permissions. func (c *Client) ListSecretVersionIds(ctx context.Context, params *ListSecretVersionIdsInput, optFns ...func(*Options)) (*ListSecretVersionIdsOutput, error) { if params == nil { params = &ListSecretVersionIdsInput{} @@ -46,34 +33,25 @@ func (c *Client) ListSecretVersionIds(ctx context.Context, params *ListSecretVer type ListSecretVersionIdsInput struct { - // The identifier for the secret containing the versions you want to list. You can - // specify either the Amazon Resource Name (ARN) or the friendly name of the - // secret. For an ARN, we recommend that you specify a complete ARN rather than a - // partial ARN. + // The ARN or name of the secret whose versions you want to list. For an ARN, we + // recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // (Optional) Specifies that you want the results to include versions that do not - // have any staging labels attached to them. Such versions are considered - // deprecated and are subject to deletion by Secrets Manager as needed. + // Specifies whether to include versions of secrets that don't have any staging + // labels attached to them. Versions without staging labels are considered + // deprecated and are subject to deletion by Secrets Manager. IncludeDeprecated bool - // (Optional) Limits the number of results you want to include in the response. If - // you don't include this parameter, it defaults to a value that's specific to the - // operation. If additional items exist beyond the maximum you specify, the - // NextToken response element is present and has a value (isn't null). Include that - // value as the NextToken request parameter in the next call to the operation to - // get the next part of the results. Note that Secrets Manager 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. + // The number of results to include in the response. If there are more results + // available, in the response, Secrets Manager includes NextToken. To get the next + // results, call ListSecretVersionIds again with the value from NextToken. MaxResults int32 - // (Optional) Use this parameter in a request if you receive a NextToken response - // in a previous request indicating there's more output available. In a subsequent - // call, set it to the value of the previous call NextToken response to indicate - // where the output should continue from. + // A token that indicates where the output should continue from, if a previous call + // did not show all results. To get the next results, call ListSecretVersionIds + // again with this value. NextToken *string noSmithyDocumentSerde @@ -81,27 +59,19 @@ type ListSecretVersionIdsInput struct { type ListSecretVersionIdsOutput struct { - // The Amazon Resource Name (ARN) for the secret. Secrets Manager automatically - // adds several random characters to the name at the end of the ARN when you - // initially create a secret. This affects only the ARN and not the actual friendly - // name. This ensures that if you create a new secret with the same name as an old - // secret that you previously deleted, then users with access to the old secret - // don't automatically get access to the new secret because the ARNs are different. + // The ARN of the secret. ARN *string - // The friendly name of the secret. + // The name of the secret. Name *string - // If present in the response, this value indicates that there's more output - // available than included in the current response. This can occur even when the - // response includes no values at all, such as when you ask for a filtered view of - // a very long list. Use this value in the NextToken request parameter in a - // subsequent call to the operation to continue processing and get the next part of - // the output. You should repeat this until the NextToken response element comes - // back empty (as null). + // Secrets Manager includes this value if there's more output available than what + // is included in the current response. This can occur even when the response + // includes no values at all, such as when you ask for a filtered view of a long + // list. To get the next results, call ListSecretVersionIds again with this value. NextToken *string - // The list of the currently available versions of the specified secret. + // A list of the versions of the secret. Versions []types.SecretVersionsListEntry // Metadata pertaining to the operation's result. @@ -184,15 +154,9 @@ var _ ListSecretVersionIdsAPIClient = (*Client)(nil) // ListSecretVersionIdsPaginatorOptions is the paginator options for // ListSecretVersionIds type ListSecretVersionIdsPaginatorOptions struct { - // (Optional) Limits the number of results you want to include in the response. If - // you don't include this parameter, it defaults to a value that's specific to the - // operation. If additional items exist beyond the maximum you specify, the - // NextToken response element is present and has a value (isn't null). Include that - // value as the NextToken request parameter in the next call to the operation to - // get the next part of the results. Note that Secrets Manager 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. + // The number of results to include in the response. If there are more results + // available, in the response, Secrets Manager includes NextToken. To get the next + // results, call ListSecretVersionIds again with the value from NextToken. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/secretsmanager/api_op_ListSecrets.go b/service/secretsmanager/api_op_ListSecrets.go index 4e390399a2d..215cd865209 100644 --- a/service/secretsmanager/api_op_ListSecrets.go +++ b/service/secretsmanager/api_op_ListSecrets.go @@ -12,24 +12,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all of the secrets that are stored by Secrets Manager in the Amazon Web -// Services account. To list the versions currently stored for a specific secret, -// use ListSecretVersionIds. The encrypted fields SecretString and SecretBinary are -// not included in the output. To get that information, call the GetSecretValue -// operation. Always check the NextToken response parameter when calling any of the -// List* operations. These operations can occasionally return an empty or shorter -// than expected list of results even when there more results become available. -// When this happens, the NextToken response parameter contains a value to pass to -// the next call to the same API to request the next part of the list. Minimum -// permissions To run this command, you must have the following permissions: -// -// * -// secretsmanager:ListSecrets -// -// Related operations -// -// * To list the versions attached -// to a secret, use ListSecretVersionIds. +// Lists the secrets that are stored by Secrets Manager in the Amazon Web Services +// account. To list the versions of a secret, use ListSecretVersionIds. To get the +// secret value from SecretString or SecretBinary, call GetSecretValue. For +// information about finding secrets in the console, see Enhanced search +// capabilities for secrets in Secrets Manager +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html). +// Minimum permissions To run this command, you must have +// secretsmanager:ListSecrets permissions. func (c *Client) ListSecrets(ctx context.Context, params *ListSecretsInput, optFns ...func(*Options)) (*ListSecretsOutput, error) { if params == nil { params = &ListSecretsInput{} @@ -47,24 +37,17 @@ func (c *Client) ListSecrets(ctx context.Context, params *ListSecretsInput, optF type ListSecretsInput struct { - // Lists the secret request filters. + // The filters to apply to the list of secrets. Filters []types.Filter - // (Optional) Limits the number of results you want to include in the response. If - // you don't include this parameter, it defaults to a value that's specific to the - // operation. If additional items exist beyond the maximum you specify, the - // NextToken response element is present and has a value (isn't null). Include that - // value as the NextToken request parameter in the next call to the operation to - // get the next part of the results. Note that Secrets Manager 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. + // The number of results to include in the response. If there are more results + // available, in the response, Secrets Manager includes NextToken. To get the next + // results, call ListSecrets again with the value from NextToken. MaxResults int32 - // (Optional) Use this parameter in a request if you receive a NextToken response - // in a previous request indicating there's more output available. In a subsequent - // call, set it to the value of the previous call NextToken response to indicate - // where the output should continue from. + // A token that indicates where the output should continue from, if a previous call + // did not show all results. To get the next results, call ListSecrets again with + // this value. NextToken *string // Lists secrets in the requested order. @@ -75,13 +58,10 @@ type ListSecretsInput struct { type ListSecretsOutput struct { - // If present in the response, this value indicates that there's more output - // available than included in the current response. This can occur even when the - // response includes no values at all, such as when you ask for a filtered view of - // a very long list. Use this value in the NextToken request parameter in a - // subsequent call to the operation to continue processing and get the next part of - // the output. You should repeat this until the NextToken response element comes - // back empty (as null). + // Secrets Manager includes this value if there's more output available than what + // is included in the current response. This can occur even when the response + // includes no values at all, such as when you ask for a filtered view of a long + // list. To get the next results, call ListSecrets again with this value. NextToken *string // A list of the secrets in the account. @@ -162,15 +142,9 @@ var _ ListSecretsAPIClient = (*Client)(nil) // ListSecretsPaginatorOptions is the paginator options for ListSecrets type ListSecretsPaginatorOptions struct { - // (Optional) Limits the number of results you want to include in the response. If - // you don't include this parameter, it defaults to a value that's specific to the - // operation. If additional items exist beyond the maximum you specify, the - // NextToken response element is present and has a value (isn't null). Include that - // value as the NextToken request parameter in the next call to the operation to - // get the next part of the results. Note that Secrets Manager 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. + // The number of results to include in the response. If there are more results + // available, in the response, Secrets Manager includes NextToken. To get the next + // results, call ListSecrets again with the value from NextToken. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/secretsmanager/api_op_PutResourcePolicy.go b/service/secretsmanager/api_op_PutResourcePolicy.go index cbd8345d9f5..b8be23cc5cc 100644 --- a/service/secretsmanager/api_op_PutResourcePolicy.go +++ b/service/secretsmanager/api_op_PutResourcePolicy.go @@ -10,34 +10,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Attaches the contents of the specified resource-based permission policy to a -// secret. A resource-based policy is optional. Alternatively, you can use IAM -// identity-based policies that specify the secret's Amazon Resource Name (ARN) in -// the policy statement's Resources element. You can also use a combination of both -// identity-based and resource-based policies. The affected users and roles receive -// the permissions that are permitted by all of the relevant policies. For more -// information, see Using Resource-Based Policies for Amazon Web Services Secrets -// Manager -// (http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html). -// For the complete description of the Amazon Web Services policy syntax and -// grammar, see IAM JSON Policy Reference -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) in -// the IAM User Guide. Minimum permissions To run this command, you must have the -// following permissions: -// -// * secretsmanager:PutResourcePolicy -// -// Related -// operations -// -// * To retrieve the resource policy attached to a secret, use -// GetResourcePolicy. -// -// * To delete the resource-based policy attached to a secret, -// use DeleteResourcePolicy. -// -// * To list all of the currently available secrets, use -// ListSecrets. +// Attaches a resource-based permission policy to a secret. A resource-based policy +// is optional. For more information, see Authentication and access control for +// Secrets Manager +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) +// For information about attaching a policy in the console, see Attach a +// permissions policy to a secret +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html). func (c *Client) PutResourcePolicy(ctx context.Context, params *PutResourcePolicyInput, optFns ...func(*Options)) (*PutResourcePolicyOutput, error) { if params == nil { params = &PutResourcePolicyInput{} @@ -55,26 +34,22 @@ func (c *Client) PutResourcePolicy(ctx context.Context, params *PutResourcePolic type PutResourcePolicyInput struct { - // A JSON-formatted string constructed according to the grammar and syntax for an - // Amazon Web Services resource-based policy. The policy in the string identifies - // who can access or manage this secret and its versions. For information on how to - // format a JSON parameter for the various command line tool environments, see - // Using JSON for Parameters - // (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. + // A JSON-formatted string for an Amazon Web Services resource-based policy. For + // example policies, see Permissions policy examples + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html). // // This member is required. ResourcePolicy *string - // Specifies the secret that you want to attach the resource-based policy. You can - // specify either the ARN or the friendly name of the secret. For an ARN, we - // recommend that you specify a complete ARN rather than a partial ARN. + // The ARN or name of the secret to attach the resource-based policy. For an ARN, + // we recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // (Optional) If you set the parameter, BlockPublicPolicy to true, then you block - // resource-based policies that allow broad access to the secret. + // Specifies whether to block resource-based policies that allow broad access to + // the secret. By default, Secrets Manager blocks policies that allow broad access, + // for example those that use a wildcard for the principal. BlockPublicPolicy bool noSmithyDocumentSerde @@ -82,10 +57,10 @@ type PutResourcePolicyInput struct { type PutResourcePolicyOutput struct { - // The ARN of the secret retrieved by the resource-based policy. + // The ARN of the secret. ARN *string - // The friendly name of the secret retrieved by the resource-based policy. + // The name of the secret. Name *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_PutSecretValue.go b/service/secretsmanager/api_op_PutSecretValue.go index 81f8698bf82..84e6b1f00a1 100644 --- a/service/secretsmanager/api_op_PutSecretValue.go +++ b/service/secretsmanager/api_op_PutSecretValue.go @@ -11,84 +11,26 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Stores a new encrypted secret value in the specified secret. To do this, the -// operation creates a new version and attaches it to the secret. The version can -// contain a new SecretString value or a new SecretBinary value. You can also -// specify the staging labels that are initially attached to the new version. We -// recommend you avoid calling PutSecretValue at a sustained rate of more than once -// every 10 minutes. When you update the secret value, Secrets Manager creates a -// new version of the secret. Secrets Manager removes outdated versions when there -// are more than 100, but it does not remove versions created less than 24 hours -// ago. If you call PutSecretValue more than once every 10 minutes, you create more -// versions than Secrets Manager removes, and you will reach the quota for secret -// versions. -// -// * If this operation creates the first version for the secret then -// Secrets Manager automatically attaches the staging label AWSCURRENT to the new -// version. -// -// * If you do not specify a value for VersionStages then Secrets Manager -// automatically moves the staging label AWSCURRENT to this new version. -// -// * If this -// operation moves the staging label AWSCURRENT from another version to this -// version, then Secrets Manager also automatically moves the staging label -// AWSPREVIOUS to the version that AWSCURRENT was removed from. -// -// * This operation -// is idempotent. If a version with a VersionId with the same value as the -// ClientRequestToken parameter already exists and you specify the same secret -// data, the operation succeeds but does nothing. However, if the secret data is -// different, then the operation fails because you cannot modify an existing -// version; you can only create new ones. -// -// * If you call an operation to encrypt or -// decrypt the SecretString or SecretBinary for a secret in the same account as the -// calling user and that secret doesn't specify a Amazon Web Services KMS -// encryption key, Secrets Manager uses the account's default Amazon Web Services -// managed customer master key (CMK) with the alias aws/secretsmanager. If this key -// doesn't already exist in your account then Secrets Manager creates it for you -// automatically. All users and roles in the same Amazon Web Services account -// automatically have access to use the default CMK. Note that if an Secrets -// Manager API call results in Amazon Web Services creating the account's Amazon -// Web Services-managed CMK, it can result in a one-time significant delay in -// returning the result. -// -// * If the secret resides in a different Amazon Web -// Services account from the credentials calling an API that requires encryption or -// decryption of the secret value then you must create and use a custom Amazon Web -// Services KMS CMK because you can't access the default CMK for the account using -// credentials from a different Amazon Web Services account. Store the ARN of the -// CMK in the secret when you create the secret or when you update it by including -// it in the KMSKeyId. If you call an API that must encrypt or decrypt SecretString -// or SecretBinary using credentials from a different account then the Amazon Web -// Services KMS key policy must grant cross-account access to that other account's -// user or role for both the kms:GenerateDataKey and kms:Decrypt -// operations. -// -// Minimum permissions To run this command, you must have the -// following permissions: -// -// * secretsmanager:PutSecretValue -// -// * kms:GenerateDataKey - -// needed only if you use a customer-managed Amazon Web Services KMS key to encrypt -// the secret. You do not need this permission to use the account's default Amazon -// Web Services managed CMK for Secrets Manager. -// -// Related operations -// -// * To retrieve -// the encrypted value you store in the version of a secret, use GetSecretValue. -// -// * -// To create a secret, use CreateSecret. -// -// * To get the details for a secret, use -// DescribeSecret. -// -// * To list the versions attached to a secret, use -// ListSecretVersionIds. +// Creates a new version with a new encrypted secret value and attaches it to the +// secret. The version can contain a new SecretString value or a new SecretBinary +// value. We recommend you avoid calling PutSecretValue at a sustained rate of more +// than once every 10 minutes. When you update the secret value, Secrets Manager +// creates a new version of the secret. Secrets Manager removes outdated versions +// when there are more than 100, but it does not remove versions created less than +// 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you +// create more versions than Secrets Manager removes, and you will reach the quota +// for secret versions. You can specify the staging labels to attach to the new +// version in VersionStages. If you don't include VersionStages, then Secrets +// Manager automatically moves the staging label AWSCURRENT to this version. If +// this operation creates the first version for the secret, then Secrets Manager +// automatically attaches the staging label AWSCURRENT to it . If this operation +// moves the staging label AWSCURRENT from another version to this version, then +// Secrets Manager also automatically moves the staging label AWSPREVIOUS to the +// version that AWSCURRENT was removed from. This operation is idempotent. If a +// version with a VersionId with the same value as the ClientRequestToken parameter +// already exists, and you specify the same secret data, the operation succeeds but +// does nothing. However, if the secret data is different, then the operation fails +// because you can't modify an existing version; you can only create new ones. func (c *Client) PutSecretValue(ctx context.Context, params *PutSecretValueInput, optFns ...func(*Options)) (*PutSecretValueOutput, error) { if params == nil { params = &PutSecretValueInput{} @@ -106,24 +48,22 @@ func (c *Client) PutSecretValue(ctx context.Context, params *PutSecretValueInput type PutSecretValueInput struct { - // Specifies the secret to which you want to add a new version. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. The - // secret must already exist. For an ARN, we recommend that you specify a complete - // ARN rather than a partial ARN. + // The ARN or name of the secret to add a new version to. For an ARN, we recommend + // that you specify a complete ARN rather than a partial ARN. If the secret doesn't + // already exist, use CreateSecret instead. // // This member is required. SecretId *string - // (Optional) Specifies a unique identifier for the new version of the secret. If - // you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to - // call this operation, then you can leave this parameter empty. The CLI or SDK - // generates a random UUID for you and includes that in the request. If you don't - // use the SDK and instead generate a raw HTTP request to the Secrets Manager - // service endpoint, then you must generate a ClientRequestToken yourself for new - // versions and include that value in the request. This value helps ensure + // A unique identifier for the new version of the secret. If you use the Amazon Web + // Services CLI or one of the Amazon Web Services SDKs to call this operation, then + // you can leave this parameter empty because they generate a random UUID for you. + // If you don't use the SDK and instead generate a raw HTTP request to the Secrets + // Manager service endpoint, then you must generate a ClientRequestToken yourself + // for new versions and include that value in the request. This value helps ensure // idempotency. Secrets Manager uses this value to prevent the accidental creation // of duplicate versions if there are failures and retries during the Lambda - // rotation function's processing. We recommend that you generate a UUID-type + // rotation function processing. We recommend that you generate a UUID-type // (https://wikipedia.org/wiki/Universally_unique_identifier) value to ensure // uniqueness within the specified secret. // @@ -133,47 +73,38 @@ type PutSecretValueInput struct { // // * If a version with this value already exists and that version's // SecretString or SecretBinary values are the same as those in the request then - // the request is ignored (the operation is idempotent). + // the request is ignored. The operation is idempotent. // // * If a version with this // value already exists and the version of the SecretString and SecretBinary values - // are different from those in the request then the request fails because you - // cannot modify an existing secret version. You can only create new versions to - // store new secret values. + // are different from those in the request, then the request fails because you + // can't modify a secret version. You can only create new versions to store new + // secret values. // // This value becomes the VersionId of the new version. ClientRequestToken *string - // (Optional) Specifies binary data that you want to encrypt and store in the new - // version of the secret. To use this parameter in the command-line tools, we - // recommend that you store your binary data in a file and then use the appropriate - // technique for your tool to pass the contents of the file as a parameter. Either - // SecretBinary or SecretString must have a value, but not both. They cannot both - // be empty. This parameter is not accessible if the secret using the Secrets - // Manager console. + // The binary data to encrypt and store in the new version of the secret. To use + // this parameter in the command-line tools, we recommend that you store your + // binary data in a file and then pass the contents of the file as a parameter. You + // must include SecretBinary or SecretString, but not both. You can't access this + // value from the Secrets Manager console. SecretBinary []byte - // (Optional) Specifies text data that you want to encrypt and store in this new - // version of the secret. Either SecretString or SecretBinary must have a value, - // but not both. They cannot both be empty. If you create this secret by using the - // Secrets Manager console then Secrets Manager puts the protected secret text in - // only the SecretString parameter. The Secrets Manager console stores the - // information as a JSON structure of key/value pairs that the default Lambda - // rotation function knows how to parse. For storing multiple values, we recommend - // that you use a JSON text string argument and specify key/value pairs. For more - // information, see Specifying parameter values for the Amazon Web Services CLI - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in - // the Amazon Web Services CLI User Guide. + // The text to encrypt and store in the new version of the secret. You must include + // SecretBinary or SecretString, but not both. We recommend you create the secret + // string as JSON key/value pairs, as shown in the example. SecretString *string - // (Optional) Specifies a list of staging labels that are attached to this version - // of the secret. These staging labels are used to track the versions through the - // rotation process by the Lambda rotation function. A staging label must be unique - // to a single version of the secret. If you specify a staging label that's already - // associated with a different version of the same secret then that staging label - // is automatically removed from the other version and attached to this version. If - // you do not specify a value for VersionStages then Secrets Manager automatically - // moves the staging label AWSCURRENT to this new version. + // A list of staging labels to attach to this version of the secret. Secrets + // Manager uses staging labels to track versions of a secret through the rotation + // process. If you specify a staging label that's already associated with a + // different version of the same secret, then Secrets Manager removes the label + // from the other version and attaches it to this version. If you specify + // AWSCURRENT, and it is already attached to another version, then Secrets Manager + // also moves the staging label AWSPREVIOUS to the version that AWSCURRENT was + // removed from. If you don't include VersionStages, then Secrets Manager + // automatically moves the staging label AWSCURRENT to this version. VersionStages []string noSmithyDocumentSerde @@ -181,19 +112,18 @@ type PutSecretValueInput struct { type PutSecretValueOutput struct { - // The Amazon Resource Name (ARN) for the secret for which you just created a - // version. + // The ARN of the secret. ARN *string - // The friendly name of the secret for which you just created or updated a version. + // The name of the secret. Name *string - // The unique identifier of the version of the secret you just created or updated. + // The unique identifier of the version of the secret. VersionId *string // The list of staging labels that are currently attached to this version of the - // secret. Staging labels are used to track a version as it progresses through the - // secret rotation process. + // secret. Secrets Manager uses staging labels to track a version as it progresses + // through the secret rotation process. VersionStages []string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_RemoveRegionsFromReplication.go b/service/secretsmanager/api_op_RemoveRegionsFromReplication.go index 2d26eda2916..8003251d7b5 100644 --- a/service/secretsmanager/api_op_RemoveRegionsFromReplication.go +++ b/service/secretsmanager/api_op_RemoveRegionsFromReplication.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Remove regions from replication. +// For a secret that is replicated to other Regions, deletes the secret replicas +// from the Regions you specify. func (c *Client) RemoveRegionsFromReplication(ctx context.Context, params *RemoveRegionsFromReplicationInput, optFns ...func(*Options)) (*RemoveRegionsFromReplicationOutput, error) { if params == nil { params = &RemoveRegionsFromReplicationInput{} @@ -29,12 +30,12 @@ func (c *Client) RemoveRegionsFromReplication(ctx context.Context, params *Remov type RemoveRegionsFromReplicationInput struct { - // Remove replication from specific Regions. + // The Regions of the replicas to remove. // // This member is required. RemoveReplicaRegions []string - // Remove a secret by SecretId from replica Regions. + // The ARN or name of the secret. // // This member is required. SecretId *string @@ -44,11 +45,10 @@ type RemoveRegionsFromReplicationInput struct { type RemoveRegionsFromReplicationOutput struct { - // The secret ARN removed from replication regions. + // The ARN of the primary secret. ARN *string - // Describes the remaining replication status after you remove regions from the - // replication list. + // The status of replicas for this secret after you remove Regions. ReplicationStatus []types.ReplicationStatusType // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_ReplicateSecretToRegions.go b/service/secretsmanager/api_op_ReplicateSecretToRegions.go index 4d34d7136fe..9a6b7f114ab 100644 --- a/service/secretsmanager/api_op_ReplicateSecretToRegions.go +++ b/service/secretsmanager/api_op_ReplicateSecretToRegions.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Converts an existing secret to a multi-Region secret and begins replication the -// secret to a list of new regions. +// Replicates the secret to a new Regions. See Multi-Region secrets +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html). func (c *Client) ReplicateSecretToRegions(ctx context.Context, params *ReplicateSecretToRegionsInput, optFns ...func(*Options)) (*ReplicateSecretToRegionsOutput, error) { if params == nil { params = &ReplicateSecretToRegionsInput{} @@ -30,18 +30,18 @@ func (c *Client) ReplicateSecretToRegions(ctx context.Context, params *Replicate type ReplicateSecretToRegionsInput struct { - // Add Regions to replicate the secret. + // A list of Regions in which to replicate the secret. // // This member is required. AddReplicaRegions []types.ReplicaRegionType - // Use the Secret Id to replicate a secret to regions. + // The ARN or name of the secret to replicate. // // This member is required. SecretId *string - // (Optional) If set, Secrets Manager replication overwrites a secret with the same - // name in the destination region. + // Specifies whether to overwrite a secret with the same name in the destination + // Region. ForceOverwriteReplicaSecret bool noSmithyDocumentSerde @@ -49,12 +49,10 @@ type ReplicateSecretToRegionsInput struct { type ReplicateSecretToRegionsOutput struct { - // Replicate a secret based on the ReplicaRegionType> consisting of a - // Region(required) and a KMSKeyId (optional) which can be the ARN, KeyID, or - // Alias. + // The ARN of the primary secret. ARN *string - // Describes the secret replication status as PENDING, SUCCESS or FAIL. + // The status of replication. ReplicationStatus []types.ReplicationStatusType // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_RestoreSecret.go b/service/secretsmanager/api_op_RestoreSecret.go index 7754b8b0955..6e34d6d912c 100644 --- a/service/secretsmanager/api_op_RestoreSecret.go +++ b/service/secretsmanager/api_op_RestoreSecret.go @@ -11,16 +11,7 @@ import ( ) // Cancels the scheduled deletion of a secret by removing the DeletedDate time -// stamp. This makes the secret accessible to query once again. Minimum permissions -// To run this command, you must have the following permissions: -// -// * -// secretsmanager:RestoreSecret -// -// Related operations -// -// * To delete a secret, use -// DeleteSecret. +// stamp. You can access a secret again after it has been restored. func (c *Client) RestoreSecret(ctx context.Context, params *RestoreSecretInput, optFns ...func(*Options)) (*RestoreSecretOutput, error) { if params == nil { params = &RestoreSecretInput{} @@ -38,10 +29,8 @@ func (c *Client) RestoreSecret(ctx context.Context, params *RestoreSecretInput, type RestoreSecretInput struct { - // Specifies the secret that you want to restore from a previously scheduled - // deletion. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. For an ARN, we recommend that you specify a complete ARN - // rather than a partial ARN. + // The ARN or name of the secret to restore. For an ARN, we recommend that you + // specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string @@ -54,7 +43,7 @@ type RestoreSecretOutput struct { // The ARN of the secret that was restored. ARN *string - // The friendly name of the secret that was restored. + // The name of the secret that was restored. Name *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_RotateSecret.go b/service/secretsmanager/api_op_RotateSecret.go index c266fca6bc8..e542ea33bf1 100644 --- a/service/secretsmanager/api_op_RotateSecret.go +++ b/service/secretsmanager/api_op_RotateSecret.go @@ -12,61 +12,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Configures and starts the asynchronous process of rotating this secret. If you -// include the configuration parameters, the operation sets those values for the -// secret and then immediately starts a rotation. If you do not include the +// Configures and starts the asynchronous process of rotating the secret. If you +// include the configuration parameters, the operation sets the values for the +// secret and then immediately starts a rotation. If you don't include the // configuration parameters, the operation starts a rotation with the values -// already stored in the secret. After the rotation completes, the protected -// service and its clients all use the new version of the secret. This required -// configuration information includes the ARN of an Amazon Web Services Lambda -// function and optionally, the time between scheduled rotations. The Lambda -// rotation function creates a new version of the secret and creates or updates the -// credentials on the protected service to match. After testing the new -// credentials, the function marks the new secret with the staging label AWSCURRENT -// so that your clients all immediately begin to use the new version. For more -// information about rotating secrets and how to configure a Lambda function to -// rotate the secrets for your protected service, see Rotating Secrets in Amazon -// Web Services Secrets Manager -// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) -// in the Amazon Web Services Secrets Manager User Guide. Secrets Manager schedules -// the next rotation when the previous one completes. Secrets Manager schedules the -// date by adding the rotation interval (number of days) to the actual date of the -// last rotation. The service chooses the hour within that 24-hour date window -// randomly. The minute is also chosen somewhat randomly, but weighted towards the -// top of the hour and influenced by a variety of factors that help distribute -// load. The rotation function must end with the versions of the secret in one of -// two states: -// -// * The AWSPENDING and AWSCURRENT staging labels are attached to the -// same version of the secret, or -// -// * The AWSPENDING staging label is not attached -// to any version of the secret. -// -// If the AWSPENDING staging label is present but -// not attached to the same version as AWSCURRENT then any later invocation of -// RotateSecret assumes that a previous rotation request is still in progress and -// returns an error. Minimum permissions To run this command, you must have the -// following permissions: -// -// * secretsmanager:RotateSecret -// -// * lambda:InvokeFunction -// (on the function specified in the secret's metadata) -// -// Related operations -// -// * To -// list the secrets in your account, use ListSecrets. -// -// * To get the details for a -// version of a secret, use DescribeSecret. -// -// * To create a new version of a secret, -// use CreateSecret. -// -// * To attach staging labels to or remove staging labels from a -// version of a secret, use UpdateSecretVersionStage. +// already stored in the secret. For more information about rotation, see Rotate +// secrets +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html). +// To configure rotation, you include the ARN of an Amazon Web Services Lambda +// function and the schedule for the rotation. The Lambda rotation function creates +// a new version of the secret and creates or updates the credentials on the +// database or service to match. After testing the new credentials, the function +// marks the new secret version with the staging label AWSCURRENT. Then anyone who +// retrieves the secret gets the new version. For more information, see How +// rotation works +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html). +// When rotation is successful, the AWSPENDING staging label might be attached to +// the same version as the AWSCURRENT version, or it might not be attached to any +// version. If the AWSPENDING staging label is present but not attached to the same +// version as AWSCURRENT, then any later invocation of RotateSecret assumes that a +// previous rotation request is still in progress and returns an error. To run this +// command, you must have secretsmanager:RotateSecret permissions and +// lambda:InvokeFunction permissions on the function specified in the secret's +// metadata. func (c *Client) RotateSecret(ctx context.Context, params *RotateSecretInput, optFns ...func(*Options)) (*RotateSecretOutput, error) { if params == nil { params = &RotateSecretInput{} @@ -84,31 +52,29 @@ func (c *Client) RotateSecret(ctx context.Context, params *RotateSecretInput, op type RotateSecretInput struct { - // Specifies the secret that you want to rotate. You can specify either the Amazon - // Resource Name (ARN) or the friendly name of the secret. For an ARN, we recommend - // that you specify a complete ARN rather than a partial ARN. + // The ARN or name of the secret to rotate. For an ARN, we recommend that you + // specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // (Optional) Specifies a unique identifier for the new version of the secret that - // helps ensure idempotency. If you use the Amazon Web Services CLI or one of the - // Amazon Web Services SDK to call this operation, then you can leave this - // parameter empty. The CLI or SDK generates a random UUID for you and includes - // that in the request for this parameter. If you don't use the SDK and instead - // generate a raw HTTP request to the Secrets Manager service endpoint, then you - // must generate a ClientRequestToken yourself for new versions and include that - // value in the request. You only need to specify your own value if you implement - // your own retry logic and want to ensure that a given secret is not created - // twice. We recommend that you generate a UUID-type - // (https://wikipedia.org/wiki/Universally_unique_identifier) value to ensure - // uniqueness within the specified secret. Secrets Manager uses this value to - // prevent the accidental creation of duplicate versions if there are failures and - // retries during the function's processing. This value becomes the VersionId of - // the new version. + // A unique identifier for the new version of the secret that helps ensure + // idempotency. Secrets Manager uses this value to prevent the accidental creation + // of duplicate versions if there are failures and retries during rotation. This + // value becomes the VersionId of the new version. If you use the Amazon Web + // Services CLI or one of the Amazon Web Services SDK to call this operation, then + // you can leave this parameter empty. The CLI or SDK generates a random UUID for + // you and includes that in the request for this parameter. If you don't use the + // SDK and instead generate a raw HTTP request to the Secrets Manager service + // endpoint, then you must generate a ClientRequestToken yourself for new versions + // and include that value in the request. You only need to specify this value if + // you implement your own retry logic and you want to ensure that Secrets Manager + // doesn't attempt to create a secret version twice. We recommend that you generate + // a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier) value to + // ensure uniqueness within the specified secret. ClientRequestToken *string - // (Optional) Specifies the ARN of the Lambda function that can rotate the secret. + // The ARN of the Lambda rotation function that can rotate the secret. RotationLambdaARN *string // A structure that defines the rotation configuration for this secret. @@ -122,11 +88,10 @@ type RotateSecretOutput struct { // The ARN of the secret. ARN *string - // The friendly name of the secret. + // The name of the secret. Name *string - // The ID of the new version of the secret created by the rotation started by this - // request. + // The ID of the new version of the secret. VersionId *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_StopReplicationToReplica.go b/service/secretsmanager/api_op_StopReplicationToReplica.go index 11f9b3805e2..6b0a7eba72d 100644 --- a/service/secretsmanager/api_op_StopReplicationToReplica.go +++ b/service/secretsmanager/api_op_StopReplicationToReplica.go @@ -10,8 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the secret from replication and promotes the secret to a regional secret -// in the replica Region. +// Removes the link between the replica secret and the primary secret and promotes +// the replica to a primary secret in the replica Region. You must call this +// operation from the Region in which you want to promote the replica to a primary +// secret. func (c *Client) StopReplicationToReplica(ctx context.Context, params *StopReplicationToReplicaInput, optFns ...func(*Options)) (*StopReplicationToReplicaOutput, error) { if params == nil { params = &StopReplicationToReplicaInput{} @@ -29,7 +31,7 @@ func (c *Client) StopReplicationToReplica(ctx context.Context, params *StopRepli type StopReplicationToReplicaInput struct { - // Response to StopReplicationToReplica of a secret, based on the SecretId. + // The ARN of the primary secret. // // This member is required. SecretId *string @@ -39,7 +41,8 @@ type StopReplicationToReplicaInput struct { type StopReplicationToReplicaOutput struct { - // Response StopReplicationToReplica of a secret, based on the ARN,. + // The ARN of the promoted secret. The ARN is the same as the original primary + // secret except the Region is changed. ARN *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_TagResource.go b/service/secretsmanager/api_op_TagResource.go index 918bb7cc685..6b15e814959 100644 --- a/service/secretsmanager/api_op_TagResource.go +++ b/service/secretsmanager/api_op_TagResource.go @@ -11,50 +11,37 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Attaches one or more tags, each consisting of a key name and a value, to the -// specified secret. Tags are part of the secret's overall metadata, and are not -// associated with any specific version of the secret. This operation only appends -// tags to the existing list of tags. To remove tags, you must use UntagResource. -// The following basic restrictions apply to tags: +// Attaches tags to a secret. Tags consist of a key name and a value. Tags are part +// of the secret's metadata. They are not associated with specific versions of the +// secret. This operation appends tags to the existing list of tags. The following +// restrictions apply to tags: // -// * Maximum number of tags per -// secret—50 +// * Maximum number of tags per secret: 50 // -// * Maximum key length—127 Unicode characters in UTF-8 +// * Maximum +// key length: 127 Unicode characters in UTF-8 // -// * Maximum value -// length—255 Unicode characters in UTF-8 +// * Maximum value length: 255 Unicode +// characters in UTF-8 // -// * Tag keys and values are case -// sensitive. +// * Tag keys and values are case sensitive. // -// * Do not use the aws: prefix in your tag names or values because -// Amazon Web Services reserves it for Amazon Web Services use. You can't edit or -// delete tag names or values with this prefix. Tags with this prefix do not count -// against your tags per secret limit. +// * Do not use the +// aws: prefix in your tag names or values because Amazon Web Services reserves it +// for Amazon Web Services use. You can't edit or delete tag names or values with +// this prefix. Tags with this prefix do not count against your tags per secret +// limit. // -// * If you use your tagging schema across -// multiple services and resources, remember other services might have restrictions -// on allowed characters. Generally allowed characters: letters, spaces, and -// numbers representable in UTF-8, plus the following special characters: + - = . _ -// : / @. +// * If you use your tagging schema across multiple services and resources, +// other services might have restrictions on allowed characters. Generally allowed +// characters: letters, spaces, and numbers representable in UTF-8, plus the +// following special characters: + - = . _ : / @. // -// If you use tags as part of your security strategy, then adding or -// removing a tag can change permissions. If successfully completing this operation -// would result in you losing your permissions for this secret, then the operation -// is blocked and returns an Access Denied error. Minimum permissions To run this -// command, you must have the following permissions: -// -// * -// secretsmanager:TagResource -// -// Related operations -// -// * To remove one or more tags -// from the collection attached to a secret, use UntagResource. -// -// * To view the list -// of tags attached to a secret, use DescribeSecret. +// If you use tags as part of your +// security strategy, then adding or removing a tag can change permissions. If +// successfully completing this operation would result in you losing your +// permissions for this secret, then the operation is blocked and returns an Access +// Denied error. func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} @@ -72,18 +59,18 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { - // The identifier for the secret that you want to attach tags to. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an - // ARN, we recommend that you specify a complete ARN rather than a partial ARN. + // The identifier for the secret to attach tags to. You can specify either the + // Amazon Resource Name (ARN) or the friendly name of the secret. For an ARN, we + // recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // The tags to attach to the secret. Each element in the list consists of a Key and - // a Value. This parameter to the API requires a JSON text string argument. For - // storing multiple values, we recommend that you use a JSON text string argument - // and specify key/value pairs. For more information, see Specifying parameter - // values for the Amazon Web Services CLI + // The tags to attach to the secret as a JSON text string argument. Each element in + // the list consists of a Key and a Value. For storing multiple values, we + // recommend that you use a JSON text string argument and specify key/value pairs. + // For more information, see Specifying parameter values for the Amazon Web + // Services CLI // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in // the Amazon Web Services CLI User Guide. // diff --git a/service/secretsmanager/api_op_UntagResource.go b/service/secretsmanager/api_op_UntagResource.go index a529727f66d..276b4a9d479 100644 --- a/service/secretsmanager/api_op_UntagResource.go +++ b/service/secretsmanager/api_op_UntagResource.go @@ -10,24 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes one or more tags from the specified secret. This operation is -// idempotent. If a requested tag is not attached to the secret, no error is -// returned and the secret metadata is unchanged. If you use tags as part of your -// security strategy, then removing a tag can change permissions. If successfully -// completing this operation would result in you losing your permissions for this -// secret, then the operation is blocked and returns an Access Denied error. -// Minimum permissions To run this command, you must have the following -// permissions: -// -// * secretsmanager:UntagResource -// -// Related operations -// -// * To add one -// or more tags to the collection attached to a secret, use TagResource. -// -// * To view -// the list of tags attached to a secret, use DescribeSecret. +// Removes specific tags from a secret. This operation is idempotent. If a +// requested tag is not attached to the secret, no error is returned and the secret +// metadata is unchanged. If you use tags as part of your security strategy, then +// removing a tag can change permissions. If successfully completing this operation +// would result in you losing your permissions for this secret, then the operation +// is blocked and returns an Access Denied error. func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, optFns ...func(*Options)) (*UntagResourceOutput, error) { if params == nil { params = &UntagResourceInput{} @@ -45,17 +33,16 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { - // The identifier for the secret that you want to remove tags from. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an - // ARN, we recommend that you specify a complete ARN rather than a partial ARN. + // The ARN or name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. // // This member is required. SecretId *string // A list of tag key names to remove from the secret. You don't specify the value. - // Both the key and its associated value are removed. This parameter to the API - // requires a JSON text string argument. For storing multiple values, we recommend - // that you use a JSON text string argument and specify key/value pairs. For more + // Both the key and its associated value are removed. This parameter requires a + // JSON text string argument. For storing multiple values, we recommend that you + // use a JSON text string argument and specify key/value pairs. For more // information, see Specifying parameter values for the Amazon Web Services CLI // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in // the Amazon Web Services CLI User Guide. diff --git a/service/secretsmanager/api_op_UpdateSecret.go b/service/secretsmanager/api_op_UpdateSecret.go index ee8d91f213f..58537c55252 100644 --- a/service/secretsmanager/api_op_UpdateSecret.go +++ b/service/secretsmanager/api_op_UpdateSecret.go @@ -11,81 +11,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Modifies many of the details of the specified secret. To change the secret -// value, you can also use PutSecretValue. To change the rotation configuration of -// a secret, use RotateSecret instead. We recommend you avoid calling UpdateSecret -// at a sustained rate of more than once every 10 minutes. When you call -// UpdateSecret to update the secret value, Secrets Manager creates a new version -// of the secret. Secrets Manager removes outdated versions when there are more -// than 100, but it does not remove versions created less than 24 hours ago. If you -// update the secret value more than once every 10 minutes, you create more -// versions than Secrets Manager removes, and you will reach the quota for secret -// versions. The Secrets Manager console uses only the SecretString parameter and -// therefore limits you to encrypting and storing only a text string. To encrypt -// and store binary data as part of the version of a secret, you must use either -// the Amazon Web Services CLI or one of the Amazon Web Services SDKs. -// -// * If a -// version with a VersionId with the same value as the ClientRequestToken parameter -// already exists, the operation results in an error. You cannot modify an existing -// version, you can only create a new version. -// -// * If you include SecretString or -// SecretBinary to create a new secret version, Secrets Manager automatically -// attaches the staging label AWSCURRENT to the new version. -// -// * If you call an -// operation to encrypt or decrypt the SecretString or SecretBinary for a secret in -// the same account as the calling user and that secret doesn't specify a Amazon -// Web Services KMS encryption key, Secrets Manager uses the account's default -// Amazon Web Services managed customer master key (CMK) with the alias -// aws/secretsmanager. If this key doesn't already exist in your account then -// Secrets Manager creates it for you automatically. All users and roles in the -// same Amazon Web Services account automatically have access to use the default -// CMK. Note that if an Secrets Manager API call results in Amazon Web Services -// creating the account's Amazon Web Services-managed CMK, it can result in a -// one-time significant delay in returning the result. -// -// * If the secret resides in -// a different Amazon Web Services account from the credentials calling an API that -// requires encryption or decryption of the secret value then you must create and -// use a custom Amazon Web Services KMS CMK because you can't access the default -// CMK for the account using credentials from a different Amazon Web Services -// account. Store the ARN of the CMK in the secret when you create the secret or -// when you update it by including it in the KMSKeyId. If you call an API that must -// encrypt or decrypt SecretString or SecretBinary using credentials from a -// different account then the Amazon Web Services KMS key policy must grant -// cross-account access to that other account's user or role for both the -// kms:GenerateDataKey and kms:Decrypt operations. -// -// Minimum permissions To run this -// command, you must have the following permissions: -// -// * -// secretsmanager:UpdateSecret -// -// * kms:GenerateDataKey - needed only if you use a -// custom Amazon Web Services KMS key to encrypt the secret. You do not need this -// permission to use the account's Amazon Web Services managed CMK for Secrets -// Manager. -// -// * kms:Decrypt - needed only if you use a custom Amazon Web Services -// KMS key to encrypt the secret. You do not need this permission to use the -// account's Amazon Web Services managed CMK for Secrets Manager. -// -// Related -// operations -// -// * To create a new secret, use CreateSecret. -// -// * To add only a new -// version to an existing secret, use PutSecretValue. -// -// * To get the details for a -// secret, use DescribeSecret. -// -// * To list the versions contained in a secret, use -// ListSecretVersionIds. +// Modifies the details of a secret, including metadata and the secret value. To +// change the secret value, you can also use PutSecretValue. To change the rotation +// configuration of a secret, use RotateSecret instead. We recommend you avoid +// calling UpdateSecret at a sustained rate of more than once every 10 minutes. +// When you call UpdateSecret to update the secret value, Secrets Manager creates a +// new version of the secret. Secrets Manager removes outdated versions when there +// are more than 100, but it does not remove versions created less than 24 hours +// ago. If you update the secret value more than once every 10 minutes, you create +// more versions than Secrets Manager removes, and you will reach the quota for +// secret versions. If you include SecretString or SecretBinary to create a new +// secret version, Secrets Manager automatically attaches the staging label +// AWSCURRENT to the new version. If you call this operation with a VersionId that +// matches an existing version's ClientRequestToken, the operation results in an +// error. You can't modify an existing version, you can only create a new version. +// To remove a version, remove all staging labels from it. See +// UpdateSecretVersionStage. If you don't specify an KMS encryption key, Secrets +// Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key +// doesn't already exist in your account, then Secrets Manager creates it for you +// automatically. All users and roles in the Amazon Web Services account +// automatically have access to use aws/secretsmanager. Creating aws/secretsmanager +// can result in a one-time significant delay in returning the result. If the +// secret is in a different Amazon Web Services account from the credentials +// calling the API, then you can't use aws/secretsmanager to encrypt the secret, +// and you must create and use a customer managed key. To run this command, you +// must have secretsmanager:UpdateSecret permissions. If you use a customer managed +// key, you must also have kms:GenerateDataKey and kms:Decrypt permissions . func (c *Client) UpdateSecret(ctx context.Context, params *UpdateSecretInput, optFns ...func(*Options)) (*UpdateSecretOutput, error) { if params == nil { params = &UpdateSecretInput{} @@ -103,83 +54,49 @@ func (c *Client) UpdateSecret(ctx context.Context, params *UpdateSecretInput, op type UpdateSecretInput struct { - // Specifies the secret that you want to modify or to which you want to add a new - // version. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. For an ARN, we recommend that you specify a complete ARN - // rather than a partial ARN. + // The ARN or name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. // // This member is required. SecretId *string - // (Optional) If you want to add a new version to the secret, this parameter - // specifies a unique identifier for the new version that helps ensure idempotency. - // If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to - // call this operation, then you can leave this parameter empty. The CLI or SDK - // generates a random UUID for you and includes that in the request. If you don't - // use the SDK and instead generate a raw HTTP request to the Secrets Manager - // service endpoint, then you must generate a ClientRequestToken yourself for new - // versions and include that value in the request. You typically only need to - // interact with this value if you implement your own retry logic and want to - // ensure that a given secret is not created twice. We recommend that you generate - // a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier) value to - // ensure uniqueness within the specified secret. Secrets Manager uses this value - // to prevent the accidental creation of duplicate versions if there are failures - // and retries during the Lambda rotation function's processing. - // - // * If the - // ClientRequestToken value isn't already associated with a version of the secret - // then a new version of the secret is created. - // - // * If a version with this value - // already exists and that version's SecretString and SecretBinary values are the - // same as those in the request then the request is ignored (the operation is - // idempotent). - // - // * If a version with this value already exists and that version's - // SecretString and SecretBinary values are different from the request then an - // error occurs because you cannot modify an existing secret value. - // - // This value - // becomes the VersionId of the new version. + // If you include SecretString or SecretBinary, then Secrets Manager creates a new + // version for the secret, and this parameter specifies the unique identifier for + // the new version. If you use the Amazon Web Services CLI or one of the Amazon Web + // Services SDKs to call this operation, then you can leave this parameter empty. + // The CLI or SDK generates a random UUID for you and includes it as the value for + // this parameter in the request. If you don't use the SDK and instead generate a + // raw HTTP request to the Secrets Manager service endpoint, then you must generate + // a ClientRequestToken yourself for the new version and include the value in the + // request. This value becomes the VersionId of the new version. ClientRequestToken *string - // (Optional) Specifies an updated user-provided description of the secret. + // The description of the secret. Description *string - // (Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS - // customer master key (CMK) that Secrets Manager uses to encrypt the protected - // text in new versions of this secret as well as any existing versions of this - // secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For - // more information about staging labels, see Staging Labels - // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label) - // in the Amazon Web Services Secrets Manager User Guide. You can only use the - // account's default CMK to encrypt and decrypt if you call this operation using - // credentials from the same account that owns the secret. If the secret is in a - // different account, then you must create a custom CMK and provide the ARN of that - // CMK in this field. The user making the call must have permissions to both the - // secret and the CMK in their respective accounts. + // The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt + // new secret versions as well as any existing versions the staging labels + // AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about versions and + // staging labels, see Concepts: Version + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version). + // You can only use the Amazon Web Services managed key aws/secretsmanager if you + // call this operation using credentials from the same Amazon Web Services account + // that owns the secret. If the secret is in a different account, then you must use + // a customer managed key and provide the ARN of that KMS key in this field. The + // user making the call must have permissions to both the secret and the KMS key in + // their respective accounts. KmsKeyId *string - // (Optional) Specifies updated binary data that you want to encrypt and store in - // the new version of the secret. To use this parameter in the command-line tools, - // we recommend that you store your binary data in a file and then use the - // appropriate technique for your tool to pass the contents of the file as a - // parameter. Either SecretBinary or SecretString must have a value, but not both. - // They cannot both be empty. This parameter is not accessible using the Secrets - // Manager console. + // The binary data to encrypt and store in the new version of the secret. We + // recommend that you store your binary data in a file and then pass the contents + // of the file as a parameter. Either SecretBinary or SecretString must have a + // value, but not both. You can't access this parameter in the Secrets Manager + // console. SecretBinary []byte - // (Optional) Specifies updated text data that you want to encrypt and store in - // this new version of the secret. Either SecretBinary or SecretString must have a - // value, but not both. They cannot both be empty. If you create this secret by - // using the Secrets Manager console then Secrets Manager puts the protected secret - // text in only the SecretString parameter. The Secrets Manager console stores the - // information as a JSON structure of key/value pairs that the default Lambda - // rotation function knows how to parse. For storing multiple values, we recommend - // that you use a JSON text string argument and specify key/value pairs. For more - // information, see Specifying parameter values for the Amazon Web Services CLI - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in - // the Amazon Web Services CLI User Guide. + // The text data to encrypt and store in the new version of the secret. We + // recommend you use a JSON structure of key/value pairs for your secret value. + // Either SecretBinary or SecretString must have a value, but not both. SecretString *string noSmithyDocumentSerde @@ -187,19 +104,14 @@ type UpdateSecretInput struct { type UpdateSecretOutput struct { - // The ARN of the secret that was updated. Secrets Manager automatically adds - // several random characters to the name at the end of the ARN when you initially - // create a secret. This affects only the ARN and not the actual friendly name. - // This ensures that if you create a new secret with the same name as an old secret - // that you previously deleted, then users with access to the old secret don't - // automatically get access to the new secret because the ARNs are different. + // The ARN of the secret that was updated. ARN *string - // The friendly name of the secret that was updated. + // The name of the secret that was updated. Name *string - // If a new version of the secret was created by this operation, then VersionId - // contains the unique identifier of the new version. + // If Secrets Manager created a new version of the secret during this operation, + // then VersionId contains the unique identifier of the new version. VersionId *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_UpdateSecretVersionStage.go b/service/secretsmanager/api_op_UpdateSecretVersionStage.go index 31344a11c97..5c5bf750f7e 100644 --- a/service/secretsmanager/api_op_UpdateSecretVersionStage.go +++ b/service/secretsmanager/api_op_UpdateSecretVersionStage.go @@ -10,31 +10,21 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Modifies the staging labels attached to a version of a secret. Staging labels -// are used to track a version as it progresses through the secret rotation -// process. You can attach a staging label to only one version of a secret at a -// time. If a staging label to be added is already attached to another version, -// then it is moved--removed from the other version first and then attached to this -// one. For more information about staging labels, see Staging Labels -// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label) -// in the Amazon Web Services Secrets Manager User Guide. The staging labels that -// you specify in the VersionStage parameter are added to the existing list of -// staging labels--they don't replace it. You can move the AWSCURRENT staging label -// to this version by including it in this call. Whenever you move AWSCURRENT, -// Secrets Manager automatically moves the label AWSPREVIOUS to the version that -// AWSCURRENT was removed from. If this action results in the last label being -// removed from a version, then the version is considered to be 'deprecated' and -// can be deleted by Secrets Manager. Minimum permissions To run this command, you -// must have the following permissions: -// -// * -// secretsmanager:UpdateSecretVersionStage -// -// Related operations -// -// * To get the list -// of staging labels that are currently associated with a version of a secret, use -// DescribeSecret and examine the SecretVersionsToStages response value. +// Modifies the staging labels attached to a version of a secret. Secrets Manager +// uses staging labels to track a version as it progresses through the secret +// rotation process. Each staging label can be attached to only one version at a +// time. To add a staging label to a version when it is already attached to another +// version, Secrets Manager first removes it from the other version first and then +// attaches it to this one. For more information about versions and staging labels, +// see Concepts: Version +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version). +// The staging labels that you specify in the VersionStage parameter are added to +// the existing list of staging labels for the version. You can move the AWSCURRENT +// staging label to this version by including it in this call. Whenever you move +// AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS to the +// version that AWSCURRENT was removed from. If this action results in the last +// label being removed from a version, then the version is considered to be +// 'deprecated' and can be deleted by Secrets Manager. func (c *Client) UpdateSecretVersionStage(ctx context.Context, params *UpdateSecretVersionStageInput, optFns ...func(*Options)) (*UpdateSecretVersionStageOutput, error) { if params == nil { params = &UpdateSecretVersionStageInput{} @@ -52,10 +42,9 @@ func (c *Client) UpdateSecretVersionStage(ctx context.Context, params *UpdateSec type UpdateSecretVersionStageInput struct { - // Specifies the secret with the version with the list of staging labels you want - // to modify. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. For an ARN, we recommend that you specify a complete ARN - // rather than a partial ARN. + // The ARN or the name of the secret with the version and staging labelsto modify. + // For an ARN, we recommend that you specify a complete ARN rather than a partial + // ARN. // // This member is required. SecretId *string @@ -65,18 +54,18 @@ type UpdateSecretVersionStageInput struct { // This member is required. VersionStage *string - // (Optional) The secret version ID that you want to add the staging label. If you - // want to remove a label from a version, then do not specify this parameter. If - // the staging label is already attached to a different version of the secret, then - // you must also specify the RemoveFromVersionId parameter. + // The ID of the version to add the staging label to. To remove a label from a + // version, then do not specify this parameter. If the staging label is already + // attached to a different version of the secret, then you must also specify the + // RemoveFromVersionId parameter. MoveToVersionId *string - // Specifies the secret version ID of the version that the staging label is to be - // removed from. If the staging label you are trying to attach to one version is - // already attached to a different version, then you must include this parameter - // and specify the version that the label is to be removed from. If the label is - // attached and you either do not specify this parameter, or the version ID does - // not match, then the operation fails. + // The ID of the version that the staging label is to be removed from. If the + // staging label you are trying to attach to one version is already attached to a + // different version, then you must include this parameter and specify the version + // that the label is to be removed from. If the label is attached and you either do + // not specify this parameter, or the version ID does not match, then the operation + // fails. RemoveFromVersionId *string noSmithyDocumentSerde @@ -84,10 +73,10 @@ type UpdateSecretVersionStageInput struct { type UpdateSecretVersionStageOutput struct { - // The ARN of the secret with the modified staging label. + // The ARN of the secret that was updated. ARN *string - // The friendly name of the secret with the modified staging label. + // The name of the secret that was updated. Name *string // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/api_op_ValidateResourcePolicy.go b/service/secretsmanager/api_op_ValidateResourcePolicy.go index 31233b67f19..6dc5bbe4363 100644 --- a/service/secretsmanager/api_op_ValidateResourcePolicy.go +++ b/service/secretsmanager/api_op_ValidateResourcePolicy.go @@ -11,30 +11,20 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Validates that the resource policy does not grant a wide range of IAM principals -// access to your secret. The JSON request string input and response output -// displays formatted code with white space and line breaks for better readability. -// Submit your input as a single line JSON string. A resource-based policy is -// optional for secrets. The API performs three checks when validating the -// secret: +// Validates that a resource policy does not grant a wide range of principals +// access to your secret. A resource-based policy is optional for secrets. The API +// performs three checks when validating the policy: // // * Sends a call to Zelkova // (https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/), -// an automated reasoning engine, to ensure your Resource Policy does not allow -// broad access to your secret. +// an automated reasoning engine, to ensure your resource policy does not allow +// broad access to your secret, for example policies that use a wildcard for the +// principal. // // * Checks for correct syntax in a policy. // -// * -// Verifies the policy does not lock out a caller. -// -// Minimum Permissions You must -// have the permissions required to access the following APIs: -// -// * -// secretsmanager:PutResourcePolicy -// -// * secretsmanager:ValidateResourcePolicy +// * Verifies the policy does +// not lock out a caller. func (c *Client) ValidateResourcePolicy(ctx context.Context, params *ValidateResourcePolicyInput, optFns ...func(*Options)) (*ValidateResourcePolicyOutput, error) { if params == nil { params = &ValidateResourcePolicyInput{} @@ -52,21 +42,15 @@ func (c *Client) ValidateResourcePolicy(ctx context.Context, params *ValidateRes type ValidateResourcePolicyInput struct { - // A JSON-formatted string constructed according to the grammar and syntax for an - // Amazon Web Services resource-based policy. The policy in the string identifies - // who can access or manage this secret and its versions. For information on how to - // format a JSON parameter for the various command line tool environments, see - // Using JSON for Parameters - // (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide.publi + // A JSON-formatted string that contains an Amazon Web Services resource-based + // policy. The policy in the string identifies who can access or manage this secret + // and its versions. For example policies, see Permissions policy examples + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html). // // This member is required. ResourcePolicy *string - // (Optional) The identifier of the secret with the resource-based policy you want - // to validate. You can specify either the Amazon Resource Name (ARN) or the - // friendly name of the secret. For an ARN, we recommend that you specify a - // complete ARN rather than a partial ARN. + // This field is reserved for internal use. SecretId *string noSmithyDocumentSerde @@ -74,10 +58,10 @@ type ValidateResourcePolicyInput struct { type ValidateResourcePolicyOutput struct { - // Returns a message stating that your Reource Policy passed validation. + // True if your policy passes validation, otherwise false. PolicyValidationPassed bool - // Returns an error message if your policy doesn't pass validatation. + // Validation errors if your policy didn't pass validation. ValidationErrors []types.ValidationErrorsEntry // Metadata pertaining to the operation's result. diff --git a/service/secretsmanager/doc.go b/service/secretsmanager/doc.go index 0baeb08b1ae..e4b6ba36412 100644 --- a/service/secretsmanager/doc.go +++ b/service/secretsmanager/doc.go @@ -50,7 +50,7 @@ // request, when it was made, and so on. For more about Amazon Web Services Secrets // Manager and support for Amazon Web Services CloudTrail, see Logging Amazon Web // Services Secrets Manager Events with Amazon Web Services CloudTrail -// (http://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail) +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail) // in the Amazon Web Services Secrets Manager User Guide. To learn more about // CloudTrail, including enabling it and find your log files, see the Amazon Web // Services CloudTrail User Guide diff --git a/service/secretsmanager/types/errors.go b/service/secretsmanager/types/errors.go index f4511afa146..59f0f6d9764 100644 --- a/service/secretsmanager/types/errors.go +++ b/service/secretsmanager/types/errors.go @@ -28,10 +28,9 @@ func (e *DecryptionFailure) ErrorCode() string { return "DecryptionF func (e *DecryptionFailure) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Secrets Manager can't encrypt the protected secret text using the provided KMS -// key. Check that the customer master key (CMK) is available, enabled, and not in -// an invalid state. For more information, see How Key State Affects Use of a -// Customer Master Key -// (http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). +// key. Check that the KMS key is available, enabled, and not in an invalid state. +// For more information, see Key state: Effect on your KMS key +// (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). type EncryptionFailure struct { Message *string @@ -69,7 +68,7 @@ func (e *InternalServiceError) ErrorMessage() string { func (e *InternalServiceError) ErrorCode() string { return "InternalServiceError" } func (e *InternalServiceError) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// You provided an invalid NextToken value. +// The NextToken value is invalid. type InvalidNextTokenException struct { Message *string @@ -88,7 +87,7 @@ func (e *InvalidNextTokenException) ErrorMessage() string { func (e *InvalidNextTokenException) ErrorCode() string { return "InvalidNextTokenException" } func (e *InvalidNextTokenException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// You provided an invalid value for a parameter. +// The parameter name is invalid value. type InvalidParameterException struct { Message *string @@ -107,15 +106,14 @@ func (e *InvalidParameterException) ErrorMessage() string { func (e *InvalidParameterException) ErrorCode() string { return "InvalidParameterException" } func (e *InvalidParameterException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// You provided a parameter value that is not valid for the current state of the -// resource. Possible causes: +// A parameter value is not valid for the current state of the resource. Possible +// causes: // -// * You tried to perform the operation on a secret -// that's currently marked deleted. +// * The secret is scheduled for deletion. // -// * You tried to enable rotation on a secret -// that doesn't already have a Lambda function ARN configured and you didn't -// include such an ARN as a parameter in this call. +// * You tried to enable rotation +// on a secret that doesn't already have a Lambda function ARN configured and you +// didn't include such an ARN as a parameter in this call. type InvalidRequestException struct { Message *string @@ -134,8 +132,7 @@ func (e *InvalidRequestException) ErrorMessage() string { func (e *InvalidRequestException) ErrorCode() string { return "InvalidRequestException" } func (e *InvalidRequestException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request failed because it would exceed one of the Secrets Manager internal -// limits. +// The request failed because it would exceed one of the Secrets Manager quotas. type LimitExceededException struct { Message *string @@ -154,7 +151,7 @@ func (e *LimitExceededException) ErrorMessage() string { func (e *LimitExceededException) ErrorCode() string { return "LimitExceededException" } func (e *LimitExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// You provided a resource-based policy with syntax errors. +// The resource policy has syntax errors. type MalformedPolicyDocumentException struct { Message *string @@ -194,7 +191,7 @@ func (e *PreconditionNotMetException) ErrorMessage() string { func (e *PreconditionNotMetException) ErrorCode() string { return "PreconditionNotMetException" } func (e *PreconditionNotMetException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The BlockPublicPolicy parameter is set to true and the resource policy did not +// The BlockPublicPolicy parameter is set to true, and the resource policy did not // prevent broad access to the secret. type PublicPolicyException struct { Message *string @@ -233,7 +230,7 @@ func (e *ResourceExistsException) ErrorMessage() string { func (e *ResourceExistsException) ErrorCode() string { return "ResourceExistsException" } func (e *ResourceExistsException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// We can't find the resource that you asked for. +// Secrets Manager can't find the resource that you asked for. type ResourceNotFoundException struct { Message *string diff --git a/service/secretsmanager/types/types.go b/service/secretsmanager/types/types.go index e5ed6779146..630f3832092 100644 --- a/service/secretsmanager/types/types.go +++ b/service/secretsmanager/types/types.go @@ -8,26 +8,45 @@ import ( ) // Allows you to add filters when you use the search function in Secrets Manager. +// For more information, see Find secrets in Secrets Manager +// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html). type Filter struct { - // Filters your list of secrets by a specific key. + // The following are keys you can use: + // + // * description: Prefix match, not + // case-sensitive. + // + // * name: Prefix match, case-sensitive. + // + // * tag-key: Prefix match, + // case-sensitive. + // + // * tag-value: Prefix match, case-sensitive. + // + // * primary-region: + // Prefix match, case-sensitive. + // + // * all: Breaks the filter value string into words + // and then searches all attributes for matches. Not case-sensitive. Key FilterNameStringType - // Filters your list of secrets by a specific value. You can prefix your search - // value with an exclamation mark (!) in order to perform negation filters. + // The keyword to filter for. You can prefix your search value with an exclamation + // mark (!) in order to perform negation filters. Values []string noSmithyDocumentSerde } -// (Optional) Custom type consisting of a Region (required) and the KmsKeyId which -// can be an ARN, Key ID, or Alias. +// A custom type that specifies a Region and the KmsKeyId for a replica secret. type ReplicaRegionType struct { - // Can be an ARN, Key ID, or Alias. + // The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't + // include this field, Secrets Manager uses aws/secretsmanager. KmsKeyId *string - // Describes a single instance of Region objects. + // A Region code. For a list of Region codes, see Name and code of Regions + // (https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Region *string noSmithyDocumentSerde @@ -75,10 +94,7 @@ type RotationRulesType struct { // GetSecretValue operation. type SecretListEntry struct { - // The Amazon Resource Name (ARN) of the secret. For more information about ARNs in - // Secrets Manager, see Policy Resources - // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#iam-resources) - // in the Amazon Web Services Secrets Manager User Guide. + // The Amazon Resource Name (ARN) of the secret. ARN *string // The date and time when a secret was created. @@ -93,11 +109,9 @@ type SecretListEntry struct { // The user-provided description of the secret. Description *string - // The ARN or alias of the Amazon Web Services KMS customer master key (CMK) used - // to encrypt the SecretString and SecretBinary fields in each version of the - // secret. If you don't provide a key, then Secrets Manager defaults to encrypting - // the secret fields with the default KMS CMK, the key named awssecretsmanager, for - // this account. + // The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If + // the secret is encrypted with the Amazon Web Services managed key + // aws/secretsmanager, this field is omitted. KmsKeyId *string // The last date that this secret was accessed. This value is truncated to midnight diff --git a/service/sms/api_op_CreateApp.go b/service/sms/api_op_CreateApp.go index 15fac526ee6..18af9b9d80b 100644 --- a/service/sms/api_op_CreateApp.go +++ b/service/sms/api_op_CreateApp.go @@ -40,7 +40,8 @@ type CreateAppInput struct { // The name of the new application. Name *string - // The name of the service role in the customer's account to be used by AWS SMS. + // The name of the service role in the customer's account to be used by Server + // Migration Service. RoleName *string // The server groups to include in the application. diff --git a/service/sms/api_op_CreateReplicationJob.go b/service/sms/api_op_CreateReplicationJob.go index 48933a09e0b..54903801bac 100644 --- a/service/sms/api_op_CreateReplicationJob.go +++ b/service/sms/api_op_CreateReplicationJob.go @@ -13,8 +13,8 @@ import ( ) // Creates a replication job. The replication job schedules periodic replication -// runs to replicate your server to AWS. Each replication run creates an Amazon -// Machine Image (AMI). +// runs to replicate your server to Amazon Web Services. Each replication run +// creates an Amazon Machine Image (AMI). func (c *Client) CreateReplicationJob(ctx context.Context, params *CreateReplicationJobInput, optFns ...func(*Options)) (*CreateReplicationJobOutput, error) { if params == nil { params = &CreateReplicationJobInput{} @@ -75,7 +75,7 @@ type CreateReplicationJobInput struct { // the maximum number is reached and a new AMI is created. NumberOfRecentAmisToKeep *int32 - // The name of the IAM role to be used by the AWS SMS. + // The name of the IAM role to be used by the Server Migration Service. RoleName *string // Indicates whether to run the replication job one time. diff --git a/service/sms/api_op_DeleteApp.go b/service/sms/api_op_DeleteApp.go index d25c6bb4a3a..67f76980211 100644 --- a/service/sms/api_op_DeleteApp.go +++ b/service/sms/api_op_DeleteApp.go @@ -11,8 +11,8 @@ import ( ) // Deletes the specified application. Optionally deletes the launched stack -// associated with the application and all AWS SMS replication jobs for servers in -// the application. +// associated with the application and all Server Migration Service replication +// jobs for servers in the application. func (c *Client) DeleteApp(ctx context.Context, params *DeleteAppInput, optFns ...func(*Options)) (*DeleteAppOutput, error) { if params == nil { params = &DeleteAppInput{} diff --git a/service/sms/api_op_DeleteReplicationJob.go b/service/sms/api_op_DeleteReplicationJob.go index 9ff4f4ca157..884e0968522 100644 --- a/service/sms/api_op_DeleteReplicationJob.go +++ b/service/sms/api_op_DeleteReplicationJob.go @@ -11,9 +11,9 @@ import ( ) // Deletes the specified replication job. After you delete a replication job, there -// are no further replication runs. AWS deletes the contents of the Amazon S3 -// bucket used to store AWS SMS artifacts. The AMIs created by the replication runs -// are not deleted. +// are no further replication runs. Amazon Web Services deletes the contents of the +// Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs +// created by the replication runs are not deleted. func (c *Client) DeleteReplicationJob(ctx context.Context, params *DeleteReplicationJobInput, optFns ...func(*Options)) (*DeleteReplicationJobOutput, error) { if params == nil { params = &DeleteReplicationJobInput{} diff --git a/service/sms/api_op_DisassociateConnector.go b/service/sms/api_op_DisassociateConnector.go index cdc3cddbbc3..61de34dba10 100644 --- a/service/sms/api_op_DisassociateConnector.go +++ b/service/sms/api_op_DisassociateConnector.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disassociates the specified connector from AWS SMS. After you disassociate a -// connector, it is no longer available to support replication jobs. +// Disassociates the specified connector from Server Migration Service. After you +// disassociate a connector, it is no longer available to support replication jobs. func (c *Client) DisassociateConnector(ctx context.Context, params *DisassociateConnectorInput, optFns ...func(*Options)) (*DisassociateConnectorOutput, error) { if params == nil { params = &DisassociateConnectorInput{} diff --git a/service/sms/api_op_GenerateTemplate.go b/service/sms/api_op_GenerateTemplate.go index b77b8c5a10b..ae86be847da 100644 --- a/service/sms/api_op_GenerateTemplate.go +++ b/service/sms/api_op_GenerateTemplate.go @@ -11,9 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Generates an AWS CloudFormation template based on the current launch -// configuration and writes it to an Amazon S3 object in the customer’s Amazon S3 -// bucket. +// Generates an CloudFormation template based on the current launch configuration +// and writes it to an Amazon S3 object in the customer’s Amazon S3 bucket. func (c *Client) GenerateTemplate(ctx context.Context, params *GenerateTemplateInput, optFns ...func(*Options)) (*GenerateTemplateOutput, error) { if params == nil { params = &GenerateTemplateInput{} @@ -31,10 +30,10 @@ func (c *Client) GenerateTemplate(ctx context.Context, params *GenerateTemplateI type GenerateTemplateInput struct { - // The ID of the application associated with the AWS CloudFormation template. + // The ID of the application associated with the CloudFormation template. AppId *string - // The format for generating the AWS CloudFormation template. + // The format for generating the CloudFormation template. TemplateFormat types.OutputFormat noSmithyDocumentSerde diff --git a/service/sms/api_op_GetAppLaunchConfiguration.go b/service/sms/api_op_GetAppLaunchConfiguration.go index 083d92bca62..70533376192 100644 --- a/service/sms/api_op_GetAppLaunchConfiguration.go +++ b/service/sms/api_op_GetAppLaunchConfiguration.go @@ -45,8 +45,8 @@ type GetAppLaunchConfigurationOutput struct { // replication is complete. AutoLaunch *bool - // The name of the service role in the customer's account that AWS CloudFormation - // uses to launch the application. + // The name of the service role in the customer's account that CloudFormation uses + // to launch the application. RoleName *string // The launch configurations for server groups in this application. diff --git a/service/sms/api_op_GetConnectors.go b/service/sms/api_op_GetConnectors.go index e88a25436e9..776db3dc015 100644 --- a/service/sms/api_op_GetConnectors.go +++ b/service/sms/api_op_GetConnectors.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the connectors registered with the AWS SMS. +// Describes the connectors registered with the Server Migration Service. func (c *Client) GetConnectors(ctx context.Context, params *GetConnectorsInput, optFns ...func(*Options)) (*GetConnectorsOutput, error) { if params == nil { params = &GetConnectorsInput{} diff --git a/service/sms/api_op_ImportAppCatalog.go b/service/sms/api_op_ImportAppCatalog.go index 338482a974d..378e098a0d8 100644 --- a/service/sms/api_op_ImportAppCatalog.go +++ b/service/sms/api_op_ImportAppCatalog.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Allows application import from AWS Migration Hub. +// Allows application import from Migration Hub. func (c *Client) ImportAppCatalog(ctx context.Context, params *ImportAppCatalogInput, optFns ...func(*Options)) (*ImportAppCatalogOutput, error) { if params == nil { params = &ImportAppCatalogInput{} @@ -29,10 +29,10 @@ func (c *Client) ImportAppCatalog(ctx context.Context, params *ImportAppCatalogI type ImportAppCatalogInput struct { // The name of the service role. If you omit this parameter, we create a - // service-linked role for AWS Migration Hub in your account. Otherwise, the role - // that you provide must have the policy and trust policy + // service-linked role for Migration Hub in your account. Otherwise, the role that + // you provide must have the policy and trust policy // (https://docs.aws.amazon.com/migrationhub/latest/ug/new-customer-setup.html#sms-managed) - // described in the AWS Migration Hub User Guide. + // described in the Migration Hub User Guide. RoleName *string noSmithyDocumentSerde diff --git a/service/sms/api_op_LaunchApp.go b/service/sms/api_op_LaunchApp.go index 2a74bd7e45c..8b5b18af793 100644 --- a/service/sms/api_op_LaunchApp.go +++ b/service/sms/api_op_LaunchApp.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Launches the specified application as a stack in AWS CloudFormation. +// Launches the specified application as a stack in CloudFormation. func (c *Client) LaunchApp(ctx context.Context, params *LaunchAppInput, optFns ...func(*Options)) (*LaunchAppOutput, error) { if params == nil { params = &LaunchAppInput{} diff --git a/service/sms/api_op_NotifyAppValidationOutput.go b/service/sms/api_op_NotifyAppValidationOutput.go index 2e787dff37f..013a9185eca 100644 --- a/service/sms/api_op_NotifyAppValidationOutput.go +++ b/service/sms/api_op_NotifyAppValidationOutput.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Provides information to AWS SMS about whether application validation is -// successful. +// Provides information to Server Migration Service about whether application +// validation is successful. func (c *Client) NotifyAppValidationOutput(ctx context.Context, params *NotifyAppValidationOutputInput, optFns ...func(*Options)) (*NotifyAppValidationOutputOutput, error) { if params == nil { params = &NotifyAppValidationOutputInput{} diff --git a/service/sms/api_op_PutAppLaunchConfiguration.go b/service/sms/api_op_PutAppLaunchConfiguration.go index 24d62e4f7b8..5ed60d844fa 100644 --- a/service/sms/api_op_PutAppLaunchConfiguration.go +++ b/service/sms/api_op_PutAppLaunchConfiguration.go @@ -36,8 +36,8 @@ type PutAppLaunchConfigurationInput struct { // replication is complete. AutoLaunch *bool - // The name of service role in the customer's account that AWS CloudFormation uses - // to launch the application. + // The name of service role in the customer's account that CloudFormation uses to + // launch the application. RoleName *string // Information about the launch configurations for server groups in the diff --git a/service/sms/api_op_UpdateApp.go b/service/sms/api_op_UpdateApp.go index 17288e0f310..97677fb5d4c 100644 --- a/service/sms/api_op_UpdateApp.go +++ b/service/sms/api_op_UpdateApp.go @@ -38,7 +38,8 @@ type UpdateAppInput struct { // The new name of the application. Name *string - // The name of the service role in the customer's account used by AWS SMS. + // The name of the service role in the customer's account used by Server Migration + // Service. RoleName *string // The server groups in the application to update. diff --git a/service/sms/api_op_UpdateReplicationJob.go b/service/sms/api_op_UpdateReplicationJob.go index c4ee55babe8..9fe145e283a 100644 --- a/service/sms/api_op_UpdateReplicationJob.go +++ b/service/sms/api_op_UpdateReplicationJob.go @@ -72,7 +72,7 @@ type UpdateReplicationJobInput struct { // the maximum number is reached and a new AMI is created. NumberOfRecentAmisToKeep *int32 - // The name of the IAM role to be used by AWS SMS. + // The name of the IAM role to be used by Server Migration Service. RoleName *string noSmithyDocumentSerde diff --git a/service/sms/doc.go b/service/sms/doc.go index b91fefa733e..b9e84bcd49f 100644 --- a/service/sms/doc.go +++ b/service/sms/doc.go @@ -3,14 +3,24 @@ // Package sms provides the API client, operations, and parameter types for AWS // Server Migration Service. // -// AWS Server Migration Service AWS Server Migration Service (AWS SMS) makes it -// easier and faster for you to migrate your on-premises workloads to AWS. To learn -// more about AWS SMS, see the following resources: +// Product update As of March 31, 2022, Amazon Web Services will discontinue Server +// Migration Service (Amazon Web Services SMS). Going forward, we recommend Amazon +// Web Services Application Migration Service +// (http://aws.amazon.com/application-migration-service) (Amazon Web Services MGN) +// as the primary migration service for lift-and-shift migrations. You can initiate +// new migration jobs in Server Migration Service until January 1, 2022. Complete +// these active migration projects by March 31, 2022. For more information, see +// When to Choose AWS Application Migration Service +// (http://aws.amazon.com/application-migration-service/when-to-choose-aws-mgn/). +// Server Migration Service (Server Migration Service) makes it easier and faster +// for you to migrate your on-premises workloads to Amazon Web Services. To learn +// more about Server Migration Service, see the following resources: // -// * AWS Server Migration Service -// product page (http://aws.amazon.com/server-migration-service/) +// * Server +// Migration Service product page +// (http://aws.amazon.com/server-migration-service/) // -// * AWS Server -// Migration Service User Guide +// * Server Migration Service +// User Guide // (https://docs.aws.amazon.com/server-migration-service/latest/userguide/) package sms diff --git a/service/sms/types/types.go b/service/sms/types/types.go index e5776c024f2..8658ee25ced 100644 --- a/service/sms/types/types.go +++ b/service/sms/types/types.go @@ -52,7 +52,8 @@ type AppSummary struct { // A message related to the replication status of the application. ReplicationStatusMessage *string - // The name of the service role in the customer's account used by AWS SMS. + // The name of the service role in the customer's account used by Server Migration + // Service. RoleName *string // Status of the application. @@ -211,7 +212,7 @@ type ReplicationJob struct { // Information about the replication runs. ReplicationRunList []ReplicationRun - // The name of the IAM role to be used by AWS SMS. + // The name of the IAM role to be used by Server Migration Service. RoleName *string // Indicates whether to run the replication job one time. @@ -414,7 +415,7 @@ type ServerLaunchConfiguration struct { // The instance type to use when launching the server. InstanceType *string - // The logical ID of the server in the AWS CloudFormation template. + // The logical ID of the server in the CloudFormation template. LogicalId *string // The ID of the security group that applies to the launched server. @@ -540,7 +541,7 @@ type SSMOutput struct { // Contains validation parameters. type SSMValidationParameters struct { - // The command to run the validation script + // The command to run the validation script. Command *string // The timeout interval, in seconds. diff --git a/service/support/api_op_AddAttachmentsToSet.go b/service/support/api_op_AddAttachmentsToSet.go index 1427f29fc24..0637fa07901 100644 --- a/service/support/api_op_AddAttachmentsToSet.go +++ b/service/support/api_op_AddAttachmentsToSet.go @@ -17,12 +17,13 @@ import ( // expiryTime returned in the response is when the set expires. // // * You must have a -// Business or Enterprise Support plan to use the AWS Support API. +// Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web +// Services Support API. // -// * If you call -// the AWS Support API from an account that does not have a Business or Enterprise -// Support plan, the SubscriptionRequiredException error message appears. For -// information about changing your support plan, see AWS Support +// * If you call the Amazon Web Services Support API from an +// account that does not have a Business, Enterprise On-Ramp, or Enterprise Support +// plan, the SubscriptionRequiredException error message appears. For information +// about changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) AddAttachmentsToSet(ctx context.Context, params *AddAttachmentsToSetInput, optFns ...func(*Options)) (*AddAttachmentsToSetOutput, error) { if params == nil { diff --git a/service/support/api_op_AddCommunicationToCase.go b/service/support/api_op_AddCommunicationToCase.go index 97283f92123..0baed4d6401 100644 --- a/service/support/api_op_AddCommunicationToCase.go +++ b/service/support/api_op_AddCommunicationToCase.go @@ -10,19 +10,20 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds additional customer communication to an AWS Support case. Use the caseId -// parameter to identify the case to which to add communication. You can list a set -// of email addresses to copy on the communication by using the ccEmailAddresses -// parameter. The communicationBody value contains the text of the +// Adds additional customer communication to an Amazon Web Services Support case. +// Use the caseId parameter to identify the case to which to add communication. You +// can list a set of email addresses to copy on the communication by using the +// ccEmailAddresses parameter. The communicationBody value contains the text of the // communication. // -// * You must have a Business or Enterprise Support plan to use the -// AWS Support API. +// * You must have a Business, Enterprise On-Ramp, or Enterprise +// Support plan to use the Amazon Web Services Support API. // -// * If you call the AWS Support API from an account that does -// not have a Business or Enterprise Support plan, the +// * If you call the +// Amazon Web Services Support API from an account that does not have a Business, +// Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) AddCommunicationToCase(ctx context.Context, params *AddCommunicationToCaseInput, optFns ...func(*Options)) (*AddCommunicationToCaseOutput, error) { if params == nil { diff --git a/service/support/api_op_CreateCase.go b/service/support/api_op_CreateCase.go index 793ca6dd9a6..58ac3e637dd 100644 --- a/service/support/api_op_CreateCase.go +++ b/service/support/api_op_CreateCase.go @@ -10,35 +10,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a case in the AWS Support Center. This operation is similar to how you -// create a case in the AWS Support Center Create Case -// (https://console.aws.amazon.com/support/home#/case/create) page. The AWS Support -// API doesn't support requesting service limit increases. You can submit a service -// limit increase in the following ways: +// Creates a case in the Amazon Web Services Support Center. This operation is +// similar to how you create a case in the Amazon Web Services Support Center +// Create Case (https://console.aws.amazon.com/support/home#/case/create) page. The +// Amazon Web Services Support API doesn't support requesting service limit +// increases. You can submit a service limit increase in the following ways: // -// * Submit a request from the AWS Support -// Center Create Case (https://console.aws.amazon.com/support/home#/case/create) -// page. +// * +// Submit a request from the Amazon Web Services Support Center Create Case +// (https://console.aws.amazon.com/support/home#/case/create) page. // -// * Use the Service Quotas RequestServiceQuotaIncrease +// * Use the +// Service Quotas RequestServiceQuotaIncrease // (https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_RequestServiceQuotaIncrease.html) // operation. // -// A successful CreateCase request returns an AWS Support case number. -// You can use the DescribeCases operation and specify the case number to get -// existing AWS Support cases. After you create a case, use the -// AddCommunicationToCase operation to add additional communication or attachments -// to an existing case. The caseId is separate from the displayId that appears in -// the AWS Support Center (https://console.aws.amazon.com/support). Use the -// DescribeCases operation to get the displayId. +// A successful CreateCase request returns an Amazon Web Services +// Support case number. You can use the DescribeCases operation and specify the +// case number to get existing Amazon Web Services Support cases. After you create +// a case, use the AddCommunicationToCase operation to add additional communication +// or attachments to an existing case. The caseId is separate from the displayId +// that appears in the Amazon Web Services Support Center +// (https://console.aws.amazon.com/support). Use the DescribeCases operation to get +// the displayId. // -// * You must have a Business or -// Enterprise Support plan to use the AWS Support API. +// * You must have a Business, Enterprise On-Ramp, or Enterprise +// Support plan to use the Amazon Web Services Support API. // -// * If you call the AWS -// Support API from an account that does not have a Business or Enterprise Support -// plan, the SubscriptionRequiredException error message appears. For information -// about changing your support plan, see AWS Support +// * If you call the +// Amazon Web Services Support API from an account that does not have a Business, +// Enterprise On-Ramp, or Enterprise Support plan, the +// SubscriptionRequiredException error message appears. For information about +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) CreateCase(ctx context.Context, params *CreateCaseInput, optFns ...func(*Options)) (*CreateCaseOutput, error) { if params == nil { @@ -58,14 +61,14 @@ func (c *Client) CreateCase(ctx context.Context, params *CreateCaseInput, optFns type CreateCaseInput struct { // The communication body text that describes the issue. This text appears in the - // Description field on the AWS Support Center Create Case + // Description field on the Amazon Web Services Support Center Create Case // (https://console.aws.amazon.com/support/home#/case/create) page. // // This member is required. CommunicationBody *string - // The title of the support case. The title appears in the Subject field on the AWS - // Support Center Create Case + // The title of the support case. The title appears in the Subject field on the + // Amazon Web Services Support Center Create Case // (https://console.aws.amazon.com/support/home#/case/create) page. // // This member is required. @@ -76,36 +79,37 @@ type CreateCaseInput struct { AttachmentSetId *string // The category of problem for the support case. You also use the DescribeServices - // operation to get the category code for a service. Each AWS service defines its - // own set of category codes. + // operation to get the category code for a service. Each Amazon Web Services + // service defines its own set of category codes. CategoryCode *string - // A list of email addresses that AWS Support copies on case correspondence. AWS - // Support identifies the account that creates the case when you specify your AWS - // credentials in an HTTP POST method or use the AWS SDKs - // (http://aws.amazon.com/tools/). + // A list of email addresses that Amazon Web Services Support copies on case + // correspondence. Amazon Web Services Support identifies the account that creates + // the case when you specify your Amazon Web Services credentials in an HTTP POST + // method or use the Amazon Web Services SDKs (http://aws.amazon.com/tools/). CcEmailAddresses []string // The type of issue for the case. You can specify customer-service or technical. // If you don't specify a value, the default is technical. IssueType *string - // The language in which AWS Support handles the case. You must specify the ISO - // 639-1 code for the language parameter if you want support in that language. - // Currently, English ("en") and Japanese ("ja") are supported. + // The language in which Amazon Web Services Support handles the case. You must + // specify the ISO 639-1 code for the language parameter if you want support in + // that language. Currently, English ("en") and Japanese ("ja") are supported. Language *string - // The code for the AWS service. You can use the DescribeServices operation to get - // the possible serviceCode values. + // The code for the Amazon Web Services service. You can use the DescribeServices + // operation to get the possible serviceCode values. ServiceCode *string // A value that indicates the urgency of the case. This value determines the - // response time according to your service level agreement with AWS Support. You - // can use the DescribeSeverityLevels operation to get the possible values for - // severityCode. For more information, see SeverityLevel and Choosing a Severity + // response time according to your service level agreement with Amazon Web Services + // Support. You can use the DescribeSeverityLevels operation to get the possible + // values for severityCode. For more information, see SeverityLevel and Choosing a + // Severity // (https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html#choosing-severity) - // in the AWS Support User Guide. The availability of severity levels depends on - // the support plan for the AWS account. + // in the Amazon Web Services Support User Guide. The availability of severity + // levels depends on the support plan for the Amazon Web Services account. SeverityCode *string noSmithyDocumentSerde diff --git a/service/support/api_op_DescribeAttachment.go b/service/support/api_op_DescribeAttachment.go index 01beb9fd98a..47e5b131d99 100644 --- a/service/support/api_op_DescribeAttachment.go +++ b/service/support/api_op_DescribeAttachment.go @@ -18,13 +18,14 @@ import ( // objects that are returned by the DescribeCommunications operation. // // * You must -// have a Business or Enterprise Support plan to use the AWS Support API. +// have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the +// Amazon Web Services Support API. // -// * If you -// call the AWS Support API from an account that does not have a Business or +// * If you call the Amazon Web Services Support +// API from an account that does not have a Business, Enterprise On-Ramp, or // Enterprise Support plan, the SubscriptionRequiredException error message -// appears. For information about changing your support plan, see AWS Support -// (http://aws.amazon.com/premiumsupport/). +// appears. For information about changing your support plan, see Amazon Web +// Services Support (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeAttachment(ctx context.Context, params *DescribeAttachmentInput, optFns ...func(*Options)) (*DescribeAttachmentOutput, error) { if params == nil { params = &DescribeAttachmentInput{} diff --git a/service/support/api_op_DescribeCases.go b/service/support/api_op_DescribeCases.go index f3bc4e5fb16..a8d49009a8c 100644 --- a/service/support/api_op_DescribeCases.go +++ b/service/support/api_op_DescribeCases.go @@ -29,13 +29,14 @@ import ( // for 12 months after creation. If a case was created more than 12 months ago, a // request might return an error. // -// * You must have a Business or Enterprise Support -// plan to use the AWS Support API. +// * You must have a Business, Enterprise On-Ramp, +// or Enterprise Support plan to use the Amazon Web Services Support API. // -// * If you call the AWS Support API from an -// account that does not have a Business or Enterprise Support plan, the +// * If you +// call the Amazon Web Services Support API from an account that does not have a +// Business, Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeCases(ctx context.Context, params *DescribeCasesInput, optFns ...func(*Options)) (*DescribeCasesOutput, error) { if params == nil { @@ -66,7 +67,8 @@ type DescribeCasesInput struct { // of cases is 100. CaseIdList []string - // The ID displayed for a case in the AWS Support Center user interface. + // The ID displayed for a case in the Amazon Web Services Support Center user + // interface. DisplayId *string // Specifies whether to include communications in the DescribeCases response. By @@ -77,9 +79,10 @@ type DescribeCasesInput struct { // response. By default, resolved cases aren't included. IncludeResolvedCases bool - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. Language *string // The maximum number of results to return before paginating. diff --git a/service/support/api_op_DescribeCommunications.go b/service/support/api_op_DescribeCommunications.go index 8b28014fdc2..10e54bd2a1a 100644 --- a/service/support/api_op_DescribeCommunications.go +++ b/service/support/api_op_DescribeCommunications.go @@ -21,13 +21,14 @@ import ( // number of cases that you want to display on each page, and use nextToken to // specify the resumption of pagination. // -// * You must have a Business or Enterprise -// Support plan to use the AWS Support API. +// * You must have a Business, Enterprise +// On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support +// API. // -// * If you call the AWS Support API from -// an account that does not have a Business or Enterprise Support plan, the +// * If you call the Amazon Web Services Support API from an account that +// does not have a Business, Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeCommunications(ctx context.Context, params *DescribeCommunicationsInput, optFns ...func(*Options)) (*DescribeCommunicationsOutput, error) { if params == nil { diff --git a/service/support/api_op_DescribeServices.go b/service/support/api_op_DescribeServices.go index 3e8a6cdd7c6..e8edfa0ce47 100644 --- a/service/support/api_op_DescribeServices.go +++ b/service/support/api_op_DescribeServices.go @@ -11,24 +11,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the current list of AWS services and a list of service categories for -// each service. You then use service names and categories in your CreateCase -// requests. Each AWS service has its own set of categories. The service codes and -// category codes correspond to the values that appear in the Service and Category -// lists on the AWS Support Center Create Case -// (https://console.aws.amazon.com/support/home#/case/create) page. The values in -// those fields don't necessarily match the service codes and categories returned -// by the DescribeServices operation. Always use the service codes and categories -// that the DescribeServices operation returns, so that you have the most recent -// set of service and category codes. +// Returns the current list of Amazon Web Services services and a list of service +// categories for each service. You then use service names and categories in your +// CreateCase requests. Each Amazon Web Services service has its own set of +// categories. The service codes and category codes correspond to the values that +// appear in the Service and Category lists on the Amazon Web Services Support +// Center Create Case (https://console.aws.amazon.com/support/home#/case/create) +// page. The values in those fields don't necessarily match the service codes and +// categories returned by the DescribeServices operation. Always use the service +// codes and categories that the DescribeServices operation returns, so that you +// have the most recent set of service and category codes. // -// * You must have a Business or Enterprise -// Support plan to use the AWS Support API. +// * You must have a +// Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web +// Services Support API. // -// * If you call the AWS Support API from -// an account that does not have a Business or Enterprise Support plan, the -// SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// * If you call the Amazon Web Services Support API from an +// account that does not have a Business, Enterprise On-Ramp, or Enterprise Support +// plan, the SubscriptionRequiredException error message appears. For information +// about changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeServices(ctx context.Context, params *DescribeServicesInput, optFns ...func(*Options)) (*DescribeServicesOutput, error) { if params == nil { @@ -47,21 +48,24 @@ func (c *Client) DescribeServices(ctx context.Context, params *DescribeServicesI type DescribeServicesInput struct { - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. Language *string - // A JSON-formatted list of service codes available for AWS services. + // A JSON-formatted list of service codes available for Amazon Web Services + // services. ServiceCodeList []string noSmithyDocumentSerde } -// The list of AWS services returned by the DescribeServices operation. +// The list of Amazon Web Services services returned by the DescribeServices +// operation. type DescribeServicesOutput struct { - // A JSON-formatted list of AWS services. + // A JSON-formatted list of Amazon Web Services services. Services []types.Service // Metadata pertaining to the operation's result. diff --git a/service/support/api_op_DescribeSeverityLevels.go b/service/support/api_op_DescribeSeverityLevels.go index f2de1a86a7c..831cdbaa8c4 100644 --- a/service/support/api_op_DescribeSeverityLevels.go +++ b/service/support/api_op_DescribeSeverityLevels.go @@ -15,13 +15,14 @@ import ( // severity level for a case is also a field in the CaseDetails data type that you // include for a CreateCase request. // -// * You must have a Business or Enterprise -// Support plan to use the AWS Support API. +// * You must have a Business, Enterprise +// On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support +// API. // -// * If you call the AWS Support API from -// an account that does not have a Business or Enterprise Support plan, the +// * If you call the Amazon Web Services Support API from an account that +// does not have a Business, Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeSeverityLevels(ctx context.Context, params *DescribeSeverityLevelsInput, optFns ...func(*Options)) (*DescribeSeverityLevelsOutput, error) { if params == nil { @@ -40,9 +41,10 @@ func (c *Client) DescribeSeverityLevels(ctx context.Context, params *DescribeSev type DescribeSeverityLevelsInput struct { - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. Language *string noSmithyDocumentSerde @@ -52,7 +54,7 @@ type DescribeSeverityLevelsInput struct { type DescribeSeverityLevelsOutput struct { // The available severity levels for the support case. Available severity levels - // are defined by your service level agreement with AWS. + // are defined by your service level agreement with Amazon Web Services. SeverityLevels []types.SeverityLevel // Metadata pertaining to the operation's result. diff --git a/service/support/api_op_DescribeTrustedAdvisorCheckRefreshStatuses.go b/service/support/api_op_DescribeTrustedAdvisorCheckRefreshStatuses.go index d30de332b2f..3e71868a532 100644 --- a/service/support/api_op_DescribeTrustedAdvisorCheckRefreshStatuses.go +++ b/service/support/api_op_DescribeTrustedAdvisorCheckRefreshStatuses.go @@ -11,20 +11,21 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the refresh status of the AWS Trusted Advisor checks that have the -// specified check IDs. You can get the check IDs by calling the -// DescribeTrustedAdvisorChecks operation. Some checks are refreshed automatically, -// and you can't return their refresh statuses by using the -// DescribeTrustedAdvisorCheckRefreshStatuses operation. If you call this operation -// for these checks, you might see an InvalidParameterValue error. +// Returns the refresh status of the Trusted Advisor checks that have the specified +// check IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks +// operation. Some checks are refreshed automatically, and you can't return their +// refresh statuses by using the DescribeTrustedAdvisorCheckRefreshStatuses +// operation. If you call this operation for these checks, you might see an +// InvalidParameterValue error. // -// * You must have -// a Business or Enterprise Support plan to use the AWS Support API. +// * You must have a Business, Enterprise On-Ramp, or +// Enterprise Support plan to use the Amazon Web Services Support API. // -// * If you call -// the AWS Support API from an account that does not have a Business or Enterprise -// Support plan, the SubscriptionRequiredException error message appears. For -// information about changing your support plan, see AWS Support +// * If you +// call the Amazon Web Services Support API from an account that does not have a +// Business, Enterprise On-Ramp, or Enterprise Support plan, the +// SubscriptionRequiredException error message appears. For information about +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeTrustedAdvisorCheckRefreshStatuses(ctx context.Context, params *DescribeTrustedAdvisorCheckRefreshStatusesInput, optFns ...func(*Options)) (*DescribeTrustedAdvisorCheckRefreshStatusesOutput, error) { if params == nil { diff --git a/service/support/api_op_DescribeTrustedAdvisorCheckResult.go b/service/support/api_op_DescribeTrustedAdvisorCheckResult.go index 2bab46144f0..18df3484054 100644 --- a/service/support/api_op_DescribeTrustedAdvisorCheckResult.go +++ b/service/support/api_op_DescribeTrustedAdvisorCheckResult.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the results of the AWS Trusted Advisor check that has the specified -// check ID. You can get the check IDs by calling the DescribeTrustedAdvisorChecks +// Returns the results of the Trusted Advisor check that has the specified check +// ID. You can get the check IDs by calling the DescribeTrustedAdvisorChecks // operation. The response contains a TrustedAdvisorCheckResult object, which // contains these three objects: // @@ -35,13 +35,15 @@ import ( // * checkId - The unique identifier for // the check. // -// * You must have a Business or Enterprise Support plan to use the AWS -// Support API. +// * You must have a Business, Enterprise On-Ramp, or Enterprise +// Support plan to use the Amazon Web Services Support API. // -// * If you call the AWS Support API from an account that does not -// have a Business or Enterprise Support plan, the SubscriptionRequiredException -// error message appears. For information about changing your support plan, see AWS -// Support (http://aws.amazon.com/premiumsupport/). +// * If you call the +// Amazon Web Services Support API from an account that does not have a Business, +// Enterprise On-Ramp, or Enterprise Support plan, the +// SubscriptionRequiredException error message appears. For information about +// changing your support plan, see Amazon Web Services Support +// (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeTrustedAdvisorCheckResult(ctx context.Context, params *DescribeTrustedAdvisorCheckResultInput, optFns ...func(*Options)) (*DescribeTrustedAdvisorCheckResultOutput, error) { if params == nil { params = &DescribeTrustedAdvisorCheckResultInput{} @@ -65,9 +67,10 @@ type DescribeTrustedAdvisorCheckResultInput struct { // This member is required. CheckId *string - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. Language *string noSmithyDocumentSerde diff --git a/service/support/api_op_DescribeTrustedAdvisorCheckSummaries.go b/service/support/api_op_DescribeTrustedAdvisorCheckSummaries.go index c8fc53f8f1a..74d578b439d 100644 --- a/service/support/api_op_DescribeTrustedAdvisorCheckSummaries.go +++ b/service/support/api_op_DescribeTrustedAdvisorCheckSummaries.go @@ -11,18 +11,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the results for the AWS Trusted Advisor check summaries for the check -// IDs that you specified. You can get the check IDs by calling the +// Returns the results for the Trusted Advisor check summaries for the check IDs +// that you specified. You can get the check IDs by calling the // DescribeTrustedAdvisorChecks operation. The response contains an array of // TrustedAdvisorCheckSummary objects. // -// * You must have a Business or Enterprise -// Support plan to use the AWS Support API. +// * You must have a Business, Enterprise +// On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support +// API. // -// * If you call the AWS Support API from -// an account that does not have a Business or Enterprise Support plan, the +// * If you call the Amazon Web Services Support API from an account that +// does not have a Business, Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) DescribeTrustedAdvisorCheckSummaries(ctx context.Context, params *DescribeTrustedAdvisorCheckSummariesInput, optFns ...func(*Options)) (*DescribeTrustedAdvisorCheckSummariesOutput, error) { if params == nil { diff --git a/service/support/api_op_DescribeTrustedAdvisorChecks.go b/service/support/api_op_DescribeTrustedAdvisorChecks.go index f16e07907f3..d6c949a4bd5 100644 --- a/service/support/api_op_DescribeTrustedAdvisorChecks.go +++ b/service/support/api_op_DescribeTrustedAdvisorChecks.go @@ -11,24 +11,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about all available AWS Trusted Advisor checks, including -// the name, ID, category, description, and metadata. You must specify a language -// code. The AWS Support API currently supports English ("en") and Japanese ("ja"). -// The response contains a TrustedAdvisorCheckDescription object for each check. -// You must set the AWS Region to us-east-1. +// Returns information about all available Trusted Advisor checks, including the +// name, ID, category, description, and metadata. You must specify a language code. +// The Amazon Web Services Support API currently supports English ("en") and +// Japanese ("ja"). The response contains a TrustedAdvisorCheckDescription object +// for each check. You must set the Amazon Web Services Region to us-east-1. // -// * You must have a Business or -// Enterprise Support plan to use the AWS Support API. +// * You +// must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the +// Amazon Web Services Support API. // -// * If you call the AWS -// Support API from an account that does not have a Business or Enterprise Support -// plan, the SubscriptionRequiredException error message appears. For information -// about changing your support plan, see AWS Support -// (http://aws.amazon.com/premiumsupport/). +// * If you call the Amazon Web Services Support +// API from an account that does not have a Business, Enterprise On-Ramp, or +// Enterprise Support plan, the SubscriptionRequiredException error message +// appears. For information about changing your support plan, see Amazon Web +// Services Support (http://aws.amazon.com/premiumsupport/). // -// * The names and descriptions for -// Trusted Advisor checks are subject to change. We recommend that you specify the -// check ID in your code to uniquely identify a check. +// * The names and +// descriptions for Trusted Advisor checks are subject to change. We recommend that +// you specify the check ID in your code to uniquely identify a check. func (c *Client) DescribeTrustedAdvisorChecks(ctx context.Context, params *DescribeTrustedAdvisorChecksInput, optFns ...func(*Options)) (*DescribeTrustedAdvisorChecksOutput, error) { if params == nil { params = &DescribeTrustedAdvisorChecksInput{} @@ -46,9 +47,10 @@ func (c *Client) DescribeTrustedAdvisorChecks(ctx context.Context, params *Descr type DescribeTrustedAdvisorChecksInput struct { - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. // // This member is required. Language *string diff --git a/service/support/api_op_RefreshTrustedAdvisorCheck.go b/service/support/api_op_RefreshTrustedAdvisorCheck.go index 9b3616f17b3..73a5c042907 100644 --- a/service/support/api_op_RefreshTrustedAdvisorCheck.go +++ b/service/support/api_op_RefreshTrustedAdvisorCheck.go @@ -11,20 +11,20 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Refreshes the AWS Trusted Advisor check that you specify using the check ID. You -// can get the check IDs by calling the DescribeTrustedAdvisorChecks operation. -// Some checks are refreshed automatically. If you call the -// RefreshTrustedAdvisorCheck operation to refresh them, you might see the -// InvalidParameterValue error. The response contains a -// TrustedAdvisorCheckRefreshStatus object. +// Refreshes the Trusted Advisor check that you specify using the check ID. You can +// get the check IDs by calling the DescribeTrustedAdvisorChecks operation. Some +// checks are refreshed automatically. If you call the RefreshTrustedAdvisorCheck +// operation to refresh them, you might see the InvalidParameterValue error. The +// response contains a TrustedAdvisorCheckRefreshStatus object. // -// * You must have a Business or -// Enterprise Support plan to use the AWS Support API. +// * You must have a +// Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web +// Services Support API. // -// * If you call the AWS -// Support API from an account that does not have a Business or Enterprise Support +// * If you call the Amazon Web Services Support API from an +// account that does not have a Business, Enterprise On-Ramp, or Enterprise Support // plan, the SubscriptionRequiredException error message appears. For information -// about changing your support plan, see AWS Support +// about changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) RefreshTrustedAdvisorCheck(ctx context.Context, params *RefreshTrustedAdvisorCheckInput, optFns ...func(*Options)) (*RefreshTrustedAdvisorCheckOutput, error) { if params == nil { diff --git a/service/support/api_op_ResolveCase.go b/service/support/api_op_ResolveCase.go index b2c8fc3b675..e3ca0e10414 100644 --- a/service/support/api_op_ResolveCase.go +++ b/service/support/api_op_ResolveCase.go @@ -13,13 +13,14 @@ import ( // Resolves a support case. This operation takes a caseId and returns the initial // and final state of the case. // -// * You must have a Business or Enterprise Support -// plan to use the AWS Support API. +// * You must have a Business, Enterprise On-Ramp, or +// Enterprise Support plan to use the Amazon Web Services Support API. // -// * If you call the AWS Support API from an -// account that does not have a Business or Enterprise Support plan, the +// * If you +// call the Amazon Web Services Support API from an account that does not have a +// Business, Enterprise On-Ramp, or Enterprise Support plan, the // SubscriptionRequiredException error message appears. For information about -// changing your support plan, see AWS Support +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). func (c *Client) ResolveCase(ctx context.Context, params *ResolveCaseInput, optFns ...func(*Options)) (*ResolveCaseOutput, error) { if params == nil { diff --git a/service/support/doc.go b/service/support/doc.go index 54371802c14..a5817d93617 100644 --- a/service/support/doc.go +++ b/service/support/doc.go @@ -3,69 +3,73 @@ // Package support provides the API client, operations, and parameter types for AWS // Support. // -// AWS Support The AWS Support API Reference is intended for programmers who need -// detailed information about the AWS Support operations and data types. You can -// use the API to manage your support cases programmatically. The AWS Support API -// uses HTTP methods that return results in JSON format. +// Amazon Web Services Support The Amazon Web Services Support API Reference is +// intended for programmers who need detailed information about the Amazon Web +// Services Support operations and data types. You can use the API to manage your +// support cases programmatically. The Amazon Web Services Support API uses HTTP +// methods that return results in JSON format. // -// * You must have a -// Business or Enterprise Support plan to use the AWS Support API. +// * You must have a Business, +// Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services +// Support API. // -// * If you call -// the AWS Support API from an account that does not have a Business or Enterprise -// Support plan, the SubscriptionRequiredException error message appears. For -// information about changing your support plan, see AWS Support +// * If you call the Amazon Web Services Support API from an account +// that does not have a Business, Enterprise On-Ramp, or Enterprise Support plan, +// the SubscriptionRequiredException error message appears. For information about +// changing your support plan, see Amazon Web Services Support // (http://aws.amazon.com/premiumsupport/). // -// The AWS Support service also exposes a -// set of AWS Trusted Advisor +// The Amazon Web Services Support +// service also exposes a set of Trusted Advisor // (http://aws.amazon.com/premiumsupport/trustedadvisor/) features. You can // retrieve a list of checks and their descriptions, get check results, specify // checks to refresh, and get the refresh status of checks. The following list -// describes the AWS Support case management operations: +// describes the Amazon Web Services Support case management operations: // -// * Service names, issue -// categories, and available severity levels - The DescribeServices and -// DescribeSeverityLevels operations return AWS service names, service codes, -// service categories, and problem severity levels. You use these values when you -// call the CreateCase operation. +// * Service +// names, issue categories, and available severity levels - The DescribeServices +// and DescribeSeverityLevels operations return Amazon Web Services service names, +// service codes, service categories, and problem severity levels. You use these +// values when you call the CreateCase operation. // -// * Case creation, case details, and case -// resolution - The CreateCase, DescribeCases, DescribeAttachment, and ResolveCase -// operations create AWS Support cases, retrieve information about cases, and -// resolve cases. +// * Case creation, case details, +// and case resolution - The CreateCase, DescribeCases, DescribeAttachment, and +// ResolveCase operations create Amazon Web Services Support cases, retrieve +// information about cases, and resolve cases. // -// * Case communication - The DescribeCommunications, -// AddCommunicationToCase, and AddAttachmentsToSet operations retrieve and add -// communications and attachments to AWS Support cases. +// * Case communication - The +// DescribeCommunications, AddCommunicationToCase, and AddAttachmentsToSet +// operations retrieve and add communications and attachments to Amazon Web +// Services Support cases. // -// The following list -// describes the operations available from the AWS Support service for Trusted -// Advisor: +// The following list describes the operations available +// from the Amazon Web Services Support service for Trusted Advisor: // -// * DescribeTrustedAdvisorChecks returns the list of checks that run -// against your AWS resources. +// * +// DescribeTrustedAdvisorChecks returns the list of checks that run against your +// Amazon Web Services resources. // -// * Using the checkId for a specific check returned -// by DescribeTrustedAdvisorChecks, you can call DescribeTrustedAdvisorCheckResult -// to obtain the results for the check that you specified. +// * Using the checkId for a specific check +// returned by DescribeTrustedAdvisorChecks, you can call +// DescribeTrustedAdvisorCheckResult to obtain the results for the check that you +// specified. // -// * -// DescribeTrustedAdvisorCheckSummaries returns summarized results for one or more -// Trusted Advisor checks. +// * DescribeTrustedAdvisorCheckSummaries returns summarized results +// for one or more Trusted Advisor checks. // -// * RefreshTrustedAdvisorCheck requests that Trusted -// Advisor rerun a specified check. +// * RefreshTrustedAdvisorCheck requests +// that Trusted Advisor rerun a specified check. // -// * DescribeTrustedAdvisorCheckRefreshStatuses -// reports the refresh status of one or more checks. +// * +// DescribeTrustedAdvisorCheckRefreshStatuses reports the refresh status of one or +// more checks. // -// For authentication of -// requests, AWS Support uses Signature Version 4 Signing Process +// For authentication of requests, Amazon Web Services Support uses +// Signature Version 4 Signing Process // (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). See -// About the AWS Support API -// (https://docs.aws.amazon.com/awssupport/latest/user/Welcome.html) in the AWS -// Support User Guide for information about how to use this service to create and -// manage your support cases, and how to call Trusted Advisor for results of checks -// on your resources. +// About the Amazon Web Services Support API +// (https://docs.aws.amazon.com/awssupport/latest/user/Welcome.html) in the Amazon +// Web Services Support User Guide for information about how to use this service to +// create and manage your support cases, and how to call Trusted Advisor for +// results of checks on your resources. package support diff --git a/service/support/types/types.go b/service/support/types/types.go index bcd175cae16..2512e193947 100644 --- a/service/support/types/types.go +++ b/service/support/types/types.go @@ -45,32 +45,33 @@ type AttachmentDetails struct { // a call to DescribeServices. // // * displayId - The identifier for the case on pages -// in the AWS Support Center. +// in the Amazon Web Services Support Center. // -// * language - The ISO 639-1 code for the language in -// which AWS provides support. AWS Support currently supports English ("en") and -// Japanese ("ja"). Language parameters must be passed explicitly for operations -// that take them. +// * language - The ISO 639-1 code for +// the language in which Amazon Web Services provides support. Amazon Web Services +// Support currently supports English ("en") and Japanese ("ja"). Language +// parameters must be passed explicitly for operations that take them. // -// * nextToken - A resumption point for pagination. +// * nextToken +// - A resumption point for pagination. // -// * -// recentCommunications - One or more Communication objects. Fields of these -// objects are attachments, body, caseId, submittedBy, and timeCreated. +// * recentCommunications - One or more +// Communication objects. Fields of these objects are attachments, body, caseId, +// submittedBy, and timeCreated. // -// * -// serviceCode - The identifier for the AWS service that corresponds to the service -// code defined in the call to DescribeServices. +// * serviceCode - The identifier for the Amazon Web +// Services service that corresponds to the service code defined in the call to +// DescribeServices. // -// * severityCode - The severity -// code assigned to the case. Contains one of the values returned by the call to -// DescribeSeverityLevels. The possible values are: low, normal, high, urgent, and -// critical. +// * severityCode - The severity code assigned to the case. +// Contains one of the values returned by the call to DescribeSeverityLevels. The +// possible values are: low, normal, high, urgent, and critical. // -// * status - The status of the case in the AWS Support Center. Valid -// values: +// * status - The +// status of the case in the Amazon Web Services Support Center. Valid values: // -// * opened +// * +// opened // // * pending-customer-action // @@ -78,18 +79,18 @@ type AttachmentDetails struct { // // * resolved // -// * -// unassigned +// * unassigned // -// * work-in-progress +// * +// work-in-progress // // * subject - The subject line of the case. // -// * -// submittedBy - The email address of the account that submitted the case. +// * submittedBy - The +// email address of the account that submitted the case. // -// * -// timeCreated - The time the case was created, in ISO-8601 format. +// * timeCreated - The time +// the case was created, in ISO-8601 format. type CaseDetails struct { // The support case ID requested or returned in the call. The case ID is an @@ -103,22 +104,23 @@ type CaseDetails struct { // The email addresses that receive copies of communication about the case. CcEmailAddresses []string - // The ID displayed for the case in the AWS Support Center. This is a numeric - // string. + // The ID displayed for the case in the Amazon Web Services Support Center. This is + // a numeric string. DisplayId *string - // The ISO 639-1 code for the language in which AWS provides support. AWS Support - // currently supports English ("en") and Japanese ("ja"). Language parameters must - // be passed explicitly for operations that take them. + // The ISO 639-1 code for the language in which Amazon Web Services provides + // support. Amazon Web Services Support currently supports English ("en") and + // Japanese ("ja"). Language parameters must be passed explicitly for operations + // that take them. Language *string - // The five most recent communications between you and AWS Support Center, - // including the IDs of any attachments to the communications. Also includes a - // nextToken that you can use to retrieve earlier communications. + // The five most recent communications between you and Amazon Web Services Support + // Center, including the IDs of any attachments to the communications. Also + // includes a nextToken that you can use to retrieve earlier communications. RecentCommunications *RecentCaseCommunications - // The code for the AWS service. You can get a list of codes and the corresponding - // service names by calling DescribeServices. + // The code for the Amazon Web Services service. You can get a list of codes and + // the corresponding service names by calling DescribeServices. ServiceCode *string // The code for the severity level returned by the call to DescribeSeverityLevels. @@ -140,21 +142,21 @@ type CaseDetails struct { // * work-in-progress Status *string - // The subject line for the case in the AWS Support Center. + // The subject line for the case in the Amazon Web Services Support Center. Subject *string // The email address of the account that submitted the case. SubmittedBy *string - // The time that the case was created in the AWS Support Center. + // The time that the case was created in the Amazon Web Services Support Center. TimeCreated *string noSmithyDocumentSerde } // A JSON-formatted name/value pair that represents the category name and category -// code of the problem, selected from the DescribeServices response for each AWS -// service. +// code of the problem, selected from the DescribeServices response for each Amazon +// Web Services service. type Category struct { // The category code for the support case. @@ -174,7 +176,8 @@ type Communication struct { // Information about the attachments to the case communication. AttachmentSet []AttachmentDetails - // The text of the communication between the customer and AWS Support. + // The text of the communication between the customer and Amazon Web Services + // Support. Body *string // The support case ID requested or returned in the call. The case ID is an @@ -184,8 +187,8 @@ type Communication struct { // The identity of the account that submitted, or responded to, the support case. // Customer entries include the role or IAM user as well as the email address. For - // example, "AdminRole (Role) . Entries from the AWS Support team display "Amazon - // Web Services," and don't show an email address. + // example, "AdminRole (Role) . Entries from the Amazon Web Services Support team + // display "Amazon Web Services," and don't show an email address. SubmittedBy *string // The time the communication was created. @@ -206,20 +209,21 @@ type RecentCaseCommunications struct { noSmithyDocumentSerde } -// Information about an AWS service returned by the DescribeServices operation. +// Information about an Amazon Web Services service returned by the +// DescribeServices operation. type Service struct { // A list of categories that describe the type of support issue a case describes. // Categories consist of a category name and a category code. Category names and - // codes are passed to AWS Support when you call CreateCase. + // codes are passed to Amazon Web Services Support when you call CreateCase. Categories []Category - // The code for an AWS service returned by the DescribeServices response. The name - // element contains the corresponding friendly name. + // The code for an Amazon Web Services service returned by the DescribeServices + // response. The name element contains the corresponding friendly name. Code *string - // The friendly name for an AWS service. The code element contains the - // corresponding code. + // The friendly name for an Amazon Web Services service. The code element contains + // the corresponding code. Name *string noSmithyDocumentSerde @@ -229,7 +233,7 @@ type Service struct { // available values depend on the support plan for the account. For more // information, see Choosing a severity // (https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#choosing-severity) -// in the AWS Support User Guide. +// in the Amazon Web Services Support User Guide. type SeverityLevel struct { // The code for case severity level. Valid values: low | normal | high | urgent | @@ -237,27 +241,27 @@ type SeverityLevel struct { Code *string // The name of the severity level that corresponds to the severity level code. The - // values returned by the API are different from the values that appear in the AWS - // Support Center. For example, the API uses the code low, but the name appears as - // General guidance in Support Center. The following are the API code names and how - // they appear in the console: + // values returned by the API are different from the values that appear in the + // Amazon Web Services Support Center. For example, the API uses the code low, but + // the name appears as General guidance in Support Center. The following are the + // API code names and how they appear in the console: // // * low - General guidance // - // * normal - System - // impaired + // * + // normal - System impaired // // * high - Production system impaired // - // * urgent - Production system - // down + // * urgent - + // Production system down // // * critical - Business-critical system down // - // For more information, see - // Choosing a severity + // For more + // information, see Choosing a severity // (https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#choosing-severity) - // in the AWS Support User Guide. + // in the Amazon Web Services Support User Guide. Name *string noSmithyDocumentSerde @@ -367,8 +371,8 @@ type TrustedAdvisorCheckResult struct { // This member is required. FlaggedResources []TrustedAdvisorResourceDetail - // Details about AWS resources that were analyzed in a call to Trusted Advisor - // DescribeTrustedAdvisorCheckSummaries. + // Details about Amazon Web Services resources that were analyzed in a call to + // Trusted Advisor DescribeTrustedAdvisorCheckSummaries. // // This member is required. ResourcesSummary *TrustedAdvisorResourcesSummary @@ -402,8 +406,8 @@ type TrustedAdvisorCheckSummary struct { // This member is required. CheckId *string - // Details about AWS resources that were analyzed in a call to Trusted Advisor - // DescribeTrustedAdvisorCheckSummaries. + // Details about Amazon Web Services resources that were analyzed in a call to + // Trusted Advisor DescribeTrustedAdvisorCheckSummaries. // // This member is required. ResourcesSummary *TrustedAdvisorResourcesSummary @@ -466,39 +470,40 @@ type TrustedAdvisorResourceDetail struct { // This member is required. Status *string - // Specifies whether the AWS resource was ignored by Trusted Advisor because it was - // marked as suppressed by the user. + // Specifies whether the Amazon Web Services resource was ignored by Trusted + // Advisor because it was marked as suppressed by the user. IsSuppressed bool - // The AWS Region in which the identified resource is located. + // The Amazon Web Services Region in which the identified resource is located. Region *string noSmithyDocumentSerde } -// Details about AWS resources that were analyzed in a call to Trusted Advisor -// DescribeTrustedAdvisorCheckSummaries. +// Details about Amazon Web Services resources that were analyzed in a call to +// Trusted Advisor DescribeTrustedAdvisorCheckSummaries. type TrustedAdvisorResourcesSummary struct { - // The number of AWS resources that were flagged (listed) by the Trusted Advisor - // check. + // The number of Amazon Web Services resources that were flagged (listed) by the + // Trusted Advisor check. // // This member is required. ResourcesFlagged int64 - // The number of AWS resources ignored by Trusted Advisor because information was - // unavailable. + // The number of Amazon Web Services resources ignored by Trusted Advisor because + // information was unavailable. // // This member is required. ResourcesIgnored int64 - // The number of AWS resources that were analyzed by the Trusted Advisor check. + // The number of Amazon Web Services resources that were analyzed by the Trusted + // Advisor check. // // This member is required. ResourcesProcessed int64 - // The number of AWS resources ignored by Trusted Advisor because they were marked - // as suppressed by the user. + // The number of Amazon Web Services resources ignored by Trusted Advisor because + // they were marked as suppressed by the user. // // This member is required. ResourcesSuppressed int64 From 68272d071bb3919e373200f44f09b162e461c5ce Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Fri, 10 Dec 2021 11:32:11 -0800 Subject: [PATCH 4/7] Add Changelog Annotations --- .../58493f822d144e108af6caf0b1c7d330.json | 37 +++++++++++++++++++ .../f5c76a29358c445aab4ee61b7800df56.json | 13 +++++++ 2 files changed, 50 insertions(+) create mode 100644 .changelog/58493f822d144e108af6caf0b1c7d330.json create mode 100644 .changelog/f5c76a29358c445aab4ee61b7800df56.json diff --git a/.changelog/58493f822d144e108af6caf0b1c7d330.json b/.changelog/58493f822d144e108af6caf0b1c7d330.json new file mode 100644 index 00000000000..55da4ca366f --- /dev/null +++ b/.changelog/58493f822d144e108af6caf0b1c7d330.json @@ -0,0 +1,37 @@ +{ + "id": "58493f82-2d14-4e10-8af6-caf0b1c7d330", + "type": "feature", + "description": "API client updated", + "modules": [ + "service/appsync", + "service/chimesdkmessaging", + "service/cloudwatchlogs", + "service/comprehendmedical", + "service/customerprofiles", + "service/datasync", + "service/devopsguru", + "service/ec2", + "service/finspacedata", + "service/forecast", + "service/imagebuilder", + "service/iot", + "service/lexmodelsv2", + "service/location", + "service/lookoutmetrics", + "service/lookoutvision", + "service/mediaconnect", + "service/networkfirewall", + "service/nimble", + "service/outposts", + "service/pi", + "service/qldb", + "service/redshift", + "service/route53", + "service/route53domains", + "service/route53recoverycontrolconfig", + "service/sagemaker", + "service/securityhub", + "service/transfer", + "service/workmail" + ] +} \ No newline at end of file diff --git a/.changelog/f5c76a29358c445aab4ee61b7800df56.json b/.changelog/f5c76a29358c445aab4ee61b7800df56.json new file mode 100644 index 00000000000..21f5011afde --- /dev/null +++ b/.changelog/f5c76a29358c445aab4ee61b7800df56.json @@ -0,0 +1,13 @@ +{ + "id": "f5c76a29-358c-445a-ab4e-e61b7800df56", + "type": "documentation", + "description": "API client updated", + "modules": [ + "service/apigateway", + "service/health", + "service/savingsplans", + "service/secretsmanager", + "service/sms", + "service/support" + ] +} \ No newline at end of file From 16f01419e0939996a4471debf0d45170ec59fe90 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Tue, 21 Dec 2021 12:36:54 -0800 Subject: [PATCH 5/7] Update Endpoints Model --- .../smithy/aws/go/codegen/endpoints.json | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index bbd34ef7881..8dd1255f34e 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 @@ -47,6 +47,9 @@ "ap-southeast-2" : { "description" : "Asia Pacific (Sydney)" }, + "ap-southeast-3" : { + "description" : "Asia Pacific (Jakarta)" + }, "ca-central-1" : { "description" : "Canada (Central)" }, @@ -103,6 +106,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "access-analyzer-fips.ca-central-1.amazonaws.com", @@ -200,6 +204,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "acm-fips.ca-central-1.amazonaws.com", @@ -552,6 +557,12 @@ }, "hostname" : "api.ecr.ap-southeast-2.amazonaws.com" }, + "ap-southeast-3" : { + "credentialScope" : { + "region" : "ap-southeast-3" + }, + "hostname" : "api.ecr.ap-southeast-3.amazonaws.com" + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -1061,6 +1072,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1327,6 +1339,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1556,6 +1569,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "cloudcontrolapi-fips.ca-central-1.amazonaws.com", @@ -1654,6 +1668,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -2044,6 +2059,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -2593,6 +2609,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -3033,6 +3050,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -3117,6 +3135,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "dms" : { "credentialScope" : { @@ -3396,6 +3415,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "dynamodb-fips.ca-central-1.amazonaws.com", @@ -3581,6 +3601,7 @@ }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ec2-fips.ca-central-1.amazonaws.com", @@ -3685,6 +3706,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -3838,6 +3860,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -4271,6 +4294,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -4348,6 +4372,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "elasticmapreduce-fips.ca-central-1.amazonaws.com", @@ -4548,6 +4573,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -4628,6 +4654,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -5387,6 +5414,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "glacier-fips.ca-central-1.amazonaws.com", @@ -5648,6 +5676,7 @@ "hostname" : "groundstation-fips.us-west-2.amazonaws.com" }, "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { "variants" : [ { "hostname" : "groundstation-fips.us-east-1.amazonaws.com", @@ -6397,6 +6426,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -6462,9 +6492,11 @@ }, "kinesisanalytics" : { "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" : { }, @@ -6608,6 +6640,12 @@ "deprecated" : true, "hostname" : "kms-fips.ap-southeast-2.amazonaws.com" }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "kms-fips.ap-southeast-3.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ap-southeast-3-fips" : { "credentialScope" : { "region" : "ap-southeast-3" @@ -6869,6 +6907,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -7033,6 +7072,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -7103,6 +7143,19 @@ "us-east-1" : { } } }, + "lookoutmetrics" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "lookoutvision" : { "endpoints" : { "ap-northeast-1" : { }, @@ -7443,6 +7496,38 @@ "us-west-2" : { } } }, + "meetings-chime" : { + "endpoints" : { + "ap-southeast-1" : { }, + "eu-central-1" : { }, + "us-east-1" : { + "variants" : [ { + "hostname" : "meetings-chime-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-1-fips" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "meetings-chime-fips.us-east-1.amazonaws.com" + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "meetings-chime-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2-fips" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "meetings-chime-fips.us-west-2.amazonaws.com" + } + } + }, "messaging-chime" : { "endpoints" : { "us-east-1" : { @@ -7475,6 +7560,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -7615,6 +7701,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -8680,6 +8767,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "rds-fips.ca-central-1.amazonaws.com", @@ -8851,6 +8939,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "redshift-fips.ca-central-1.amazonaws.com", @@ -9098,6 +9187,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -9460,6 +9550,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "s3.dualstack.ap-southeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "aws-global" : { "credentialScope" : { "region" : "us-east-1" @@ -10828,6 +10924,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -10905,6 +11002,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -10979,6 +11077,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ssm-fips.ca-central-1.amazonaws.com", @@ -11084,6 +11183,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -11255,6 +11355,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -11287,6 +11388,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "aws-global" : { "credentialScope" : { "region" : "us-east-1" @@ -11378,6 +11480,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -11451,6 +11554,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, From 53267ebd03e927a683c7ef2035c34b5c0bd731aa Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Tue, 21 Dec 2021 12:37:27 -0800 Subject: [PATCH 6/7] Regenerated Client Endpoints --- .../f9ed95d2adec4a42a82e373aa72efd98.json | 56 +++++++++++++++++++ .../internal/endpoints/endpoints.go | 3 + service/acm/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 44 +++++++++++++++ .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + service/docdb/internal/endpoints/endpoints.go | 3 + .../dynamodb/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + service/ec2/internal/endpoints/endpoints.go | 3 + service/ecr/internal/endpoints/endpoints.go | 8 +++ service/ecs/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + service/emr/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../glacier/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../kinesis/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 6 ++ .../internal/endpoints/endpoints.go | 6 ++ service/kms/internal/endpoints/endpoints.go | 9 +++ .../lambda/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 29 ++++++++++ .../internal/endpoints/endpoints.go | 3 + .../neptune/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + service/rds/internal/endpoints/endpoints.go | 3 + .../redshift/internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + service/s3/internal/endpoints/endpoints.go | 9 +++ .../internal/endpoints/s3/endpoints.go | 9 +++ service/sfn/internal/endpoints/endpoints.go | 3 + service/sns/internal/endpoints/endpoints.go | 3 + service/sqs/internal/endpoints/endpoints.go | 3 + service/ssm/internal/endpoints/endpoints.go | 3 + service/sts/internal/endpoints/endpoints.go | 3 + service/swf/internal/endpoints/endpoints.go | 3 + 50 files changed, 299 insertions(+) create mode 100644 .changelog/f9ed95d2adec4a42a82e373aa72efd98.json diff --git a/.changelog/f9ed95d2adec4a42a82e373aa72efd98.json b/.changelog/f9ed95d2adec4a42a82e373aa72efd98.json new file mode 100644 index 00000000000..7701d850af6 --- /dev/null +++ b/.changelog/f9ed95d2adec4a42a82e373aa72efd98.json @@ -0,0 +1,56 @@ +{ + "id": "f9ed95d2-adec-4a42-a82e-373aa72efd98", + "type": "feature", + "description": "Updated to service endpoints", + "modules": [ + "service/accessanalyzer", + "service/acm", + "service/applicationautoscaling", + "service/autoscaling", + "service/chimesdkmeetings", + "service/cloudcontrol", + "service/cloudformation", + "service/cloudwatch", + "service/cloudwatchevents", + "service/cloudwatchlogs", + "service/codedeploy", + "service/configservice", + "service/databasemigrationservice", + "service/directconnect", + "service/docdb", + "service/dynamodb", + "service/dynamodbstreams", + "service/ec2", + "service/ecr", + "service/ecs", + "service/elasticache", + "service/elasticloadbalancing", + "service/elasticloadbalancingv2", + "service/elasticsearchservice", + "service/emr", + "service/eventbridge", + "service/glacier", + "service/groundstation", + "service/kinesis", + "service/kinesisanalytics", + "service/kinesisanalyticsv2", + "service/kms", + "service/lambda", + "service/lookoutmetrics", + "service/marketplacemetering", + "service/neptune", + "service/opensearch", + "service/rds", + "service/redshift", + "service/resourcegroups", + "service/resourcegroupstaggingapi", + "service/s3", + "service/s3control", + "service/sfn", + "service/sns", + "service/sqs", + "service/ssm", + "service/sts", + "service/swf" + ] +} \ No newline at end of file diff --git a/service/accessanalyzer/internal/endpoints/endpoints.go b/service/accessanalyzer/internal/endpoints/endpoints.go index f98a7f6e45f..c7e461d869e 100644 --- a/service/accessanalyzer/internal/endpoints/endpoints.go +++ b/service/accessanalyzer/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/acm/internal/endpoints/endpoints.go b/service/acm/internal/endpoints/endpoints.go index 8b3ba1e5852..6662a99b543 100644 --- a/service/acm/internal/endpoints/endpoints.go +++ b/service/acm/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/applicationautoscaling/internal/endpoints/endpoints.go b/service/applicationautoscaling/internal/endpoints/endpoints.go index 42485b445ef..cf2d7916b1d 100644 --- a/service/applicationautoscaling/internal/endpoints/endpoints.go +++ b/service/applicationautoscaling/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/autoscaling/internal/endpoints/endpoints.go b/service/autoscaling/internal/endpoints/endpoints.go index 53a01cc7f43..aa277f2d1e0 100644 --- a/service/autoscaling/internal/endpoints/endpoints.go +++ b/service/autoscaling/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/chimesdkmeetings/internal/endpoints/endpoints.go b/service/chimesdkmeetings/internal/endpoints/endpoints.go index 4b05e209ef7..27388c38864 100644 --- a/service/chimesdkmeetings/internal/endpoints/endpoints.go +++ b/service/chimesdkmeetings/internal/endpoints/endpoints.go @@ -134,6 +134,50 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "ap-southeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "meetings-chime-fips.us-east-1.amazonaws.com", + }, + endpoints.EndpointKey{ + Region: "us-east-1-fips", + }: endpoints.Endpoint{ + Hostname: "meetings-chime-fips.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + Deprecated: aws.TrueTernary, + }, + endpoints.EndpointKey{ + Region: "us-west-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "meetings-chime-fips.us-west-2.amazonaws.com", + }, + endpoints.EndpointKey{ + Region: "us-west-2-fips", + }: endpoints.Endpoint{ + Hostname: "meetings-chime-fips.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + Deprecated: aws.TrueTernary, + }, + }, }, { ID: "aws-cn", diff --git a/service/cloudcontrol/internal/endpoints/endpoints.go b/service/cloudcontrol/internal/endpoints/endpoints.go index 073d048e760..58191e16e24 100644 --- a/service/cloudcontrol/internal/endpoints/endpoints.go +++ b/service/cloudcontrol/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/cloudformation/internal/endpoints/endpoints.go b/service/cloudformation/internal/endpoints/endpoints.go index ae81fbcd20f..802128e4895 100644 --- a/service/cloudformation/internal/endpoints/endpoints.go +++ b/service/cloudformation/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/cloudwatch/internal/endpoints/endpoints.go b/service/cloudwatch/internal/endpoints/endpoints.go index cf2bcb320a9..60e2dd8fd9a 100644 --- a/service/cloudwatch/internal/endpoints/endpoints.go +++ b/service/cloudwatch/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/cloudwatchevents/internal/endpoints/endpoints.go b/service/cloudwatchevents/internal/endpoints/endpoints.go index 1bc0fb7440c..d179bddd6e5 100644 --- a/service/cloudwatchevents/internal/endpoints/endpoints.go +++ b/service/cloudwatchevents/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/cloudwatchlogs/internal/endpoints/endpoints.go b/service/cloudwatchlogs/internal/endpoints/endpoints.go index 0f676b7fb7c..023ec36dbed 100644 --- a/service/cloudwatchlogs/internal/endpoints/endpoints.go +++ b/service/cloudwatchlogs/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/codedeploy/internal/endpoints/endpoints.go b/service/codedeploy/internal/endpoints/endpoints.go index adbff3c24fa..8b3a51fe2e5 100644 --- a/service/codedeploy/internal/endpoints/endpoints.go +++ b/service/codedeploy/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/configservice/internal/endpoints/endpoints.go b/service/configservice/internal/endpoints/endpoints.go index d313c3e548d..985e58237dd 100644 --- a/service/configservice/internal/endpoints/endpoints.go +++ b/service/configservice/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/databasemigrationservice/internal/endpoints/endpoints.go b/service/databasemigrationservice/internal/endpoints/endpoints.go index 2cf7aae3964..f280dc61f2d 100644 --- a/service/databasemigrationservice/internal/endpoints/endpoints.go +++ b/service/databasemigrationservice/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/directconnect/internal/endpoints/endpoints.go b/service/directconnect/internal/endpoints/endpoints.go index 50095e984e3..458f6cff3b4 100644 --- a/service/directconnect/internal/endpoints/endpoints.go +++ b/service/directconnect/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/docdb/internal/endpoints/endpoints.go b/service/docdb/internal/endpoints/endpoints.go index 4160c589428..71237d919d0 100644 --- a/service/docdb/internal/endpoints/endpoints.go +++ b/service/docdb/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/dynamodb/internal/endpoints/endpoints.go b/service/dynamodb/internal/endpoints/endpoints.go index 96450c55a7f..2b24f8b0cfc 100644 --- a/service/dynamodb/internal/endpoints/endpoints.go +++ b/service/dynamodb/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/dynamodbstreams/internal/endpoints/endpoints.go b/service/dynamodbstreams/internal/endpoints/endpoints.go index 3735b0b1f2e..e666922e04c 100644 --- a/service/dynamodbstreams/internal/endpoints/endpoints.go +++ b/service/dynamodbstreams/internal/endpoints/endpoints.go @@ -171,6 +171,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/ec2/internal/endpoints/endpoints.go b/service/ec2/internal/endpoints/endpoints.go index 8cc0431aad3..e2065127c4c 100644 --- a/service/ec2/internal/endpoints/endpoints.go +++ b/service/ec2/internal/endpoints/endpoints.go @@ -165,6 +165,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/ecr/internal/endpoints/endpoints.go b/service/ecr/internal/endpoints/endpoints.go index 5c570c8639b..c74ddafcd57 100644 --- a/service/ecr/internal/endpoints/endpoints.go +++ b/service/ecr/internal/endpoints/endpoints.go @@ -199,6 +199,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "ap-southeast-2", }, }, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{ + Hostname: "api.ecr.ap-southeast-3.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-southeast-3", + }, + }, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{ diff --git a/service/ecs/internal/endpoints/endpoints.go b/service/ecs/internal/endpoints/endpoints.go index e04fe917ae5..831e54bec47 100644 --- a/service/ecs/internal/endpoints/endpoints.go +++ b/service/ecs/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/elasticache/internal/endpoints/endpoints.go b/service/elasticache/internal/endpoints/endpoints.go index e890f69f14c..1568bec1779 100644 --- a/service/elasticache/internal/endpoints/endpoints.go +++ b/service/elasticache/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/elasticloadbalancing/internal/endpoints/endpoints.go b/service/elasticloadbalancing/internal/endpoints/endpoints.go index d79e93c64be..afa7d7b0a4d 100644 --- a/service/elasticloadbalancing/internal/endpoints/endpoints.go +++ b/service/elasticloadbalancing/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/elasticloadbalancingv2/internal/endpoints/endpoints.go b/service/elasticloadbalancingv2/internal/endpoints/endpoints.go index 8b87b130b6a..c2c4d8b03a4 100644 --- a/service/elasticloadbalancingv2/internal/endpoints/endpoints.go +++ b/service/elasticloadbalancingv2/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/elasticsearchservice/internal/endpoints/endpoints.go b/service/elasticsearchservice/internal/endpoints/endpoints.go index 8150782a202..a9c6fc659ec 100644 --- a/service/elasticsearchservice/internal/endpoints/endpoints.go +++ b/service/elasticsearchservice/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/emr/internal/endpoints/endpoints.go b/service/emr/internal/endpoints/endpoints.go index 68d47e95cb3..e00ec9b4345 100644 --- a/service/emr/internal/endpoints/endpoints.go +++ b/service/emr/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/eventbridge/internal/endpoints/endpoints.go b/service/eventbridge/internal/endpoints/endpoints.go index 9ad0c87a2d0..9b6c37c52d9 100644 --- a/service/eventbridge/internal/endpoints/endpoints.go +++ b/service/eventbridge/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/glacier/internal/endpoints/endpoints.go b/service/glacier/internal/endpoints/endpoints.go index e4d31bc28e1..561a7dcf8df 100644 --- a/service/glacier/internal/endpoints/endpoints.go +++ b/service/glacier/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/groundstation/internal/endpoints/endpoints.go b/service/groundstation/internal/endpoints/endpoints.go index 3f47f1b797b..aab24a8a2ba 100644 --- a/service/groundstation/internal/endpoints/endpoints.go +++ b/service/groundstation/internal/endpoints/endpoints.go @@ -183,6 +183,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "me-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "sa-east-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, diff --git a/service/kinesis/internal/endpoints/endpoints.go b/service/kinesis/internal/endpoints/endpoints.go index b8c82e0523e..80dfa660418 100644 --- a/service/kinesis/internal/endpoints/endpoints.go +++ b/service/kinesis/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/kinesisanalytics/internal/endpoints/endpoints.go b/service/kinesisanalytics/internal/endpoints/endpoints.go index 4ce0d00f424..3fa06563d34 100644 --- a/service/kinesisanalytics/internal/endpoints/endpoints.go +++ b/service/kinesisanalytics/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/kinesisanalyticsv2/internal/endpoints/endpoints.go b/service/kinesisanalyticsv2/internal/endpoints/endpoints.go index af235e05252..43bb3d1ac70 100644 --- a/service/kinesisanalyticsv2/internal/endpoints/endpoints.go +++ b/service/kinesisanalyticsv2/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/kms/internal/endpoints/endpoints.go b/service/kms/internal/endpoints/endpoints.go index f4e54b4ee22..31bd0f3cc9f 100644 --- a/service/kms/internal/endpoints/endpoints.go +++ b/service/kms/internal/endpoints/endpoints.go @@ -279,6 +279,15 @@ var defaultPartitions = endpoints.Partitions{ }, Deprecated: aws.TrueTernary, }, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "kms-fips.ap-southeast-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-3-fips", }: endpoints.Endpoint{ diff --git a/service/lambda/internal/endpoints/endpoints.go b/service/lambda/internal/endpoints/endpoints.go index ce2535ef9cb..1c8b3392ee5 100644 --- a/service/lambda/internal/endpoints/endpoints.go +++ b/service/lambda/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/lookoutmetrics/internal/endpoints/endpoints.go b/service/lookoutmetrics/internal/endpoints/endpoints.go index 1532cac6fb4..a9656e93a2d 100644 --- a/service/lookoutmetrics/internal/endpoints/endpoints.go +++ b/service/lookoutmetrics/internal/endpoints/endpoints.go @@ -134,6 +134,35 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "ap-northeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-north-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-cn", diff --git a/service/marketplacemetering/internal/endpoints/endpoints.go b/service/marketplacemetering/internal/endpoints/endpoints.go index 7ba6b89e987..0c6e6990519 100644 --- a/service/marketplacemetering/internal/endpoints/endpoints.go +++ b/service/marketplacemetering/internal/endpoints/endpoints.go @@ -171,6 +171,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/neptune/internal/endpoints/endpoints.go b/service/neptune/internal/endpoints/endpoints.go index b9de427ce0f..4c513065dcd 100644 --- a/service/neptune/internal/endpoints/endpoints.go +++ b/service/neptune/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/opensearch/internal/endpoints/endpoints.go b/service/opensearch/internal/endpoints/endpoints.go index 16a181ca0ec..7ffa0c49658 100644 --- a/service/opensearch/internal/endpoints/endpoints.go +++ b/service/opensearch/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/rds/internal/endpoints/endpoints.go b/service/rds/internal/endpoints/endpoints.go index 6363a673b78..fcd3167d5fd 100644 --- a/service/rds/internal/endpoints/endpoints.go +++ b/service/rds/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/redshift/internal/endpoints/endpoints.go b/service/redshift/internal/endpoints/endpoints.go index 728ec3c2f75..712958313d1 100644 --- a/service/redshift/internal/endpoints/endpoints.go +++ b/service/redshift/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/resourcegroups/internal/endpoints/endpoints.go b/service/resourcegroups/internal/endpoints/endpoints.go index 9fe5c793a83..b0f54cd5af3 100644 --- a/service/resourcegroups/internal/endpoints/endpoints.go +++ b/service/resourcegroups/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/resourcegroupstaggingapi/internal/endpoints/endpoints.go b/service/resourcegroupstaggingapi/internal/endpoints/endpoints.go index 279de23589a..65a18003582 100644 --- a/service/resourcegroupstaggingapi/internal/endpoints/endpoints.go +++ b/service/resourcegroupstaggingapi/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/s3/internal/endpoints/endpoints.go b/service/s3/internal/endpoints/endpoints.go index baba8737723..9dc39e1c0a2 100644 --- a/service/s3/internal/endpoints/endpoints.go +++ b/service/s3/internal/endpoints/endpoints.go @@ -221,6 +221,15 @@ var defaultPartitions = endpoints.Partitions{ Hostname: "s3.dualstack.ap-southeast-2.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, }, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.ap-southeast-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "aws-global", }: endpoints.Endpoint{ diff --git a/service/s3control/internal/endpoints/s3/endpoints.go b/service/s3control/internal/endpoints/s3/endpoints.go index 3b7ccbab453..690dfbdddbf 100644 --- a/service/s3control/internal/endpoints/s3/endpoints.go +++ b/service/s3control/internal/endpoints/s3/endpoints.go @@ -219,6 +219,15 @@ var defaultPartitions = endpoints.Partitions{ Hostname: "s3.dualstack.ap-southeast-2.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, }, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.ap-southeast-3.amazonaws.com", + }, endpoints.EndpointKey{ Region: "aws-global", }: endpoints.Endpoint{ diff --git a/service/sfn/internal/endpoints/endpoints.go b/service/sfn/internal/endpoints/endpoints.go index 416386d4f5f..aeec886c098 100644 --- a/service/sfn/internal/endpoints/endpoints.go +++ b/service/sfn/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/sns/internal/endpoints/endpoints.go b/service/sns/internal/endpoints/endpoints.go index 16a3f1624f1..8599fdb9f4d 100644 --- a/service/sns/internal/endpoints/endpoints.go +++ b/service/sns/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/sqs/internal/endpoints/endpoints.go b/service/sqs/internal/endpoints/endpoints.go index 56dca80df1d..0c851ccda53 100644 --- a/service/sqs/internal/endpoints/endpoints.go +++ b/service/sqs/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/ssm/internal/endpoints/endpoints.go b/service/ssm/internal/endpoints/endpoints.go index e3b6eba82d4..07938a609e9 100644 --- a/service/ssm/internal/endpoints/endpoints.go +++ b/service/ssm/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/sts/internal/endpoints/endpoints.go b/service/sts/internal/endpoints/endpoints.go index c6ff65be5a7..28ed441bf8e 100644 --- a/service/sts/internal/endpoints/endpoints.go +++ b/service/sts/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: "aws-global", }: endpoints.Endpoint{ diff --git a/service/swf/internal/endpoints/endpoints.go b/service/swf/internal/endpoints/endpoints.go index ba23136b2d3..7f42cad0b84 100644 --- a/service/swf/internal/endpoints/endpoints.go +++ b/service/swf/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{}, From cfb3c59aa5f8e0f3a1e9fc5f075ef46bd04439f5 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Tue, 21 Dec 2021 13:13:42 -0800 Subject: [PATCH 7/7] Add paginator changelog --- .../f9eb19f697e44517873be0763e2c159c.json | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 .changelog/f9eb19f697e44517873be0763e2c159c.json diff --git a/.changelog/f9eb19f697e44517873be0763e2c159c.json b/.changelog/f9eb19f697e44517873be0763e2c159c.json new file mode 100644 index 00000000000..c682f427299 --- /dev/null +++ b/.changelog/f9eb19f697e44517873be0763e2c159c.json @@ -0,0 +1,241 @@ +{ + "id": "f9eb19f6-97e4-4517-873b-e0763e2c159c", + "type": "feature", + "collapse": true, + "description": "API Paginators now support specifying the initial starting token, and support stopping on empty string tokens.", + "modules": [ + "service/accessanalyzer", + "service/acm", + "service/acmpca", + "service/alexaforbusiness", + "service/amp", + "service/amplifyuibuilder", + "service/apigateway", + "service/appconfig", + "service/appflow", + "service/applicationautoscaling", + "service/applicationcostprofiler", + "service/applicationdiscoveryservice", + "service/applicationinsights", + "service/appmesh", + "service/apprunner", + "service/appstream", + "service/athena", + "service/auditmanager", + "service/autoscaling", + "service/backup", + "service/backupgateway", + "service/batch", + "service/braket", + "service/budgets", + "service/chime", + "service/chimesdkidentity", + "service/chimesdkmeetings", + "service/chimesdkmessaging", + "service/cloud9", + "service/cloudcontrol", + "service/clouddirectory", + "service/cloudformation", + "service/cloudfront", + "service/cloudhsmv2", + "service/cloudtrail", + "service/cloudwatch", + "service/cloudwatchlogs", + "service/codeartifact", + "service/codebuild", + "service/codecommit", + "service/codedeploy", + "service/codeguruprofiler", + "service/codegurureviewer", + "service/codepipeline", + "service/codestarconnections", + "service/codestarnotifications", + "service/cognitoidentity", + "service/cognitoidentityprovider", + "service/comprehend", + "service/configservice", + "service/connect", + "service/connectcontactlens", + "service/connectparticipant", + "service/costandusagereportservice", + "service/costexplorer", + "service/databasemigrationservice", + "service/databrew", + "service/dataexchange", + "service/datapipeline", + "service/datasync", + "service/detective", + "service/devicefarm", + "service/devopsguru", + "service/directoryservice", + "service/docdb", + "service/drs", + "service/dynamodb", + "service/ebs", + "service/ec2", + "service/ecr", + "service/ecrpublic", + "service/ecs", + "service/efs", + "service/eks", + "service/elasticache", + "service/elasticbeanstalk", + "service/elasticinference", + "service/elasticloadbalancing", + "service/elasticloadbalancingv2", + "service/elasticsearchservice", + "service/elastictranscoder", + "service/emr", + "service/emrcontainers", + "service/evidently", + "service/finspacedata", + "service/fis", + "service/fms", + "service/forecast", + "service/frauddetector", + "service/fsx", + "service/gamelift", + "service/glacier", + "service/globalaccelerator", + "service/glue", + "service/grafana", + "service/greengrassv2", + "service/groundstation", + "service/guardduty", + "service/health", + "service/healthlake", + "service/honeycode", + "service/iam", + "service/identitystore", + "service/imagebuilder", + "service/inspector", + "service/inspector2", + "service/iot", + "service/iot1clickprojects", + "service/iotanalytics", + "service/iotdataplane", + "service/iotdeviceadvisor", + "service/iotfleethub", + "service/iotsecuretunneling", + "service/iotsitewise", + "service/iotthingsgraph", + "service/iottwinmaker", + "service/iotwireless", + "service/ivs", + "service/kafka", + "service/kafkaconnect", + "service/kendra", + "service/kinesis", + "service/kinesisvideo", + "service/kms", + "service/lakeformation", + "service/lambda", + "service/lexmodelbuildingservice", + "service/lexmodelsv2", + "service/location", + "service/lookoutequipment", + "service/lookoutmetrics", + "service/lookoutvision", + "service/machinelearning", + "service/macie", + "service/macie2", + "service/managedblockchain", + "service/marketplacecatalog", + "service/mediaconnect", + "service/mediaconvert", + "service/medialive", + "service/mediapackage", + "service/mediapackagevod", + "service/mediastore", + "service/mediastoredata", + "service/mediatailor", + "service/mgn", + "service/migrationhub", + "service/migrationhubconfig", + "service/migrationhubrefactorspaces", + "service/migrationhubstrategy", + "service/mobile", + "service/mq", + "service/mturk", + "service/mwaa", + "service/neptune", + "service/networkfirewall", + "service/networkmanager", + "service/nimble", + "service/opensearch", + "service/opsworks", + "service/opsworkscm", + "service/organizations", + "service/outposts", + "service/panorama", + "service/personalize", + "service/pinpointemail", + "service/polly", + "service/pricing", + "service/proton", + "service/qldb", + "service/quicksight", + "service/ram", + "service/rbin", + "service/rds", + "service/redshift", + "service/redshiftdata", + "service/rekognition", + "service/resiliencehub", + "service/resourcegroups", + "service/resourcegroupstaggingapi", + "service/robomaker", + "service/route53", + "service/route53domains", + "service/route53recoverycontrolconfig", + "service/route53recoveryreadiness", + "service/route53resolver", + "service/rum", + "service/s3", + "service/s3control", + "service/s3outposts", + "service/sagemaker", + "service/sagemakera2iruntime", + "service/schemas", + "service/secretsmanager", + "service/securityhub", + "service/serverlessapplicationrepository", + "service/servicecatalog", + "service/servicecatalogappregistry", + "service/servicediscovery", + "service/servicequotas", + "service/ses", + "service/sesv2", + "service/sfn", + "service/shield", + "service/signer", + "service/sms", + "service/snowball", + "service/snowdevicemanagement", + "service/sns", + "service/sqs", + "service/ssm", + "service/ssmcontacts", + "service/ssmincidents", + "service/sso", + "service/ssoadmin", + "service/storagegateway", + "service/support", + "service/swf", + "service/synthetics", + "service/timestreamquery", + "service/timestreamwrite", + "service/transcribe", + "service/transfer", + "service/translate", + "service/voiceid", + "service/wellarchitected", + "service/wisdom", + "service/workdocs", + "service/worklink", + "service/workmail", + "service/workspaces", + "service/workspacesweb", + "service/xray" + ] +} \ No newline at end of file